diff --git a/src/main/java/cn/palmte/work/bean/FinalBean.java b/src/main/java/cn/palmte/work/bean/FinalBean.java index 1f25154..7107297 100644 --- a/src/main/java/cn/palmte/work/bean/FinalBean.java +++ b/src/main/java/cn/palmte/work/bean/FinalBean.java @@ -133,31 +133,86 @@ public class FinalBean { */ private BigDecimal grossProfitFinalTotal; + public BigDecimal getGrossProfitFinalTotal() { + BigDecimal incomeTotal = getIncomeTotal(); + BigDecimal costTotal = getCostTotal(); + BigDecimal costExpropriationFinalTotal = getCostExpropriationFinalTotal(); + return incomeTotal.subtract(costTotal).subtract(costExpropriationFinalTotal); + } + + public void setGrossProfitFinalTotal(BigDecimal grossProfitFinalTotal) { + this.grossProfitFinalTotal = grossProfitFinalTotal; + } + /** * 项目毛利利润率 */ private BigDecimal grossProfitProfitMargin; + public BigDecimal getGrossProfitProfitMargin() { + return grossProfitProfitMargin; + } + + public void setGrossProfitProfitMargin(BigDecimal grossProfitProfitMargin) { + this.grossProfitProfitMargin = grossProfitProfitMargin; + } + /** * 项目贡献利润决算总额 */ private BigDecimal contributionMarginFinalTotal; + public BigDecimal getContributionMarginFinalTotal() { + BigDecimal grossProfitFinalTotal = getGrossProfitFinalTotal(); + BigDecimal costCompanyManageFinalTotal = getCostCompanyManageFinalTotal(); + return grossProfitFinalTotal.subtract(costCompanyManageFinalTotal); + } + + public void setContributionMarginFinalTotal(BigDecimal contributionMarginFinalTotal) { + this.contributionMarginFinalTotal = contributionMarginFinalTotal; + } + /** * 项目贡献利润利润率 */ private BigDecimal contributionMarginProfitMargin; + public BigDecimal getContributionMarginProfitMargin() { + return contributionMarginProfitMargin; + } + + public void setContributionMarginProfitMargin(BigDecimal contributionMarginProfitMargin) { + this.contributionMarginProfitMargin = contributionMarginProfitMargin; + } + /** * 项目净利润决算总额 */ private BigDecimal netMarginFinalTotal; + public BigDecimal getNetMarginFinalTotal() { + BigDecimal contributionMarginFinalTotal = getContributionMarginFinalTotal(); + BigDecimal costIncomeTaxFinalTotal = getCostIncomeTaxFinalTotal(); + return contributionMarginFinalTotal.subtract(costIncomeTaxFinalTotal); + } + + public void setNetMarginFinalTotal(BigDecimal netMarginFinalTotal) { + this.netMarginFinalTotal = netMarginFinalTotal; + } + /** * 项目净利润利润率 */ private BigDecimal netMarginProfitMargin; + public BigDecimal getNetMarginProfitMargin() { + return netMarginProfitMargin; + } + + public void setNetMarginProfitMargin(BigDecimal netMarginProfitMargin) { + this.netMarginProfitMargin = netMarginProfitMargin; + } + //========================结算现金流量表================================ /** @@ -189,6 +244,28 @@ public class FinalBean { * g=a+c+b-d-f-e */ private BigDecimal netCashFlow; + + public BigDecimal getNetCashFlow() { + + BigDecimal saleIncomeCash = getSaleIncomeCash(); + BigDecimal taxReturn = getTaxReturn(); + BigDecimal earnestMoneyIncome = getEarnestMoneyIncome(); + BigDecimal purchaseCost = getPurchaseCost(); + BigDecimal taxCost = getTaxCost(); + BigDecimal earnestMoneyCost = getEarnestMoneyCost(); + + return saleIncomeCash + .add(taxReturn) + .add(earnestMoneyIncome) + .subtract(purchaseCost) + .subtract(taxCost) + .subtract(earnestMoneyCost); + } + + public void setNetCashFlow(BigDecimal netCashFlow) { + this.netCashFlow = netCashFlow; + } + /** * h投资活动现金流入 */ @@ -214,12 +291,36 @@ public class FinalBean { * m=k-l */ private BigDecimal financingCapitalCashflow; + + public BigDecimal getFinancingCapitalCashflow() { + BigDecimal financingCapitalInflow = getFinancingCapitalInflow(); + BigDecimal financingCapitalOutflow = getFinancingCapitalOutflow(); + return financingCapitalInflow.subtract(financingCapitalOutflow); + } + + public void setFinancingCapitalCashflow(BigDecimal financingCapitalCashflow) { + this.financingCapitalCashflow = financingCapitalCashflow; + } + /** * n货币资金净增加额 * n=g+j+m */ private BigDecimal netIncreaseMonetaryFunds; + public BigDecimal getNetIncreaseMonetaryFunds() { + BigDecimal netCashFlow = getNetCashFlow(); + BigDecimal netCashFromInvestingActivities = getNetCashFromInvestingActivities(); + BigDecimal financingCapitalCashflow = getFinancingCapitalCashflow(); + return netCashFlow + .add(netCashFromInvestingActivities) + .add(financingCapitalCashflow); + } + + public void setNetIncreaseMonetaryFunds(BigDecimal netIncreaseMonetaryFunds) { + this.netIncreaseMonetaryFunds = netIncreaseMonetaryFunds; + } + /** * 获取所有现金流量决算总额 * @return @@ -349,54 +450,6 @@ public class FinalBean { this.costIncomeTaxFinalTotal = costIncomeTaxFinalTotal; } - public BigDecimal getGrossProfitFinalTotal() { - return grossProfitFinalTotal; - } - - public void setGrossProfitFinalTotal(BigDecimal grossProfitFinalTotal) { - this.grossProfitFinalTotal = grossProfitFinalTotal; - } - - public BigDecimal getGrossProfitProfitMargin() { - return grossProfitProfitMargin; - } - - public void setGrossProfitProfitMargin(BigDecimal grossProfitProfitMargin) { - this.grossProfitProfitMargin = grossProfitProfitMargin; - } - - public BigDecimal getContributionMarginFinalTotal() { - return contributionMarginFinalTotal; - } - - public void setContributionMarginFinalTotal(BigDecimal contributionMarginFinalTotal) { - this.contributionMarginFinalTotal = contributionMarginFinalTotal; - } - - public BigDecimal getContributionMarginProfitMargin() { - return contributionMarginProfitMargin; - } - - public void setContributionMarginProfitMargin(BigDecimal contributionMarginProfitMargin) { - this.contributionMarginProfitMargin = contributionMarginProfitMargin; - } - - public BigDecimal getNetMarginFinalTotal() { - return netMarginFinalTotal; - } - - public void setNetMarginFinalTotal(BigDecimal netMarginFinalTotal) { - this.netMarginFinalTotal = netMarginFinalTotal; - } - - public BigDecimal getNetMarginProfitMargin() { - return netMarginProfitMargin; - } - - public void setNetMarginProfitMargin(BigDecimal netMarginProfitMargin) { - this.netMarginProfitMargin = netMarginProfitMargin; - } - public BigDecimal getSaleIncomeCash() { return saleIncomeCash; } @@ -485,27 +538,5 @@ public class FinalBean { this.financingCapitalOutflow = financingCapitalOutflow; } - public BigDecimal getFinancingCapitalCashflow() { - return financingCapitalCashflow; - } - public void setFinancingCapitalCashflow(BigDecimal financingCapitalCashflow) { - this.financingCapitalCashflow = financingCapitalCashflow; - } - - public BigDecimal getNetIncreaseMonetaryFunds() { - return netIncreaseMonetaryFunds; - } - - public void setNetIncreaseMonetaryFunds(BigDecimal netIncreaseMonetaryFunds) { - this.netIncreaseMonetaryFunds = netIncreaseMonetaryFunds; - } - - public BigDecimal getNetCashFlow() { - return netCashFlow; - } - - public void setNetCashFlow(BigDecimal netCashFlow) { - this.netCashFlow = netCashFlow; - } } diff --git a/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java b/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java index d6b97ba..efa84c5 100644 --- a/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java +++ b/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java @@ -9,6 +9,7 @@ import org.springframework.transaction.annotation.Transactional; import top.jfunc.common.utils.CollectionUtil; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.List; @@ -441,6 +442,10 @@ public class ProjectFinalSevice { } } } + + finalBean.setGrossProfitProfitMargin(finalBean.getGrossProfitFinalTotal().divide(finalBean.getIncomeTotal(),4, RoundingMode.HALF_UP).multiply(new BigDecimal(100))); + finalBean.setContributionMarginProfitMargin(finalBean.getContributionMarginFinalTotal().divide(finalBean.getIncomeTotal(),4, RoundingMode.HALF_UP).multiply(new BigDecimal(100))); + finalBean.setNetMarginProfitMargin(finalBean.getNetMarginFinalTotal().divide(finalBean.getIncomeTotal(),4, RoundingMode.HALF_UP).multiply(new BigDecimal(100))); return finalBean; } diff --git a/src/main/java/cn/palmte/work/service/StatisticsService.java b/src/main/java/cn/palmte/work/service/StatisticsService.java index 589980e..3c74285 100644 --- a/src/main/java/cn/palmte/work/service/StatisticsService.java +++ b/src/main/java/cn/palmte/work/service/StatisticsService.java @@ -1,10 +1,8 @@ package cn.palmte.work.service; -import cn.palmte.work.bean.CashFlowBean; import cn.palmte.work.bean.CashFlowStatisticsBean; import cn.palmte.work.bean.PrimaryIndicatorBean; import cn.palmte.work.model.*; -import lombok.Data; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import top.jfunc.common.utils.CollectionUtil; diff --git a/src/main/resources/static/assets/js/project_final.js b/src/main/resources/static/assets/js/project_final.js index d297bca..7afdf55 100644 --- a/src/main/resources/static/assets/js/project_final.js +++ b/src/main/resources/static/assets/js/project_final.js @@ -10,6 +10,22 @@ function calculateFinal() { calIncomeFinalTotal(); }); + /** + * 收入决算总额(不含税),有一项没填就置空 + */ + function calIncomeFinalTotal() { + var incomeDeviceFinalTotal = $("input[name='incomeDeviceFinalTotal']").val(); + var incomeEngineerFinalTotal = $("input[name='incomeEngineerFinalTotal']").val(); + var incomeServiceFinalTotal = $("input[name='incomeServiceFinalTotal']").val(); + + var incomeFinalTotal = $("input[name='incomeFinalTotal']"); + + if(incomeDeviceFinalTotal && incomeEngineerFinalTotal && incomeServiceFinalTotal){ + incomeFinalTotal.val(parseFloat(incomeDeviceFinalTotal)+parseFloat(incomeEngineerFinalTotal)+parseFloat(incomeServiceFinalTotal)); + }else { + incomeFinalTotal.val(""); + } + } $("input[name='costPurchaseDeviceFinalTotal']").change(function () { calCostFinalTotal(); @@ -33,16 +49,18 @@ function calculateFinal() { $("input[name='costExpropriationFinalTotal']").change(function () { calManageFinalTotal(); + calGrossProfitFinalTotal(); }); $("input[name='costCompanyManageFinalTotal']").change(function () { calManageFinalTotal(); + calContributionMarginFinalTotal() }); $("input[name='costIncomeTaxFinalTotal']").change(function () { calManageFinalTotal(); + calNetMarginProfitMargin(); }); - $("input[name='saleIncomeCash']").change(function () { calCashFluxFinalTotal(); }); @@ -88,23 +106,6 @@ function calculateFinal() { } -/** - * 收入决算总额(不含税),有一项没填就置空 - */ -function calIncomeFinalTotal() { - var incomeDeviceFinalTotal = $("input[name='incomeDeviceFinalTotal']").val(); - var incomeEngineerFinalTotal = $("input[name='incomeEngineerFinalTotal']").val(); - var incomeServiceFinalTotal = $("input[name='incomeServiceFinalTotal']").val(); - - var incomeFinalTotal = $("input[name='incomeFinalTotal']"); - - if(incomeDeviceFinalTotal && incomeEngineerFinalTotal && incomeServiceFinalTotal){ - incomeFinalTotal.val(parseFloat(incomeDeviceFinalTotal)+parseFloat(incomeEngineerFinalTotal)+parseFloat(incomeServiceFinalTotal)); - }else { - incomeFinalTotal.val(""); - } -} - /** * 成本决算总额(不含税),有一项没填就置空 */ @@ -181,6 +182,56 @@ function calCashFluxFinalTotal() { } } +/** + * 项目毛利决算总额 + */ +function calGrossProfitFinalTotal() { + var incomeFinalTotal = $("input[name='incomeFinalTotal']").val(); + var costFinalTotal = $("input[name='costFinalTotal']").val(); + var costExpropriationFinalTotal = $("input[name='costExpropriationFinalTotal']").val(); + + var grossProfitFinalTotal = $("input[name='grossProfitFinalTotal']"); + + if(incomeFinalTotal && costFinalTotal && costExpropriationFinalTotal){ + grossProfitFinalTotal.val(parseFloat(incomeFinalTotal)-parseFloat(costFinalTotal)-parseFloat(costExpropriationFinalTotal)); + }else { + grossProfitFinalTotal.val(""); + } +} + +/** + * 项目贡献利润决算总额 + */ +function calContributionMarginFinalTotal() { + var grossProfitFinalTotal = $("input[name='grossProfitFinalTotal']").val(); + var costCompanyManageFinalTotal = $("input[name='costCompanyManageFinalTotal']").val(); + + var contributionMarginFinalTotal = $("input[name='contributionMarginFinalTotal']"); + + if(grossProfitFinalTotal && costCompanyManageFinalTotal ){ + contributionMarginFinalTotal.val(parseFloat(grossProfitFinalTotal)-parseFloat(costCompanyManageFinalTotal)); + }else { + contributionMarginFinalTotal.val(""); + } +} + +/** + * 项目净利润决算总额 + */ +function calNetMarginProfitMargin() { + var contributionMarginFinalTotal = $("input[name='contributionMarginFinalTotal']").val(); + var costIncomeTaxFinalTotal = $("input[name='costIncomeTaxFinalTotal']").val(); + + + var netMarginFinalTotal = $("input[name='netMarginFinalTotal']"); + + if(contributionMarginFinalTotal && costIncomeTaxFinalTotal ){ + netMarginFinalTotal.val(parseFloat(contributionMarginFinalTotal)-parseFloat(costIncomeTaxFinalTotal)); + }else { + netMarginFinalTotal.val(""); + } +} + diff --git a/src/main/resources/templates/admin/project_approve.ftl b/src/main/resources/templates/admin/project_approve.ftl index 45a1fd4..3138dcf 100644 --- a/src/main/resources/templates/admin/project_approve.ftl +++ b/src/main/resources/templates/admin/project_approve.ftl @@ -1739,12 +1739,12 @@ - + <#-- - + --> @defaultLayout.layout> - +<#-- - +--> @defaultLayout.layout> diff --git a/src/main/resources/templates/admin/project_final_add.ftl b/src/main/resources/templates/admin/project_final_add.ftl index dec8984..3cab83d 100644 --- a/src/main/resources/templates/admin/project_final_add.ftl +++ b/src/main/resources/templates/admin/project_final_add.ftl @@ -218,7 +218,7 @@