|
@ -533,7 +533,7 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper, |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@Override |
|
|
@Override |
|
|
public void removeByProjectId(String projectid) { |
|
|
public void removeByProjectIdMoreThanTaskLevel(String projectid) { |
|
|
LambdaQueryWrapper<HuzhouPlaninfo> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
LambdaQueryWrapper<HuzhouPlaninfo> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
queryWrapper.eq(HuzhouPlaninfo::getProjectId,projectid); |
|
|
queryWrapper.eq(HuzhouPlaninfo::getProjectId,projectid); |
|
|
// 使用 apply 方法加入自定义 SQL 语句进行 taskLevel 的数值比较
|
|
|
// 使用 apply 方法加入自定义 SQL 语句进行 taskLevel 的数值比较
|
|
@ -804,22 +804,42 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper, |
|
|
@Override |
|
|
@Override |
|
|
public void approvePlaninfo(MultipartFile file, String taskId, String flag, String projectid, String comment) throws Exception { |
|
|
public void approvePlaninfo(MultipartFile file, String taskId, String flag, String projectid, String comment) throws Exception { |
|
|
if(file!=null&&"1".equals(flag)){ |
|
|
if(file!=null&&"1".equals(flag)){ |
|
|
|
|
|
//增加文件修改条件:集中核验完成之后到立项审批才允许修改计划
|
|
|
|
|
|
checkCurrentTaskLevel(projectid); |
|
|
HashMap<String, Object> hashMap = getPlanInfoListFromFile(file, projectid); |
|
|
HashMap<String, Object> hashMap = getPlanInfoListFromFile(file, projectid); |
|
|
boolean res = (boolean) hashMap.get("res"); |
|
|
boolean res = (boolean) hashMap.get("res"); |
|
|
if(!res){ |
|
|
if(!res){ |
|
|
throw new EasyException((String)hashMap.get("msg")); |
|
|
throw new EasyException((String)hashMap.get("msg")); |
|
|
} |
|
|
} |
|
|
ArrayList<HuzhouPlaninfo> huzhouPlaninfoArrayList = (ArrayList<HuzhouPlaninfo>) hashMap.get("arr"); |
|
|
List<HuzhouPlaninfo> huzhouPlaninfoArrayList = (ArrayList<HuzhouPlaninfo>) hashMap.get("arr"); |
|
|
//检查List里面的内容是否支持修改,审批中或已完成无法修改
|
|
|
// 校验最后日期不能晚于25年底
|
|
|
String isAllow = IsAllowModifyPlaninfo(projectid,huzhouPlaninfoArrayList); |
|
|
checkExcelPlanLastLevelTime(huzhouPlaninfoArrayList); |
|
|
if(!"1".equals(isAllow)){ |
|
|
log.info("示范项目验收时间校验正确"); |
|
|
throw new EasyException(isAllow); |
|
|
|
|
|
|
|
|
// 深克隆备份Excel重点计划以供后续做差集操作
|
|
|
|
|
|
List<HuzhouPlaninfo> excelList = SerializationUtils.clone((ArrayList<HuzhouPlaninfo>) hashMap.get("arr")); |
|
|
|
|
|
// 未完成的项目则可以修改
|
|
|
|
|
|
String isAllow = IsAllowModifyPlaninfo(projectid, huzhouPlaninfoArrayList); |
|
|
|
|
|
if (!"1".equals(isAllow)) { |
|
|
|
|
|
throw new EasyException(isAllow); |
|
|
} |
|
|
} |
|
|
|
|
|
//修改项目计划会重新修改项目阶段类型
|
|
|
|
|
|
projectinfoService.modifyStageById(projectid,"4"); |
|
|
//保存历史记录
|
|
|
//保存历史记录
|
|
|
List<HuzhouPlaninfo> planinfoHistory = getListByProjectId(projectid); |
|
|
List<HuzhouPlaninfo> planinfoHistory = getListByProjectId(projectid); |
|
|
planinfoHistoryService.savePlanInfoToHistory(planinfoHistory); |
|
|
planinfoHistoryService.savePlanInfoToHistory(planinfoHistory); |
|
|
//删除原纪录
|
|
|
// 获取审批中和已完成的计划列表进行更新操作
|
|
|
removeByProjectId(projectid); |
|
|
updatePlanForShenPiAndFinished(huzhouPlaninfoArrayList, excelList, planinfoHistory); |
|
|
|
|
|
|
|
|
|
|
|
//删除未开始 已完成 和审批中且taskLevel >= 1.7的项目
|
|
|
|
|
|
removeByProjectIdMoreThanTaskLevel(projectid); |
|
|
|
|
|
//将之前的分组id修改为最新的分组id
|
|
|
|
|
|
LambdaUpdateWrapper<HuzhouPlaninfo> wrapper = new LambdaUpdateWrapper<>(); |
|
|
|
|
|
wrapper.eq(HuzhouPlaninfo::getProjectId,projectid); |
|
|
|
|
|
wrapper.set(HuzhouPlaninfo::getGroupId,huzhouPlaninfoArrayList.get(0).getGroupId()); |
|
|
|
|
|
update(null,wrapper); |
|
|
|
|
|
// 筛选掉项目立项阶段
|
|
|
|
|
|
huzhouPlaninfoArrayList.removeIf(item -> "项目立项阶段".equals(item.getTaskName())); |
|
|
saveBatch(huzhouPlaninfoArrayList); |
|
|
saveBatch(huzhouPlaninfoArrayList); |
|
|
} |
|
|
} |
|
|
WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment); |
|
|
WorkFlow workFlow = workflowService.approveProjectInfo(taskId, flag, comment); |
|
@ -842,13 +862,7 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper, |
|
|
public void modifyPlaninfo(MultipartFile multipartFile, String projectid) throws Exception { |
|
|
public void modifyPlaninfo(MultipartFile multipartFile, String projectid) throws Exception { |
|
|
|
|
|
|
|
|
//增加文件修改条件:集中核验完成之后到立项审批才允许修改计划
|
|
|
//增加文件修改条件:集中核验完成之后到立项审批才允许修改计划
|
|
|
LambdaQueryWrapper<HuzhouPlaninfo> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
checkCurrentTaskLevel(projectid); |
|
|
queryWrapper.eq(HuzhouPlaninfo::getProjectId,projectid); |
|
|
|
|
|
queryWrapper.eq(HuzhouPlaninfo::getTaskName,"集中核验"); |
|
|
|
|
|
queryWrapper.eq(HuzhouPlaninfo::getIsfinish,"2"); |
|
|
|
|
|
if ( this.list(queryWrapper).size()<1){ |
|
|
|
|
|
throw new EasyException("集中核验未完成,无法修改项目计划!"); |
|
|
|
|
|
} |
|
|
|
|
|
//解析项目计划文件
|
|
|
//解析项目计划文件
|
|
|
HashMap<String, Object> hashMap = getPlanInfoListFromFile(multipartFile, projectid); |
|
|
HashMap<String, Object> hashMap = getPlanInfoListFromFile(multipartFile, projectid); |
|
|
//res是true 表示项目计划文件没有问题,如果是false说明文件有问题,需要抛出异常
|
|
|
//res是true 表示项目计划文件没有问题,如果是false说明文件有问题,需要抛出异常
|
|
@ -877,7 +891,7 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper, |
|
|
updatePlanForShenPiAndFinished(huzhouPlaninfoArrayList, excelList, planinfoHistory); |
|
|
updatePlanForShenPiAndFinished(huzhouPlaninfoArrayList, excelList, planinfoHistory); |
|
|
|
|
|
|
|
|
//删除未开始 已完成 和审批中且taskLevel >= 1.7的项目
|
|
|
//删除未开始 已完成 和审批中且taskLevel >= 1.7的项目
|
|
|
removeByProjectId(projectid); |
|
|
removeByProjectIdMoreThanTaskLevel(projectid); |
|
|
//将之前的分组id修改为最新的分组id
|
|
|
//将之前的分组id修改为最新的分组id
|
|
|
LambdaUpdateWrapper<HuzhouPlaninfo> wrapper = new LambdaUpdateWrapper<>(); |
|
|
LambdaUpdateWrapper<HuzhouPlaninfo> wrapper = new LambdaUpdateWrapper<>(); |
|
|
wrapper.eq(HuzhouPlaninfo::getProjectId,projectid); |
|
|
wrapper.eq(HuzhouPlaninfo::getProjectId,projectid); |
|
@ -931,6 +945,16 @@ public class HuzhouPlaninfoServiceImpl extends ServiceImpl<HuzhouPlaninfoMapper, |
|
|
projectinfoService.modifyPlanFlag1ById(projectid); |
|
|
projectinfoService.modifyPlanFlag1ById(projectid); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void checkCurrentTaskLevel(String projectid) { |
|
|
|
|
|
LambdaQueryWrapper<HuzhouPlaninfo> queryWrapper = new LambdaQueryWrapper<>(); |
|
|
|
|
|
queryWrapper.eq(HuzhouPlaninfo::getProjectId, projectid); |
|
|
|
|
|
queryWrapper.eq(HuzhouPlaninfo::getTaskName,"集中核验"); |
|
|
|
|
|
queryWrapper.eq(HuzhouPlaninfo::getIsfinish,"2"); |
|
|
|
|
|
if ( this.list(queryWrapper).size()<1){ |
|
|
|
|
|
throw new EasyException("集中核验未完成,无法修改项目计划!"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
private void checkExcelPlanLastLevelTime(List<HuzhouPlaninfo> huzhouPlaninfoArrayList) { |
|
|
private void checkExcelPlanLastLevelTime(List<HuzhouPlaninfo> huzhouPlaninfoArrayList) { |
|
|
HuzhouPlaninfo targetElement = huzhouPlaninfoArrayList.stream() |
|
|
HuzhouPlaninfo targetElement = huzhouPlaninfoArrayList.stream() |
|
|
.filter(planInfo -> "示范项目验收阶段".equals(planInfo.getTaskName())) |
|
|
.filter(planInfo -> "示范项目验收阶段".equals(planInfo.getTaskName())) |
|
|