diff --git a/src/main/java/cn/palmte/work/bean/CashFlowBean.java b/src/main/java/cn/palmte/work/bean/CashFlowBean.java index 081e1bd..b0ad788 100644 --- a/src/main/java/cn/palmte/work/bean/CashFlowBean.java +++ b/src/main/java/cn/palmte/work/bean/CashFlowBean.java @@ -187,6 +187,38 @@ public class CashFlowBean { .add(financingCapitalCashflow); } + /** + * 获取所有现金流量决算总额 + * @return + */ + public BigDecimal getCashFluxTotal() { + BigDecimal saleIncomeCash = getSaleIncomeCash(); + BigDecimal taxReturn = getTaxReturn(); + BigDecimal earnestMoneyIncome = getEarnestMoneyIncome(); + BigDecimal purchaseCost = getPurchaseCost(); + BigDecimal taxCost = getTaxCost(); + BigDecimal earnestMoneyCost = getEarnestMoneyCost(); + BigDecimal netCashFlow = getNetCashFlow(); + BigDecimal cashInflowFromInvestingActivities = getCashInflowFromInvestingActivities(); + BigDecimal cashOutflowFromInvestingActivities = getCashOutflowFromInvestingActivities(); + BigDecimal netCashFromInvestingActivities = getNetCashFromInvestingActivities(); + BigDecimal financingCapitalInflow = getFinancingCapitalInflow(); + BigDecimal financingCapitalOutflow = getFinancingCapitalOutflow(); + BigDecimal financingCapitalCashflow = getFinancingCapitalCashflow(); + BigDecimal netIncreaseMonetaryFunds = getNetIncreaseMonetaryFunds(); + + if (null == saleIncomeCash || null == taxReturn || null == earnestMoneyIncome || null == purchaseCost || null == taxCost + || null == earnestMoneyCost || null == netCashFlow || null == cashInflowFromInvestingActivities || + null == cashOutflowFromInvestingActivities || null == netCashFromInvestingActivities || + null == financingCapitalInflow || null == financingCapitalOutflow || null == financingCapitalCashflow || null == netIncreaseMonetaryFunds) { + return new BigDecimal(0); + } + + return saleIncomeCash.add(taxReturn).add(earnestMoneyIncome).add(purchaseCost).add(taxCost).add(earnestMoneyCost) + .add(netCashFlow).add(cashInflowFromInvestingActivities).add(cashOutflowFromInvestingActivities).add(netCashFromInvestingActivities) + .add(financingCapitalInflow).add(financingCapitalOutflow).add(financingCapitalCashflow).add(netIncreaseMonetaryFunds); + } + /** * 处理特殊值 * null就返回0 diff --git a/src/main/java/cn/palmte/work/bean/IncomeCostBean.java b/src/main/java/cn/palmte/work/bean/IncomeCostBean.java index 1288065..950a910 100644 --- a/src/main/java/cn/palmte/work/bean/IncomeCostBean.java +++ b/src/main/java/cn/palmte/work/bean/IncomeCostBean.java @@ -4,6 +4,7 @@ import java.math.BigDecimal; /** * 预算概算页面的公共属性 + * * @author xiongshiyan at 2021/11/1 , contact me with email yanshixiong@126.com or phone 15208384257 */ public abstract class IncomeCostBean { @@ -33,7 +34,7 @@ public abstract class IncomeCostBean { */ private BigDecimal incomeServiceTaxExclude; /** - *设备采购成本含税 + * 设备采购成本含税 */ private BigDecimal costPurchaseDeviceTaxInclude; /** @@ -54,7 +55,7 @@ public abstract class IncomeCostBean { */ private BigDecimal costOtherOtherTaxInclude; /** - *设备采购成本不含税 + * 设备采购成本不含税 */ private BigDecimal costPurchaseDeviceTaxExclude; /** @@ -83,7 +84,7 @@ public abstract class IncomeCostBean { */ private BigDecimal costExpropriationTaxExclude; /** - *公司管理成本不含税 + * 公司管理成本不含税 */ private BigDecimal costCompanyManageTaxExclude; @@ -174,6 +175,7 @@ public abstract class IncomeCostBean { public BigDecimal getCostPurchaseOtherTaxInclude() { return handleSpecial(costPurchaseOtherTaxInclude); } + public void setCostPurchaseOtherTaxInclude(BigDecimal costPurchaseOtherTaxInclude) { this.costPurchaseOtherTaxInclude = costPurchaseOtherTaxInclude; } @@ -251,6 +253,20 @@ public abstract class IncomeCostBean { this.costCompanyManageTaxExclude = costCompanyManageTaxExclude; } + /** + * 计算管理成本不含税 + * + * @return + */ + public BigDecimal getCostManageExclude() { + BigDecimal costExpropriationTaxExclude = getCostExpropriationTaxExclude(); + BigDecimal costCompanyManageTaxExclude = getCostCompanyManageTaxExclude(); + if (null == costExpropriationTaxExclude || null == costCompanyManageTaxExclude) { + return handleSpecial(null); + } + return costExpropriationTaxExclude.add(costCompanyManageTaxExclude); + } + /** * 计算所有的含税收入 @@ -259,7 +275,7 @@ public abstract class IncomeCostBean { BigDecimal incomeDeviceTaxInclude = getIncomeDeviceTaxInclude(); BigDecimal incomeEngineerTaxInclude = getIncomeEngineerTaxInclude(); BigDecimal incomeServiceTaxInclude = getIncomeServiceTaxInclude(); - if(null == incomeDeviceTaxInclude || null == incomeEngineerTaxInclude || null == incomeServiceTaxInclude){ + if (null == incomeDeviceTaxInclude || null == incomeEngineerTaxInclude || null == incomeServiceTaxInclude) { return handleSpecial(null); } return incomeDeviceTaxInclude.add(incomeEngineerTaxInclude) @@ -273,7 +289,7 @@ public abstract class IncomeCostBean { BigDecimal incomeDeviceTaxExclude = getIncomeDeviceTaxExclude(); BigDecimal incomeEngineerTaxExclude = getIncomeEngineerTaxExclude(); BigDecimal incomeServiceTaxExclude = getIncomeServiceTaxExclude(); - if(null == incomeDeviceTaxExclude || null == incomeEngineerTaxExclude || null == incomeServiceTaxExclude){ + if (null == incomeDeviceTaxExclude || null == incomeEngineerTaxExclude || null == incomeServiceTaxExclude) { return handleSpecial(null); } return incomeDeviceTaxExclude.add(incomeEngineerTaxExclude) @@ -290,12 +306,12 @@ public abstract class IncomeCostBean { BigDecimal costPurchaseOtherTaxInclude = getCostPurchaseOtherTaxInclude(); BigDecimal costProjectManageTaxInclude = getCostProjectManageTaxInclude(); BigDecimal costOtherOtherTaxInclude = getCostOtherOtherTaxInclude(); - if(null == costPurchaseDeviceTaxInclude + if (null == costPurchaseDeviceTaxInclude || null == costPurchaseBuildTaxInclude || null == costPurchaseServiceTaxInclude || null == costPurchaseOtherTaxInclude || null == costProjectManageTaxInclude - || null == costOtherOtherTaxInclude){ + || null == costOtherOtherTaxInclude) { return handleSpecial(null); } return costPurchaseDeviceTaxInclude @@ -316,12 +332,12 @@ public abstract class IncomeCostBean { BigDecimal costPurchaseOtherTaxExclude = getCostPurchaseOtherTaxExclude(); BigDecimal costProjectManageTaxExclude = getCostProjectManageTaxExclude(); BigDecimal costOtherOtherTaxExclude = getCostOtherOtherTaxExclude(); - if(null == costPurchaseDeviceTaxExclude + if (null == costPurchaseDeviceTaxExclude || null == costPurchaseBuildTaxExclude || null == costPurchaseServiceTaxExclude || null == costPurchaseOtherTaxExclude || null == costProjectManageTaxExclude - || null == costOtherOtherTaxExclude){ + || null == costOtherOtherTaxExclude) { return handleSpecial(null); } return costPurchaseDeviceTaxExclude @@ -340,7 +356,7 @@ public abstract class IncomeCostBean { BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude(); BigDecimal costTotalTaxExclude = getCostTotalTaxExclude(); BigDecimal costExpropriationTaxExclude = getCostExpropriationTaxExclude(); - if(null == incomeTotalTaxExclude || null == costTotalTaxExclude || null == costExpropriationTaxExclude){ + if (null == incomeTotalTaxExclude || null == costTotalTaxExclude || null == costExpropriationTaxExclude) { return handleSpecial(null); } return incomeTotalTaxExclude @@ -355,16 +371,16 @@ public abstract class IncomeCostBean { public BigDecimal getProjectGrossProfitRate() { BigDecimal projectGrossProfit = getProjectGrossProfit(); BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude(); - if(null == projectGrossProfit || null == incomeTotalTaxExclude){ + if (null == projectGrossProfit || null == incomeTotalTaxExclude) { return handleSpecial(null); } BigDecimal zero = new BigDecimal(0); - if(projectGrossProfit.compareTo(zero) == 0 || incomeTotalTaxExclude.compareTo(zero) == 0){ + if (projectGrossProfit.compareTo(zero) == 0 || incomeTotalTaxExclude.compareTo(zero) == 0) { return handleSpecial(null); } return projectGrossProfit .multiply(new BigDecimal(100)) - .divide(incomeTotalTaxExclude,2,BigDecimal.ROUND_HALF_UP); + .divide(incomeTotalTaxExclude, 2, BigDecimal.ROUND_HALF_UP); } /** @@ -374,11 +390,12 @@ public abstract class IncomeCostBean { public BigDecimal getProjectContributionProfit() { BigDecimal projectGrossProfit = getProjectGrossProfit(); BigDecimal costCompanyManageTaxExclude = getCostCompanyManageTaxExclude(); - if(null == projectGrossProfit || null == costCompanyManageTaxExclude){ + if (null == projectGrossProfit || null == costCompanyManageTaxExclude) { return null; } return projectGrossProfit.subtract(costCompanyManageTaxExclude); } + /** * 计算项目贡献利润率 * 贡献利润(不含税)/收入总计(不含税) @@ -386,20 +403,21 @@ public abstract class IncomeCostBean { public BigDecimal getProjectContributionProfitRate() { BigDecimal projectContributionProfit = getProjectContributionProfit(); BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude(); - if(null == projectContributionProfit || null == incomeTotalTaxExclude){ + if (null == projectContributionProfit || null == incomeTotalTaxExclude) { return handleSpecial(null); } BigDecimal zero = new BigDecimal(0); - if(projectContributionProfit.compareTo(zero) == 0 || incomeTotalTaxExclude.compareTo(zero) == 0){ + if (projectContributionProfit.compareTo(zero) == 0 || incomeTotalTaxExclude.compareTo(zero) == 0) { return handleSpecial(null); } return projectContributionProfit .multiply(new BigDecimal(100)) - .divide(incomeTotalTaxExclude, 2,BigDecimal.ROUND_HALF_UP); + .divide(incomeTotalTaxExclude, 2, BigDecimal.ROUND_HALF_UP); } /** * 对null值如何处理 + * * @param src 原值 * @return 特殊处理之后的值 */ diff --git a/src/main/java/cn/palmte/work/controller/backend/ProjectFinalController.java b/src/main/java/cn/palmte/work/controller/backend/ProjectFinalController.java index 0a4c908..65a8c01 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectFinalController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectFinalController.java @@ -3,7 +3,8 @@ package cn.palmte.work.controller.backend; import cn.palmte.work.bean.*; import cn.palmte.work.model.Project; import cn.palmte.work.model.ProjectBudgetPlanDetail; -import cn.palmte.work.model.ProjectRepository; +import cn.palmte.work.model.ProjectSettleIncome; +import cn.palmte.work.model.ProjectSettleIncomeRepository; import cn.palmte.work.service.*; import cn.palmte.work.utils.FreeMarkerUtil; import cn.palmte.work.utils.InterfaceUtil; @@ -12,7 +13,6 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; -import java.util.Date; import java.util.List; import java.util.Map; @@ -33,17 +33,38 @@ public class ProjectFinalController extends BaseController{ private ProjectBudgetService projectBudgetService; @Autowired - private ProjectInstanceService projectInstanceService; + private ProjectSettleIncomeRepository projectSettleIncomeRepository; + + @Autowired + private ProjectSettleService projectSettleService; + + @RequestMapping("/add") + public String add(@RequestParam("id") int id, Map<String, Object> model) { + Project project = projectService.getProject(id); + ProjectSettleIncome projectSettleIncome = projectSettleIncomeRepository.findNewByProjectId(id); + String time = projectSettleIncome.getTime(); + List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project); + model.put("project", project); + model.put("estimateBean", projectEstimateService.getEstimate(project)); + model.put("budgetBean", projectBudgetService.getBudget(project)); + model.put("settleBean",projectSettleService.getCurrentSettle(project, time)); + model.put("finalBean",new FinalBean()); + //现金表 + model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails)); + //freemarker可以利用的静态方法 + model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils")); + return "admin/project_final_add"; + } @RequestMapping("/edit") - public String budget(@RequestParam("id") int id, Map<String, Object> model) { + public String edit(@RequestParam("id") int id, Map<String, Object> model) { Project project = projectService.getProject(id); List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project); model.put("project", project); model.put("estimateBean", projectEstimateService.getEstimate(project)); model.put("budgetBean", projectBudgetService.getBudget(project)); model.put("settleBean",projectFinalSevice.getSettle(project)); - model.put("finalBean",new FinalBean()); + model.put("finalBean",projectFinalSevice.getFinal(project)); //现金表 model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails)); //freemarker可以利用的静态方法 @@ -54,7 +75,6 @@ public class ProjectFinalController extends BaseController{ @RequestMapping("/save") public String estimateAddSave(Project project, FinalBean finalBean, Map<String, Object> model) { projectFinalSevice.save(project,finalBean); - projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_UNCOMMIT); return "redirect:/project/list"; } @@ -69,12 +89,7 @@ public class ProjectFinalController extends BaseController{ */ @RequestMapping("/saveAndApprove") public String saveAndApprove(Project project, FinalBean finalBean, Map<String, Object> model) throws Exception{ - //保存 - projectFinalSevice.save(project,finalBean); - //更新项目和审批状态 - projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_PENDING); - //发起流程 - projectInstanceService.startFinalProcessInstance(project.getId(), InterfaceUtil.getAdmin()); + projectFinalSevice.saveAndApprove(project,finalBean); return "redirect:/project/list"; } diff --git a/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java b/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java index cb43d38..d6b97ba 100644 --- a/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java +++ b/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java @@ -2,6 +2,7 @@ package cn.palmte.work.service; import cn.palmte.work.bean.*; import cn.palmte.work.model.*; +import cn.palmte.work.utils.InterfaceUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -44,6 +45,12 @@ public class ProjectFinalSevice { @Autowired private ProjectSettleCashFlowRepository projectSettleCashFlowRepository; + @Autowired + private ProjectService projectService; + + @Autowired + private ProjectInstanceService projectInstanceService; + @Transactional public void save(Project project, FinalBean finalBean) { //预算表数据 @@ -66,6 +73,37 @@ public class ProjectFinalSevice { //保存项目结算现金流量信息 saveProjectFinalCashFlux(project,finalBean,cashFlowBean); + projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_UNCOMMIT); + + } + + @Transactional + public void saveAndApprove(Project project, FinalBean finalBean) throws Exception { + //预算表数据 + EstimateBean estimate = projectEstimateService.getEstimate(project); + //概算表数据 + BudgetBean budget = projectBudgetService.getBudget(project); + //现金流量表数据 + List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project); + CashFlowBean cashFlowBean = projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails); + + //保存项目决算收入信息 + saveProjectFinalIncome(project,finalBean,estimate,budget); + + //保存项目决算成本信息 + saveProjectFinalCost(project,finalBean,estimate,budget); + + //保存项目结算管理成本信息 + saveProjectFinalCostManage(project,finalBean,estimate,budget); + + //保存项目结算现金流量信息 + saveProjectFinalCashFlux(project,finalBean,cashFlowBean); + + //更新项目和审批状态 + projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_PENDING); + //发起流程 + projectInstanceService.startFinalProcessInstance(project.getId(), InterfaceUtil.getAdmin()); + } public void saveProjectFinalCostManage(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget){ diff --git a/src/main/resources/templates/admin/project_final_add.ftl b/src/main/resources/templates/admin/project_final_add.ftl new file mode 100644 index 0000000..dec8984 --- /dev/null +++ b/src/main/resources/templates/admin/project_final_add.ftl @@ -0,0 +1,394 @@ +<#assign base=request.contextPath /> + +<#import "../common/defaultLayout.ftl" as defaultLayout> +<@defaultLayout.layout> + +<style type="text/css"> + /**让所有的模态对话框都居中*/ + + .am-modal.am-modal-prompt.am-modal-active { + transform: translate(-50%, -50%) scale(1); + left: 50%; + top: 50%; + margin-left: 0; + margin-top: 0!important; + } + + select[readonly] option { + display: none; + } +</style> + +<div class="admin-content"> + <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>${project.name}</small></div> + </div> + +<form method="post" class="am-form" id="pmsForm" action="${base}/project/budgetEditSave"> + <!--选项卡(tabs)begin--> + <div class="am-tabs am-margin" data-am-tabs> + <ul class="am-tabs-nav am-nav am-nav-tabs"> + <li class="am-active"><a href="#tab1">项目决算表</a></li> + </ul> + <div class="am-tabs-bd"> + <div class="am-tab-panel am-fade am-in am-active" id="tab1"> + <input name="id" id="id" type="hidden" value="${project.id}" /> + <span class="am-text-lg">收入</span> + <table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;"> + <tbody> + <tr class="am-text-xl"> + <td>类别</td> + <td>费用</td> + <td>概算总额(元)</td> + <td>预算总额(元)</td> + <td>结算总额(元)</td> + <td>决算总额(元)</td> + </tr> + <tr> + <td>收入</td> + <td>设备类</td> + <td><input name="incomeDeviceTaxExclude" type="number" value="${Utils.format(estimateBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类概算总额"></td> + <td><input name="incomeDeviceTaxExclude" type="number" value="${Utils.format(budgetBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类结算总额"></td> + <td><input name="incomeDeviceFinalTotal" type="number" required title="设备类决算总额"></td> + </tr> + <tr> + <td>收入</td> + <td>工程类</td> + <td><input name="incomeEngineerTaxExclude" type="number" value="${Utils.format(estimateBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类概算总额"></td> + <td><input name="incomeEngineerTaxExclude" type="number" value="${Utils.format(budgetBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类结算总额"></td> + <td><input name="incomeEngineerFinalTotal" type="number" required title="工程类决算总额"></td> + </tr> + <tr> + <td>收入</td> + <td>服务类</td> + <td><input name="incomeServiceTaxExclude" type="number" value="${Utils.format(estimateBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类概算总额"></td> + <td><input name="incomeServiceTaxExclude" type="number" value="${Utils.format(budgetBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类结算总额"></td> + <td><input name="incomeServiceFinalTotal" type="number" required title="服务类决算总额"></td> + </tr> + <tr> + <td>合计</td> + <td></td> + <td><input name="estimateIncomeTotalTaxExclude" type="number" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td> + <td><input name="budgetIncomeTotalTaxExclude" type="number" value="${Utils.format(budgetBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td> + <td><input type="number" value="${Utils.format(settleBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td> + <td><input name="incomeFinalTotal" type="number" readonly required title="此列累计"></td> + </tr> + </tbody> + </table> + <span class="am-text-lg">成本</span> + <table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;"> + <tbody> + <tr class="am-text-xl"> + <td>类别</td> + <td>费用</td> + <td>费用项目</td> + <td>概算总额(元)</td> + <td>预算总额(元)</td> + <td>结算总额(元)</td> + <td>决算总额(元)</td> + </tr> + <tr> + <td>成本</td> + <td>采购成本</td> + <td>设备</td> + <td><input name="costPurchaseDeviceTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备概算总额"></td> + <td><input name="costPurchaseDeviceTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备结算总额"></td> + <td><input name="costPurchaseDeviceFinalTotal" type="number" required title="购买设备决算总额"></td> + </tr> + <tr> + <td>成本</td> + <td>采购成本</td> + <td>施工</td> + <td><input name="costPurchaseBuildTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本概算总额"></td> + <td><input name="costPurchaseBuildTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本结算总额"></td> + <td><input name="costPurchaseBuildFinalTotal" type="number" required title="施工采购成本决算总额"></td> + </tr> + <tr> + <td>成本</td> + <td>采购成本</td> + <td>服务</td> + <td><input name="costPurchaseServiceTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本概算总额"></td> + <td><input name="costPurchaseServiceTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本结算总额"></td> + <td><input name="costPurchaseServiceFinalTotal" type="number" required title="服务采购成本决算总额"></td> + </tr> + <tr> + <td>成本</td> + <td>采购成本</td> + <td>其他</td> + <td><input name="costPurchaseOtherTaxInclude" type="number" value="${Utils.format(estimateBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本概算总额"></td> + <td><input name="costPurchaseOtherTaxInclude" type="number" value="${Utils.format(budgetBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本预算总额"></td> + <td><input name="costPurchaseOtherSettleTotal" value="${Utils.format(settleBean.costPurchaseOtherTaxExclude,'0')}" type="number" readonly required title="其他采购成本结算总额"></td> + <td><input name="costPurchaseOtherFinalTotal" type="number" required title="其他采购成本决算总额"></td> + </tr> + <tr> + <td>成本</td> + <td>项目管理成本</td> + <td>项目管理成本</td> + <td><input name="costProjectManageTaxExclude" type="number" value="${Utils.format(estimateBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本概算总额"></td> + <td><input name="costProjectManageTaxExclude" type="number" value="${Utils.format(budgetBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本预算总额"></td> + <td><input name="costProjectManageSettleTotal" value="${Utils.format(settleBean.costProjectManageTaxExclude,'0')}" type="number" readonly required title="项目管理成本结算总额"></td> + <td><input name="costProjectManageFinalTotal" type="number" required title="项目管理成本决算总额"></td> + </tr> + <tr> + <td>成本</td> + <td>其他</td> + <td>其他</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> + <td><input name="costOtherFinalTotal" type="number" required title="其他成本决算总额"></td> + </tr> + <tr> + <td>合计</td> + <td></td> + <td></td> + <td><input name="incomeTotalTaxExclude" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td> + <td><input name="costTotalTaxExclude" value="${Utils.format(budgetBean.getCostTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td> + <td><input name="costSettleTotal" value="${Utils.format(settleBean.getCostTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td> + <td><input name="costFinalTotal" type="number" readonly required title="此列累计"></td> + </tr> + </tbody> + </table> + <span class="am-text-lg">管理</span> + <table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;"> + <tbody> + <tr class="am-text-xl"> + <td>类别</td> + <td>费用项目</td> + <td>概算总额(元)</td> + <td>预算总额(元)</td> + <td>结算总额(元)</td> + <td>决算总额(元)</td> + </tr> + <tr> + <td>财务费用</td> + <td>资金占用成本</td> + <td><input name="costExpropriationTaxExclude" type="number" value="${Utils.format(estimateBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本概算总额"></td> + <td><input name="costExpropriationTaxExclude" type="number" value="${Utils.format(budgetBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本结算总额"></td> + <td><input name="costExpropriationFinalTotal" type="number" required title="资金占用成本决算总额"></td> + </tr> + <tr> + <td>公司管理费用</td> + <td></td> + <td><input name="costCompanyManageTaxExclude" type="number" value="${Utils.format(estimateBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用概算总额"></td> + <td><input name="costCompanyManageTaxExclude" type="number" value="${Utils.format(budgetBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用结算总额"></td> + <td><input name="costCompanyManageFinalTotal" type="number" required title="公司管理费用决算总额"></td> + </tr> + <tr> + <td>所得税费用</td> + <td></td> + <td>/</td> + <td>/</td> + <td><input name="costIncomeTaxSettleTotal" value="${Utils.format(settleBean.costIncomeTax,'0')}" type="number" required readonly title="所得税费用结算总额"></td> + <td><input name="costIncomeTaxFinalTotal" type="number" required title="所得税费用决算总额"></td> + </tr> + <tr> + <td>合计</td> + <td></td> + <td><input name="manageEstimateTotal" value="${Utils.format(estimateBean.getCostManageExclude(),'0')}" type="number" readonly required title="此列累计"></td> + <td><input name="manageBudgetTotal" value="${Utils.format(budgetBean.getCostManageExclude(),'0')}" type="number" readonly required title="此列累计"></td> + <td><input name="manageSettleTotal" value="${Utils.format(settleBean.getCostManageTotal(),'0')}" type="number" readonly required title="此列累计"></td> + <td><input name="manageFinalTotal" type="number" readonly required title="此列累计"></td> + </tr> + </tbody> + </table> + + <span class="am-text-lg">利润率计算</span> + <table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;"> + <tbody> + <tr class="am-text-xl"> + <td>类别</td> + <td>概算总额(元)</td> + <td>预算总额(元)</td> + <td>结算总额(元)</td> + <td>决算总额(元)</td> + <td>利润率(%)</td> + </tr> + <tr> + <td>项目毛利</td> + <td><input name="projectGrossProfit" type="number" value="${Utils.format(estimateBean.getProjectGrossProfit(),'0')}" readonly required title="项目毛利概算总额"></td> + <td><input name="projectGrossProfit" type="number" value="${Utils.format(budgetBean.getProjectGrossProfit(),'0')}" readonly required title="项目毛利预算总额"></td> + <td><input name="grossProfitSettleTotal" type="number" value="${Utils.format(settleBean.grossProfit,'0')}" readonly required title="项目毛利结算总额"></td> + <td><input name="grossProfitFinalTotal" required type="number" title="项目毛利决算总额"></td> + <td><input name="grossProfitProfitMargin" type="number" required readonly title="项目毛利利润率"></td> + </tr> + <tr> + <td>项目贡献利润</td> + <td><input name="projectContributionProfit" type="number" value="${Utils.format(estimateBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润概算总额"></td> + <td><input name="projectContributionProfit" type="number" value="${Utils.format(budgetBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润预算总额"></td> + <td><input name="contributionMarginSettleTotal" type="number" value="${Utils.format(settleBean.contributionProfit,'0')}" readonly required title="项目贡献利润结算总额"></td> + <td><input name="contributionMarginFinalTotal" type="number" required title="项目贡献利润决算总额"></td> + <td><input name="contributionMarginProfitMargin" type="number" required readonly title="项目贡献利润利润率"></td> + </tr> + <tr> + <td>项目净利润</td> + <td>/</td> + <td><input name="netMarginBudgetTotal" type="number" value="${Utils.format(finalBean.netMarginBudgetTotal,'0')}" readonly required title="项目净利润预算总额"></td> + <td><input name="netMarginSettleTotal" type="number" value="${Utils.format(settleBean.netProfit,'0')}" readonly required title="项目净利润结算总额"></td> + <td><input name="netMarginFinalTotal" type="number" required title="项目净利润决算总额"></td> + <td><input name="netMarginProfitMargin" type="number" value="${Utils.format(finalBean.netMarginProfitMargin,'0')}" required readonly title="项目净利润利润率"></td> + </tr> + </tbody> + </table> + + <span class="am-text-lg">现金流量表</span> + <table class="am-table am-table-bordered am-table-radius table-main" style="padding:0;"> + <tbody> + <tr class="am-text-xl"> + <td>类别</td> + <td>预算总额(元)</td> + <td>结算总额(元)</td> + <td>决算总额(元)</td> + </tr> + <tr> + <td>销售商品、提供劳务收到的现金</td> + <td><input name="budgetSaleIncomeCash" type="number" value="${Utils.format(cashFlowBean.saleIncomeCash,'0')}" readonly required title="预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.saleIncomeCash,'0')}" readonly required title="结算总额"></td> + <td><input name="saleIncomeCash" type="number" required title="决算总额"></td> + </tr> + <tr> + <td>收到的税费返还</td> + <td>/</td> + <td><input type="number" value="${Utils.format(settleBean.taxReturn,'0')}" readonly required title="结算总额"></td> + <td><input name="taxReturn" type="number" required title="决算总额"></td> + </tr> + <tr> + <td>收到其他与经营活动有关的现金</td> + <td><input name="budgetEarnestMoneyIncome" type="number" value="${Utils.format(cashFlowBean.earnestMoneyIncome,'0')}" readonly required title="预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.earnestMoneyIncome,'0')}" readonly required title="结算总额"></td> + <td><input name="earnestMoneyIncome" type="number" required title="决算总额"></td> + </tr> + <tr> + <td>购买商品、接受劳务支付的现金</td> + <td><input name="budgetPurchaseCost" type="number" value="${Utils.format(cashFlowBean.purchaseCost,'0')}" readonly required title="预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.purchaseCost,'0')}" readonly required title="结算总额"></td> + <td><input name="purchaseCost" type="number" required title="决算总额"></td> + </tr> + <tr> + <td>支付的各项税费</td> + <td>/</td> + <td><input type="number" value="${Utils.format(settleBean.taxCost,'0')}" readonly required title="结算总额"></td> + <td><input name="taxCost" type="number" required title="决算总额"></td> + </tr> + <tr> + <td>支付其他与经营活动有关的现金</td> + <td><input name="budgetEarnestMoneyCost" type="number" value="${Utils.format(cashFlowBean.earnestMoneyCost,'0')}" readonly required title="预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.earnestMoneyCost,'0')}" readonly required title="结算总额"></td> + <td><input name="earnestMoneyCost" type="number" required title="决算总额"></td> + </tr> + <tr> + <td>经营活动产生的现金流量净额</td> + <td><input name="budgetNetCashFlow" type="number" value="${Utils.format(cashFlowBean.getNetCashFlow(),'0')}" readonly required title="预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.netCashFlow,'0')}" readonly required title="结算总额"></td> + <td><input name="netCashFlow" type="number" required title="决算总额"></td> + </tr> + <tr> + <td>投资活动现金流入</td> + <td>/</td> + <td><input type="number" value="${Utils.format(settleBean.cashInflowFromInvestingActivities,'0')}" readonly required title="结算总额"></td> + <td><input name="cashInflowFromInvestingActivities" type="number" required title="决算总额"></td> + </tr> + <tr> + <td>投资活动现金流出</td> + <td>/</td> + <td><input type="number" value="${Utils.format(settleBean.cashOutflowFromInvestingActivities,'0')}" readonly required title="结算总额"></td> + <td><input name="cashOutflowFromInvestingActivities" type="number" required title="决算总额"></td> + </tr> + <tr> + <td>投资活动产生的现金流量净额</td> + <td>/</td> + <td><input type="number" value="${Utils.format(settleBean.netCashFromInvestingActivities,'0')}" readonly required title="结算总额"></td> + <td><input name="netCashFromInvestingActivities" type="number" required title="决算总额"></td> + </tr> + <tr> + <td>融资资金流入</td> + <td><input name="budgetFinancingCapitalInflow" type="number" value="${Utils.format(cashFlowBean.financingCapitalInflow,'0')}" readonly required title="预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.financingCapitalInflow,'0')}" readonly required title="结算总额"></td> + <td><input name="financingCapitalInflow" type="number" required title="决算总额"></td> + </tr> + <tr> + <td>还款资金流出</td> + <td><input name="budgetFinancingCapitalOutflow" type="number" value="${Utils.format(cashFlowBean.financingCapitalOutflow,'0')}" readonly required title="预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.financingCapitalOutflow,'0')}" readonly required title="结算总额"></td> + <td><input name="financingCapitalOutflow" type="number" required title="决算总额"></td> + </tr> + <tr> + <td>筹资活动产生的现金流量净额</td> + <td><input name="budgetFinancingCapitalCashflow" type="number" value="${Utils.format(cashFlowBean.getFinancingCapitalCashflow(),'0')}" readonly required title="预算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.financingCapitalCashflow,'0')}" readonly required title="结算总额"></td> + <td><input name="financingCapitalCashflow" type="number" required title="决算总额"></td> + </tr> + <tr> + <td>货币资金净增加额</td> + <td><input name="budgetNetIncreaseMonetaryFunds" type="number" value="${Utils.format(cashFlowBean.getNetIncreaseMonetaryFunds(),'0')}" readonly required title="预算总额"></td> + <td><input name="type14SettleTotal" type="number" value="${Utils.format(settleBean.netIncreaseMonetaryFunds,'0')}" readonly required title="结算总额"></td> + <td><input name="netIncreaseMonetaryFunds" type="number" required title="决算总额"></td> + </tr> + <tr> + <td>合计</td> + <td><input name="cashFluxBudgetTotal" type="number" value="${Utils.format(cashFlowBean.getCashFluxTotal(),'0')}" readonly required title="此列累计"></td> + <td><input name="cashFluxSettleTotal" type="number" value="${Utils.format(settleBean.getCashFlowTotal(),'0')}" readonly required title="此列累计"></td> + <td><input name="cashFluxFinalTotal" type="number" readonly required title="此列累计"></td> + </tr> + </tbody> + </table> + </div> + <!--验证表单元素(validate end--> + </div> + </div> + + <!--选项卡(tabs)end--> + <div class="am-margin"> + <button type="button" class="am-btn am-btn-warning am-btn-xs" onclick="javascript:history.go(-1);">返回上一级</button> + <button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveFinal">保存</button> + <button type="submit" class="am-btn am-btn-primary am-btn-xs" id="saveApprove">提交审核</button> + </div> +</form> + +</div> +</div> +<script> + var base = "${base}"; +</script> +<script src="${base}/assets/js/project_common.js"></script> + <script src="${base}/assets/js/project_final.js"></script> +<script> + $(function () { + calculateFinal(); + $("#saveFinal").click(function () { + $("#pmsForm").attr("action","${base}/project/final/save"); + $("#pmsForm").submit(); + }); + + $("#saveApprove").click(function () { + $("#pmsForm").attr("action",base+"/project/final/saveAndApprove"); + $("#pmsForm").submit(); + }); + }); + +</script> +</@defaultLayout.layout> + + + + + + + + + + + + + + + diff --git a/src/main/resources/templates/admin/project_final_edit.ftl b/src/main/resources/templates/admin/project_final_edit.ftl index 4c397d5..796991a 100644 --- a/src/main/resources/templates/admin/project_final_edit.ftl +++ b/src/main/resources/templates/admin/project_final_edit.ftl @@ -50,7 +50,7 @@ <td>设备类</td> <td><input name="incomeDeviceTaxExclude" type="number" value="${Utils.format(estimateBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类概算总额"></td> <td><input name="incomeDeviceTaxExclude" type="number" value="${Utils.format(budgetBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类预算总额"></td> - <td><input type="number" value="${Utils.format(settleBean.incomeDevice,'0')}" required readonly title="设备类结算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.incomeDeviceTaxExclude,'0')}" required readonly title="设备类结算总额"></td> <td><input name="incomeDeviceFinalTotal" type="number" value="${Utils.format(finalBean.incomeDeviceFinalTotal,'0')}" required title="设备类决算总额"></td> </tr> <tr> @@ -58,7 +58,7 @@ <td>工程类</td> <td><input name="incomeEngineerTaxExclude" type="number" value="${Utils.format(estimateBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类概算总额"></td> <td><input name="incomeEngineerTaxExclude" type="number" value="${Utils.format(budgetBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类预算总额"></td> - <td><input type="number" value="${Utils.format(settleBean.incomeEngineer,'0')}" required readonly title="工程类结算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.incomeEngineerTaxExclude,'0')}" required readonly title="工程类结算总额"></td> <td><input name="incomeEngineerFinalTotal" type="number" value="${Utils.format(finalBean.incomeEngineerFinalTotal,'0')}" required title="工程类决算总额"></td> </tr> <tr> @@ -66,7 +66,7 @@ <td>服务类</td> <td><input name="incomeServiceTaxExclude" type="number" value="${Utils.format(estimateBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类概算总额"></td> <td><input name="incomeServiceTaxExclude" type="number" value="${Utils.format(budgetBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类预算总额"></td> - <td><input type="number" value="${Utils.format(settleBean.incomeService,'0')}" required readonly title="服务类结算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.incomeServiceTaxExclude,'0')}" required readonly title="服务类结算总额"></td> <td><input name="incomeServiceFinalTotal" type="number" value="${Utils.format(finalBean.incomeServiceFinalTotal,'0')}" required title="服务类决算总额"></td> </tr> <tr> @@ -74,8 +74,8 @@ <td></td> <td><input name="estimateIncomeTotalTaxExclude" type="number" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td> <td><input name="budgetIncomeTotalTaxExclude" type="number" value="${Utils.format(budgetBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td> - <td><input type="number" value="${Utils.format(settleBean.incomeTotal,'0')}" readonly required title="此列累计"></td> - <td><input name="incomeFinalTotal" type="number" readonly required title="此列累计"></td> + <td><input type="number" value="${Utils.format(settleBean.getIncomeTotalTaxExclude(),'0')}" readonly required title="此列累计"></td> + <td><input name="incomeFinalTotal" type="number" value="${Utils.format(finalBean.getIncomeTotal(),'0')}" readonly required title="此列累计"></td> </tr> </tbody> </table> @@ -97,7 +97,7 @@ <td>设备</td> <td><input name="costPurchaseDeviceTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备概算总额"></td> <td><input name="costPurchaseDeviceTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备预算总额"></td> - <td><input type="number" value="${Utils.format(settleBean.costPurchaseDevice,'0')}" readonly required title="购买设备结算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.costPurchaseDeviceTaxExclude,'0')}" readonly required title="购买设备结算总额"></td> <td><input name="costPurchaseDeviceFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseDeviceFinalTotal,'0')}" required title="购买设备决算总额"></td> </tr> <tr> @@ -106,7 +106,7 @@ <td>施工</td> <td><input name="costPurchaseBuildTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本概算总额"></td> <td><input name="costPurchaseBuildTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本预算总额"></td> - <td><input type="number" value="${Utils.format(settleBean.costPurchaseBuild,'0')}" readonly required title="施工采购成本结算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.costPurchaseBuildTaxExclude,'0')}" readonly required title="施工采购成本结算总额"></td> <td><input name="costPurchaseBuildFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseBuildFinalTotal,'0')}" required title="施工采购成本决算总额"></td> </tr> <tr> @@ -115,7 +115,7 @@ <td>服务</td> <td><input name="costPurchaseServiceTaxExclude" type="number" value="${Utils.format(estimateBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本概算总额"></td> <td><input name="costPurchaseServiceTaxExclude" type="number" value="${Utils.format(budgetBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本预算总额"></td> - <td><input type="number" value="${Utils.format(settleBean.costPurchaseService,'0')}" readonly required title="服务采购成本结算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.costPurchaseServiceTaxExclude,'0')}" readonly required title="服务采购成本结算总额"></td> <td><input name="costPurchaseServiceFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseServiceFinalTotal,'0')}" required title="服务采购成本决算总额"></td> </tr> <tr> @@ -124,7 +124,7 @@ <td>其他</td> <td><input name="costPurchaseOtherTaxInclude" type="number" value="${Utils.format(estimateBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本概算总额"></td> <td><input name="costPurchaseOtherTaxInclude" type="number" value="${Utils.format(budgetBean.costPurchaseOtherTaxInclude,'0')}" readonly required title="其他采购成本预算总额"></td> - <td><input name="costPurchaseOtherSettleTotal" value="${Utils.format(settleBean.costPurchaseOther,'0')}" type="number" readonly required title="其他采购成本结算总额"></td> + <td><input name="costPurchaseOtherSettleTotal" value="${Utils.format(settleBean.costPurchaseOtherTaxExclude,'0')}" type="number" readonly required title="其他采购成本结算总额"></td> <td><input name="costPurchaseOtherFinalTotal" type="number" value="${Utils.format(finalBean.costPurchaseOtherFinalTotal,'0')}" required title="其他采购成本决算总额"></td> </tr> <tr> @@ -133,7 +133,7 @@ <td>项目管理成本</td> <td><input name="costProjectManageTaxExclude" type="number" value="${Utils.format(estimateBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本概算总额"></td> <td><input name="costProjectManageTaxExclude" type="number" value="${Utils.format(budgetBean.costProjectManageTaxExclude,'0')}" readonly required title="项目管理成本预算总额"></td> - <td><input name="costProjectManageSettleTotal" value="${Utils.format(settleBean.costProjectManage,'0')}" type="number" readonly required title="项目管理成本结算总额"></td> + <td><input name="costProjectManageSettleTotal" value="${Utils.format(settleBean.costProjectManageTaxExclude,'0')}" type="number" readonly required title="项目管理成本结算总额"></td> <td><input name="costProjectManageFinalTotal" type="number" value="${Utils.format(finalBean.costProjectManageFinalTotal,'0')}" required title="项目管理成本决算总额"></td> </tr> <tr> @@ -142,7 +142,7 @@ <td>其他</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.costOther,'0')}" type="number" type="number"readonly required title="其他成本结算总额"></td> + <td><input name="costOtherSettleTotal" value="${Utils.format(settleBean.costOtherOtherTaxExclude,'0')}" type="number" type="number"readonly required title="其他成本结算总额"></td> <td><input name="costOtherFinalTotal" type="number" value="${Utils.format(finalBean.costOtherFinalTotal,'0')}" required title="其他成本决算总额"></td> </tr> <tr> @@ -151,8 +151,8 @@ <td></td> <td><input name="incomeTotalTaxExclude" value="${Utils.format(estimateBean.getIncomeTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td> <td><input name="costTotalTaxExclude" value="${Utils.format(budgetBean.getCostTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td> - <td><input name="costSettleTotal" value="${Utils.format(settleBean.costTotal,'0')}" type="number" readonly required title="此列累计"></td> - <td><input name="costFinalTotal" type="number" readonly required title="此列累计"></td> + <td><input name="costSettleTotal" value="${Utils.format(settleBean.getCostTotalTaxExclude(),'0')}" type="number" readonly required title="此列累计"></td> + <td><input name="costFinalTotal" type="number" value="${Utils.format(finalBean.getCostTotal(),'0')}" readonly required title="此列累计"></td> </tr> </tbody> </table> @@ -172,7 +172,7 @@ <td>资金占用成本</td> <td><input name="costExpropriationTaxExclude" type="number" value="${Utils.format(estimateBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本概算总额"></td> <td><input name="costExpropriationTaxExclude" type="number" value="${Utils.format(budgetBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本预算总额"></td> - <td><input type="number" value="${Utils.format(settleBean.costExpropriation,'0')}" required readonly title="资金占用成本结算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.costExpropriationTaxExclude,'0')}" required readonly title="资金占用成本结算总额"></td> <td><input name="costExpropriationFinalTotal" type="number" value="${Utils.format(finalBean.costExpropriationFinalTotal,'0')}" required title="资金占用成本决算总额"></td> </tr> <tr> @@ -180,7 +180,7 @@ <td></td> <td><input name="costCompanyManageTaxExclude" type="number" value="${Utils.format(estimateBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用概算总额"></td> <td><input name="costCompanyManageTaxExclude" type="number" value="${Utils.format(budgetBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用预算总额"></td> - <td><input type="number" value="${Utils.format(settleBean.costCompanyManage,'0')}" required readonly title="公司管理费用结算总额"></td> + <td><input type="number" value="${Utils.format(settleBean.costCompanyManageTaxExclude,'0')}" required readonly title="公司管理费用结算总额"></td> <td><input name="costCompanyManageFinalTotal" type="number" value="${Utils.format(finalBean.costCompanyManageFinalTotal,'0')}" required title="公司管理费用决算总额"></td> </tr> <tr> @@ -194,10 +194,10 @@ <tr> <td>合计</td> <td></td> - <td><input name="manageEstimateTotal" type="number" readonly required title="此列累计"></td> - <td><input name="manageBudgetTotal" type="number" readonly required title="此列累计"></td> + <td><input name="manageEstimateTotal" value="${Utils.format(estimateBean.getCostManageExclude(),'0')}" type="number" readonly required title="此列累计"></td> + <td><input name="manageBudgetTotal" value="${Utils.format(budgetBean.getCostManageExclude(),'0')}" type="number" readonly required title="此列累计"></td> <td><input name="manageSettleTotal" value="${Utils.format(settleBean.getCostManageTotal(),'0')}" type="number" readonly required title="此列累计"></td> - <td><input name="manageFinalTotal" type="number" readonly required title="此列累计"></td> + <td><input name="manageFinalTotal" type="number" value="${Utils.format(finalBean.getCostManageTotal(),'0')}" readonly required title="此列累计"></td> </tr> </tbody> </table> @@ -225,7 +225,7 @@ <td>项目贡献利润</td> <td><input name="projectContributionProfit" type="number" value="${Utils.format(estimateBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润概算总额"></td> <td><input name="projectContributionProfit" type="number" value="${Utils.format(budgetBean.getProjectContributionProfit(),'0')}" readonly required title="项目贡献利润预算总额"></td> - <td><input name="contributionMarginSettleTotal" type="number" value="${Utils.format(finalBean.contributionMarginSettleTotal,'0')}" readonly required title="项目贡献利润结算总额"></td> + <td><input name="contributionMarginSettleTotal" type="number" value="${Utils.format(settleBean.contributionProfit,'0')}" readonly required title="项目贡献利润结算总额"></td> <td><input name="contributionMarginFinalTotal" type="number" value="${Utils.format(finalBean.contributionMarginFinalTotal,'0')}" required title="项目贡献利润决算总额"></td> <td><input name="contributionMarginProfitMargin" type="number" value="${Utils.format(finalBean.contributionMarginProfitMargin,'0')}" required readonly title="项目贡献利润利润率"></td> </tr> @@ -233,7 +233,7 @@ <td>项目净利润</td> <td>/</td> <td><input name="netMarginBudgetTotal" type="number" value="${Utils.format(finalBean.netMarginBudgetTotal,'0')}" readonly required title="项目净利润预算总额"></td> - <td><input name="netMarginSettleTotal" type="number" value="${Utils.format(finalBean.netMarginSettleTotal,'0')}" readonly required title="项目净利润结算总额"></td> + <td><input name="netMarginSettleTotal" type="number" value="${Utils.format(settleBean.netProfit,'0')}" readonly required title="项目净利润结算总额"></td> <td><input name="netMarginFinalTotal" type="number" value="${Utils.format(finalBean.netMarginFinalTotal,'0')}" required title="项目净利润决算总额"></td> <td><input name="netMarginProfitMargin" type="number" value="${Utils.format(finalBean.netMarginProfitMargin,'0')}" required readonly title="项目净利润利润率"></td> </tr> @@ -335,9 +335,9 @@ </tr> <tr> <td>合计</td> - <td><input name="cashFluxBudgetTotal" type="number" readonly required title="此列累计"></td> + <td><input name="cashFluxBudgetTotal" type="number" value="${Utils.format(cashFlowBean.getCashFluxTotal(),'0')}" readonly required title="此列累计"></td> <td><input name="cashFluxSettleTotal" type="number" value="${Utils.format(settleBean.getCashFlowTotal(),'0')}" readonly required title="此列累计"></td> - <td><input name="cashFluxFinalTotal" type="number" readonly required title="此列累计"></td> + <td><input name="cashFluxFinalTotal" type="number" value="${Utils.format(finalBean.getCashFluxTotal(),'0')}" readonly required title="此列累计"></td> </tr> </tbody> </table> diff --git a/src/main/resources/templates/admin/project_list.ftl b/src/main/resources/templates/admin/project_list.ftl index 4f63189..92c0ec2 100644 --- a/src/main/resources/templates/admin/project_list.ftl +++ b/src/main/resources/templates/admin/project_list.ftl @@ -243,11 +243,17 @@ <#if (list.status== 10 && list.approveStatusSettle== 2) || (list.status== 15 && list.approveStatusFinal== 0) || (list.status== 15 && list.approveStatusFinal== 3)> <button type="button" class="am-btn am-btn-default am-btn-xs am-text-secondary" - onclick="location.href='${base}/project/final/edit?id=${list.id}'"><span + onclick="location.href='${base}/project/final/add?id=${list.id}'"><span class="am-icon-pencil-square-o"></span>发起决算 </button> </#if> + <button type="button" + class="am-btn am-btn-default am-btn-xs am-text-secondary" + onclick="location.href='${base}/project/final/edit?id=${list.id}'"><span + class="am-icon-pencil-square-o"></span>编辑决算 + </button> + <button type="button" class="am-btn am-btn-default am-btn-xs am-text-secondary" onclick="location.href='${base}/project/detail?id=${list.id}'"><span