From 4b432052d323aa456cc3f684f8f70b5af6622d14 Mon Sep 17 00:00:00 2001
From: hanbo <2608504783@qq.com>
Date: Mon, 22 Nov 2021 20:55:18 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E7=BB=93=E7=AE=97=E4=BF=A1?=
 =?UTF-8?q?=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../work/service/ProjectFinalSevice.java      | 80 ++++++++++---------
 1 file changed, 43 insertions(+), 37 deletions(-)

diff --git a/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java b/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java
index efa84c5..69fd860 100644
--- a/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java
+++ b/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java
@@ -52,27 +52,32 @@ public class ProjectFinalSevice {
     @Autowired
     private ProjectInstanceService projectInstanceService;
 
+    @Autowired
+    private ProjectSettleService projectSettleService;
+
     @Transactional
     public void save(Project project, FinalBean finalBean) {
         //预算表数据
         EstimateBean estimate = projectEstimateService.getEstimate(project);
         //概算表数据
         BudgetBean budget = projectBudgetService.getBudget(project);
+
+        FormerBean settle = projectSettleService.getCurrentSettle(project, null);
         //现金流量表数据
         List<ProjectBudgetPlanDetail> projectBudgetPlanDetails = projectBudgetService.getProjectBudgetPlanDetails(project);
         CashFlowBean cashFlowBean = projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails);
 
         //保存项目决算收入信息
-        saveProjectFinalIncome(project,finalBean,estimate,budget);
+        saveProjectFinalIncome(project,finalBean,estimate,budget,settle);
 
         //保存项目决算成本信息
-        saveProjectFinalCost(project,finalBean,estimate,budget);
+        saveProjectFinalCost(project,finalBean,estimate,budget,settle);
 
         //保存项目结算管理成本信息
-        saveProjectFinalCostManage(project,finalBean,estimate,budget);
+        saveProjectFinalCostManage(project,finalBean,estimate,budget,settle);
 
         //保存项目结算现金流量信息
-        saveProjectFinalCashFlux(project,finalBean,cashFlowBean);
+        saveProjectFinalCashFlux(project,finalBean,cashFlowBean,settle);
 
         projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_UNCOMMIT);
 
@@ -80,6 +85,7 @@ public class ProjectFinalSevice {
 
     @Transactional
     public void saveAndApprove(Project project, FinalBean finalBean) throws Exception {
+        FormerBean settle = projectSettleService.getCurrentSettle(project, null);
         //预算表数据
         EstimateBean estimate = projectEstimateService.getEstimate(project);
         //概算表数据
@@ -89,16 +95,16 @@ public class ProjectFinalSevice {
         CashFlowBean cashFlowBean = projectBudgetService.getCashFlowBean(project, projectBudgetPlanDetails);
 
         //保存项目决算收入信息
-        saveProjectFinalIncome(project,finalBean,estimate,budget);
+        saveProjectFinalIncome(project,finalBean,estimate,budget,settle);
 
         //保存项目决算成本信息
-        saveProjectFinalCost(project,finalBean,estimate,budget);
+        saveProjectFinalCost(project,finalBean,estimate,budget,settle);
 
         //保存项目结算管理成本信息
-        saveProjectFinalCostManage(project,finalBean,estimate,budget);
+        saveProjectFinalCostManage(project,finalBean,estimate,budget,settle);
 
         //保存项目结算现金流量信息
-        saveProjectFinalCashFlux(project,finalBean,cashFlowBean);
+        saveProjectFinalCashFlux(project,finalBean,cashFlowBean,settle);
 
         //更新项目和审批状态
         projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_PENDING);
@@ -107,13 +113,13 @@ public class ProjectFinalSevice {
 
     }
 
-    public void saveProjectFinalCostManage(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget){
+    public void saveProjectFinalCostManage(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget,FormerBean settle){
         ProjectFinalCostManage expropriationManage = new ProjectFinalCostManage();
         expropriationManage.setProjectId(project.getId());
         expropriationManage.setType(ProjectFinalCostManage.TYPE_EXPROPRIATION);
         expropriationManage.setEstimateTotalManageCost(estimate.getCostExpropriationTaxExclude());
         expropriationManage.setBudgetTotalManageCost(budget.getCostExpropriationTaxExclude());
-        expropriationManage.setSettleTotalManageCost(new BigDecimal(0));
+        expropriationManage.setSettleTotalManageCost(settle.getCostExpropriationTaxExclude());
         expropriationManage.setFinalTotalManageCost(finalBean.getCostExpropriationFinalTotal());
         projectFinalCostManageRepository.saveAndFlush(expropriationManage);
 
@@ -122,7 +128,7 @@ public class ProjectFinalSevice {
         companyManage.setType(ProjectFinalCostManage.TYPE_COMPANY_MANAGE);
         companyManage.setEstimateTotalManageCost(estimate.getCostCompanyManageTaxExclude());
         companyManage.setBudgetTotalManageCost(budget.getCostCompanyManageTaxExclude());
-        companyManage.setSettleTotalManageCost(new BigDecimal(0));
+        companyManage.setSettleTotalManageCost(settle.getCostCompanyManageTaxExclude());
         companyManage.setFinalTotalManageCost(finalBean.getCostCompanyManageFinalTotal());
         projectFinalCostManageRepository.saveAndFlush(companyManage);
 
@@ -135,13 +141,13 @@ public class ProjectFinalSevice {
 
     }
 
-    private void saveProjectFinalIncome(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget) {
+    private void saveProjectFinalIncome(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget,FormerBean settle) {
         ProjectFinalIncome projectFinalIncomeDevice = new ProjectFinalIncome();
         projectFinalIncomeDevice.setProjectId(project.getId());
         projectFinalIncomeDevice.setType(ProjectFinalIncome.TYPE_DEVICE);
         projectFinalIncomeDevice.setEstimateTotalIncome(estimate.getIncomeDeviceTaxExclude());
         projectFinalIncomeDevice.setBudgetTotalIncome(budget.getIncomeDeviceTaxExclude());
-        projectFinalIncomeDevice.setSettleTotalIncome(new BigDecimal(0));
+        projectFinalIncomeDevice.setSettleTotalIncome(settle.getIncomeDeviceTaxExclude());
         projectFinalIncomeDevice.setFinalTotalIncome(finalBean.getIncomeDeviceFinalTotal());
         projectFinalIncomeReposiry.saveAndFlush(projectFinalIncomeDevice);
 
@@ -150,7 +156,7 @@ public class ProjectFinalSevice {
         projectFinalIncomeEngineer.setType(ProjectFinalIncome.TYPE_ENGINEER);
         projectFinalIncomeEngineer.setEstimateTotalIncome(estimate.getIncomeEngineerTaxExclude());
         projectFinalIncomeEngineer.setBudgetTotalIncome(budget.getIncomeEngineerTaxExclude());
-        projectFinalIncomeEngineer.setSettleTotalIncome(new BigDecimal(0));
+        projectFinalIncomeEngineer.setSettleTotalIncome(settle.getIncomeEngineerTaxExclude());
         projectFinalIncomeEngineer.setFinalTotalIncome(finalBean.getIncomeEngineerFinalTotal());
         projectFinalIncomeReposiry.saveAndFlush(projectFinalIncomeEngineer);
 
@@ -159,19 +165,19 @@ public class ProjectFinalSevice {
         projectFinalIncomeService.setType(ProjectFinalIncome.TYPE_SERVICE);
         projectFinalIncomeService.setEstimateTotalIncome(estimate.getIncomeServiceTaxExclude());
         projectFinalIncomeService.setBudgetTotalIncome(budget.getIncomeServiceTaxExclude());
-        projectFinalIncomeService.setSettleTotalIncome(new BigDecimal(0));
+        projectFinalIncomeService.setSettleTotalIncome(settle.getIncomeServiceTaxExclude());
         projectFinalIncomeService.setFinalTotalIncome(finalBean.getIncomeServiceFinalTotal());
         projectFinalIncomeReposiry.saveAndFlush(projectFinalIncomeService);
     }
 
-    public void saveProjectFinalCost(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget){
+    public void saveProjectFinalCost(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget,FormerBean settle){
         ProjectFinalCost projectFinalCostDevice = new ProjectFinalCost();
         projectFinalCostDevice.setProjectId(project.getId());
         projectFinalCostDevice.setFee(ProjectFinalCost.FEE_PURCHASE);
         projectFinalCostDevice.setType(ProjectFinalCost.TYPE_DEVICE);
         projectFinalCostDevice.setEstimateTotalCost(estimate.getCostPurchaseDeviceTaxExclude());
         projectFinalCostDevice.setBudgetTotalCost(budget.getCostPurchaseDeviceTaxExclude());
-        projectFinalCostDevice.setSettleTotalCost(new BigDecimal(0));
+        projectFinalCostDevice.setSettleTotalCost(settle.getCostPurchaseDeviceTaxExclude());
         projectFinalCostDevice.setFinalTotalCost(finalBean.getCostPurchaseDeviceFinalTotal());
         projectFinalCostRepository.saveAndFlush(projectFinalCostDevice);
 
@@ -182,7 +188,7 @@ public class ProjectFinalSevice {
         projectFinalCostBuild.setType(ProjectFinalCost.TYPE_BUILDING);
         projectFinalCostBuild.setEstimateTotalCost(estimate.getCostPurchaseBuildTaxExclude());
         projectFinalCostBuild.setBudgetTotalCost(budget.getCostPurchaseBuildTaxExclude());
-        projectFinalCostBuild.setSettleTotalCost(new BigDecimal(0));
+        projectFinalCostBuild.setSettleTotalCost(settle.getCostPurchaseBuildTaxExclude());
         projectFinalCostBuild.setFinalTotalCost(finalBean.getCostPurchaseBuildFinalTotal());
         projectFinalCostRepository.saveAndFlush(projectFinalCostBuild);
 
@@ -192,7 +198,7 @@ public class ProjectFinalSevice {
         projectFinalCostService.setType(ProjectFinalCost.TYPE_SERVICE);
         projectFinalCostService.setEstimateTotalCost(estimate.getCostPurchaseServiceTaxExclude());
         projectFinalCostService.setBudgetTotalCost(budget.getCostPurchaseServiceTaxExclude());
-        projectFinalCostService.setSettleTotalCost(new BigDecimal(0));
+        projectFinalCostService.setSettleTotalCost(settle.getCostPurchaseServiceTaxExclude());
         projectFinalCostService.setFinalTotalCost(finalBean.getCostPurchaseServiceFinalTotal());
         projectFinalCostRepository.saveAndFlush(projectFinalCostService);
 
@@ -202,7 +208,7 @@ public class ProjectFinalSevice {
         projectFinalCostOther.setType(ProjectFinalCost.TYPE_OTHER);
         projectFinalCostOther.setEstimateTotalCost(estimate.getCostPurchaseOtherTaxExclude());
         projectFinalCostOther.setBudgetTotalCost(budget.getCostPurchaseOtherTaxExclude());
-        projectFinalCostOther.setSettleTotalCost(new BigDecimal(0));
+        projectFinalCostOther.setSettleTotalCost(settle.getCostPurchaseOtherTaxExclude());
         projectFinalCostOther.setFinalTotalCost(finalBean.getCostPurchaseOtherFinalTotal());
         projectFinalCostRepository.saveAndFlush(projectFinalCostOther);
 
@@ -212,7 +218,7 @@ public class ProjectFinalSevice {
         projectFinalCostProject.setType(ProjectFinalCost.TYPE_PROJECT_MANAGE);
         projectFinalCostProject.setEstimateTotalCost(estimate.getCostProjectManageTaxExclude());
         projectFinalCostProject.setBudgetTotalCost(budget.getCostProjectManageTaxExclude());
-        projectFinalCostProject.setSettleTotalCost(new BigDecimal(0));
+        projectFinalCostProject.setSettleTotalCost(settle.getCostProjectManageTaxExclude());
         projectFinalCostProject.setFinalTotalCost(finalBean.getCostProjectManageFinalTotal());
         projectFinalCostRepository.saveAndFlush(projectFinalCostProject);
 
@@ -222,19 +228,19 @@ public class ProjectFinalSevice {
         projectFinalCostOtherOther.setType(ProjectFinalCost.TYPE_OTHER_OTHER);
         projectFinalCostOtherOther.setEstimateTotalCost(estimate.getCostOtherOtherTaxExclude());
         projectFinalCostOtherOther.setBudgetTotalCost(budget.getCostOtherOtherTaxExclude());
-        projectFinalCostOtherOther.setSettleTotalCost(new BigDecimal(0));
+        projectFinalCostOtherOther.setSettleTotalCost(settle.getCostOtherOtherTaxExclude());
         projectFinalCostOtherOther.setFinalTotalCost(finalBean.getCostOtherFinalTotal());
         projectFinalCostRepository.saveAndFlush(projectFinalCostOtherOther);
     }
 
-    public void saveProjectFinalCashFlux(Project project, FinalBean finalBean, CashFlowBean cashFlowBean) {
+    public void saveProjectFinalCashFlux(Project project, FinalBean finalBean, CashFlowBean cashFlowBean,FormerBean settle) {
         List<ProjectFinalCashFlux> list = new ArrayList<>();
 
         ProjectFinalCashFlux projectFinalCashFlux1 = new ProjectFinalCashFlux();
         projectFinalCashFlux1.setProjectId(project.getId());
         projectFinalCashFlux1.setType(ProjectFinalCashFlux.TYPE1);
         projectFinalCashFlux1.setBudgetTotalCashFlux(cashFlowBean.getSaleIncomeCash());
-        projectFinalCashFlux1.setFinalTotalCashFlux(new BigDecimal(0));
+        projectFinalCashFlux1.setSettleTotalCashFlux(settle.getSaleIncomeCash());
         projectFinalCashFlux1.setFinalTotalCashFlux(finalBean.getSaleIncomeCash());
         projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux1);
 
@@ -242,7 +248,7 @@ public class ProjectFinalSevice {
         projectFinalCashFlux2.setProjectId(project.getId());
         projectFinalCashFlux2.setType(ProjectFinalCashFlux.TYPE2);
         projectFinalCashFlux2.setBudgetTotalCashFlux(cashFlowBean.getTaxReturn());
-        projectFinalCashFlux2.setFinalTotalCashFlux(new BigDecimal(0));
+        projectFinalCashFlux2.setSettleTotalCashFlux(settle.getTaxReturn());
         projectFinalCashFlux2.setFinalTotalCashFlux(finalBean.getTaxReturn());
         projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux2);
 
@@ -250,7 +256,7 @@ public class ProjectFinalSevice {
         projectFinalCashFlux3.setProjectId(project.getId());
         projectFinalCashFlux3.setType(ProjectFinalCashFlux.TYPE3);
         projectFinalCashFlux3.setBudgetTotalCashFlux(cashFlowBean.getEarnestMoneyIncome());
-        projectFinalCashFlux3.setFinalTotalCashFlux(new BigDecimal(0));
+        projectFinalCashFlux3.setSettleTotalCashFlux(settle.getEarnestMoneyIncome());
         projectFinalCashFlux3.setFinalTotalCashFlux(finalBean.getEarnestMoneyIncome());
         projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux3);
 
@@ -258,7 +264,7 @@ public class ProjectFinalSevice {
         projectFinalCashFlux4.setProjectId(project.getId());
         projectFinalCashFlux4.setType(ProjectFinalCashFlux.TYPE4);
         projectFinalCashFlux4.setBudgetTotalCashFlux(cashFlowBean.getPurchaseCost());
-        projectFinalCashFlux4.setFinalTotalCashFlux(new BigDecimal(0));
+        projectFinalCashFlux4.setSettleTotalCashFlux(settle.getPurchaseCost());
         projectFinalCashFlux4.setFinalTotalCashFlux(finalBean.getPurchaseCost());
         projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux4);
 
@@ -266,7 +272,7 @@ public class ProjectFinalSevice {
         projectFinalCashFlux5.setProjectId(project.getId());
         projectFinalCashFlux5.setType(ProjectFinalCashFlux.TYPE5);
         projectFinalCashFlux5.setBudgetTotalCashFlux(cashFlowBean.getTaxCost());
-        projectFinalCashFlux5.setFinalTotalCashFlux(new BigDecimal(0));
+        projectFinalCashFlux5.setSettleTotalCashFlux(settle.getTaxCost());
         projectFinalCashFlux5.setFinalTotalCashFlux(finalBean.getTaxCost());
         projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux5);
 
@@ -274,7 +280,7 @@ public class ProjectFinalSevice {
         projectFinalCashFlux6.setProjectId(project.getId());
         projectFinalCashFlux6.setType(ProjectFinalCashFlux.TYPE6);
         projectFinalCashFlux6.setBudgetTotalCashFlux(cashFlowBean.getEarnestMoneyCost());
-        projectFinalCashFlux6.setFinalTotalCashFlux(new BigDecimal(0));
+        projectFinalCashFlux6.setSettleTotalCashFlux(settle.getEarnestMoneyCost());
         projectFinalCashFlux6.setFinalTotalCashFlux(finalBean.getEarnestMoneyCost());
         projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux6);
 
@@ -282,7 +288,7 @@ public class ProjectFinalSevice {
         projectFinalCashFlux7.setProjectId(project.getId());
         projectFinalCashFlux7.setType(ProjectFinalCashFlux.TYPE7);
         projectFinalCashFlux7.setBudgetTotalCashFlux(cashFlowBean.getNetCashFlow());
-        projectFinalCashFlux7.setFinalTotalCashFlux(new BigDecimal(0));
+        projectFinalCashFlux7.setSettleTotalCashFlux(settle.getNetCashFlow());
         projectFinalCashFlux7.setFinalTotalCashFlux(finalBean.getNetCashFlow());
         projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux7);
 
@@ -290,7 +296,7 @@ public class ProjectFinalSevice {
         projectFinalCashFlux8.setProjectId(project.getId());
         projectFinalCashFlux8.setType(ProjectFinalCashFlux.TYPE8);
         projectFinalCashFlux8.setBudgetTotalCashFlux(cashFlowBean.getCashInflowFromInvestingActivities());
-        projectFinalCashFlux8.setFinalTotalCashFlux(new BigDecimal(0));
+        projectFinalCashFlux8.setSettleTotalCashFlux(settle.getCashInflowFromInvestingActivities());
         projectFinalCashFlux8.setFinalTotalCashFlux(finalBean.getCashInflowFromInvestingActivities());
         projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux8);
 
@@ -298,7 +304,7 @@ public class ProjectFinalSevice {
         projectFinalCashFlux9.setProjectId(project.getId());
         projectFinalCashFlux9.setType(ProjectFinalCashFlux.TYPE9);
         projectFinalCashFlux9.setBudgetTotalCashFlux(cashFlowBean.getCashOutflowFromInvestingActivities());
-        projectFinalCashFlux9.setFinalTotalCashFlux(new BigDecimal(0));
+        projectFinalCashFlux9.setSettleTotalCashFlux(settle.getCashOutflowFromInvestingActivities());
         projectFinalCashFlux9.setFinalTotalCashFlux(finalBean.getCashOutflowFromInvestingActivities());
         projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux9);
 
@@ -306,7 +312,7 @@ public class ProjectFinalSevice {
         projectFinalCashFlux10.setProjectId(project.getId());
         projectFinalCashFlux10.setType(ProjectFinalCashFlux.TYPE10);
         projectFinalCashFlux10.setBudgetTotalCashFlux(cashFlowBean.getNetCashFromInvestingActivities());
-        projectFinalCashFlux10.setFinalTotalCashFlux(new BigDecimal(0));
+        projectFinalCashFlux10.setSettleTotalCashFlux(settle.getNetCashFromInvestingActivities());
         projectFinalCashFlux10.setFinalTotalCashFlux(finalBean.getNetCashFromInvestingActivities());
         projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux10);
 
@@ -314,7 +320,7 @@ public class ProjectFinalSevice {
         projectFinalCashFlux11.setProjectId(project.getId());
         projectFinalCashFlux11.setType(ProjectFinalCashFlux.TYPE11);
         projectFinalCashFlux11.setBudgetTotalCashFlux(cashFlowBean.getFinancingCapitalInflow());
-        projectFinalCashFlux11.setFinalTotalCashFlux(new BigDecimal(0));
+        projectFinalCashFlux11.setSettleTotalCashFlux(settle.getFinancingCapitalInflow());
         projectFinalCashFlux11.setFinalTotalCashFlux(finalBean.getFinancingCapitalInflow());
         projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux11);
 
@@ -322,7 +328,7 @@ public class ProjectFinalSevice {
         projectFinalCashFlux12.setProjectId(project.getId());
         projectFinalCashFlux12.setType(ProjectFinalCashFlux.TYPE12);
         projectFinalCashFlux12.setBudgetTotalCashFlux(cashFlowBean.getFinancingCapitalOutflow());
-        projectFinalCashFlux12.setFinalTotalCashFlux(new BigDecimal(0));
+        projectFinalCashFlux12.setSettleTotalCashFlux(settle.getFinancingCapitalOutflow());
         projectFinalCashFlux12.setFinalTotalCashFlux(finalBean.getFinancingCapitalOutflow());
         projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux12);
 
@@ -330,7 +336,7 @@ public class ProjectFinalSevice {
         projectFinalCashFlux13.setProjectId(project.getId());
         projectFinalCashFlux13.setType(ProjectFinalCashFlux.TYPE13);
         projectFinalCashFlux13.setBudgetTotalCashFlux(cashFlowBean.getFinancingCapitalCashflow());
-        projectFinalCashFlux13.setFinalTotalCashFlux(new BigDecimal(0));
+        projectFinalCashFlux13.setSettleTotalCashFlux(settle.getFinancingCapitalCashflow());
         projectFinalCashFlux13.setFinalTotalCashFlux(finalBean.getFinancingCapitalCashflow());
         projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux13);
 
@@ -338,7 +344,7 @@ public class ProjectFinalSevice {
         projectFinalCashFlux14.setProjectId(project.getId());
         projectFinalCashFlux14.setType(ProjectFinalCashFlux.TYPE14);
         projectFinalCashFlux14.setBudgetTotalCashFlux(cashFlowBean.getNetIncreaseMonetaryFunds());
-        projectFinalCashFlux14.setFinalTotalCashFlux(new BigDecimal(0));
+        projectFinalCashFlux14.setSettleTotalCashFlux(settle.getNetIncreaseMonetaryFunds());
         projectFinalCashFlux14.setFinalTotalCashFlux(finalBean.getNetIncreaseMonetaryFunds());
         projectFinalCashFluxRepository.saveAndFlush(projectFinalCashFlux14);