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 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 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);