diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index 2dcf32327..275729a9d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -33,8 +33,11 @@ import com.jero.modules.system.service.ISysDictService; import com.jero.modules.system.service.ISysUserService; import com.jero.modules.system.service.impl.SysDictItemServiceImpl; import com.jero.modules.system.util.StringUtils; +import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO; +import com.jero.modules.todoCenter.service.IProcessInfoDetailEOService; import com.jero.modules.top.entity.TopProjectEO; import com.jero.modules.top.service.ITopProjectEOService; +import com.jero.modules.wkflow.enums.FlowTypeEnum; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.ObjectUtils; import org.apache.poi.hssf.usermodel.HSSFSheet; @@ -147,6 +150,9 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl certificationEngineerIdList = Arrays.asList(projectLibraryBase.getCertificationEngineer().split(",")); + QueryWrapper pciQueryWrap = new QueryWrapper<>(); + pciQueryWrap.lambda().eq(ProjectCertificationInventoryEO::getProjectLibraryId, projectLibraryBase.getId()); + List pciEOList = this.projectCertificationInventoryEOService.list(pciQueryWrap); + + if(CollectionUtils.isNotEmpty(pciEOList)){ + // 清单待校核的数据 + List pciToBeCheckedList = pciEOList.stream().filter(pci -> { + boolean flag = false; + if(StringUtils.equals(pci.getFlowStatus(),CertificationInventoryFlowStatusEnum.LIST_TO_BE_CHECKED.getValue())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + // 如果该项目下清单待校核的数据不为空,给这些认证工程师分配待办任务。 + if(CollectionUtils.isNotEmpty(pciToBeCheckedList)){ + // 删除待办中心(是这个项目库的 pre-Homo流程的待办任务, 认证工程师接受任务节点的数据) + QueryWrapper pidRemoveWrap = new QueryWrapper<>(); + pidRemoveWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId, projectLibraryBase.getId()); + pidRemoveWrap.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.RZGCSJSRW.getKey()); + pidRemoveWrap.lambda().eq(ProcessInfoDetailEO::getFlowType,FlowTypeEnum.CERTIFICATION_LC.getValue()); + this.processInfoDetailEOService.remove(pidRemoveWrap); + + // 给认证工程师分配任务 + List processInfoDetailEOList = new ArrayList<>(); + for (String userId : certificationEngineerIdList) { + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setUserId(userId); + processInfoDetailEO.setTaskDefinitionKey(CertificationFlowNodeEnum.RZGCSJSRW.getKey()); + processInfoDetailEO.setCreateTime(new Date()); + processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue()); + processInfoDetailEO.setProcessInfoId(projectLibraryBase.getId()); + processInfoDetailEO.setActiProcInstId(projectLibraryBase.getId()); + processInfoDetailEO.setFlowType(FlowTypeEnum.CERTIFICATION_LC.getValue()); + processInfoDetailEOList.add(processInfoDetailEO); + } + this.processInfoDetailEOService.saveBatch(processInfoDetailEOList); + } + + // 结果待提交的数据 + List pciToBeReviewEDList = pciEOList.stream().filter(pci -> { + boolean flag = false; + if(StringUtils.equals(pci.getFlowStatus(),CertificationInventoryFlowStatusEnum.RESULTS_TO_BE_REVIEWED.getValue())){ + flag = true; + } + return flag; + }).collect(Collectors.toList()); + + if(CollectionUtils.isNotEmpty(pciToBeReviewEDList)){ + // 删除待办中心(是这个项目库的 pre-Homo流程的待办任务, 认证工程师审查 任务节点的数据) + QueryWrapper pidRemoveWrap = new QueryWrapper<>(); + pidRemoveWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId, projectLibraryBase.getId()); + pidRemoveWrap.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.RZGCSSC.getKey()); + pidRemoveWrap.lambda().eq(ProcessInfoDetailEO::getFlowType,FlowTypeEnum.CERTIFICATION_LC.getValue()); + this.processInfoDetailEOService.remove(pidRemoveWrap); + + // 给认证工程师分配任务 + List processInfoDetailEOList = new ArrayList<>(); + for (String userId : certificationEngineerIdList) { + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setUserId(userId); + processInfoDetailEO.setTaskDefinitionKey(CertificationFlowNodeEnum.RZGCSSC.getKey()); + processInfoDetailEO.setCreateTime(new Date()); + processInfoDetailEO.setStatus(TaskStatusEnum.NOT_DONE.getValue()); + processInfoDetailEO.setProcessInfoId(projectLibraryBase.getId()); + processInfoDetailEO.setActiProcInstId(projectLibraryBase.getId()); + processInfoDetailEO.setFlowType(FlowTypeEnum.CERTIFICATION_LC.getValue()); + processInfoDetailEOList.add(processInfoDetailEO); + } + this.processInfoDetailEOService.saveBatch(processInfoDetailEOList); + } + } + } + } + /** * 通过id删除 * diff --git a/jero-web/src/common/lang/en-us.js b/jero-web/src/common/lang/en-us.js index 4cd0f7d50..70c72fe15 100644 --- a/jero-web/src/common/lang/en-us.js +++ b/jero-web/src/common/lang/en-us.js @@ -1726,4 +1726,5 @@ module.exports = { noteone:'Note: CSV format is supported. The value is within 20M and the number is 1 to 10', notetwo:'\n1. Provide the modified or expanded batch of "Announcement" and supporting materials;\n2. Verification materials shall be submitted to ensure that products meet the relevant requirements of national laws and regulations, technologies, standards and technical specifications;\n', notethree:'Provide supporting materials', + verifyComplianceConfirmReturnReason:'Verify compliance Confirm return reason', } \ No newline at end of file diff --git a/jero-web/src/common/lang/zh-cn.js b/jero-web/src/common/lang/zh-cn.js index 2bfb28112..f00638ad6 100644 --- a/jero-web/src/common/lang/zh-cn.js +++ b/jero-web/src/common/lang/zh-cn.js @@ -1825,7 +1825,8 @@ module.exports = { notecsv:'注:支持CSV格式,大小20M以内', theDataYouInitiate:'您所选的数据,均不符合流程发起条件,请重新检查后发起', dataWithProcessReleasedCannotBeReset:'流程状态为清单待发布的数据不能被重置', - reasonForReturnOfDesignCompliance:'设计符合性退回原因', + reasonForReturnOfDesignCompliance:'设计符合性确认退回原因', notetwo:'\n1、提供变更或扩展后的《公告》批次及证明材料;\n2、应提交验证材料,保障产品符合国家法律法规、技术、标准及技术规范等相关要求;\n', notethree:'\n提供证明材料\n', + verifyComplianceConfirmReturnReason:'验证符合性确认退回原因', } \ No newline at end of file diff --git a/jero-web/src/views/projectManagement/components/listEditModel.vue b/jero-web/src/views/projectManagement/components/listEditModel.vue index 3367d51f6..9a4a571c8 100644 --- a/jero-web/src/views/projectManagement/components/listEditModel.vue +++ b/jero-web/src/views/projectManagement/components/listEditModel.vue @@ -782,11 +782,11 @@ -
- {{$t('listConfirmationRejectionReason')}} +
+ {{$t('reasonForReturnOfDesignCompliance')}}
-
@@ -827,11 +827,11 @@
-
- {{$t('taskConfirmationRejectionReason')}} +
+ {{$t('verifyComplianceConfirmReturnReason')}}
-