From 6052826d5ec6b81f42dc06606190137e2df4aa24 Mon Sep 17 00:00:00 2001 From: gjh <1421wake> Date: Wed, 2 Apr 2025 17:10:31 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=BC=96=E8=BE=91=E9=87=91=E9=A2=9D=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E4=BF=AE=E6=94=B9=202.=E5=8F=96=E6=B6=88=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=E6=97=B6=E9=9B=86=E4=B8=AD=E6=A0=B8=E9=AA=8C=E9=99=90?= =?UTF-8?q?=E5=88=B6,=E4=BD=86=E4=B8=8D=E4=BF=AE=E6=94=B9=E5=8E=9F?= =?UTF-8?q?=E6=9C=AC=E6=A0=B8=E9=AA=8C=E4=B9=8B=E5=89=8D=E7=9A=84=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=203.=E7=AC=AC=E4=B8=80=E6=AC=A1=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E8=AE=BE=E7=BD=AEupdate=5Fflag=20=E4=B8=BA0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../huzhou/controller/TestController.java | 84 ++++++++++-- .../modules/huzhou/dto/FieldInfoDTO.java | 11 ++ .../IHuzhouFieldchangehistoryService.java | 2 + .../service/IHuzhouProjectinfoService.java | 2 + .../HuzhouFieldchangehistoryServiceImpl.java | 79 ++++++++++- .../impl/HuzhouPlaninfoServiceImpl.java | 129 ++++++++++++++---- .../impl/HuzhouProjectinfoServiceImpl.java | 21 ++- 7 files changed, 287 insertions(+), 41 deletions(-) create mode 100644 huzhou/src/main/java/com/easy/admin/modules/huzhou/dto/FieldInfoDTO.java diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/TestController.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/TestController.java index 64ddfb4..72a8872 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/TestController.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/controller/TestController.java @@ -8,15 +8,11 @@ import com.easy.admin.auth.model.SysUser; import com.easy.admin.common.api.vo.Result; import com.easy.admin.common.core.exception.EasyException; import com.easy.admin.modules.huzhou.dao.HuzhouProjectinfoMoneyMapper; -import com.easy.admin.modules.huzhou.entity.HuzhouContractinfo; -import com.easy.admin.modules.huzhou.entity.HuzhouPlaninfo; -import com.easy.admin.modules.huzhou.entity.HuzhouProjectinfoMoney; -import com.easy.admin.modules.huzhou.entity.ProjectManager; +import com.easy.admin.modules.huzhou.dao.HuzhouSubProjectinfoMapper; +import com.easy.admin.modules.huzhou.dto.FieldInfoDTO; +import com.easy.admin.modules.huzhou.entity.*; import com.easy.admin.modules.huzhou.listener.ProjectManagerListener; -import com.easy.admin.modules.huzhou.service.IHuzhouContractinfoService; -import com.easy.admin.modules.huzhou.service.IHuzhouPlaninfoHistoryService; -import com.easy.admin.modules.huzhou.service.IHuzhouPlaninfoService; -import com.easy.admin.modules.huzhou.service.IHuzhouProjectinfoService; +import com.easy.admin.modules.huzhou.service.*; import com.easy.admin.util.ShiroUtil; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; @@ -53,6 +49,10 @@ public class TestController { private IHuzhouPlaninfoHistoryService planinfoHistoryService; @Autowired private IHuzhouProjectinfoService projectinfoService; + @Autowired + private IHuzhouFieldchangehistoryService fieldchangehistoryService; + @Autowired + private HuzhouSubProjectinfoMapper subProjectinfoMapper; @GetMapping("/getContractInfo") public Result getProjectContractInfo(String projectId,String taskName){ @@ -212,4 +212,72 @@ public class TestController { } } + + + @GetMapping("/updateMoney") + public Result updateMoney(String fieldChangeGroupid){ + List fieldChangeList = fieldchangehistoryService.getFieldchangeByGroupid(fieldChangeGroupid); + String projectId = fieldChangeList.get(0).getProjectid(); + + List fieldInfoDTOList = new ArrayList<>(); + for (HuzhouFieldchangehistory item : fieldChangeList) { + FieldInfoDTO targetDemo = new FieldInfoDTO(item.getFieldValue(), item.getNewvalue()); + fieldInfoDTOList.add(targetDemo); + } + fieldInfoDTOList.forEach(item -> { + log.info("修改后的计划信息为{}-->{}",item.getFieldValue(),item.getNewvalue()); + }); + + // 初始化一个Map来存储所有的Money值 + Map moneyValues = new HashMap<>(); + List keys = Arrays.asList("totalMoney", "centralMoney", "provincialMoney", + "cityMoney", "countyMoney", "selfMoney", + "payamount2023Money", "payamount2024Money", + "payamount2025Money"); + keys.forEach(key -> moneyValues.put(key, null)); + + // 使用Stream API进行处理 + Map finalMoneyValues = fieldInfoDTOList.stream() + .filter(item -> keys.contains(item.getFieldValue())) + .collect(Collectors.toMap( + FieldInfoDTO::getFieldValue, + FieldInfoDTO::getNewvalue + )); + + // 更新moneyValues Map + moneyValues.putAll(finalMoneyValues); + moneyValues.forEach((key, value) -> log.info(key + ": " + value)); + + HuzhouProjectinfo projectInfo = projectinfoService.getById(projectId); + log.info("projectInfo:{}",projectInfo); + + if (null != projectInfo) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(HuzhouProjectinfo::getId, projectId); + updateWrapper.set(HuzhouProjectinfo::getTotalMoney, finalMoneyValues.get("totalMoney")); + updateWrapper.set(HuzhouProjectinfo::getCentralMoney, finalMoneyValues.get("centralMoney")); + updateWrapper.set(HuzhouProjectinfo::getProvincialMoney, finalMoneyValues.get("provincialMoney")); + updateWrapper.set(HuzhouProjectinfo::getCityMoney,finalMoneyValues.get("cityMoney")); + updateWrapper.set(HuzhouProjectinfo::getCountyMoney, finalMoneyValues.get("countyMoney")); + updateWrapper.set(HuzhouProjectinfo::getSelfMoney, finalMoneyValues.get("selfMoney")); + updateWrapper.set(HuzhouProjectinfo::getPayamount2023Money, finalMoneyValues.get("payamount2023Money")); + updateWrapper.set(HuzhouProjectinfo::getPayamount2024Money, finalMoneyValues.get("payamount2024Money")); + updateWrapper.set(HuzhouProjectinfo::getPayamount2025Money, finalMoneyValues.get("payamount2025Money")); + projectinfoService.update(updateWrapper); + } else { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(HuzhouSubProjectinfo::getId, projectId); + updateWrapper.set(HuzhouSubProjectinfo::getTotalMoney, finalMoneyValues.get("totalMoney")); + updateWrapper.set(HuzhouSubProjectinfo::getCentralMoney, finalMoneyValues.get("centralMoney")); + updateWrapper.set(HuzhouSubProjectinfo::getProvincialMoney, finalMoneyValues.get("provincialMoney")); + updateWrapper.set(HuzhouSubProjectinfo::getCityMoney,finalMoneyValues.get("cityMoney")); + updateWrapper.set(HuzhouSubProjectinfo::getCountyMoney, finalMoneyValues.get("countyMoney")); + updateWrapper.set(HuzhouSubProjectinfo::getSelfMoney, finalMoneyValues.get("selfMoney")); + updateWrapper.set(HuzhouSubProjectinfo::getPayamount2023Money, finalMoneyValues.get("payamount2023Money")); + updateWrapper.set(HuzhouSubProjectinfo::getPayamount2024Money, finalMoneyValues.get("payamount2024Money")); + updateWrapper.set(HuzhouSubProjectinfo::getPayamount2025Money, finalMoneyValues.get("payamount2025Money")); + subProjectinfoMapper.update(null, updateWrapper); + } + return Result.OK("测试!"); + } } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/dto/FieldInfoDTO.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dto/FieldInfoDTO.java new file mode 100644 index 0000000..6c7574b --- /dev/null +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/dto/FieldInfoDTO.java @@ -0,0 +1,11 @@ +package com.easy.admin.modules.huzhou.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; + +@Data +@AllArgsConstructor +public class FieldInfoDTO { + private String fieldValue; + private String newvalue; +} diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouFieldchangehistoryService.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouFieldchangehistoryService.java index 38e51c7..0008c94 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouFieldchangehistoryService.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouFieldchangehistoryService.java @@ -35,4 +35,6 @@ public interface IHuzhouFieldchangehistoryService extends IService getFieldchangeByGroupid(String fieldChangeGroupid); int queryUpdateCount(String projectId); + + void updateMoney(String fieldChangeGroupid); } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java index 419991e..1699c5c 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/IHuzhouProjectinfoService.java @@ -233,6 +233,8 @@ public interface IHuzhouProjectinfoService extends IService { void modifyPlanFlag2ById(String projectId); + void modifyPlanFlag0ById(String projectId); + Boolean queryUpdatePlanFlagById(String projectId); diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouFieldchangehistoryServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouFieldchangehistoryServiceImpl.java index 89c7241..523bd40 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouFieldchangehistoryServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouFieldchangehistoryServiceImpl.java @@ -13,6 +13,7 @@ import com.easy.admin.common.core.exception.EasyException; import com.easy.admin.common.util.CommonUtils; import com.easy.admin.modules.huzhou.common.HuzhouCommonUtils; import com.easy.admin.modules.huzhou.dao.*; +import com.easy.admin.modules.huzhou.dto.FieldInfoDTO; import com.easy.admin.modules.huzhou.entity.*; import com.easy.admin.modules.huzhou.service.*; import com.easy.admin.modules.huzhou.vo.ProjectInfoAuthSelect; @@ -25,6 +26,7 @@ import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.task.Task; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -69,7 +71,12 @@ public class HuzhouFieldchangehistoryServiceImpl extends ServiceImpl fieldChangeList = fieldchangehistoryService.getFieldchangeByGroupid(fieldChangeGroupid); + String projectId = fieldChangeList.get(0).getProjectid(); + + List fieldInfoDTOList = new ArrayList<>(); + for (HuzhouFieldchangehistory item : fieldChangeList) { + FieldInfoDTO targetDemo = new FieldInfoDTO(item.getFieldValue(), item.getNewvalue()); + fieldInfoDTOList.add(targetDemo); + } + fieldInfoDTOList.forEach(item -> { + log.info("修改后的计划信息为{}-->{}",item.getFieldValue(),item.getNewvalue()); + }); + + // 初始化一个Map来存储所有的Money值 + Map moneyValues = new HashMap<>(); + List keys = Arrays.asList("totalMoney", "centralMoney", "provincialMoney", + "cityMoney", "countyMoney", "selfMoney", + "payamount2023Money", "payamount2024Money", + "payamount2025Money"); + keys.forEach(key -> moneyValues.put(key, null)); + + // 使用Stream API进行处理 + Map finalMoneyValues = fieldInfoDTOList.stream() + .filter(item -> keys.contains(item.getFieldValue())) + .collect(Collectors.toMap( + FieldInfoDTO::getFieldValue, + FieldInfoDTO::getNewvalue + )); + + // 更新moneyValues Map + moneyValues.putAll(finalMoneyValues); + moneyValues.forEach((key, value) -> log.info(key + ": " + value)); + + HuzhouProjectinfo projectInfo = projectinfoService.getById(projectId); + log.info("projectInfo:{}",projectInfo); + + if (null != projectInfo) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(HuzhouProjectinfo::getId, projectId); + updateWrapper.set(HuzhouProjectinfo::getTotalMoney, finalMoneyValues.get("totalMoney")); + updateWrapper.set(HuzhouProjectinfo::getCentralMoney, finalMoneyValues.get("centralMoney")); + updateWrapper.set(HuzhouProjectinfo::getProvincialMoney, finalMoneyValues.get("provincialMoney")); + updateWrapper.set(HuzhouProjectinfo::getCityMoney,finalMoneyValues.get("cityMoney")); + updateWrapper.set(HuzhouProjectinfo::getCountyMoney, finalMoneyValues.get("countyMoney")); + updateWrapper.set(HuzhouProjectinfo::getSelfMoney, finalMoneyValues.get("selfMoney")); + updateWrapper.set(HuzhouProjectinfo::getPayamount2023Money, finalMoneyValues.get("payamount2023Money")); + updateWrapper.set(HuzhouProjectinfo::getPayamount2024Money, finalMoneyValues.get("payamount2024Money")); + updateWrapper.set(HuzhouProjectinfo::getPayamount2025Money, finalMoneyValues.get("payamount2025Money")); + projectinfoService.update(updateWrapper); + } else { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(HuzhouSubProjectinfo::getId, projectId); + updateWrapper.set(HuzhouSubProjectinfo::getTotalMoney, finalMoneyValues.get("totalMoney")); + updateWrapper.set(HuzhouSubProjectinfo::getCentralMoney, finalMoneyValues.get("centralMoney")); + updateWrapper.set(HuzhouSubProjectinfo::getProvincialMoney, finalMoneyValues.get("provincialMoney")); + updateWrapper.set(HuzhouSubProjectinfo::getCityMoney,finalMoneyValues.get("cityMoney")); + updateWrapper.set(HuzhouSubProjectinfo::getCountyMoney, finalMoneyValues.get("countyMoney")); + updateWrapper.set(HuzhouSubProjectinfo::getSelfMoney, finalMoneyValues.get("selfMoney")); + updateWrapper.set(HuzhouSubProjectinfo::getPayamount2023Money, finalMoneyValues.get("payamount2023Money")); + updateWrapper.set(HuzhouSubProjectinfo::getPayamount2024Money, finalMoneyValues.get("payamount2024Money")); + updateWrapper.set(HuzhouSubProjectinfo::getPayamount2025Money, finalMoneyValues.get("payamount2025Money")); + subProjectinfoMapper.update(null, updateWrapper); + } + } + @Override public Page getFieldchangehistoryPageList(Page page, HuzhouProjectinfo projectinfo) { ProjectInfoAuthSelect projectInfoAuthSelect = CommonUtils.setGetProjectInfoAuth(projectinfo); diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java index a795631..6138cb6 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouPlaninfoServiceImpl.java @@ -710,7 +710,7 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl log.info("待新上传的计划阶段名称{}-->任务所处状态{}:",item.getTaskName(), item.getIsfinish())); + newPlanInfos.forEach(item -> log.info("待新上传的计划阶段名称:{}-->任务所处状态{}:",item.getTaskName(), item.getIsfinish())); } @@ -922,43 +922,97 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl hashMap = getPlanInfoListFromFile(file, projectid); boolean res = (boolean) hashMap.get("res"); - if(!res){ - throw new EasyException((String)hashMap.get("msg")); + if (!res) { + throw new EasyException((String) hashMap.get("msg")); } List huzhouPlaninfoArrayList = (ArrayList) hashMap.get("arr"); // 校验最后日期不能晚于25年底 checkExcelPlanLastLevelTime(huzhouPlaninfoArrayList); log.info("示范项目验收时间校验正确"); - // 深克隆备份Excel重点计划以供后续做差集操作 - List excelList = SerializationUtils.clone((ArrayList) hashMap.get("arr")); - // 未完成的项目则可以修改 - filterIsAllowModifyPlaninfo(projectid, huzhouPlaninfoArrayList); - - //修改项目计划会重新修改项目阶段类型 - projectinfoService.modifyStageById(projectid,"4"); - //保存历史记录 - List planinfoHistory = getListByProjectId(projectid); - planinfoHistoryService.savePlanInfoToHistory(planinfoHistory); - // 获取审批中和已完成的计划列表进行更新操作 - updatePlanForShenPiAndFinished(huzhouPlaninfoArrayList, excelList, planinfoHistory); - - //删除未开始 已完成 和审批中且taskLevel >= 1.7的项目 - removeByProjectIdMoreThanTaskLevel(projectid); - //将之前的分组id修改为最新的分组id - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.eq(HuzhouPlaninfo::getProjectId,projectid); - updateWrapper.set(HuzhouPlaninfo::getGroupId,huzhouPlaninfoArrayList.get(0).getGroupId()); - update(null,updateWrapper); - // 筛选掉项目立项阶段 - huzhouPlaninfoArrayList.removeIf(item -> "项目立项阶段".equals(item.getTaskName())); - saveBatch(huzhouPlaninfoArrayList); + if (huzhouPlaninfoArrayList.size() == 34) { + log.info("修改2000以上的项目计划采用不同的模板,并只修改未开始的节点!"); + + List excelList = SerializationUtils.clone((ArrayList) hashMap.get("arr")); + // 过滤掉 taskLevel 小于 1.7 的数据,并保留 taskLevel 等于 "1.10" 的记录 + List filteredList = excelList.stream() + .filter(item -> { + String taskLevelStr = item.getTaskLevel(); + try { + // 检查是否是需要保留的特殊值 + if ("1.10".equals(taskLevelStr)) { + return true; + } + + // 将taskLevel转换为BigDecimal进行比较 + BigDecimal taskLevel = new BigDecimal(taskLevelStr); + return taskLevel.compareTo(new BigDecimal("1.7")) >= 0; // 注意这里直接使用字符串"1.7"构造BigDecimal以避免浮点数精度问题 + } catch (NumberFormatException e) { + // 如果转换失败,可以选择处理异常或忽略这条记录 + throw new RuntimeException("无法将 taskLevel 转换为数字: " + taskLevelStr, e); + } + }) + .collect(Collectors.toList()); + excelList = filteredList; + excelList.forEach(item -> { + log.info("需要新增:{}-->{}", item.getTaskLevel(), item.getTaskName()); + }); + // 保存历史后删除 + List nowPlanInfoFromDb = getListByProjectId(projectid); + planinfoHistoryService.savePlanInfoToHistory(nowPlanInfoFromDb); + + // 集中核验的之后的计划都删除 + removeByProjectIdMoreThanTaskLevel(projectid); + // 特殊情况:删除1.10的未完成计划 因为现有平台只有一个项目是有1.10 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(HuzhouPlaninfo::getProjectId, projectid); + queryWrapper.eq(HuzhouPlaninfo::getTaskLevel, "1.10"); + queryWrapper.in(HuzhouPlaninfo::getIsfinish, "0"); + this.remove(queryWrapper); + // 将之前的分组id修改为最新的分组id + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(HuzhouPlaninfo::getProjectId, projectid); + wrapper.set(HuzhouPlaninfo::getGroupId, huzhouPlaninfoArrayList.get(0).getGroupId()); + update(null, wrapper); + saveBatch(excelList); + } else { + // 深克隆备份Excel重点计划以供后续做差集操作 + List excelList = SerializationUtils.clone((ArrayList) hashMap.get("arr")); + // 未完成的项目则可以修改 + filterIsAllowModifyPlaninfo(projectid, huzhouPlaninfoArrayList); + + //修改项目计划会重新修改项目阶段类型 + projectinfoService.modifyStageById(projectid, "4"); + //保存历史记录 + List planinfoHistory = getListByProjectId(projectid); + planinfoHistoryService.savePlanInfoToHistory(planinfoHistory); + // 获取审批中和已完成的计划列表进行更新操作 + updatePlanForShenPiAndFinished(huzhouPlaninfoArrayList, excelList, planinfoHistory); + + //删除未开始 已完成 和审批中且taskLevel >= 1.7的项目 + removeByProjectIdMoreThanTaskLevel(projectid); + //将之前的分组id修改为最新的分组id + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(HuzhouPlaninfo::getProjectId, projectid); + updateWrapper.set(HuzhouPlaninfo::getGroupId, huzhouPlaninfoArrayList.get(0).getGroupId()); + update(null, updateWrapper); + // 筛选掉项目立项阶段 + huzhouPlaninfoArrayList.removeIf(item -> "项目立项阶段".equals(item.getTaskName())); + huzhouPlaninfoArrayList.removeIf(item -> "可研报告初稿编制".equals(item.getTaskName())); + huzhouPlaninfoArrayList.removeIf(item -> "可研技术审查报告确认".equals(item.getTaskName())); + huzhouPlaninfoArrayList.removeIf(item -> "可研报告送审稿编制".equals(item.getTaskName())); + huzhouPlaninfoArrayList.removeIf(item -> "造价评估报告确认".equals(item.getTaskName())); + huzhouPlaninfoArrayList.removeIf(item -> "联合技术审查".equals(item.getTaskName())); + huzhouPlaninfoArrayList.removeIf(item -> "集中核验".equals(item.getTaskName())); + saveBatch(huzhouPlaninfoArrayList); + } } + WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment); //作废暂时不需要注释掉 // if("3".equals(flag)){ @@ -972,14 +1026,23 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(HuzhouPlaninfo::getProjectId,projectid); + List historyPlanInfoList = planinfoHistoryService.list(queryWrapper); + + if (historyPlanInfoList.size() > 0){ + projectinfoService.modifyPlanFlag2ById(projectid); + }else { + // 新增项目 + projectinfoService.modifyPlanFlag0ById(projectid); + } } @Override public void modifyPlaninfo(MultipartFile multipartFile, String projectid) throws Exception { //1.新增计划修改条件:集中核验完成之后到立项审批才允许修改计划 - checkCurrentTaskLevel(projectid); + //checkCurrentTaskLevel(projectid); // 解析项目计划文件 HashMap hashMap = getPlanInfoListFromFile(multipartFile, projectid); // res是true 表示项目计划文件没有问题,如果是false说明文件有问题,需要抛出异常 @@ -1065,6 +1128,12 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl "项目立项阶段".equals(item.getTaskName())); + planInfoList.removeIf(item -> "可研报告初稿编制".equals(item.getTaskName())); + planInfoList.removeIf(item -> "可研技术审查报告确认".equals(item.getTaskName())); + planInfoList.removeIf(item -> "可研报告送审稿编制".equals(item.getTaskName())); + planInfoList.removeIf(item -> "造价评估报告确认".equals(item.getTaskName())); + planInfoList.removeIf(item -> "联合技术审查".equals(item.getTaskName())); + planInfoList.removeIf(item -> "集中核验".equals(item.getTaskName())); // 10.批量新增 saveBatch(planInfoList); } diff --git a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java index d082084..02957cc 100644 --- a/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java +++ b/huzhou/src/main/java/com/easy/admin/modules/huzhou/service/impl/HuzhouProjectinfoServiceImpl.java @@ -2623,7 +2623,7 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(HuzhouSubProjectinfo::getId, projectId); - updateWrapper.set(HuzhouProjectinfo::getUpdatePlanFlag, "1"); + updateWrapper.set(HuzhouSubProjectinfo::getUpdatePlanFlag, "1"); subProjectinfoMapper.update(null, updateWrapper); } } @@ -2640,7 +2640,24 @@ public class HuzhouProjectinfoServiceImpl extends ServiceImpl updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.eq(HuzhouSubProjectinfo::getId, projectId); - updateWrapper.set(HuzhouProjectinfo::getUpdatePlanFlag, "2"); + updateWrapper.set(HuzhouSubProjectinfo::getUpdatePlanFlag, "2"); + subProjectinfoMapper.update(null, updateWrapper); + } + } + + @Override + public void modifyPlanFlag0ById(String projectId) { + HuzhouProjectinfo projectInfo = getById(projectId); + + if (null != projectInfo) { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(HuzhouProjectinfo::getId, projectId); + updateWrapper.set(HuzhouProjectinfo::getUpdatePlanFlag, "0"); + this.update(updateWrapper); + } else { + LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); + updateWrapper.eq(HuzhouSubProjectinfo::getId, projectId); + updateWrapper.set(HuzhouSubProjectinfo::getUpdatePlanFlag, "0"); subProjectinfoMapper.update(null, updateWrapper); } }