diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java index b2b163652..382b570c0 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLawsInventoryEOController.java @@ -472,4 +472,25 @@ public class ProjectLawsInventoryEOController extends JeroController updateFlowInfoByProjectLibraryIds(@RequestParam("projectLibraryIds") String projectLibraryIds){ return this.projectLawsInventoryEOService.updateFlowInfoByProjectLibraryIds(projectLibraryIds); } + + @AutoLog(value = "项目库-法规清单表-studio发布") + @ApiOperation(value="项目库-法规清单表-studio发布", notes="项目库-法规清单表-studio发布") + @PostMapping(value = "/studioPublish") + public Result studioPublish(@RequestBody JSONObject json) { + return this.projectLawsInventoryEOService.studioPublish(json); + } + + @AutoLog(value = "项目库-法规清单表-studio撤回") + @ApiOperation(value="项目库-法规清单表-studio撤回", notes="项目库-法规清单表-studio撤回") + @PostMapping(value = "/studioWithdrew") + public Result studioWithdrew(@RequestBody JSONObject json) { + return this.projectLawsInventoryEOService.studioWithdrew(json); + } + + @AutoLog(value = "项目库-法规清单表-法规工程师退回") + @ApiOperation(value="项目库-法规清单表-法规工程师退回", notes="项目库-法规清单表-法规工程师退回") + @PostMapping(value = "/regulationOwnerReturned") + public Result regulationOwnerReturned(@RequestBody JSONObject json) { + return this.projectLawsInventoryEOService.regulationOwnerReturned(json); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java index 112b44948..859ac9661 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLawsInventoryEOService.java @@ -161,4 +161,25 @@ public interface IProjectLawsInventoryEOService extends IService taskUrg(ProjectTaskUrgVo projectTaskUrgVo); Result updateFlowInfoByProjectLibraryIds(String projectLibraryIds); + + /** + * studio发布,启动清单确认流程 + * @param json + * @return + */ + Result studioPublish(JSONObject json); + + /** + * studio撤回 + * @param json + * @return + */ + Result studioWithdrew(JSONObject json); + + /** + * 法规工程师退回 + * @param json + * @return + */ + Result regulationOwnerReturned(JSONObject json); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java index 7cec62dd9..4f98a18dd 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLawsInventoryEOServiceImpl.java @@ -1665,7 +1665,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl().success("操作成功!"); } + @Override + public Result studioPublish(JSONObject json) { + String projectLibraryId = json.getString("projectLibraryId"); + String cut = json.getString("cut"); + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 + String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 + + // studio信息 + SysUser studioUserInfo = this.sysUserMapper.selectOne( + new QueryWrapper().lambda().eq(SysUser::getId, projectLibraryBase.getStudioEngineer()) + ); + + String ids = json.getString("ids"); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + //清单确认截止时间 + String inventoryAffirmDueDate = json.getString("inventoryAffirmDueDate"); + Date endTime = new Date(); + try { + endTime = sdf.parse(inventoryAffirmDueDate); + } catch (ParseException e) { + e.printStackTrace(); + } + + QueryWrapper queryWrapper = new QueryWrapper<>(); + if(StringUtils.isNotEmpty(ids)){ + queryWrapper.lambda().in(ProjectLawsInventoryEO::getId, Arrays.asList(ids.split(","))); + } + queryWrapper.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId); + List projectLawsInventoryEOS = this.baseMapper.selectList(queryWrapper); + + List userIdList = new ArrayList<>(); + List processInfoDetailEOList = new ArrayList<>(); + + for (ProjectLawsInventoryEO projectLawsInventoryEO : projectLawsInventoryEOS) { + //未发起或拒绝 可以发起清单确认 + boolean checkStatus = (StringUtils.equals(projectLawsInventoryEO.getDesignFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()) + ||StringUtils.equals(projectLawsInventoryEO.getVerifyFlowStatus(),ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue())); + //如果该数据的法规工程师不为空 + boolean checkUser = (StringUtils.isNotEmpty(projectLawsInventoryEO.getRegulationOwnerId())); + if(checkStatus && checkUser){ + if(StringUtils.equals(projectLawsInventoryEO.getDesignFlowStatus(), ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue())){ + projectLawsInventoryEO.setDesignFlowStatus(ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()); + } + if(StringUtils.equals(projectLawsInventoryEO.getVerifyFlowStatus(), ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue())){ + projectLawsInventoryEO.setVerifyFlowStatus(ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue()); + } + + userIdList.add(projectLawsInventoryEO.getRegulationOwnerId()); + + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setProjectLawsInventoryId(projectLawsInventoryEO.getId()); + processInfoDetailEO.setUserId(projectLawsInventoryEO.getRegulationOwnerId()); + processInfoDetailEO.setTaskDefinitionKey(InventoryAffirmNodeEnum.REGULATION_OWNER_AUDIT.getKey()); + processInfoDetailEO.setEndTime(endTime); + processInfoDetailEO.setCreateTime(new Date()); + processInfoDetailEO.setCreateBy(currentUser.getId()); + processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue()); + + processInfoDetailEOList.add(processInfoDetailEO); + } + } + + this.updateBatchById(projectLawsInventoryEOS); + + ProcessInfoEO processInfoEO = new ProcessInfoEO(); + this.addProcessInfo(processInfoEO,projectLibraryId,endTime); + this.addProcessInfoDetail(processInfoEO.getId(),processInfoDetailEOList,endTime); + return Result.OK("发起清单确认成功!"); + } + + @Override + public Result studioWithdrew(JSONObject json) { + String projectLibraryId = json.getString("projectLibraryId"); + String cut = json.getString("cut"); + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 + String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 + + // studio信息 + SysUser studioUserInfo = this.sysUserMapper.selectOne( + new QueryWrapper().lambda().eq(SysUser::getId, projectLibraryBase.getStudioEngineer()) + ); + + String ids = json.getString("ids"); + QueryWrapper queryWrapper = new QueryWrapper<>(); + if(StringUtils.isNotEmpty(ids)){ + queryWrapper.lambda().in(ProjectLawsInventoryEO::getId, Arrays.asList(ids.split(","))); + } + queryWrapper.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId); + List projectLawsInventoryEOS = this.baseMapper.selectList(queryWrapper); + for (ProjectLawsInventoryEO projectLawsInventoryEO : projectLawsInventoryEOS) { + if(StringUtils.equals(projectLawsInventoryEO.getDesignFlowStatus(), ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())){ + projectLawsInventoryEO.setDesignFlowStatus(ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()); + } + if(StringUtils.equals(projectLawsInventoryEO.getVerifyFlowStatus(), ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())){ + projectLawsInventoryEO.setVerifyFlowStatus(ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()); + } + } + + this.updateBatchById(projectLawsInventoryEOS); + + return Result.OK("撤回成功!"); + } + + @Override + public Result regulationOwnerReturned(JSONObject json) { + String projectLibraryId = json.getString("projectLibraryId"); + String cut = json.getString("cut"); + LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId); + String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 + String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 + + // studio信息 + SysUser studioUserInfo = this.sysUserMapper.selectOne( + new QueryWrapper().lambda().eq(SysUser::getId, projectLibraryBase.getStudioEngineer()) + ); + + String ids = json.getString("ids"); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + if(StringUtils.isNotEmpty(ids)){ + queryWrapper.lambda().in(ProjectLawsInventoryEO::getId, Arrays.asList(ids.split(","))); + } + queryWrapper.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId); + List projectLawsInventoryEOS = this.baseMapper.selectList(queryWrapper); + for (ProjectLawsInventoryEO projectLawsInventoryEO : projectLawsInventoryEOS) { + if(StringUtils.equals(projectLawsInventoryEO.getDesignFlowStatus(), ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())){ + projectLawsInventoryEO.setDesignFlowStatus(ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()); + } + if(StringUtils.equals(projectLawsInventoryEO.getVerifyFlowStatus(), ComplianceFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())){ + projectLawsInventoryEO.setVerifyFlowStatus(ComplianceFlowStatusEnum.LIST_TO_BE_RELEASED.getValue()); + } + } + + this.updateBatchById(projectLawsInventoryEOS); + + return Result.OK("退回成功!"); + } + }