From 3a15edaff7c29380fae0d8b542e0f956ffa24367 Mon Sep 17 00:00:00 2001 From: hanbo <2608504783@qq.com> Date: Thu, 25 Nov 2021 11:00:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E9=A1=B5=E9=9D=A2=E7=A9=BA?= =?UTF-8?q?=E5=80=BC=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/palmte/work/bean/FinalBean.java | 25 ++++++++ .../java/cn/palmte/work/bean/FormerBean.java | 61 +++++++++++++++++++ .../controller/backend/ProjectController.java | 27 +++++--- .../templates/admin/project_approve.ftl | 6 +- .../templates/admin/project_list_approve.ftl | 8 +-- 5 files changed, 113 insertions(+), 14 deletions(-) diff --git a/src/main/java/cn/palmte/work/bean/FinalBean.java b/src/main/java/cn/palmte/work/bean/FinalBean.java index 7107297..6dc8338 100644 --- a/src/main/java/cn/palmte/work/bean/FinalBean.java +++ b/src/main/java/cn/palmte/work/bean/FinalBean.java @@ -137,6 +137,10 @@ public class FinalBean { BigDecimal incomeTotal = getIncomeTotal(); BigDecimal costTotal = getCostTotal(); BigDecimal costExpropriationFinalTotal = getCostExpropriationFinalTotal(); + + if (null == incomeTotal || null == costTotal || null == costExpropriationFinalTotal) { + return null; + } return incomeTotal.subtract(costTotal).subtract(costExpropriationFinalTotal); } @@ -165,6 +169,10 @@ public class FinalBean { public BigDecimal getContributionMarginFinalTotal() { BigDecimal grossProfitFinalTotal = getGrossProfitFinalTotal(); BigDecimal costCompanyManageFinalTotal = getCostCompanyManageFinalTotal(); + + if (null == grossProfitFinalTotal || null == costCompanyManageFinalTotal) { + return null; + } return grossProfitFinalTotal.subtract(costCompanyManageFinalTotal); } @@ -193,6 +201,9 @@ public class FinalBean { public BigDecimal getNetMarginFinalTotal() { BigDecimal contributionMarginFinalTotal = getContributionMarginFinalTotal(); BigDecimal costIncomeTaxFinalTotal = getCostIncomeTaxFinalTotal(); + if (null == contributionMarginFinalTotal || null == costIncomeTaxFinalTotal) { + return null; + } return contributionMarginFinalTotal.subtract(costIncomeTaxFinalTotal); } @@ -254,6 +265,11 @@ public class FinalBean { BigDecimal taxCost = getTaxCost(); BigDecimal earnestMoneyCost = getEarnestMoneyCost(); + if (null == saleIncomeCash || null == taxReturn || null == earnestMoneyIncome || + null == purchaseCost || null == taxCost || null == earnestMoneyCost) { + return null; + } + return saleIncomeCash .add(taxReturn) .add(earnestMoneyIncome) @@ -295,6 +311,10 @@ public class FinalBean { public BigDecimal getFinancingCapitalCashflow() { BigDecimal financingCapitalInflow = getFinancingCapitalInflow(); BigDecimal financingCapitalOutflow = getFinancingCapitalOutflow(); + + if (null == financingCapitalInflow || null == financingCapitalOutflow) { + return null; + } return financingCapitalInflow.subtract(financingCapitalOutflow); } @@ -312,6 +332,10 @@ public class FinalBean { BigDecimal netCashFlow = getNetCashFlow(); BigDecimal netCashFromInvestingActivities = getNetCashFromInvestingActivities(); BigDecimal financingCapitalCashflow = getFinancingCapitalCashflow(); + + if (null == netCashFlow || null == netCashFromInvestingActivities || null == financingCapitalCashflow) { + return null; + } return netCashFlow .add(netCashFromInvestingActivities) .add(financingCapitalCashflow); @@ -323,6 +347,7 @@ public class FinalBean { /** * 获取所有现金流量决算总额 + * * @return */ public BigDecimal getCashFluxTotal() { diff --git a/src/main/java/cn/palmte/work/bean/FormerBean.java b/src/main/java/cn/palmte/work/bean/FormerBean.java index b491c83..1c1d7e6 100644 --- a/src/main/java/cn/palmte/work/bean/FormerBean.java +++ b/src/main/java/cn/palmte/work/bean/FormerBean.java @@ -101,6 +101,67 @@ public class FormerBean extends IncomeCostBean{ */ private BigDecimal cashFlowTotal; + /** + * 项目毛利利润率 + */ + private BigDecimal grossProfitProfitMargin; + + public BigDecimal getGrossProfitProfitMargin() { + // 100 * grossProfit() / getIncomeTotalTaxExclude() + BigDecimal grossProfit = getGrossProfit(); + BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude(); + + if (null == grossProfit || null == incomeTotalTaxExclude) { + return handleSpecial(null); + } + return grossProfit.divide(incomeTotalTaxExclude).multiply(new BigDecimal(100)); + } + + public void setGrossProfitProfitMargin(BigDecimal grossProfitProfitMargin) { + this.grossProfitProfitMargin = grossProfitProfitMargin; + } + + /** + *项目贡献利润利润率 + */ + private BigDecimal contributionProfitProfitMargin; + + public BigDecimal getContributionProfitProfitMargin() { + //100 * contributionProfit() / getIncomeTotalTaxExclude() + BigDecimal contributionProfit = getContributionProfit(); + BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude(); + + if (null == contributionProfit || null == incomeTotalTaxExclude) { + return handleSpecial(null); + } + return contributionProfit.divide(incomeTotalTaxExclude).multiply(new BigDecimal(100)); + + } + + public void setContributionProfitProfitMargin(BigDecimal contributionProfitProfitMargin) { + this.contributionProfitProfitMargin = contributionProfitProfitMargin; + } + + /** + * 项目净利润利润率 + */ + private BigDecimal netProfitProfitMargin; + + public BigDecimal getNetProfitProfitMargin() { + //100 * netProfit() / getIncomeTotalTaxExclude() + BigDecimal netProfit = getNetProfit(); + BigDecimal incomeTotalTaxExclude = getIncomeTotalTaxExclude(); + + if (null == netProfit || null == incomeTotalTaxExclude) { + return handleSpecial(null); + } + return netProfit.divide(incomeTotalTaxExclude).multiply(new BigDecimal(100)); + } + + public void setNetProfitProfitMargin(BigDecimal netProfitProfitMargin) { + this.netProfitProfitMargin = netProfitProfitMargin; + } + public BigDecimal getCostIncomeTax() { return costIncomeTax; } diff --git a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java index 3b9335a..fa06847 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java @@ -337,17 +337,18 @@ public class ProjectController extends BaseController { public String approve(@RequestParam("id") int id, @RequestParam String listFrom, Map model) { String time = "2021-11"; Project project = projectService.getProject(id); - EstimateBean estimateBean = projectEstimateService.getEstimate(project); - model.put("estimateBean", estimateBean); + + //项目信息 model.put("adminId", InterfaceUtil.getAdminId()); model.put("project", project); - model.put("formerBean", projectSettleService.getFormerSettle(project, time)); - model.put("monthBean", projectSettleService.getMonthSettle(project, time)); - model.put("currentBean", projectSettleService.getCurrentSettle(project, time)); - model.put("time", time); model.put("listFrom", listFrom); + + //概算信息 + EstimateBean estimateBean = projectEstimateService.getEstimate(project); + model.put("estimateBean", estimateBean); + + //预算信息 BudgetBean budgetBean = projectBudgetService.getBudget(project); - //预算主页面数据 model.put("budgetBean", budgetBean); //收入明细 model.put("incomeDetails", projectBudgetService.getBudgetIncomeDetail(project)); @@ -364,11 +365,23 @@ public class ProjectController extends BaseController { model.put("underwrittenPlanStatistic", projectBudgetService.getProjectUnderwrittenPlanStatisticBean(projectBudgetPlanDetails)); //现金表 model.put("cashFlowBean", projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails)); + + //结算信息 + model.put("formerBean", projectSettleService.getFormerSettle(project, time)); + model.put("monthBean", projectSettleService.getMonthSettle(project, time)); + model.put("currentBean", projectSettleService.getCurrentSettle(project, time)); + model.put("time", time); + + //决算信息 model.put("finalBean", projectFinalSevice.getFinal(project)); + //freemarker可以利用的静态方法 model.put("Utils", FreeMarkerUtil.fromStaticPackage("cn.palmte.work.utils.Utils")); + + //审核记录 List list = projectTaskRecordService.list(id); model.put("taskRecords", list); + return "admin/project_approve"; } diff --git a/src/main/resources/templates/admin/project_approve.ftl b/src/main/resources/templates/admin/project_approve.ftl index 449d65b..0bd9498 100644 --- a/src/main/resources/templates/admin/project_approve.ftl +++ b/src/main/resources/templates/admin/project_approve.ftl @@ -854,7 +854,7 @@ - + 项目贡献利润 @@ -863,7 +863,7 @@ - + 项目净利润 @@ -872,7 +872,7 @@ - + diff --git a/src/main/resources/templates/admin/project_list_approve.ftl b/src/main/resources/templates/admin/project_list_approve.ftl index 6659bcd..7368019 100644 --- a/src/main/resources/templates/admin/project_list_approve.ftl +++ b/src/main/resources/templates/admin/project_list_approve.ftl @@ -181,7 +181,7 @@ <#list pager.list as list> ${list.id!} - ${list.name!} + ${list.name!} ${list.typeDesc!} ${list.statusDesc!} ${list.approveStatusDesc!} @@ -193,15 +193,15 @@
- + -->