From 3e5122039e45639fdbd2b9a7f30340542ab62f82 Mon Sep 17 00:00:00 2001 From: xxssyyyyssxx Date: Thu, 18 Nov 2021 15:14:44 +0800 Subject: [PATCH 1/2] data-am-validator --- .../templates/admin/project_budget_edit.ftl | 2 +- .../templates/admin/project_estimate_add.ftl | 618 +++++++++--------- .../templates/admin/project_estimate_edit.ftl | 2 +- 3 files changed, 311 insertions(+), 311 deletions(-) diff --git a/src/main/resources/templates/admin/project_budget_edit.ftl b/src/main/resources/templates/admin/project_budget_edit.ftl index d1eb7d2..e387f17 100644 --- a/src/main/resources/templates/admin/project_budget_edit.ftl +++ b/src/main/resources/templates/admin/project_budget_edit.ftl @@ -25,7 +25,7 @@
项目预算表 / ${project.name}
-
+
    diff --git a/src/main/resources/templates/admin/project_estimate_add.ftl b/src/main/resources/templates/admin/project_estimate_add.ftl index 40f50ad..be7cf08 100644 --- a/src/main/resources/templates/admin/project_estimate_add.ftl +++ b/src/main/resources/templates/admin/project_estimate_add.ftl @@ -8,327 +8,327 @@
    项目概算表
- - -
- -
-
- <#----> - + + +
+ +
+
+ <#----> + -
-
*部门名称
-
- ${dept.name} -
-
-
- -
-
*项目计划开始时间
-
-
- - +
+
*部门名称
+
+ ${dept.name} +
+
-
-
-
-
-
*项目计划结束时间
-
-
- - + +
+
*项目计划开始时间
+
+
+ + +
+
+
+
+
+
*项目计划结束时间
+
+
+ + +
+
+
-
-
-
-
-
*项目名称
-
- -
-
-
+
+
*项目名称
+
+ +
+
+
-
-
*项目类型
-
- -
-
-
-
-
*垫资模式
-
- -
-
-
+
+
*项目类型
+
+ +
+
+
+
+
*垫资模式
+
+ +
+
+
-
-
*客户名称
-
- -
-
-
-
-
*终端客户名称
-
- -
-
-
-
-
*垫资利息
-
- -
-
-
-
-
*垫资峰值
-
- -
-
-
-
-
*合同金额
-
- -
-
-
-
-
*行业场景应用
-
- -
-
-
-
-
*华智产品金额
-
- -
-
-
-
-
*紫光其他产品金额
-
- -
-
-
-
-
*主合同收款条款
-
- -
-
-
+
+
*客户名称
+
+ +
+
+
+
+
*终端客户名称
+
+ +
+
+
+
+
*垫资利息
+
+ +
+
+
+
+
*垫资峰值
+
+ +
+
+
+
+
*合同金额
+
+ +
+
+
+
+
*行业场景应用
+
+ +
+
+
+
+
*华智产品金额
+
+ +
+
+
+
+
*紫光其他产品金额
+
+ +
+
+
+
+
*主合同收款条款
+
+ +
+
+
+
+ +
+
+
+ 收入 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用含税金额(元)不含税金额(元)
收入设备类
收入工程类
收入服务类
合计
+ 成本 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
类别费用费用项目含税金额(元)不含税金额(元)
成本采购成本设备
成本采购成本施工
成本采购成本服务
成本采购成本其他
成本项目管理成本项目管理成本
成本其他其他
合计
+ 管理 + + + + + + + + + + + + + + + + + + +
类别费用项目不含税金额(元)
财务费用资金占用成本
公司管理费用
+ + 利润率计算 + + + + + + + + + + + + + + + + + + +
类别不含税金额(元)利润率(%)
项目毛利
项目贡献利润率
+
+ +
- -
-
-
- 收入 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
类别费用含税金额(元)不含税金额(元)
收入设备类
收入工程类
收入服务类
合计
- 成本 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
类别费用费用项目含税金额(元)不含税金额(元)
成本采购成本设备
成本采购成本施工
成本采购成本服务
成本采购成本其他
成本项目管理成本项目管理成本
成本其他其他
合计
- 管理 - - - - - - - - - - - - - - - - - - -
类别费用项目不含税金额(元)
财务费用资金占用成本
公司管理费用
- - 利润率计算 - - - - - - - - - - - - - - - - - - -
类别不含税金额(元)利润率(%)
项目毛利
项目贡献利润率
- -
-
-
- -
- - - -
- + +
+ + + +
+ -
+
diff --git a/src/main/resources/templates/admin/project_estimate_edit.ftl b/src/main/resources/templates/admin/project_estimate_edit.ftl index 4c6fdc9..f1a5baf 100644 --- a/src/main/resources/templates/admin/project_estimate_edit.ftl +++ b/src/main/resources/templates/admin/project_estimate_edit.ftl @@ -8,7 +8,7 @@
项目概算表 / ${project.name}
-
+
    From f1324ba317e7fa1bb19e226d4a9c0245f7b3d6f4 Mon Sep 17 00:00:00 2001 From: hanbo <2608504783@qq.com> Date: Thu, 18 Nov 2021 15:19:13 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=86=B3=E7=AE=97=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/palmte/work/bean/CashFlowBean.java | 32 ++ .../cn/palmte/work/bean/IncomeCostBean.java | 52 ++- .../backend/ProjectFinalController.java | 39 +- .../work/service/ProjectFinalSevice.java | 38 ++ .../templates/admin/project_final_add.ftl | 394 ++++++++++++++++++ .../templates/admin/project_final_edit.ftl | 44 +- .../templates/admin/project_list.ftl | 8 +- 7 files changed, 555 insertions(+), 52 deletions(-) create mode 100644 src/main/resources/templates/admin/project_final_add.ftl 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 model) { + Project project = projectService.getProject(id); + ProjectSettleIncome projectSettleIncome = projectSettleIncomeRepository.findNewByProjectId(id); + String time = projectSettleIncome.getTime(); + List 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 model) { + public String edit(@RequestParam("id") int id, Map model) { Project project = projectService.getProject(id); List 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 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 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 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> + + + +
    +
    +
    +
    项目决算表 / ${project.name}
    +
    + + + +
    + +
    +
    + + 收入 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    类别费用概算总额(元)预算总额(元)结算总额(元)决算总额(元)
    收入设备类
    收入工程类
    收入服务类
    合计
    + 成本 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    类别费用费用项目概算总额(元)预算总额(元)结算总额(元)决算总额(元)
    成本采购成本设备
    成本采购成本施工
    成本采购成本服务
    成本采购成本其他
    成本项目管理成本项目管理成本
    成本其他其他
    合计
    + 管理 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    类别费用项目概算总额(元)预算总额(元)结算总额(元)决算总额(元)
    财务费用资金占用成本
    公司管理费用
    所得税费用//
    合计
    + + 利润率计算 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    类别概算总额(元)预算总额(元)结算总额(元)决算总额(元)利润率(%)
    项目毛利
    项目贡献利润
    项目净利润/
    + + 现金流量表 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    类别预算总额(元)结算总额(元)决算总额(元)
    销售商品、提供劳务收到的现金
    收到的税费返还/
    收到其他与经营活动有关的现金
    购买商品、接受劳务支付的现金
    支付的各项税费/
    支付其他与经营活动有关的现金
    经营活动产生的现金流量净额
    投资活动现金流入/
    投资活动现金流出/
    投资活动产生的现金流量净额/
    融资资金流入
    还款资金流出
    筹资活动产生的现金流量净额
    货币资金净增加额
    合计
    +
    + +
    +
    + + +
    + + + +
    + + +
    +
    + + + + + + + + + + + + + + + + + + + + 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 @@ 设备类 - + @@ -58,7 +58,7 @@ 工程类 - + @@ -66,7 +66,7 @@ 服务类 - + @@ -74,8 +74,8 @@ - - + + @@ -97,7 +97,7 @@ 设备 - + @@ -106,7 +106,7 @@ 施工 - + @@ -115,7 +115,7 @@ 服务 - + @@ -124,7 +124,7 @@ 其他 - + @@ -133,7 +133,7 @@ 项目管理成本 - + @@ -142,7 +142,7 @@ 其他 - + @@ -151,8 +151,8 @@ - - + + @@ -172,7 +172,7 @@ 资金占用成本 - + @@ -180,7 +180,7 @@ - + @@ -194,10 +194,10 @@ 合计 - - + + - + @@ -225,7 +225,7 @@ 项目贡献利润 - + @@ -233,7 +233,7 @@ 项目净利润 / - + @@ -335,9 +335,9 @@ 合计 - + - + 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)> + +