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 1fcf0cfda..7bfd3191f 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 @@ -512,4 +512,11 @@ public class ProjectLawsInventoryEOController extends JeroController updateFlowStatusBatch(@RequestBody JSONObject json) { return this.projectLawsInventoryEOService.updateFlowStatusBatch(json); } + + @AutoLog(value = "项目库-法规清单表-引用交付物") + @ApiOperation(value="项目库-法规清单表-引用交付物", notes="项目库-法规清单表-引用交付物") + @PostMapping(value = "/citeDeliverable") + public Result citeDeliverable(@RequestBody JSONObject json) { + return this.projectLawsInventoryEOService.citeDeliverable(json); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java index 537d5f671..f9dd65114 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java @@ -81,6 +81,8 @@ public enum OperatorTypeEnum { LAWS_INVENTORY_ENGINEERING_INTERFACE_PERSON_EXPEDITING("法规清单-工程接口人催办","lawsInventoryEngineeringInterfacePersonExpediting"), LAWS_INVENTORY_DESIGN_UPDATE_FLOW_STATUS("法规清单-更新设计符合性流程状态","lawsInventoryDesignUpdateFlowStatus"), LAWS_INVENTORY_VERIFY_UPDATE_FLOW_STATUS("法规清单-更新验证符合性流程状态","lawsInventoryVerifyUpdateFlowStatus"), + LAWS_INVENTORY_DESIGN_CITE_DELIVERABLE("法规清单-设计-引用交付物","lawsInventoryDesignCiteDeliverable"), + LAWS_INVENTORY_VERIFY_CITE_DELIVERABLE("法规清单-验证-引用交付物","lawsInventoryVerifyCiteDeliverable"), /** * 待办中心-将法规工程师的法规清单确认待办任务转为已办 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 978ab186e..8b877e8ac 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 @@ -251,4 +251,6 @@ public interface IProjectLawsInventoryEOService extends IService updateFlowStatusBatch(JSONObject json); + + Result citeDeliverable(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 314329eb6..89be76086 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 @@ -11897,4 +11897,112 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl().success("批量更新状态成功!"); } + + @Override + public Result citeDeliverable(JSONObject json) { + String cut = json.getString("cut"); + String operateType = json.getString("operateType"); + String flowType = ""; + if(StringUtils.equals(operateType,OperatorTypeEnum.LAWS_INVENTORY_DESIGN_CITE_DELIVERABLE.getValue())){ + flowType = FlowTypeEnum.SJFHXSHLC.getValue(); + }else if(StringUtils.equals(operateType,OperatorTypeEnum.LAWS_INVENTORY_VERIFY_CITE_DELIVERABLE.getValue())){ + flowType = FlowTypeEnum.YZFHXSCLC.getValue(); + } + + String resultMsg = ""; + ProcessHistoryEO citePhEo = null; + if(StringUtils.equals(cut,CutEnum.CN.getValue())){ + resultMsg = "引用交付物成功!"; + }else { + resultMsg = "Successfully referenced deliverables!"; + } + + String serialNumber = json.getString("serialNumber"); + String dutyTerritory = json.getString("dutyTerritory"); + String citeProjectLibraryId = json.getString("citeProjectLibraryId"); + if(StringUtils.isEmpty(citeProjectLibraryId)){ + throw new JeroBootException("请选择引用的项目!"); + } + + // 符合性流程已完成的状态 + List complianceFlowStatusList = new ArrayList<>(); + complianceFlowStatusList.add(ComplianceFlowStatusEnum.CONFORMITY.getValue()); + complianceFlowStatusList.add(ComplianceFlowStatusEnum.INCONFORMITY.getValue()); + complianceFlowStatusList.add(ComplianceFlowStatusEnum.TO_TRACK.getValue()); + complianceFlowStatusList.add(ComplianceFlowStatusEnum.UNINVOLVED.getValue()); + + QueryWrapper citePliQueryWrap = new QueryWrapper<>(); + citePliQueryWrap.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,citeProjectLibraryId); + if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){ + citePliQueryWrap.lambda().in(ProjectLawsInventoryEO::getDesignFlowStatus,complianceFlowStatusList); + } else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){ + citePliQueryWrap.lambda().in(ProjectLawsInventoryEO::getVerifyFlowStatus,complianceFlowStatusList); + } + List citePliEoList = this.list(citePliQueryWrap); + if(CollectionUtils.isNotEmpty(citePliEoList)){ + List citePliEoListTemp = citePliEoList.stream().filter(citePliEo -> { + boolean serialNumberFlag = (StringUtils.equals(serialNumber,citePliEo.getSerialNumber())); + boolean dutyTerritoryFlag = Arrays.equals(dutyTerritory.split(","), citePliEo.getDutyTerritory().split(",")); + boolean deliverableTypeFlag = false; + + if(StringUtils.equals(operateType,OperatorTypeEnum.LAWS_INVENTORY_DESIGN_CITE_DELIVERABLE.getValue())){ + String designDeliverableType = json.getString("designDeliverableType"); + deliverableTypeFlag = Arrays.equals(designDeliverableType.split(","), citePliEo.getDesignDeliverableType().split(",")); + }else if(StringUtils.equals(operateType,OperatorTypeEnum.LAWS_INVENTORY_VERIFY_CITE_DELIVERABLE.getValue())){ + String verifyDeliverableType = json.getString("verifyDeliverableType"); + deliverableTypeFlag = Arrays.equals(verifyDeliverableType.split(","), citePliEo.getVerifyDeliverableType().split(",")); + } + + return serialNumberFlag && dutyTerritoryFlag && deliverableTypeFlag; + }).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(citePliEoListTemp)){ + ProjectLawsInventoryEO citePliEo = citePliEoListTemp.get(0); + String citePliEoId = citePliEo.getId(); + + QueryWrapper citePiQueryWrap = new QueryWrapper<>(); + citePiQueryWrap.lambda().eq(ProcessInfoEO::getProjectLawsInventoryId,citePliEoId); + citePiQueryWrap.lambda().eq(ProcessInfoEO::getFlowType,flowType); + citePiQueryWrap.orderByDesc("create_time"); + List citePiEoList = this.processInfoEOService.list(citePiQueryWrap); + if(CollectionUtils.isNotEmpty(citePiEoList)){ + ProcessInfoEO citePiEo = citePiEoList.get(0); + String citePiEoActiProcInstId = citePiEo.getActiProcInstId(); + + List taskDefinitionKeyList = new ArrayList<>(); + if(StringUtils.equals(flowType,FlowTypeEnum.SJFHXSHLC.getValue())){ + taskDefinitionKeyList.add(DesignComplianceFlowNodeKeyEnum.ZRRTJJFW.getValue()); + taskDefinitionKeyList.add(DesignComplianceFlowNodeKeyEnum.DEZRRTJJFW.getValue()); + } else if(StringUtils.equals(flowType,FlowTypeEnum.YZFHXSCLC.getValue())){ + taskDefinitionKeyList.add(VerifyComplianceFlowNodeKeyEnum.ZRRTJJFW.getValue()); + taskDefinitionKeyList.add(VerifyComplianceFlowNodeKeyEnum.DEZRRTJJFW.getValue()); + } + + QueryWrapper citePhQueryWrap = new QueryWrapper<>(); + citePhQueryWrap.lambda().eq(ProcessHistoryEO::getActiProcInstId,citePiEoActiProcInstId); + citePhQueryWrap.lambda().in(ProcessHistoryEO::getTaskDefinitionKey,taskDefinitionKeyList); + citePhQueryWrap.orderByDesc("create_time"); + List citePhEoList = this.processHistoryEOService.list(citePhQueryWrap); + if (CollectionUtils.isNotEmpty(citePhEoList)) { + citePhEo = citePhEoList.get(0); + } + } + } + + if(ObjectUtils.isEmpty(citePhEo)){ + if(StringUtils.equals(cut,CutEnum.CN.getValue())){ + resultMsg = "所选引用项目中,没有匹配到数据,请重新选择!"; + }else { + resultMsg = "There is no matching data in the selected reference project. Please reselect!"; + } + } + }else { + if(StringUtils.equals(cut,CutEnum.CN.getValue())){ + resultMsg = "所选引用项目中流程完成数据为空,请重新选择!"; + }else { + resultMsg = "The process completion data in the selected reference project is empty, please reselect!"; + } + } + return Result.OK(resultMsg,citePhEo); + } }