Merge remote-tracking branch 'origin/master'

master
xxssyyyyssxx 2021-12-30 11:20:21 +08:00
commit bd1b8bb548
21 changed files with 468 additions and 271 deletions

View File

@ -223,7 +223,7 @@ public class AccountController extends BaseController {
public void export(@RequestParam(value = "keywords", required = false) String keywords, HttpServletResponse httpServletResponse) throws IOException {
Map<String, String> searchInfo = getSearchInfo(keywords);
downloadHeader(httpServletResponse, Utils.generateExcelName("人员信息"), "application/octet-stream");
String[] headers = {"工号", "手机号码", "姓名", "常驻地", "一级部门", "直接主管", "职位", "所属角色", "公司邮件地址"};
String[] headers = {"工号", "手机号码", "姓名", "常驻地", "一级部门", "直接主管", "职位", "角色名称", "公司邮件地址"};
String[] exportColumns = {"userName", "telephone", "realName", "workLocation", "deptName", "directManager", "positionName", "roleName", "companyEmail"};
ExportUtils.exportToExcel(headers, exportColumns, 1, 10000,
httpServletResponse.getOutputStream(), (pN, pS) -> accountService.list(searchInfo, pN, pS).getList());
@ -235,7 +235,7 @@ public class AccountController extends BaseController {
@RequestMapping("/template")
public void template(HttpServletResponse response) throws Exception {
String[] headers = new String[]{"工号", "手机号码", "姓名", "常驻地", "一级部门", "直接主管", "职位", "所属角色", "公司邮件地址"};
String[] headers = new String[]{"工号", "手机号码", "姓名", "常驻地", "一级部门", "直接主管", "职位", "角色名称", "公司邮件地址"};
downloadHeader(response, Utils.generateExcelName("人员信息批量导入模板"));
ExportUtils exportUtils = new ExportUtils(headers);
exportUtils.write(response.getOutputStream());

View File

@ -541,4 +541,16 @@ public class ProjectController extends BaseController {
}
return ResponseMsg.buildSuccessMsg("成功");
}
/**
*
*/
@RequestMapping("/saveApprove")
@ResponseBody
public ResponseMsg saveApprove(int id) throws Exception {
Project project = projectRepository.findOne(id);
projectService.saveApprove(project, InterfaceUtil.getAdmin());
return ResponseMsg.buildSuccessMsg("提交成功");
}
}

View File

@ -125,7 +125,7 @@ public class Project {
@Column(name = "huazhi_product_amount")
private BigDecimal huazhiProductAmount;
/**
*
*
*/
@Column(name = "ziguang_other_amount")
private BigDecimal ziguangOtherAmount;
@ -134,6 +134,16 @@ public class Project {
*/
@Column(name = "main_contract_collection_terms")
private String mainContractCollectionTerms;
/**
*
*/
@Column(name = "value_risk")
private String valueRisk;
/**
*
*/
@Column(name = "other_name")
private String otherName;
/**
*
*/
@ -366,6 +376,22 @@ public class Project {
this.mainContractCollectionTerms = mainContractCollectionTerms;
}
public String getValueRisk() {
return valueRisk;
}
public void setValueRisk(String valueRisk) {
this.valueRisk = valueRisk;
}
public String getOtherName() {
return otherName;
}
public void setOtherName(String otherName) {
this.otherName = otherName;
}
public BigDecimal getProjectContributionProfitRateThreshold() {
return projectContributionProfitRateThreshold;
}

View File

@ -103,7 +103,7 @@ public class AccountService {
Admin oldAdmin = adminRepository.findOne(userId);
Dept dept = deptRepository.findOne(admin.getDeptId());
SysRole sysRole = sysRoleRepository.findOne(admin.getRoleId());
UserPosition userPosition = userPositionRepository.findOne(admin.getPositionId());
// UserPosition userPosition = userPositionRepository.findOne(admin.getPositionId());
if (oldAdmin == null) {
oldAdmin = new Admin();
String userName = admin.getUserName();
@ -115,7 +115,7 @@ public class AccountService {
oldAdmin.setRealName(admin.getRealName());
oldAdmin.setDeptName(dept.getName());
oldAdmin.setPositionName(userPosition.getPositionName());
oldAdmin.setPositionName(admin.getPositionName());
oldAdmin.setPassword(newPassword);
oldAdmin.setSalt(salt);
oldAdmin.setEnabled(1);
@ -126,10 +126,10 @@ public class AccountService {
} else {
String userName = admin.getUserName();
oldAdmin.setDeptId(admin.getDeptId());
oldAdmin.setPositionId(admin.getPositionId());
// oldAdmin.setPositionId(admin.getPositionId());
oldAdmin.setRealName(admin.getRealName());
oldAdmin.setDeptName(dept.getName());
oldAdmin.setPositionName(userPosition.getPositionName());
oldAdmin.setPositionName(admin.getPositionName());
//oldAdmin.setEmpCode(admin.getEmpCode());
oldAdmin.setWorkLocation(admin.getWorkLocation());
oldAdmin.setDirectManager(admin.getDirectManager());
@ -362,15 +362,15 @@ public class AccountService {
throw new Exception("职位不能为空");
}
UserPosition userPosition = userPositionRepository.findByPositionNameEquals(positionName.toString());
// UserPosition userPosition = userPositionRepository.findByPositionNameEquals(positionName.toString());
//
// if (null == userPosition) {
// throw new Exception("职位" + positionName.toString() + "不存在");
// }
if (null == userPosition) {
throw new Exception("职位" + positionName.toString() + "不存在");
}
Object sysRole = m.get("所属角色");
Object sysRole = m.get("所属角色名称");
if (sysRole == null || StrKit.isBlank(sysRole.toString())) {
throw new Exception("所属角色不能为空");
throw new Exception("所属角色名称不能为空");
}
SysRole role = sysRoleRepository.findByNameEqualsAndDeletedEquals(sysRole.toString(), 0);
@ -393,8 +393,8 @@ public class AccountService {
admin.setDeptId(dept.getId());
admin.setDeptName(dept.getName());
admin.setDirectManager(directManager.toString());
admin.setPositionId(userPosition.getId());
admin.setPositionName(userPosition.getPositionName());
// admin.setPositionId(userPosition.getId());
admin.setPositionName(positionName.toString());
admin.setRoleId(role.getId());
admin.setRoleName(role.getName());
admin.setCompanyEmail(companyEmail.toString());

View File

@ -755,6 +755,11 @@ public class ProjectBudgetService {
budgetEditSave(project, projectInDb, budgetBean, admin, ApproveStatusEnum.APPROVAL_PENDING);
budgetApprove(approveStatusBudget, projectInDb, admin);
}
public void budgetApprove(Integer approveStatusBudget, Project projectInDb, Admin admin) throws Exception {
if(null != approveStatusBudget &&
ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == approveStatusBudget){
//审核不通过的情况下重新编辑后就完成当前任务
@ -769,6 +774,7 @@ public class ProjectBudgetService {
projectInstanceService.startBudgetProcessInstance(projectInDb, admin);
}
}
/**
*
*/

View File

@ -261,6 +261,10 @@ public class ProjectEstimateService {
estimateEditSave(project, projectInDb, estimateBean, admin, ApproveStatusEnum.APPROVAL_PENDING);
estimateApprove(approveStatusEstimate, projectInDb, admin);
}
public void estimateApprove(Integer approveStatusEstimate, Project projectInDb, Admin admin) throws Exception {
if(null != approveStatusEstimate &&
ApproveStatusEnum.APPROVAL_UNPASS.getApproveStatus() == approveStatusEstimate){
//审核不通过的情况下重新编辑后就完成当前任务【此时任务节点在第一个,也就是发起审批】
@ -275,6 +279,7 @@ public class ProjectEstimateService {
projectInstanceService.startEstimateProcessInstance(projectInDb, admin);
}
}
/**
*
*/

View File

@ -42,7 +42,10 @@ public class ProjectService {
private AdminRepository adminRepository;
@Autowired
private ProjectEstimateService projectEstimateService;
@Autowired
private ProjectInstanceService projectInstanceService;
@Autowired
private ProjectBudgetService projectBudgetService;
private QueryHelper getQueryHelper(Map<String, String> searchInfo) {
/*"CASE p.type WHEN 1 THEN '工程集成类' WHEN 2 THEN '设备集成类' WHEN 3 THEN '战略合作类' ELSE '未知' AS typeDesc," +
@ -186,6 +189,8 @@ public class ProjectService {
projectInDb.setHuazhiProductAmount(project.getHuazhiProductAmount());
projectInDb.setZiguangOtherAmount(project.getZiguangOtherAmount());
projectInDb.setMainContractCollectionTerms(project.getMainContractCollectionTerms());
projectInDb.setValueRisk(project.getValueRisk());
projectInDb.setOtherName(project.getOtherName());
/// projectInDb.setApproveStatusEstimate(approveStatusEnum.getApproveStatus());
@ -337,4 +342,27 @@ public class ProjectService {
return ResponseMsg.buildSuccessMsg("删除成功");
}
public void saveApprove(Project project, Admin admin) throws Exception {
if (project.getApproveStatusEstimate() == ApproveStatusEnum.APPROVAL_UNCOMMIT.getApproveStatus()) {
Integer approveStatusEstimate = project.getApproveStatusEstimate();
projectEstimateService.estimateApprove(approveStatusEstimate, project, admin);
project.setApproveStatusEstimate(ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus());
} else if (project.getApproveStatusBudget() == ApproveStatusEnum.APPROVAL_UNCOMMIT.getApproveStatus()) {
Integer approveStatusBudget = project.getApproveStatusBudget();
projectBudgetService.budgetApprove(approveStatusBudget, project, admin);
project.setApproveStatusBudget(ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus());
} else if (project.getApproveStatusSettle() == ApproveStatusEnum.APPROVAL_UNCOMMIT.getApproveStatus()) {
projectInstanceService.startSettleProcessInstance(project, InterfaceUtil.getAdmin());
project.setApproveStatusSettle(ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus());
} else if (project.getApproveStatusFinal() == ApproveStatusEnum.APPROVAL_UNCOMMIT.getApproveStatus()) {
projectInstanceService.startFinalProcessInstance(project.getId(), InterfaceUtil.getAdmin());
project.setApproveStatusFinal(ApproveStatusEnum.APPROVAL_PENDING.getApproveStatus());
} else {
return ;
}
projectRepository.save(project);
}
}

View File

@ -8,6 +8,7 @@ import cn.palmte.work.model.*;
import cn.palmte.work.utils.InterfaceUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import top.jfunc.common.db.utils.Pagination;
import top.jfunc.common.utils.CollectionUtil;
import java.math.BigDecimal;
@ -47,6 +48,12 @@ public class StatisticsService {
@Autowired
private ProjectVisibleRepository projectVisibleRepository;
@Autowired
private SysRoleRepository sysRoleRepository;
@Autowired
private Pagination pagination;
/**
*
*
@ -67,9 +74,30 @@ public class StatisticsService {
include.setTitle("预算金额(含税)");
exclude.setTitle("预算金额(不含税)");
int adminId = InterfaceUtil.getAdminId();
List<Integer> projectIds = projectVisibleRepository.findProjectIdByTypeAndTid(ProjectVisible.TYPE_USER, adminId);
Admin admin = InterfaceUtil.getAdmin();
List<Project> projectList = null;
//项目可见性根据角色和人员id
int roleId = admin.getRoleId();
Integer adminId = admin.getId();
String sql = "select proj.id, proj.name, proj.approve_status_settle from project_settle_cost psc left join project proj on psc.project_id = proj.id ";
//自己创建的肯定能看见,配置的可以看见,系统管理员可以看见
SysRole sysRole = sysRoleRepository.findSysRoleById(roleId);
if(SysRole.ROLE_TYPE_SYSTEM != sysRole.getType()){
sql = sql + " where (proj.creator_id=? OR proj.id in (SELECT pv1.project_id FROM project_visible pv1 WHERE pv1.type=1 AND pv1.tid=? UNION SELECT pv2.project_id FROM project_visible pv2 WHERE pv2.type=2 AND pv2.tid=?)) group by proj.id order by proj.id asc";
projectList = pagination.find(sql, Project.class, adminId, roleId, adminId);
} else {
sql = sql + " group by proj.id order by proj.id asc";
projectList = pagination.find(sql, Project.class);
}
List<Project> projects = new ArrayList<>();
List<Integer> projectIds = new ArrayList<>();
for (Project project : projectList) {
if (project.getApproveStatusSettle() == 2) {
projects.add(project);
projectIds.add(project.getId());
continue;
}
}
if(CollectionUtil.isEmpty(projectIds)){
return statisticsBean;

View File

@ -140,23 +140,20 @@
<span style="color: red;">*</span>
职位
</div>
<div class="am-u-sm-8 am-u-md-10">
<select id="positionId" name="positionId"
data-am-selected="{btnSize: 'sm',maxHeight: 200,searchBox: 1}">
<#if positionList?exists>
<#list positionList as node>
<option value="${node.id!}" <#if account.positionId! == node.id >
selected </#if>>${node.positionName}</option>
</#list>
</#if>
</select>
<div class="am-u-sm-6 am-u-md-6">
<input name="positionName" class="js-ajax-validate"
data-validate-async data-validation-message="请输入职位"
type="text" id="positionName" value="${account.positionName!}"
minlength="1" maxlength="10"
required placeholder="请输入职位"/>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right">
<span style="color: red;">*</span>
角色
角色名称
</div>
<div class="am-u-sm-8 am-u-md-10">
<select id="roleId" name="roleId"

View File

@ -51,7 +51,7 @@
</select>
</div>
</td>
<th class="am-text-middle">账号角色</th>
<th class="am-text-middle">角色名称</th>
<td>
<div class="am-u-sm-10">
<select data-am-selected id="roleId" name="roleId">
@ -149,7 +149,7 @@
<th class="table-title">一级部门</th>
<th class="table-title">直接主管</th>
<th class="table-title">职位</th>
<th class="table-title">所属角色</th>
<th class="table-title">角色名称</th>
<th class="table-title">公司邮件地址</th>
<th class="table-title">操作</th>
</tr>

View File

@ -5,7 +5,7 @@
<div class="admin-content-body">
<div class="am-cf am-padding">
<div class="am-fl am-cf"><strong class="am-text-primary am-text-lg">项目统计</strong> /
<small>分月项目统计</small></div>
<small>项目分月统计</small></div>
</div>
<form method="post" class="am-form" id="pmsForm">

View File

@ -199,20 +199,20 @@
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资利息</div>
<div class="am-u-sm-6 am-u-md-6">
<span>${Utils.format(project.advanceInterestAmount)}</span>元
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资峰值</div>
<div class="am-u-sm-6 am-u-md-6">
<span>${Utils.format(project.advancePeakAmount)}</span>元
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<#-- <div class="am-g am-form-group am-margin-top">-->
<#-- <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资利息</div>-->
<#-- <div class="am-u-sm-6 am-u-md-6">-->
<#-- <span>${Utils.format(project.advanceInterestAmount)}</span>元-->
<#-- </div>-->
<#-- <div class="am-u-sm-2 am-u-md-4 input-msg"></div>-->
<#-- </div>-->
<#-- <div class="am-g am-form-group am-margin-top">-->
<#-- <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资峰值</div>-->
<#-- <div class="am-u-sm-6 am-u-md-6">-->
<#-- <span>${Utils.format(project.advancePeakAmount)}</span>元-->
<#-- </div>-->
<#-- <div class="am-u-sm-2 am-u-md-4 input-msg"></div>-->
<#-- </div>-->
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>合同金额</div>
<div class="am-u-sm-6 am-u-md-6">
@ -235,7 +235,7 @@
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right">紫光其他产品金额</div>
<div class="am-u-sm-4 am-u-md-2 am-text-right">其他产品金额</div>
<div class="am-u-sm-6 am-u-md-6">
<span>${Utils.format(project.ziguangOtherAmount)}</span>元
</div>
@ -244,11 +244,17 @@
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>主合同收款条款</div>
<div class="am-u-sm-6 am-u-md-6">
<span>${project.mainContractCollectionTerms}</span>
<div style="width:600px; height:auto; word-wrap:break-word;">${project.mainContractCollectionTerms!}</div>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>价值及风险</div>
<div class="am-u-sm-6 am-u-md-6">
<div style="width:600px; height:auto; word-wrap:break-word;">${project.valueRisk!}</div>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
</div>
<!--验证表单元素validate end-->
</div>
@ -348,7 +354,7 @@
<tr>
<td>成本</td>
<td>其他</td>
<td>其他</td>
<td>${project.otherName!}</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costOtherOtherTaxInclude" value="${Utils.format(estimateBean.costOtherOtherTaxInclude)}" required readonly></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costOtherOtherTaxExclude" value="${Utils.format(estimateBean.costOtherOtherTaxExclude)}" required readonly></td>
</tr>
@ -387,17 +393,22 @@
<tbody>
<tr class="am-text-lg">
<td>类别</td>
<td>不含税金额(元)</td>
<td>利润率(%</td>
<td></td>
</tr>
<tr>
<td>项目毛利</td>
<td>项目毛利(元)</td>
<td><input type="number" name="projectGrossProfit" value="${Utils.format(estimateBean.projectGrossProfit)}" readonly title="收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"></td>
</tr>
<tr>
<td>项目毛利率(%</td>
<td><input type="number" name="projectGrossProfitRate" value="${Utils.format(estimateBean.projectGrossProfitRate)}" readonly title="毛利(不含税)/收入总计(不含税)"></td>
</tr>
<tr>
<td>项目贡献利润</td>
<td>项目贡献利润(元)</td>
<td><input type="number" name="projectContributionProfit" value="${Utils.format(estimateBean.projectContributionProfit)}" readonly title="项目毛利(不含税)-公司管理费用总计(不含税)"></td>
</tr>
<tr>
<td>项目贡献利润率(%</td>
<td><input type="number" name="projectContributionProfitRate" value="${Utils.format(estimateBean.projectContributionProfitRate)}" readonly title="贡献利润(不含税)/收入总计(不含税)"></td>
</tr>
</tbody>
@ -503,7 +514,7 @@
<tr>
<td>成本</td>
<td>其他</td>
<td>其他</td>
<td>${project.otherName!}</td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costOtherOtherTaxInclude" value="${Utils.format(budgetBean.costOtherOtherTaxInclude,'0')}" required readonly title="其他含税总额(填入)"></td>
<td><input type="number" min="0.00" max="99999999.99" step="0.01" name="costOtherOtherTaxExclude" value="${Utils.format(budgetBean.costOtherOtherTaxExclude,'0')}" required readonly title="其他不含税总额(填入)"></td>
</tr>
@ -543,17 +554,22 @@
<tbody>
<tr class="am-text-lg">
<td>类别</td>
<td>不含税金额(元)</td>
<td>利润率(%</td>
<td></td>
</tr>
<tr>
<td>项目毛利</td>
<td>项目毛利(元)</td>
<td><input type="number" name="projectGrossProfit" value="${Utils.format(budgetBean.projectGrossProfit,'0')}" readonly required title="收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"></td>
</tr>
<tr>
<td>项目毛利率(%</td>
<td><input type="number" name="projectGrossProfitRate" value="${Utils.format(budgetBean.projectGrossProfitRate,'0')}" readonly required title="毛利(不含税)/收入总计(不含税)"></td>
</tr>
<tr>
<td>项目贡献利润</td>
<td>项目贡献利润(元)</td>
<td><input type="number" name="projectContributionProfit" value="${Utils.format(budgetBean.projectContributionProfit,'0')}" readonly required title="项目毛利(不含税)-公司管理费用总计(不含税)"></td>
</tr>
<tr>
<td>项目贡献利润率(%</td>
<td><input type="number" name="projectContributionProfitRate" value="${Utils.format(budgetBean.projectContributionProfitRate,'0')}" readonly required title="贡献利润(不含税)/收入总计(不含税)"></td>
</tr>
</tbody>
@ -766,7 +782,7 @@
<tr>
<td>成本</td>
<td>其他</td>
<td>其他</td>
<td>${project.otherName!}</td>
<td><input name="costOtherEstimateTotal" type="number" value="${Utils.format(monthBean.estimateCostOther,'0')}" readonly required title="其他成本概算总额"></td>
<td><input name="costOtherBudgetTotal" type="number" value="${Utils.format(monthBean.budgetCostOther,'0')}" readonly required title="其他成本预算总额"></td>
<td><input name="costOtherFormerSettleTotal" type="number" value="${Utils.format(formerBean.costOtherOtherTaxExclude,'0')}" required readonly title="其他成本上月结算总额"></td>
@ -1118,7 +1134,7 @@
<tr>
<td>成本</td>
<td>其他</td>
<td>其他</td>
<td>${project.otherName!}</td>
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(estimateBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本概算总额"></td>
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(budgetBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本预算总额"></td>
<td><input name="costOtherSettleTotal" value="${Utils.format(currentBean.costOtherOtherTaxExclude,'0')}" type="number" type="number"readonly required title="其他成本结算总额"></td>

View File

@ -95,23 +95,19 @@
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>项目类型</div>
<div class="am-u-sm-6 am-u-md-6">
<select data-am-selected id="type" name="type" readonly disabled>
<option value="1" <#if project.type=1>selected</#if>>工程集成类</option>
<option value="2" <#if project.type=2>selected</#if>>设备集成类</option>
<option value="3" <#if project.type=3>selected</#if>>战略合作类</option>
</select>
<input type="text" class="am-input" data-validate-async data-validation-message="请输入项目项目类型"
name="type" <#if project.type=1>value="工程集成类"<#elseif project.type=2>value="设备集成类"<#else>value="战略合作类"</#if>
required readonly/>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资模式</div>
<div class="am-u-sm-6 am-u-md-6">
<select data-am-selected id="underwrittenMode" name="underwrittenMode" readonly disabled>
<option value="1" <#if project.underwrittenMode=1>selected</#if>>A类-不垫资(战略合作)</option>
<option value="2" <#if project.underwrittenMode=2>selected</#if>>B类-不垫资(背靠背)</option>
<option value="3" <#if project.underwrittenMode=3>selected</#if>>C类-垫资(账期覆盖)</option>
<option value="4" <#if project.underwrittenMode=4>selected</#if>>D类-垫资(账期不覆盖)</option>
</select>
<input type="text" class="am-input" data-validate-async data-validation-message="请输入垫资模式"
name="underwrittenMode" required readonly
<#if project.underwrittenMode=1>value="A类-不垫资(战略合作)"<#elseif project.underwrittenMode=2>value="B类-不垫资(背靠背)"
<#elseif project.underwrittenMode=3>value="C类-垫资(账期覆盖)"<#else>value="D类-垫资(账期不覆盖)"</#if> />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
@ -134,24 +130,24 @@
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资利息</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资利息"
name="advanceInterestAmount" placeholder="单位(元)" maxlength="20"
value="${Utils.format(project.advanceInterestAmount)}" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资峰值</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资峰值"
name="advancePeakAmount" placeholder="单位(元)" maxlength="20"
value="${Utils.format(project.advancePeakAmount)}" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<#-- <div class="am-g am-form-group am-margin-top">-->
<#-- <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资利息</div>-->
<#-- <div class="am-u-sm-6 am-u-md-6">-->
<#-- <input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资利息"-->
<#-- name="advanceInterestAmount" placeholder="单位(元)" maxlength="20"-->
<#-- value="${Utils.format(project.advanceInterestAmount)}" required />-->
<#-- </div>-->
<#-- <div class="am-u-sm-2 am-u-md-4 input-msg"></div>-->
<#-- </div>-->
<#-- <div class="am-g am-form-group am-margin-top">-->
<#-- <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资峰值</div>-->
<#-- <div class="am-u-sm-6 am-u-md-6">-->
<#-- <input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资峰值"-->
<#-- name="advancePeakAmount" placeholder="单位(元)" maxlength="20"-->
<#-- value="${Utils.format(project.advancePeakAmount)}" required />-->
<#-- </div>-->
<#-- <div class="am-u-sm-2 am-u-md-4 input-msg"></div>-->
<#-- </div>-->
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>合同金额</div>
<div class="am-u-sm-6 am-u-md-6">
@ -180,9 +176,9 @@
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right">紫光其他产品金额</div>
<div class="am-u-sm-4 am-u-md-2 am-text-right">其他产品金额</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validation-message="请输入紫光其他产品金额"
<input type="number" class="am-input" data-validation-message="请输入其他产品金额"
name="ziguangOtherAmount" placeholder="单位(元)" maxlength="20"
value="${Utils.format(project.ziguangOtherAmount)}" />
</div>
@ -191,9 +187,20 @@
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>主合同收款条款</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="text" class="am-input" data-validate-async data-validation-message="请输入收款条款"
name="mainContractCollectionTerms" placeholder="请输入收款条款" maxlength="20"
value="${project.mainContractCollectionTerms}" required />
<textarea rows="3" cols="20" id="mainContractCollectionTerms" name="mainContractCollectionTerms" maxlength="100"
class="am-input" data-validate-async data-validation-message="请输入收款条款"
placeholder="请输入收款条款" required
>${project.mainContractCollectionTerms!}</textarea>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>价值及风险</div>
<div class="am-u-sm-6 am-u-md-6">
<textarea rows="5" cols="20" id="valueRisk" name="valueRisk" maxlength="500"
class="am-input" data-validate-async data-validation-message="请输入价值及风险"
placeholder="请输入价值及风险" required
>${project.valueRisk!}</textarea>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
@ -289,7 +296,8 @@
<tr>
<td>成本</td>
<td>其他</td>
<td>其他</td>
<td><input type="text" id="otherName" maxlength="6" data-validate-async data-validation-message="请输入其他中的小类名称10字符以内"
value="${project.otherName!}" name="otherName" placeholder="请输入其他中的小类名称10字符以内" readonly required/> </td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxInclude" value="${Utils.format(budgetBean.costOtherOtherTaxInclude,'0')}" required title="其他含税总额(填入)"></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxExclude" value="${Utils.format(budgetBean.costOtherOtherTaxExclude,'0')}" required title="其他不含税总额(填入)"></td>
</tr>
@ -329,17 +337,22 @@
<tbody>
<tr class="am-text-lg">
<td>类别</td>
<td>不含税金额(元)</td>
<td>利润率(%</td>
<td></td>
</tr>
<tr>
<td>项目毛利</td>
<td>项目毛利(元)</td>
<td><input type="number" name="projectGrossProfit" value="${Utils.format(budgetBean.projectGrossProfit,'0')}" readonly required title="收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"></td>
</tr>
<tr>
<td>项目毛利率(%</td>
<td><input type="number" name="projectGrossProfitRate" value="${Utils.format(budgetBean.projectGrossProfitRate,'0')}" readonly required title="毛利(不含税)/收入总计(不含税)"></td>
</tr>
<tr>
<td>项目贡献利润</td>
<td>项目贡献利润(元)</td>
<td><input type="number" name="projectContributionProfit" value="${Utils.format(budgetBean.projectContributionProfit,'0')}" readonly required title="项目毛利(不含税)-公司管理费用总计(不含税)"></td>
</tr>
<tr>
<td>项目贡献利润率(%</td>
<td><input type="number" name="projectContributionProfitRate" value="${Utils.format(budgetBean.projectContributionProfitRate,'0')}" readonly required title="贡献利润(不含税)/收入总计(不含税)"></td>
</tr>
</tbody>

View File

@ -109,24 +109,24 @@
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资利息</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资利息"
name="advanceInterestAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资峰值</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资峰值"
name="advancePeakAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"
value="" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<#-- <div class="am-g am-form-group am-margin-top">-->
<#-- <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资利息</div>-->
<#-- <div class="am-u-sm-6 am-u-md-6">-->
<#-- <input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资利息"-->
<#-- name="advanceInterestAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"-->
<#-- value="" required />-->
<#-- </div>-->
<#-- <div class="am-u-sm-2 am-u-md-4 input-msg"></div>-->
<#-- </div>-->
<#-- <div class="am-g am-form-group am-margin-top">-->
<#-- <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资峰值</div>-->
<#-- <div class="am-u-sm-6 am-u-md-6">-->
<#-- <input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资峰值"-->
<#-- name="advancePeakAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"-->
<#-- value="" required />-->
<#-- </div>-->
<#-- <div class="am-u-sm-2 am-u-md-4 input-msg"></div>-->
<#-- </div>-->
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>合同金额</div>
<div class="am-u-sm-6 am-u-md-6">
@ -164,13 +164,23 @@
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>主合同收款条款</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="text" class="am-input" data-validate-async data-validation-message="请输入收款条款"
name="mainContractCollectionTerms" placeholder="请输入收款条款" maxlength="20"
value="" required />
<textarea rows="3" cols="20" id="mainContractCollectionTerms" name="mainContractCollectionTerms" maxlength="100"
class="am-input" data-validate-async data-validation-message="请输入收款条款"
placeholder="请输入收款条款" required
></textarea>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>价值及风险</div>
<div class="am-u-sm-6 am-u-md-6">
<textarea rows="5" cols="20" id="valueRisk" name="valueRisk" maxlength="500"
class="am-input" data-validate-async data-validation-message="请输入价值及风险"
placeholder="请输入价值及风险" required
></textarea>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
</div>
<!--验证表单元素validate end-->
</div>
@ -259,7 +269,8 @@
<tr>
<td>成本</td>
<td>其他</td>
<td>其他</td>
<td><input type="text" id="otherName" maxlength="6" data-validate-async data-validation-message="请输入其他类的名称10字符以内"
value="" name="otherName" placeholder="请输入其他类的名称10字符以内" required/> </td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxInclude" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxExclude" required></td>
</tr>
@ -298,17 +309,22 @@
<tbody>
<tr class="am-text-lg">
<td>类别</td>
<td>不含税金额(元)</td>
<td>利润率(%</td>
<td></td>
</tr>
<tr>
<td>项目毛利</td>
<td>项目毛利(元)</td>
<td><input type="number" name="projectGrossProfit" readonly title="收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"></td>
</tr>
<tr>
<td>项目毛利率(%</td>
<td><input type="number" name="projectGrossProfitRate" readonly title="毛利(不含税)/收入总计(不含税)"></td>
</tr>
<tr>
<td>项目贡献利润</td>
<td>项目贡献利润(元)</td>
<td><input type="number" name="projectContributionProfit" readonly title="项目毛利(不含税)-公司管理费用总计(不含税)"></td>
</tr>
<tr>
<td>项目贡献利润率(%</td>
<td><input type="number" name="projectContributionProfitRate" readonly title="贡献利润(不含税)/收入总计(不含税)"></td>
</tr>
</tbody>

View File

@ -116,24 +116,24 @@
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资利息</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资利息"
name="advanceInterestAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"
value="${Utils.format(project.advanceInterestAmount)}" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资峰值</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资峰值"
name="advancePeakAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"
value="${Utils.format(project.advancePeakAmount)}" required />
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<#-- <div class="am-g am-form-group am-margin-top">-->
<#-- <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资利息</div>-->
<#-- <div class="am-u-sm-6 am-u-md-6">-->
<#-- <input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资利息"-->
<#-- name="advanceInterestAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"-->
<#-- value="${Utils.format(project.advanceInterestAmount)}" required />-->
<#-- </div>-->
<#-- <div class="am-u-sm-2 am-u-md-4 input-msg"></div>-->
<#-- </div>-->
<#-- <div class="am-g am-form-group am-margin-top">-->
<#-- <div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>垫资峰值</div>-->
<#-- <div class="am-u-sm-6 am-u-md-6">-->
<#-- <input type="number" class="am-input" data-validate-async data-validation-message="请输入垫资峰值"-->
<#-- name="advancePeakAmount" placeholder="单位(元)" min="0.00" max="9999999999.99" step="0.01" maxlength="13"-->
<#-- value="${Utils.format(project.advancePeakAmount)}" required />-->
<#-- </div>-->
<#-- <div class="am-u-sm-2 am-u-md-4 input-msg"></div>-->
<#-- </div>-->
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>合同金额</div>
<div class="am-u-sm-6 am-u-md-6">
@ -171,13 +171,23 @@
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>主合同收款条款</div>
<div class="am-u-sm-6 am-u-md-6">
<input type="text" class="am-input" data-validate-async data-validation-message="请输入收款条款"
name="mainContractCollectionTerms" placeholder="请输入收款条款" maxlength="20"
value="${project.mainContractCollectionTerms}" required />
<textarea rows="3" cols="20" id="mainContractCollectionTerms" name="mainContractCollectionTerms" maxlength="100"
class="am-input" data-validate-async data-validation-message="请输入收款条款"
placeholder="请输入收款条款" required
>${project.mainContractCollectionTerms!}</textarea>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
<div class="am-g am-form-group am-margin-top">
<div class="am-u-sm-4 am-u-md-2 am-text-right"><span style="color: red;">*</span>价值及风险</div>
<div class="am-u-sm-6 am-u-md-6">
<textarea rows="5" cols="20" id="valueRisk" name="valueRisk" maxlength="500"
class="am-input" data-validate-async data-validation-message="请输入价值及风险"
placeholder="请输入价值及风险" required
>${project.valueRisk!}</textarea>
</div>
<div class="am-u-sm-2 am-u-md-4 input-msg"></div>
</div>
</div>
<!--验证表单元素validate end-->
</div>
@ -266,7 +276,8 @@
<tr>
<td>成本</td>
<td>其他</td>
<td>其他</td>
<td><input type="text" id="otherName" maxlength="6" data-validate-async data-validation-message="请输入其他类的名称10字符以内"
value="${project.otherName!}" name="otherName" placeholder="请输入其他类的名称10字符以内" required/> </td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxInclude" value="${Utils.format(estimateBean.costOtherOtherTaxInclude)}" required></td>
<td><input type="number" min="0.00" max="9999999999.99" step="0.01" maxlength="13" name="costOtherOtherTaxExclude" value="${Utils.format(estimateBean.costOtherOtherTaxExclude)}" required></td>
</tr>
@ -305,17 +316,22 @@
<tbody>
<tr class="am-text-lg">
<td>类别</td>
<td>不含税金额(元)</td>
<td>利润率(%</td>
<td></td>
</tr>
<tr>
<td>项目毛利</td>
<td>项目毛利(元)</td>
<td><input type="number" name="projectGrossProfit" value="${Utils.format(estimateBean.projectGrossProfit)}" readonly title="收入总计(不含税)-成本总计(不含税)-财务费用总计(不含税)"></td>
</tr>
<tr>
<td>项目毛利率(%</td>
<td><input type="number" name="projectGrossProfitRate" value="${Utils.format(estimateBean.projectGrossProfitRate)}" readonly title="毛利(不含税)/收入总计(不含税)"></td>
</tr>
<tr>
<td>项目贡献利润</td>
<td>项目贡献利润(元)</td>
<td><input type="number" name="projectContributionProfit" value="${Utils.format(estimateBean.projectContributionProfit)}" readonly title="项目毛利(不含税)-公司管理费用总计(不含税)"></td>
</tr>
<tr>
<td>项目贡献利润率(%</td>
<td><input type="number" name="projectContributionProfitRate" value="${Utils.format(estimateBean.projectContributionProfitRate)}" readonly title="贡献利润(不含税)/收入总计(不含税)"></td>
</tr>
</tbody>

View File

@ -139,7 +139,8 @@
<tr>
<td>成本</td>
<td>其他</td>
<td>其他</td>
<td><input type="text" id="otherName" maxlength="6" data-validate-async data-validation-message="请输入其他中的小类名称10字符以内"
value="${project.otherName!}" name="otherName" placeholder="请输入其他中的小类名称10字符以内" readonly required/> </td>
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(estimateBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本概算总额"></td>
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(budgetBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本预算总额"></td>
<td><input name="costOtherSettleTotal" value="${Utils.format(settleBean.costOtherOtherTaxExclude,'0')}" type="number" type="number"readonly required title="其他成本结算总额"></td>

View File

@ -139,7 +139,8 @@
<tr>
<td>成本</td>
<td>其他</td>
<td>其他</td>
<td><input type="text" id="otherName" maxlength="6" data-validate-async data-validation-message="请输入其他中的小类名称10字符以内"
value="${project.otherName!}" name="otherName" placeholder="请输入其他中的小类名称10字符以内" readonly required/> </td>
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(estimateBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本概算总额"></td>
<td><input name="costOtherOtherTaxExclude" type="number" value="${Utils.format(budgetBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本预算总额"></td>
<td><input name="costOtherSettleTotal" value="${Utils.format(settleBean.costOtherOtherTaxExclude,'0')}" type="number" type="number"readonly required title="其他成本结算总额"></td>

View File

@ -278,6 +278,13 @@
onclick="location.href='${base}/project/detail?id=${list.id}'"><span
class="am-icon-pencil-square-o"></span>查看
</button>-->
<#if list.approveStatusEstimate == 0 || list.approveStatusBudget == 0 || list.approveStatusSettle == 0 || list.approveStatusFinal == 0>
<button type="button"
class="am-btn am-btn-default am-btn-xs am-text-secondary"
onclick="approveProject(${list.id})"><span
class="am-icon-pencil-square-o"></span>提交审核
</button>
</#if>
<#if adminId==list.approveId>
@ -348,6 +355,25 @@
<script src="../assets/js/amazeui.switch.js"></script>
<script src="${base}/assets/js/project_common.js"></script>
<script type="text/javascript">
var approveProject = function (id) {
if (window.confirm('确定要提交审核吗?')) {
$.ajax({
url: '${base}/project/saveApprove',
data: {id:id},
dataType: "json",
async: false,
success: function (data) {
if (data.status == 0) {
alert(data.msg);
window.location.href = window.location.href;
} else if (data.status == 1) {
alert(data.msg);
}
}
});
}
};
$(function () {
$("#submit-btn").on("click", function () {
@ -395,19 +421,6 @@
$("#keywords").val(keywords);
}
/* if("1" == "${hasApproveProjects!'0'}"){
var hasApproveProjectsLayer = layer.open({
type: 1,
title:'待审核项目提醒',
skin: 'layui-layer-rim', //加上边框
area: ['350px', '150px'], //宽高
content: "<div style='margin-top:20px;margin-left:20px;color:red;'>有新的待审核项目,请及时确认。&nbsp;&nbsp;&nbsp;" +
"<span style='color: #0b6fa2;cursor: pointer;text-decoration:underline' onclick='window.location.href=\"${base}/project/listApprove\"'>前往处理</span></div>"
});
}*/
});
@ -427,6 +440,6 @@
}
});
}
}
};
</script>

View File

@ -163,7 +163,8 @@
<tr>
<td>成本</td>
<td>其他</td>
<td>其他</td>
<td><input type="text" id="otherName" maxlength="6" data-validate-async data-validation-message="请输入其他中的小类名称10字符以内"
value="${project.otherName!}" name="otherName" placeholder="请输入其他中的小类名称10字符以内" readonly required/> </td>
<td><input name="costOtherEstimateTotal" type="number" value="${Utils.format(estimateBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本概算总额"></td>
<td><input name="costOtherBudgetTotal" type="number" value="${Utils.format(budgetBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本预算总额"></td>
<td><input name="costOtherFormerSettleTotal" type="number" value="${Utils.format(formerBean.costOtherOtherTaxExclude,'0')}" required readonly title="其他成本上月结算总额"></td>

View File

@ -161,7 +161,8 @@
<tr>
<td>成本</td>
<td>其他</td>
<td>其他</td>
<td><input type="text" id="otherName" maxlength="6" data-validate-async data-validation-message="请输入其他中的小类名称10字符以内"
value="${project.otherName!}" name="otherName" placeholder="请输入其他中的小类名称10字符以内" readonly required/> </td>
<td><input name="costOtherEstimateTotal" type="number" value="${Utils.format(estimateBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本概算总额"></td>
<td><input name="costOtherBudgetTotal" type="number" value="${Utils.format(budgetBean.costOtherOtherTaxExclude,'0')}" readonly required title="其他成本预算总额"></td>
<td><input name="costOtherFormerSettleTotal" type="number" value="${Utils.format(formerBean.costOtherOtherTaxExclude,'0')}" required readonly title="其他成本上月结算总额"></td>

View File

@ -1,6 +1,23 @@
<#assign base=request.contextPath />
<#import "../common/defaultLayout.ftl" as defaultLayout>
<@defaultLayout.layout>
<link rel="stylesheet" type="text/css" href="${base}/common/css/time-axis.css">
<style type="text/css">
.cal-table-column {
display: block;
}
.cal-table-left {
display: block;
float: left;
}
table {
display: block;
/*border: 1px solid;*/
width: 200px;
}
</style>
<div class="admin-content">
<div class="admin-content-body">
<div class="am-cf am-padding">
@ -28,40 +45,40 @@
<div class="am-tabs-bd">
<div class="am-tab-panel am-fade am-in am-active" id="tab1">
<div class="am-scrollable-horizontal">
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<thead>
<tr class="am-text-nowrap">
<th class="table-title">项目名称</th>
<th class="table-title">收入--设备类</th>
<th class="table-title">收入--工程类</th>
<th class="table-title">收入--服务类</th>
<th class="table-title">采购成本--设备类</th>
<th class="table-title">采购成本--施工类</th>
<th class="table-title">采购成本--服务类</th>
<th class="table-title">采购成本--其他</th>
<th class="table-title">成本--其他</th>
<th class="table-title">成本--项目管理成本</th>
<th class="table-title">财务费用--资金占用成本</th>
<th class="table-title">公司管理费用</th>
<table class="am-table am-table-bordered am-table-radius table-main cal-table-table" style="padding:0;">
<thead class="cal-table-left">
<tr class="cal-table-left">
<th class="table-title cal-table-column">项目名称</th>
<th class="table-title cal-table-column">收入--设备类</th>
<th class="table-title cal-table-column">收入--工程类</th>
<th class="table-title cal-table-column">收入--服务类</th>
<th class="table-title cal-table-column">采购成本--设备类</th>
<th class="table-title cal-table-column">采购成本--施工类</th>
<th class="table-title cal-table-column">采购成本--服务类</th>
<th class="table-title cal-table-column">采购成本--其他</th>
<th class="table-title cal-table-column">成本--其他</th>
<th class="table-title cal-table-column">成本--项目管理成本</th>
<th class="table-title cal-table-column">财务费用--资金占用成本</th>
<th class="table-title cal-table-column">公司管理费用</th>
</tr>
</thead>
<tbody>
<tbody class="cal-table-left">
<#if (pager)?exists>
<#list pager as list>
<tr>
<td>${list.projectName!}</td>
<td>${(list.incomeDevice!0)?string("0.##")}</td>
<td>${(list.incomeEngineer!0)?string("0.##")}</td>
<td>${(list.incomeService!0)?string("0.##")}</td>
<td>${(list.costPurchaseDevice!0)?string("0.##")}</td>
<td>${(list.costPurchaseBuild!0)?string("0.##")}</td>
<td>${(list.costPurchaseService!0)?string("0.##")}</td>
<td>${(list.costPurchaseOther!0)?string("0.##")}</td>
<td>${(list.costOther!0)?string("0.##")}</td>
<td>${(list.costProjectManage!0)?string("0.##")}</td>
<td>${(list.costExpropriation!0)?string("0.##")}</td>
<td>${(list.costCompanyManage!0)?string("0.##")}</td>
<tr class="cal-table-left">
<td class="cal-table-column">${list.projectName!}</td>
<td class="cal-table-column">${(list.incomeDevice!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.incomeEngineer!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.incomeService!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.costPurchaseDevice!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.costPurchaseBuild!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.costPurchaseService!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.costPurchaseOther!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.costOther!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.costProjectManage!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.costExpropriation!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.costCompanyManage!0)?string("0.##")}</td>
</tr>
</#list>
</#if>
@ -75,44 +92,44 @@
<div class="am-tabs-bd">
<div class="am-tab-panel am-fade am-in" id="tab2">
<div class="am-scrollable-horizontal">
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<thead>
<tr>
<th class="table-title">项目名称</th>
<th class="table-title">营业收入</th>
<th class="table-title">营业成本</th>
<th class="table-title">项目管理成本</th>
<th class="table-title">其他</th>
<th class="table-title">财务费用</th>
<th class="table-title">项目毛利</th>
<th class="table-title">项目毛利率</th>
<th class="table-title">公司管理费用</th>
<th class="table-title">项目贡献利润</th>
<th class="table-title">项目贡献利润率</th>
<th class="table-title">所得税费用</th>
<th class="table-title">项目净利润</th>
<th class="table-title">项目净利润率</th>
<table class="am-table am-table-bordered am-table-radius table-main cal-table-table" style="padding:0;">
<thead class="cal-table-left">
<tr class="cal-table-left">
<th class="table-title cal-table-column">项目名称</th>
<th class="table-title cal-table-column">营业收入</th>
<th class="table-title cal-table-column">营业成本</th>
<th class="table-title cal-table-column">项目管理成本</th>
<th class="table-title cal-table-column">其他</th>
<th class="table-title cal-table-column">财务费用</th>
<th class="table-title cal-table-column">项目毛利</th>
<th class="table-title cal-table-column">项目毛利率</th>
<th class="table-title cal-table-column">公司管理费用</th>
<th class="table-title cal-table-column">项目贡献利润</th>
<th class="table-title cal-table-column">项目贡献利润率</th>
<th class="table-title cal-table-column">所得税费用</th>
<th class="table-title cal-table-column">项目净利润</th>
<th class="table-title cal-table-column">项目净利润率</th>
</tr>
</thead>
<tbody>
<tbody class="cal-table-left">
<#if (pager)?exists>
<#list pager as list>
<tr>
<td>${list.projectName!}</td>
<td>${(list.incomeTotal!0)?string("0.##")}</td>
<td>${(list.costTotal2!0)?string("0.##")}</td>
<td>${(list.costProjectManage!0)?string("0.##")}</td>
<td>${(list.costOther!0)?string("0.##")}</td>
<td>${(list.costExpropriation!0)?string("0.##")}</td>
<td>${(list.grossProfit!0)?string("0.##")}</td>
<td>${(list.grossProfitProfitMargin!0)?string("0.##")}</td>
<td>${(list.costCompanyManage!0)?string("0.##")}</td>
<td>${(list.contributionProfit!0)?string("0.##")}</td>
<td>${(list.contributionProfitProfitMargin!0)?string("0.##")}</td>
<td>${(list.taxCost!0)?string("0.##")}</td>
<td>${(list.netProfit!0)?string("0.##")}</td>
<td>${(list.netProfitProfitMargin!0)?string("0.##")}</td>
<tr class="cal-table-left">
<td class="cal-table-column">${list.projectName!}</td>
<td class="cal-table-column">${(list.incomeTotal!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.costTotal2!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.costProjectManage!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.costOther!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.costExpropriation!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.grossProfit!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.grossProfitProfitMargin!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.costCompanyManage!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.contributionProfit!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.contributionProfitProfitMargin!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.taxCost!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.netProfit!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.netProfitProfitMargin!0)?string("0.##")}</td>
</tr>
</#list>
</#if>
@ -125,46 +142,46 @@
<div class="am-tabs-bd">
<div class="am-tab-panel am-fade am-in" id="tab3">
<div class="am-scrollable-horizontal">
<table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;">
<thead>
<tr class="am-text-nowrap">
<th class="table-title">项目名称</th>
<th class="table-title">销售商品、提供劳务收到的现金</th>
<th class="table-title">收到的税费返还</th>
<th class="table-title">收到的其他与经营活动有关的现金</th>
<th class="table-title">购买商品、接受劳务支付的现金</th>
<th class="table-title">支付的各项税费</th>
<th class="table-title">支付其他与经营活动有关的现金</th>
<th class="table-title">经营活动产生的现金流量净额</th>
<th class="table-title">投资活动现金流入</th>
<th class="table-title">投资活动现金流出</th>
<th class="table-title">投资活动产生的现金流量净额</th>
<th class="table-title">借款资金流入</th>
<th class="table-title">还款资金流出</th>
<th class="table-title">筹资活动产生的现金流量净额</th>
<th class="table-title">货币资金净增加额</th>
<table class="am-table am-table-bordered am-table-radius table-main cal-table-table" style="padding:0;">
<thead class="cal-table-left">
<tr class="cal-table-left">
<th class="table-title cal-table-column">项目名称</th>
<th class="table-title cal-table-column">销售商品、提供劳务收到的现金</th>
<th class="table-title cal-table-column">收到的税费返还</th>
<th class="table-title cal-table-column">收到的其他与经营活动有关的现金</th>
<th class="table-title cal-table-column">购买商品、接受劳务支付的现金</th>
<th class="table-title cal-table-column">支付的各项税费</th>
<th class="table-title cal-table-column">支付其他与经营活动有关的现金</th>
<th class="table-title cal-table-column">经营活动产生的现金流量净额</th>
<th class="table-title cal-table-column">投资活动现金流入</th>
<th class="table-title cal-table-column">投资活动现金流出</th>
<th class="table-title cal-table-column">投资活动产生的现金流量净额</th>
<th class="table-title cal-table-column">借款资金流入</th>
<th class="table-title cal-table-column">还款资金流出</th>
<th class="table-title cal-table-column">筹资活动产生的现金流量净额</th>
<th class="table-title cal-table-column">货币资金净增加额</th>
</tr>
</thead>
<tbody>
<tbody class="cal-table-left">
<#if (pager)?exists>
<#list pager as list>
<tr>
<td>${list.projectName!}</td>
<td>${(list.saleIncomeCash!0)?string("0.##")}</td>
<td>${(list.taxReturn!0)?string("0.##")}</td>
<td>${(list.earnestMoneyIncome!0)?string("0.##")}</td>
<td>${(list.purchaseCost!0)?string("0.##")}</td>
<td>${(list.taxCost!0)?string("0.##")}</td>
<td>${(list.earnestMoneyCost!0)?string("0.##")}</td>
<td>${(list.netCashFlow!0)?string("0.##")}</td>
<td>${(list.cashInflowFromInvestingActivities!0)?string("0.##")}</td>
<td>${(list.cashOutflowFromInvestingActivities!0)?string("0.##")}</td>
<td>${(list.netCashFromInvestingActivities!0)?string("0.##")}</td>
<td>${(list.financingCapitalInflow!0)?string("0.##")}</td>
<td>${(list.financingCapitalOutflow!0)?string("0.##")}</td>
<td>${(list.financingCapitalCashflow!0)?string("0.##")}</td>
<td>${(list.netIncreaseMonetaryFunds!0)?string("0.##")}</td>
<tr class="cal-table-left">
<td class="cal-table-column">${list.projectName!}</td>
<td class="cal-table-column">${(list.saleIncomeCash!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.taxReturn!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.earnestMoneyIncome!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.purchaseCost!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.taxCost!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.earnestMoneyCost!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.netCashFlow!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.cashInflowFromInvestingActivities!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.cashOutflowFromInvestingActivities!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.netCashFromInvestingActivities!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.financingCapitalInflow!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.financingCapitalOutflow!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.financingCapitalCashflow!0)?string("0.##")}</td>
<td class="cal-table-column">${(list.netIncreaseMonetaryFunds!0)?string("0.##")}</td>
</tr>
</#list>
</#if>