From 58994ba1e69b5709969bad8a77004b881ffb4db3 Mon Sep 17 00:00:00 2001 From: xxssyyyyssxx Date: Tue, 7 Dec 2021 18:52:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AA=E6=9C=89=E6=8F=90=E4=BA=A4=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E7=9A=84=E6=97=B6=E5=80=99=E6=89=8D=E6=AD=A3=E5=B8=B8?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=98=8E=E7=BB=86=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/backend/ProjectController.java | 48 +++---- .../model/ProjectBudgetCostDetailTemp.java | 25 ++++ ...ProjectBudgetCostDetailTempRepository.java | 9 ++ ...jectBudgetCostProjectManageDetailTemp.java | 27 ++++ ...CostProjectManageDetailTempRepository.java | 9 ++ .../model/ProjectBudgetIncomeDetailTemp.java | 23 ++++ ...ojectBudgetIncomeDetailTempRepository.java | 9 ++ .../model/ProjectBudgetPlanDetailTemp.java | 30 +++++ ...ProjectBudgetPlanDetailTempRepository.java | 13 ++ .../work/service/ProjectBudgetService.java | 127 +++++++++++++++++- 10 files changed, 296 insertions(+), 24 deletions(-) create mode 100644 src/main/java/cn/palmte/work/model/ProjectBudgetCostDetailTemp.java create mode 100644 src/main/java/cn/palmte/work/model/ProjectBudgetCostDetailTempRepository.java create mode 100644 src/main/java/cn/palmte/work/model/ProjectBudgetCostProjectManageDetailTemp.java create mode 100644 src/main/java/cn/palmte/work/model/ProjectBudgetCostProjectManageDetailTempRepository.java create mode 100644 src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailTemp.java create mode 100644 src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailTempRepository.java create mode 100644 src/main/java/cn/palmte/work/model/ProjectBudgetPlanDetailTemp.java create mode 100644 src/main/java/cn/palmte/work/model/ProjectBudgetPlanDetailTempRepository.java 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 5467d2b..283f75a 100644 --- a/src/main/java/cn/palmte/work/controller/backend/ProjectController.java +++ b/src/main/java/cn/palmte/work/controller/backend/ProjectController.java @@ -36,6 +36,8 @@ import java.util.concurrent.ConcurrentHashMap; @RequestMapping("/project") public class ProjectController extends BaseController { private static final Logger logger = LoggerFactory.getLogger(ProjectController.class); + private static final String PROJECT_ID = "projectId"; + private static final String DETAILS = "details"; @Autowired private DeptService deptService; @@ -230,16 +232,16 @@ public class ProjectController extends BaseController { @ResponseBody public ResponseMsg budgetEditSaveIncomeDetail(@RequestBody String body) { JSONObject jsonObject = JSON.parseObject(body); - JSONArray details = jsonObject.getJSONArray("details"); - List detailList = new ArrayList<>(details.size()); + JSONArray details = jsonObject.getJSONArray(DETAILS); + List detailList = new ArrayList<>(details.size()); for (int i = 0; i < details.size(); i++) { - ProjectBudgetIncomeDetail detail = details.getObject(i, ProjectBudgetIncomeDetail.class); + ProjectBudgetIncomeDetailTemp detail = details.getObject(i, ProjectBudgetIncomeDetailTemp.class); detailList.add(detail); } - Project project = projectService.getProject(jsonObject.getInteger("projectId")); + Project project = projectService.getProject(jsonObject.getInteger(PROJECT_ID)); - projectBudgetService.saveBudgetIncomeDetail(project, detailList); + projectBudgetService.saveBudgetIncomeDetailTemp(project, detailList); return ResponseMsg.buildSuccessMsg("成功"); } @@ -251,16 +253,16 @@ public class ProjectController extends BaseController { @ResponseBody public ResponseMsg budgetEditSaveCostDetail(@RequestBody String body) { JSONObject jsonObject = JSON.parseObject(body); - JSONArray details = jsonObject.getJSONArray("details"); - List detailList = new ArrayList<>(details.size()); + JSONArray details = jsonObject.getJSONArray(DETAILS); + List detailList = new ArrayList<>(details.size()); for (int i = 0; i < details.size(); i++) { - ProjectBudgetCostDetail detail = details.getObject(i, ProjectBudgetCostDetail.class); + ProjectBudgetCostDetailTemp detail = details.getObject(i, ProjectBudgetCostDetailTemp.class); detailList.add(detail); } - Project project = projectService.getProject(jsonObject.getInteger("projectId")); + Project project = projectService.getProject(jsonObject.getInteger(PROJECT_ID)); - projectBudgetService.saveBudgetCostDetail(project, detailList); + projectBudgetService.saveBudgetCostDetailTemp(project, detailList); return ResponseMsg.buildSuccessMsg("成功"); } @@ -272,16 +274,16 @@ public class ProjectController extends BaseController { @ResponseBody public ResponseMsg budgetEditSaveCostProjectManageDetail(@RequestBody String body) { JSONObject jsonObject = JSON.parseObject(body); - JSONArray details = jsonObject.getJSONArray("details"); - List detailList = new ArrayList<>(details.size()); + JSONArray details = jsonObject.getJSONArray(DETAILS); + List detailList = new ArrayList<>(details.size()); for (int i = 0; i < details.size(); i++) { - ProjectBudgetCostProjectManageDetail detail = details.getObject(i, ProjectBudgetCostProjectManageDetail.class); + ProjectBudgetCostProjectManageDetailTemp detail = details.getObject(i, ProjectBudgetCostProjectManageDetailTemp.class); detailList.add(detail); } - Project project = projectService.getProject(jsonObject.getInteger("projectId")); + Project project = projectService.getProject(jsonObject.getInteger(PROJECT_ID)); - projectBudgetService.saveBudgetCostProjectManageDetail(project, detailList); + projectBudgetService.saveBudgetCostProjectManageDetailTemp(project, detailList); return ResponseMsg.buildSuccessMsg("成功"); } @@ -293,16 +295,16 @@ public class ProjectController extends BaseController { @ResponseBody public ResponseMsg budgetEditSaveBudgetPlanDetail(@RequestBody String body) { JSONObject jsonObject = JSON.parseObject(body); - JSONArray details = jsonObject.getJSONArray("details"); - List detailList = new ArrayList<>(details.size()); + JSONArray details = jsonObject.getJSONArray(DETAILS); + List detailList = new ArrayList<>(details.size()); for (int i = 0; i < details.size(); i++) { - ProjectBudgetPlanDetail detail = details.getObject(i, ProjectBudgetPlanDetail.class); + ProjectBudgetPlanDetailTemp detail = details.getObject(i, ProjectBudgetPlanDetailTemp.class); detailList.add(detail); } - Project project = projectService.getProject(jsonObject.getInteger("projectId")); + Project project = projectService.getProject(jsonObject.getInteger(PROJECT_ID)); - projectBudgetService.saveBudgetPlanDetail(project, detailList); + projectBudgetService.saveBudgetPlanDetailTemp(project, detailList); return ResponseMsg.buildSuccessMsg("成功"); } @@ -426,7 +428,7 @@ public class ProjectController extends BaseController { */ @RequestMapping("/taskRecords/{projectId}") public String taskRecords(@PathVariable int projectId, Map model) { - model.put("projectId", projectId); + model.put(PROJECT_ID, projectId); List list = projectTaskRecordService.list(projectId); if (list != null && !list.isEmpty()) { model.put("list", list); @@ -452,7 +454,7 @@ public class ProjectController extends BaseController { * 流程实列图片 */ @RequestMapping("/procInsPng/{projectId}") - public void png(HttpServletResponse response, @PathVariable("projectId") int projectId) throws Exception { + public void png(HttpServletResponse response, @PathVariable(PROJECT_ID) int projectId) throws Exception { List relationList = projectInstanceRelationRepository.findByProjectIdOrderByCreateTimeDesc(projectId); if (relationList == null || relationList.isEmpty()) { return; @@ -499,7 +501,7 @@ public class ProjectController extends BaseController { { id:22, pId:2, name:"随意勾选 2-2", open:true}, { id:23, pId:2, name:"随意勾选 2-3"}*/ JSONObject jsonObject = JSON.parseObject(body); - Integer projectId = jsonObject.getInteger("projectId"); + Integer projectId = jsonObject.getInteger(PROJECT_ID); JSONArray array = jsonObject.getJSONArray("ids"); String[] ids = new String[array.size()]; for (int i = 0; i < array.size(); i++) { diff --git a/src/main/java/cn/palmte/work/model/ProjectBudgetCostDetailTemp.java b/src/main/java/cn/palmte/work/model/ProjectBudgetCostDetailTemp.java new file mode 100644 index 0000000..70a4949 --- /dev/null +++ b/src/main/java/cn/palmte/work/model/ProjectBudgetCostDetailTemp.java @@ -0,0 +1,25 @@ +package cn.palmte.work.model; + + +import javax.persistence.Entity; +import javax.persistence.Table; + +/** + * 项目预算成本明细临时表 + */ +@Entity +@Table(name = "project_budget_cost_detail_temp") +public class ProjectBudgetCostDetailTemp extends ProjectBudgetCostDetail{ + public ProjectBudgetCostDetail toProjectBudgetCostDetail(){ + ProjectBudgetCostDetail detail = new ProjectBudgetCostDetail(); + detail.setProjectId(getProjectId()); + detail.setType(getType()); + detail.setCategory(getCategory()); + detail.setName(getName()); + detail.setUnit(getUnit()); + detail.setAmount(getAmount()); + detail.setPrice(getPrice()); + detail.setTaxRate(getTaxRate()); + return detail; + } +} \ No newline at end of file diff --git a/src/main/java/cn/palmte/work/model/ProjectBudgetCostDetailTempRepository.java b/src/main/java/cn/palmte/work/model/ProjectBudgetCostDetailTempRepository.java new file mode 100644 index 0000000..e221179 --- /dev/null +++ b/src/main/java/cn/palmte/work/model/ProjectBudgetCostDetailTempRepository.java @@ -0,0 +1,9 @@ +package cn.palmte.work.model; + +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface ProjectBudgetCostDetailTempRepository extends JpaRepository { + List findAllByProjectIdEquals(int id); +} diff --git a/src/main/java/cn/palmte/work/model/ProjectBudgetCostProjectManageDetailTemp.java b/src/main/java/cn/palmte/work/model/ProjectBudgetCostProjectManageDetailTemp.java new file mode 100644 index 0000000..bbd172d --- /dev/null +++ b/src/main/java/cn/palmte/work/model/ProjectBudgetCostProjectManageDetailTemp.java @@ -0,0 +1,27 @@ +package cn.palmte.work.model; + + +import javax.persistence.*; + +/** + * 项目预算项目管理成本明细临时表 + */ +@Entity +@Table(name = "project_budget_cost_project_manage_detail_temp") +public class ProjectBudgetCostProjectManageDetailTemp extends ProjectBudgetCostProjectManageDetail{ + public ProjectBudgetCostProjectManageDetail toProjectBudgetCostProjectManageDetail(){ + ProjectBudgetCostProjectManageDetail detail = new ProjectBudgetCostProjectManageDetail(); + detail.setProjectId(getProjectId()); + detail.setType(getType()); + detail.setName(getName()); + detail.setDetail(getDetail()); + detail.setUnit(getUnit()); + detail.setAmount(getAmount()); + detail.setPrice(getPrice()); + detail.setPredictMethod(getPredictMethod()); + detail.setPredictWhy(getPredictWhy()); + detail.setRemark(getRemark()); + detail.setDeletable(getDeletable()); + return detail; + } +} \ No newline at end of file diff --git a/src/main/java/cn/palmte/work/model/ProjectBudgetCostProjectManageDetailTempRepository.java b/src/main/java/cn/palmte/work/model/ProjectBudgetCostProjectManageDetailTempRepository.java new file mode 100644 index 0000000..4184611 --- /dev/null +++ b/src/main/java/cn/palmte/work/model/ProjectBudgetCostProjectManageDetailTempRepository.java @@ -0,0 +1,9 @@ +package cn.palmte.work.model; + +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface ProjectBudgetCostProjectManageDetailTempRepository extends JpaRepository { + List findAllByProjectIdEquals(int id); +} diff --git a/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailTemp.java b/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailTemp.java new file mode 100644 index 0000000..45e8cfa --- /dev/null +++ b/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailTemp.java @@ -0,0 +1,23 @@ +package cn.palmte.work.model; + +import javax.persistence.Entity; +import javax.persistence.Table; + +/** + * 项目预算收入明细临时表 + */ +@Entity +@Table(name = "project_budget_income_detail_temp") +public class ProjectBudgetIncomeDetailTemp extends ProjectBudgetIncomeDetail{ + public ProjectBudgetIncomeDetail toProjectBudgetIncomeDetail(){ + ProjectBudgetIncomeDetail projectBudgetIncomeDetail = new ProjectBudgetIncomeDetail(); + projectBudgetIncomeDetail.setProjectId(getProjectId()); + projectBudgetIncomeDetail.setName(getName()); + projectBudgetIncomeDetail.setType(getType()); + projectBudgetIncomeDetail.setUnit(getUnit()); + projectBudgetIncomeDetail.setAmount(getAmount()); + projectBudgetIncomeDetail.setPrice(getPrice()); + projectBudgetIncomeDetail.setTaxRate(getTaxRate()); + return projectBudgetIncomeDetail; + } +} \ No newline at end of file diff --git a/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailTempRepository.java b/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailTempRepository.java new file mode 100644 index 0000000..1d9bb5c --- /dev/null +++ b/src/main/java/cn/palmte/work/model/ProjectBudgetIncomeDetailTempRepository.java @@ -0,0 +1,9 @@ +package cn.palmte.work.model; + +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +public interface ProjectBudgetIncomeDetailTempRepository extends JpaRepository { + List findAllByProjectIdEquals(int id); +} diff --git a/src/main/java/cn/palmte/work/model/ProjectBudgetPlanDetailTemp.java b/src/main/java/cn/palmte/work/model/ProjectBudgetPlanDetailTemp.java new file mode 100644 index 0000000..098133c --- /dev/null +++ b/src/main/java/cn/palmte/work/model/ProjectBudgetPlanDetailTemp.java @@ -0,0 +1,30 @@ +package cn.palmte.work.model; + +import javax.persistence.*; + +/** + * 资金计划明细临时表 + */ +@Entity +@Table(name = "project_budget_plan_detail_temp") +public class ProjectBudgetPlanDetailTemp extends ProjectBudgetPlanDetail{ + public ProjectBudgetPlanDetail toProjectBudgetPlanDetail(){ + ProjectBudgetPlanDetail projectBudgetPlanDetail = new ProjectBudgetPlanDetail(); + projectBudgetPlanDetail.setProjectId(getProjectId()); + projectBudgetPlanDetail.setMonth(getMonth()); + projectBudgetPlanDetail.setDeviceCost(getDeviceCost()); + projectBudgetPlanDetail.setEngineerCost(getEngineerCost()); + projectBudgetPlanDetail.setProjectManageCost(getProjectManageCost()); + projectBudgetPlanDetail.setEarnestMoneyCost(getEarnestMoneyCost()); + projectBudgetPlanDetail.setTotalCost(getTotalCost()); + projectBudgetPlanDetail.setSaleIncome(getSaleIncome()); + projectBudgetPlanDetail.setEarnestMoneyIncome(getEarnestMoneyIncome()); + projectBudgetPlanDetail.setTotalIncome(getTotalIncome()); + projectBudgetPlanDetail.setFundBalance(getFundBalance()); + projectBudgetPlanDetail.setUnderwrittenTaxRate(getUnderwrittenTaxRate()); + projectBudgetPlanDetail.setCapitalInterest(getCapitalInterest()); + projectBudgetPlanDetail.setUnderwrittenPlan(getUnderwrittenPlan()); + projectBudgetPlanDetail.setRepaymentPlan(getRepaymentPlan()); + return projectBudgetPlanDetail; + } +} \ No newline at end of file diff --git a/src/main/java/cn/palmte/work/model/ProjectBudgetPlanDetailTempRepository.java b/src/main/java/cn/palmte/work/model/ProjectBudgetPlanDetailTempRepository.java new file mode 100644 index 0000000..f91d8cc --- /dev/null +++ b/src/main/java/cn/palmte/work/model/ProjectBudgetPlanDetailTempRepository.java @@ -0,0 +1,13 @@ +package cn.palmte.work.model; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import java.util.List; + +public interface ProjectBudgetPlanDetailTempRepository extends JpaRepository { + List findAllByProjectIdEquals(int id); + + @Query(value = "select * from project_budget_plan_detail_temp where project_id in ?1", nativeQuery = true) + List findAllByProjectIds(List projectInt); +} diff --git a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java index 2d75f44..84cd043 100644 --- a/src/main/java/cn/palmte/work/service/ProjectBudgetService.java +++ b/src/main/java/cn/palmte/work/service/ProjectBudgetService.java @@ -28,12 +28,20 @@ public class ProjectBudgetService { @Autowired private ProjectBudgetIncomeDetailRepository projectBudgetIncomeDetailRepository; @Autowired + private ProjectBudgetIncomeDetailTempRepository projectBudgetIncomeDetailTempRepository; + @Autowired private ProjectBudgetCostDetailRepository projectBudgetCostDetailRepository; @Autowired + private ProjectBudgetCostDetailTempRepository projectBudgetCostDetailTempRepository; + @Autowired private ProjectBudgetCostProjectManageDetailRepository projectBudgetCostProjectManageDetailRepository; @Autowired + private ProjectBudgetCostProjectManageDetailTempRepository projectBudgetCostProjectManageDetailTempRepository; + @Autowired private ProjectBudgetPlanDetailRepository projectBudgetPlanDetailRepository; @Autowired + private ProjectBudgetPlanDetailTempRepository projectBudgetPlanDetailTempRepository; + @Autowired private ProjectInstanceService projectInstanceService; @Autowired private ActTaskDefService actTaskDefService; @@ -321,6 +329,12 @@ public class ProjectBudgetService { projectBudgetIncomeDetailRepository.deleteInBatch(incomeDetails); } } + public void clearBudgetIncomeDetailTemp(Project project){ + List incomeDetails = projectBudgetIncomeDetailTempRepository.findAllByProjectIdEquals(project.getId()); + if(CollectionUtil.isNotEmpty(incomeDetails)){ + projectBudgetIncomeDetailTempRepository.deleteInBatch(incomeDetails); + } + } /** * 保存项目的收入明细 @@ -335,6 +349,17 @@ public class ProjectBudgetService { projectBudgetIncomeDetailRepository.save(detailList); } } + @Transactional(rollbackFor = RuntimeException.class) + public void saveBudgetIncomeDetailTemp(Project project, List detailList){ + clearBudgetIncomeDetailTemp(project); + if(CollectionUtil.isNotEmpty(detailList)){ + for (ProjectBudgetIncomeDetailTemp projectBudgetIncomeDetail : detailList) { + projectBudgetIncomeDetail.setProjectId(project.getId()); + } + projectBudgetIncomeDetailTempRepository.save(detailList); + } + + } /** * 获取项目的收入明细 @@ -351,6 +376,12 @@ public class ProjectBudgetService { projectBudgetCostDetailRepository.deleteInBatch(costDetails); } } + public void clearBudgetCostDetailTemp(Project project){ + List costDetails = projectBudgetCostDetailTempRepository.findAllByProjectIdEquals(project.getId()); + if(CollectionUtil.isNotEmpty(costDetails)){ + projectBudgetCostDetailTempRepository.deleteInBatch(costDetails); + } + } /** * 保存项目的成本明细 @@ -366,6 +397,17 @@ public class ProjectBudgetService { projectBudgetCostDetailRepository.save(detailList); } } + @Transactional(rollbackFor = RuntimeException.class) + public void saveBudgetCostDetailTemp(Project project, List detailList){ + clearBudgetCostDetailTemp(project); + + if(CollectionUtil.isNotEmpty(detailList)){ + for (ProjectBudgetCostDetailTemp projectBudgetCostDetail : detailList) { + projectBudgetCostDetail.setProjectId(project.getId()); + } + projectBudgetCostDetailTempRepository.save(detailList); + } + } /** * 获取项目的成本明细 @@ -382,6 +424,12 @@ public class ProjectBudgetService { projectBudgetCostProjectManageDetailRepository.deleteInBatch(costDetails); } } + public void clearBudgetCostProjectManageDetailTemp(Project project){ + List costDetails = projectBudgetCostProjectManageDetailTempRepository.findAllByProjectIdEquals(project.getId()); + if(CollectionUtil.isNotEmpty(costDetails)){ + projectBudgetCostProjectManageDetailTempRepository.deleteInBatch(costDetails); + } + } /** * 保存项目的项目管理成本明细 @@ -396,6 +444,16 @@ public class ProjectBudgetService { projectBudgetCostProjectManageDetailRepository.save(detailList); } } + @Transactional(rollbackFor = RuntimeException.class) + public void saveBudgetCostProjectManageDetailTemp(Project project, List detailList){ + clearBudgetCostProjectManageDetailTemp(project); + if(CollectionUtil.isNotEmpty(detailList)){ + for (ProjectBudgetCostProjectManageDetailTemp projectBudgetCostProjectManageDetail : detailList) { + projectBudgetCostProjectManageDetail.setProjectId(project.getId()); + } + projectBudgetCostProjectManageDetailTempRepository.save(detailList); + } + } /** * 获取项目管理明细 @@ -435,6 +493,12 @@ public class ProjectBudgetService { projectBudgetPlanDetailRepository.deleteInBatch(costDetails); } } + public void clearBudgetPlanDetailTemp(Project project){ + List costDetails = projectBudgetPlanDetailTempRepository.findAllByProjectIdEquals(project.getId()); + if(CollectionUtil.isNotEmpty(costDetails)){ + projectBudgetPlanDetailTempRepository.deleteInBatch(costDetails); + } + } /** * 保存项目的资金计划明细 @@ -450,6 +514,17 @@ public class ProjectBudgetService { projectBudgetPlanDetailRepository.save(detailList); } } + @Transactional(rollbackFor = RuntimeException.class) + public void saveBudgetPlanDetailTemp(Project project, List detailList){ + clearBudgetPlanDetailTemp(project); + if(CollectionUtil.isNotEmpty(detailList)){ + for (ProjectBudgetPlanDetailTemp projectBudgetPlanDetail : detailList) { + projectBudgetPlanDetail.setProjectId(project.getId()); + projectBudgetPlanDetail.setUnderwrittenTaxRate(project.getUnderwrittenTaxRate()); + } + projectBudgetPlanDetailTempRepository.save(detailList); + } + } /** * 获取资金计划数据 @@ -553,7 +628,7 @@ public class ProjectBudgetService { ProjectBudgetPlanDetail projectBudgetPlanDetail = new ProjectBudgetPlanDetail(); - projectBudgetPlanDetail.setMonth("合计"); + projectBudgetPlanDetail.setMonth("数据代入"); projectBudgetPlanDetail.setDeviceCost(deviceCost); projectBudgetPlanDetail.setEngineerCost(engineerCost); projectBudgetPlanDetail.setProjectManageCost(projectManageCost); @@ -707,6 +782,56 @@ public class ProjectBudgetService { //清空重新保存概算信息 clearBudget(p); saveBudget(p, budgetBean); + + clearBudgetDetail(p); + saveBudgetDetail(p); return p; } + + private void saveBudgetDetail(Project p) { + //临时表中始终是最新的详情,不管是本次修改还是以前保持的 + //收入明细 + List projectBudgetIncomeDetailTemps = projectBudgetIncomeDetailTempRepository.findAllByProjectIdEquals(p.getId()); + if(CollectionUtil.isNotEmpty(projectBudgetIncomeDetailTemps)){ + List incomeDetails = projectBudgetIncomeDetailTemps.stream() + .map(ProjectBudgetIncomeDetailTemp::toProjectBudgetIncomeDetail) + .collect(Collectors.toList()); + projectBudgetIncomeDetailRepository.save(incomeDetails); + } + //成本明细 + List projectBudgetCostDetailTemps = projectBudgetCostDetailTempRepository.findAllByProjectIdEquals(p.getId()); + if(CollectionUtil.isNotEmpty(projectBudgetCostDetailTemps)){ + List costDetails = projectBudgetCostDetailTemps.stream() + .map(ProjectBudgetCostDetailTemp::toProjectBudgetCostDetail) + .collect(Collectors.toList()); + projectBudgetCostDetailRepository.save(costDetails); + } + //项目管理明细 + List projectBudgetCostProjectManageDetailTemps = projectBudgetCostProjectManageDetailTempRepository.findAllByProjectIdEquals(p.getId()); + if(CollectionUtil.isNotEmpty(projectBudgetCostProjectManageDetailTemps)){ + List costProjectManageDetails = projectBudgetCostProjectManageDetailTemps.stream() + .map(ProjectBudgetCostProjectManageDetailTemp::toProjectBudgetCostProjectManageDetail) + .collect(Collectors.toList()); + projectBudgetCostProjectManageDetailRepository.save(costProjectManageDetails); + } + //资金计划明细 + List projectBudgetPlanDetailTemps = projectBudgetPlanDetailTempRepository.findAllByProjectIdEquals(p.getId()); + if(CollectionUtil.isNotEmpty(projectBudgetPlanDetailTemps)){ + List budgetPlanDetails = projectBudgetPlanDetailTemps.stream() + .map(ProjectBudgetPlanDetailTemp::toProjectBudgetPlanDetail) + .collect(Collectors.toList()); + projectBudgetPlanDetailRepository.save(budgetPlanDetails); + } + } + + private void clearBudgetDetail(Project p) { + //收入明细 + clearBudgetIncomeDetail(p); + //成本明细 + clearBudgetCostDetail(p); + //项目管理明细 + clearBudgetCostProjectManageDetail(p); + //资金计划明细 + clearBudgetPlanDetail(p); + } }