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 85fdcbb..6ba4cd3 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectFinalController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectFinalController.java @@ -7,7 +7,6 @@ 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; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; diff --git a/src/main/java/cn/palmte/work/model/ProjectFinalProfitMarginRepository.java b/src/main/java/cn/palmte/work/model/ProjectFinalProfitMarginRepository.java index 10ac434..74534bd 100644 --- a/src/main/java/cn/palmte/work/model/ProjectFinalProfitMarginRepository.java +++ b/src/main/java/cn/palmte/work/model/ProjectFinalProfitMarginRepository.java @@ -2,6 +2,10 @@ package cn.palmte.work.model; import org.springframework.data.jpa.repository.JpaRepository; +import java.util.List; + public interface ProjectFinalProfitMarginRepository extends JpaRepository { + List findByProjectIdEquals(int projectId); + } diff --git a/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java b/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java index 0adcfa4..455eec5 100644 --- a/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java +++ b/src/main/java/cn/palmte/work/service/ProjectFinalSevice.java @@ -60,66 +60,74 @@ public class ProjectFinalSevice { @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,settle); - - //保存项目决算成本信息 - saveProjectFinalCost(project,finalBean,estimate,budget,settle); - - //保存项目结算管理成本信息 - saveProjectFinalCostManage(project,finalBean,estimate,budget,settle); - - //保存项目决算利润率 - saveProjectFinalProfitMargin(project,finalBean,estimate,budget,settle); - - //保存项目结算现金流量信息 - saveProjectFinalCashFlux(project,finalBean,cashFlowBean,settle); - + clearAndSave(project, finalBean); projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_UNCOMMIT); - } @Transactional public void saveAndApprove(Project project, FinalBean finalBean) throws Exception { - FormerBean settle = projectSettleService.getCurrentSettle(project, null); + clearAndSave(project, finalBean); + //更新项目和审批状态 + projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_PENDING); + //发起流程 + projectInstanceService.startFinalProcessInstance(project.getId(), InterfaceUtil.getAdmin()); + } + + public void clearAndSave(Project project, FinalBean finalBean) { + //清楚旧数据 + clearFinal(project); + //预算表数据 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,settle); + saveProjectFinalIncome(project, finalBean, estimate, budget, settle); //保存项目决算成本信息 - saveProjectFinalCost(project,finalBean,estimate,budget,settle); + saveProjectFinalCost(project, finalBean, estimate, budget, settle); //保存项目结算管理成本信息 - saveProjectFinalCostManage(project,finalBean,estimate,budget,settle); + saveProjectFinalCostManage(project, finalBean, estimate, budget, settle); //保存项目决算利润率 - saveProjectFinalProfitMargin(project,finalBean,estimate,budget,settle); + saveProjectFinalProfitMargin(project, finalBean, estimate, budget, settle); //保存项目结算现金流量信息 - saveProjectFinalCashFlux(project,finalBean,cashFlowBean,settle); + saveProjectFinalCashFlux(project, finalBean, cashFlowBean, settle); + } - //更新项目和审批状态 - projectService.updateStatusAndApproveStatus(project.getId(), StatusEnum.FINAL_ACCOUNTS, ApproveStatusEnum.APPROVAL_PENDING); - //发起流程 - projectInstanceService.startFinalProcessInstance(project.getId(), InterfaceUtil.getAdmin()); + private void clearFinal(Project project) { + List projectFinalCosts = projectFinalCostRepository.findByProjectIdEquals(project.getId()); + if (CollectionUtil.isNotEmpty(projectFinalCosts)) { + projectFinalCostRepository.deleteInBatch(projectFinalCosts); + } + List projectFinalCostManages = projectFinalCostManageRepository.findByProjectIdEquals(project.getId()); + if (CollectionUtil.isNotEmpty(projectFinalCostManages)) { + projectFinalCostManageRepository.deleteInBatch(projectFinalCostManages); + } + + List projectFinalIncomes = projectFinalIncomeReposiry.findByProjectIdEquals(project.getId()); + if (CollectionUtil.isNotEmpty(projectFinalIncomes)) { + projectFinalIncomeReposiry.deleteInBatch(projectFinalIncomes); + } + + List projectFinalProfitMargins = projectFinalProfitMarginRepository.findByProjectIdEquals(project.getId()); + if (CollectionUtil.isNotEmpty(projectFinalProfitMargins)) { + projectFinalProfitMarginRepository.deleteInBatch(projectFinalProfitMargins); + } + + List projectFinalCashFluxes = projectFinalCashFluxRepository.findByProjectIdEquals(project.getId()); + if (CollectionUtil.isNotEmpty(projectFinalCashFluxes)) { + projectFinalCashFluxRepository.deleteInBatch(projectFinalCashFluxes); + } } private void saveProjectFinalProfitMargin(Project project, FinalBean finalBean, EstimateBean estimate, BudgetBean budget, FormerBean settle) { @@ -154,7 +162,7 @@ public class ProjectFinalSevice { } - public void saveProjectFinalCostManage(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget,FormerBean settle){ + 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); @@ -182,7 +190,7 @@ public class ProjectFinalSevice { } - private void saveProjectFinalIncome(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget,FormerBean settle) { + 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); @@ -211,7 +219,7 @@ public class ProjectFinalSevice { projectFinalIncomeReposiry.saveAndFlush(projectFinalIncomeService); } - public void saveProjectFinalCost(Project project, FinalBean finalBean,EstimateBean estimate,BudgetBean budget,FormerBean settle){ + 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); @@ -274,7 +282,7 @@ public class ProjectFinalSevice { projectFinalCostRepository.saveAndFlush(projectFinalCostOtherOther); } - public void saveProjectFinalCashFlux(Project project, FinalBean finalBean, CashFlowBean cashFlowBean,FormerBean settle) { + public void saveProjectFinalCashFlux(Project project, FinalBean finalBean, CashFlowBean cashFlowBean, FormerBean settle) { List list = new ArrayList<>(); ProjectFinalCashFlux projectFinalCashFlux1 = new ProjectFinalCashFlux(); @@ -396,32 +404,32 @@ public class ProjectFinalSevice { FinalBean finalBean = new FinalBean(); List projectFinalIncomes = projectFinalIncomeReposiry.findByProjectIdEquals(project.getId()); - if(CollectionUtil.isNotEmpty(projectFinalIncomes)){ + if (CollectionUtil.isNotEmpty(projectFinalIncomes)) { for (ProjectFinalIncome projectFinalIncome : projectFinalIncomes) { - if(ProjectFinalIncome.TYPE_DEVICE == projectFinalIncome.getType()){ + if (ProjectFinalIncome.TYPE_DEVICE == projectFinalIncome.getType()) { finalBean.setIncomeDeviceFinalTotal(projectFinalIncome.getFinalTotalIncome()); - }else if(ProjectFinalIncome.TYPE_ENGINEER == projectFinalIncome.getType()){ + } else if (ProjectFinalIncome.TYPE_ENGINEER == projectFinalIncome.getType()) { finalBean.setIncomeEngineerFinalTotal(projectFinalIncome.getFinalTotalIncome()); - }else if(ProjectFinalIncome.TYPE_SERVICE == projectFinalIncome.getType()){ + } else if (ProjectFinalIncome.TYPE_SERVICE == projectFinalIncome.getType()) { finalBean.setIncomeServiceFinalTotal(projectFinalIncome.getFinalTotalIncome()); } } } List projectFinalCosts = projectFinalCostRepository.findByProjectIdEquals(project.getId()); - if(CollectionUtil.isNotEmpty(projectFinalCosts)){ + if (CollectionUtil.isNotEmpty(projectFinalCosts)) { for (ProjectFinalCost projectFinalCost : projectFinalCosts) { - if(ProjectFinalCost.TYPE_DEVICE == projectFinalCost.getType()){ + if (ProjectFinalCost.TYPE_DEVICE == projectFinalCost.getType()) { finalBean.setCostPurchaseDeviceFinalTotal(projectFinalCost.getFinalTotalCost()); - }else if(ProjectFinalCost.TYPE_BUILDING == projectFinalCost.getType()){ + } else if (ProjectFinalCost.TYPE_BUILDING == projectFinalCost.getType()) { finalBean.setCostPurchaseBuildFinalTotal(projectFinalCost.getFinalTotalCost()); - }else if(ProjectFinalCost.TYPE_SERVICE == projectFinalCost.getType()){ + } else if (ProjectFinalCost.TYPE_SERVICE == projectFinalCost.getType()) { finalBean.setCostPurchaseServiceFinalTotal(projectFinalCost.getFinalTotalCost()); - }else if(ProjectFinalCost.TYPE_OTHER == projectFinalCost.getType()){ + } else if (ProjectFinalCost.TYPE_OTHER == projectFinalCost.getType()) { finalBean.setCostPurchaseOtherFinalTotal(projectFinalCost.getFinalTotalCost()); - }else if(ProjectFinalCost.TYPE_PROJECT_MANAGE == projectFinalCost.getType()){ + } else if (ProjectFinalCost.TYPE_PROJECT_MANAGE == projectFinalCost.getType()) { finalBean.setCostProjectManageFinalTotal(projectFinalCost.getFinalTotalCost()); - }else if (ProjectFinalCost.TYPE_OTHER_OTHER == projectFinalCost.getType()){ + } else if (ProjectFinalCost.TYPE_OTHER_OTHER == projectFinalCost.getType()) { finalBean.setCostOtherFinalTotal(projectFinalCost.getFinalTotalCost()); } } @@ -429,13 +437,13 @@ public class ProjectFinalSevice { List projectFinalCostManages = projectFinalCostManageRepository.findByProjectIdEquals(project.getId()); - if(CollectionUtil.isNotEmpty(projectFinalCostManages)){ + if (CollectionUtil.isNotEmpty(projectFinalCostManages)) { for (ProjectFinalCostManage projectFinalCostManage : projectFinalCostManages) { - if(ProjectFinalCostManage.TYPE_EXPROPRIATION == projectFinalCostManage.getType()){ + if (ProjectFinalCostManage.TYPE_EXPROPRIATION == projectFinalCostManage.getType()) { finalBean.setCostExpropriationFinalTotal(projectFinalCostManage.getFinalTotalManageCost()); - }else if(ProjectFinalCostManage.TYPE_COMPANY_MANAGE == projectFinalCostManage.getType()){ + } else if (ProjectFinalCostManage.TYPE_COMPANY_MANAGE == projectFinalCostManage.getType()) { finalBean.setCostCompanyManageFinalTotal(projectFinalCostManage.getFinalTotalManageCost()); - }else if(ProjectFinalCostManage.TYPE_INCOME_TAX == projectFinalCostManage.getType()){ + } else if (ProjectFinalCostManage.TYPE_INCOME_TAX == projectFinalCostManage.getType()) { finalBean.setCostIncomeTaxFinalTotal(projectFinalCostManage.getFinalTotalManageCost()); } } @@ -443,48 +451,48 @@ public class ProjectFinalSevice { List projectFinalCashFluxes = projectFinalCashFluxRepository.findByProjectIdEquals(project.getId()); - if(CollectionUtil.isNotEmpty(projectFinalCashFluxes)){ + if (CollectionUtil.isNotEmpty(projectFinalCashFluxes)) { for (ProjectFinalCashFlux projectFinalCashFlux : projectFinalCashFluxes) { - if(ProjectFinalCashFlux.TYPE1 == projectFinalCashFlux.getType()){ + if (ProjectFinalCashFlux.TYPE1 == projectFinalCashFlux.getType()) { finalBean.setSaleIncomeCash(projectFinalCashFlux.getFinalTotalCashFlux()); } - if(ProjectFinalCashFlux.TYPE2 == projectFinalCashFlux.getType()){ + if (ProjectFinalCashFlux.TYPE2 == projectFinalCashFlux.getType()) { finalBean.setTaxReturn(projectFinalCashFlux.getFinalTotalCashFlux()); } - if(ProjectFinalCashFlux.TYPE3 == projectFinalCashFlux.getType()){ + if (ProjectFinalCashFlux.TYPE3 == projectFinalCashFlux.getType()) { finalBean.setEarnestMoneyIncome(projectFinalCashFlux.getFinalTotalCashFlux()); } - if(ProjectFinalCashFlux.TYPE4 == projectFinalCashFlux.getType()){ + if (ProjectFinalCashFlux.TYPE4 == projectFinalCashFlux.getType()) { finalBean.setPurchaseCost(projectFinalCashFlux.getFinalTotalCashFlux()); } - if(ProjectFinalCashFlux.TYPE5 == projectFinalCashFlux.getType()){ + if (ProjectFinalCashFlux.TYPE5 == projectFinalCashFlux.getType()) { finalBean.setTaxCost(projectFinalCashFlux.getFinalTotalCashFlux()); } - if(ProjectFinalCashFlux.TYPE6 == projectFinalCashFlux.getType()){ + if (ProjectFinalCashFlux.TYPE6 == projectFinalCashFlux.getType()) { finalBean.setEarnestMoneyCost(projectFinalCashFlux.getFinalTotalCashFlux()); } - if(ProjectFinalCashFlux.TYPE7 == projectFinalCashFlux.getType()){ + if (ProjectFinalCashFlux.TYPE7 == projectFinalCashFlux.getType()) { finalBean.setNetCashFlow(projectFinalCashFlux.getFinalTotalCashFlux()); } - if(ProjectFinalCashFlux.TYPE8 == projectFinalCashFlux.getType()){ + if (ProjectFinalCashFlux.TYPE8 == projectFinalCashFlux.getType()) { finalBean.setCashInflowFromInvestingActivities(projectFinalCashFlux.getFinalTotalCashFlux()); } - if(ProjectFinalCashFlux.TYPE9 == projectFinalCashFlux.getType()){ + if (ProjectFinalCashFlux.TYPE9 == projectFinalCashFlux.getType()) { finalBean.setCashOutflowFromInvestingActivities(projectFinalCashFlux.getFinalTotalCashFlux()); } - if(ProjectFinalCashFlux.TYPE10 == projectFinalCashFlux.getType()){ + if (ProjectFinalCashFlux.TYPE10 == projectFinalCashFlux.getType()) { finalBean.setNetCashFromInvestingActivities(projectFinalCashFlux.getFinalTotalCashFlux()); } - if(ProjectFinalCashFlux.TYPE11 == projectFinalCashFlux.getType()){ + if (ProjectFinalCashFlux.TYPE11 == projectFinalCashFlux.getType()) { finalBean.setFinancingCapitalInflow(projectFinalCashFlux.getFinalTotalCashFlux()); } - if(ProjectFinalCashFlux.TYPE12 == projectFinalCashFlux.getType()){ + if (ProjectFinalCashFlux.TYPE12 == projectFinalCashFlux.getType()) { finalBean.setFinancingCapitalOutflow(projectFinalCashFlux.getFinalTotalCashFlux()); } - if(ProjectFinalCashFlux.TYPE13 == projectFinalCashFlux.getType()){ + if (ProjectFinalCashFlux.TYPE13 == projectFinalCashFlux.getType()) { finalBean.setFinancingCapitalCashflow(projectFinalCashFlux.getFinalTotalCashFlux()); } - if(ProjectFinalCashFlux.TYPE14 == projectFinalCashFlux.getType()){ + if (ProjectFinalCashFlux.TYPE14 == projectFinalCashFlux.getType()) { finalBean.setNetIncreaseMonetaryFunds(projectFinalCashFlux.getFinalTotalCashFlux()); } }