From d5c3532271c60589e7c522e88b5dc8554e96e3d5 Mon Sep 17 00:00:00 2001 From: zhn <947514737@qq.com> Date: Mon, 18 Sep 2023 15:41:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B3=E5=8F=B0=E4=BB=B6-=E8=AE=A4=E8=AF=81?= =?UTF-8?q?=E6=B8=85=E5=8D=95=EF=BC=8C=E8=B4=A3=E4=BB=BB=E4=BA=BA=E6=8B=92?= =?UTF-8?q?=E7=BB=9D=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ctCertificationInventoryEOServiceImpl.java | 218 ++++++++++++++---- 1 file changed, 174 insertions(+), 44 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectCertificationInventoryEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectCertificationInventoryEOServiceImpl.java index 0ca6f884a..cd4aca3ff 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectCertificationInventoryEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/platform/service/impl/PlatformProjectCertificationInventoryEOServiceImpl.java @@ -2811,10 +2811,14 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class); // 给认证工程师分配待办中心的任务 - String certificationEngineer = projectLibraryBase.getCertificationEngineer(); - if(StringUtils.isEmpty(certificationEngineer)){ - throw new JeroBootException("该项目中认证工程师为空,请先维护认证工程师!"); - } +// String certificationEngineer = projectLibraryBase.getCertificationEngineer(); +// if(StringUtils.isEmpty(certificationEngineer)){ +// throw new JeroBootException("该项目中认证工程师为空,请先维护认证工程师!"); +// } + String lawsEngineer = projectLibraryBase.getCreateBy(); + SysUser userByName = sysUserService.getUserByName(lawsEngineer); + + for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) { projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.REFUSAL_OF_RESPONSIBLE_PERSON.getValue()); @@ -2854,20 +2858,18 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI this.certificationInventoryEOListSortByInventoryVerifyEndTimeAsc(projectCertificationInventoryEOList); List processInfoDetailEOList = new ArrayList<>(); - List certificationEngineerList = Arrays.asList(certificationEngineer.split(",")); +// List certificationEngineerList = Arrays.asList(certificationEngineer.split(",")); // 给认证工程师分配任务 - for (String userId : certificationEngineerList) { - 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()); - processInfoDetailEO.setEndTime(projectCertificationInventoryEOList.get(0).getInventoryVerifyEndTime()); - processInfoDetailEOList.add(processInfoDetailEO); - } + ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO(); + processInfoDetailEO.setUserId(userByName.getId()); + 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()); + processInfoDetailEO.setEndTime(projectCertificationInventoryEOList.get(0).getInventoryVerifyEndTime()); + processInfoDetailEOList.add(processInfoDetailEO); // 删除该项目数据的待办任务,key为 认证工程师接受任务的数据 QueryWrapper deleteDetailWrap = new QueryWrapper<>(); @@ -2879,37 +2881,29 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI // 责任人接受任务,将数据的状态更新为 结果待提交。 this.updateBatchById(projectCertificationInventoryEOList); - - List certificationEngineers = this.sysUserService.querySysUserListByIdList(certificationEngineerList); try { - for (String userId : certificationEngineerList) { - String thirdId = this.sysUserService.getUserThirdIdByUserId(certificationEngineers,userId); - - if(StringUtils.isNotEmpty(thirdId)){ - // 根据结束时间进行排序,获取最近的时间,发消息时使用。 + if(ObjectUtils.isNotEmpty(userByName) && StringUtils.isNotBlank(userByName.getThirdId())){ + // 根据结束时间进行排序,获取最近的时间,发消息时使用。 // this.certificationInventoryEOListSortByEndTimeAsc(projectCertificationInventoryEOList); - Date endTime = projectCertificationInventoryEOList.get(0).getInventoryVerifyEndTime(); + Date endTime = projectCertificationInventoryEOList.get(0).getInventoryVerifyEndTime(); - JSONObject larkMesJson = new JSONObject(); - larkMesJson.put("template_id", TemplateInfoEnum2.CERTIFICATION_MESSAGE11.getValue()); - larkMesJson.put("userIds",thirdId); + JSONObject larkMesJson = new JSONObject(); + larkMesJson.put("template_id", TemplateInfoEnum2.CERTIFICATION_MESSAGE11.getValue()); + larkMesJson.put("userIds",userByName.getThirdId()); - Map templateVariableMap = new HashMap<>(); - templateVariableMap.put("projectNameCn",PRN_CN); - templateVariableMap.put("projectNameEn",PRN_EN); - templateVariableMap.put("standName",standName); - templateVariableMap.put("itemName",itemName); - templateVariableMap.put("Initiator",projectLibraryBase.getStudioEngineerName()); - templateVariableMap.put("endTime",DateUtils.formatDate(endTime)); - templateVariableMap.put("viewBtnUrlCn",hrefFeishu_CN); - templateVariableMap.put("viewBtnUrlEn",hrefFeishu_EN); - templateVariableMap.put("viewBtnUrlCnPhone",hrefFeishu_CN_P); - - templateVariableMap.put("operateUserName",currentUser.getUsername()); - - larkMesJson.put("templateVariableMap",templateVariableMap); - this.feishuService.batchSendLarkCardMsgByTemplate2(larkMesJson); - } + Map templateVariableMap = new HashMap<>(); + templateVariableMap.put("projectNameCn",PRN_CN); + templateVariableMap.put("projectNameEn",PRN_EN); + templateVariableMap.put("standName",standName); + templateVariableMap.put("itemName",itemName); + templateVariableMap.put("Initiator",projectLibraryBase.getStudioEngineerName()); + templateVariableMap.put("endTime",DateUtils.formatDate(endTime)); + templateVariableMap.put("viewBtnUrlCn",hrefFeishu_CN); + templateVariableMap.put("viewBtnUrlEn",hrefFeishu_EN); + templateVariableMap.put("viewBtnUrlCnPhone",hrefFeishu_CN_P); + templateVariableMap.put("operateUserName",currentUser.getUsername()); + larkMesJson.put("templateVariableMap",templateVariableMap); + this.feishuService.batchSendLarkCardMsgByTemplate2(larkMesJson); } } catch (Exception e) { log.error("飞书消息推送失败"); @@ -2921,6 +2915,142 @@ public class PlatformProjectCertificationInventoryEOServiceImpl extends ServiceI } return Result.OK("拒绝任务成功!"); } +// private Result dutyPersonRejectTask(JSONObject json) { +// LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); +// +// String ids = json.getString("ids"); +// if(StringUtils.isEmpty(ids)){ +// throw new JeroBootException("至少选择一条数据进行操作!"); +// } +// String reasonForReturn = json.getString("reasonForReturn"); +// +// List idList = Arrays.asList(ids.split(",")); +// +// List flowStatusList = new ArrayList<>(); +// flowStatusList.add(CertificationInventoryFlowStatusEnum.TASK_TO_BE_CONFIRMED.getValue()); +// +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.lambda().in(ProjectCertificationInventoryEO::getId,idList); +// queryWrapper.lambda().in(ProjectCertificationInventoryEO::getFlowStatus,flowStatusList); +// List projectCertificationInventoryEOList = this.list(queryWrapper); +// +// if(CollectionUtils.isEmpty(projectCertificationInventoryEOList)){ +// throw new JeroBootException("至少选择一条数据流程状态为'任务待确认'的数据!"); +// } +// +// ProjectLibraryBase projectLibraryBase = JSONObject.parseObject(JSONObject.toJSONString(json.get("projectLibraryBase")), ProjectLibraryBase.class); +// +// // 给认证工程师分配待办中心的任务 +// String certificationEngineer = projectLibraryBase.getCertificationEngineer(); +// if(StringUtils.isEmpty(certificationEngineer)){ +// throw new JeroBootException("该项目中认证工程师为空,请先维护认证工程师!"); +// } +// +// for (ProjectCertificationInventoryEO projectCertificationInventoryEO : projectCertificationInventoryEOList) { +// projectCertificationInventoryEO.setFlowStatus(CertificationInventoryFlowStatusEnum.REFUSAL_OF_RESPONSIBLE_PERSON.getValue()); +// projectCertificationInventoryEO.setReasonForReturn(reasonForReturn); +// processHistoryEOService.add(projectCertificationInventoryEO.getId(),CertificationFlowNodeEnum.TASK_RESPONSIBILITY_CONFIRMATION.getKey(),currentUser.getId(),ReviewResultEnum.REJECTED.getValue(),reasonForReturn,null); +// +// } +// +// this.saveProjectCertificationInventoryLog(projectCertificationInventoryEOList,OperatorTypeEnum.CERTIFICATION_INVENTORY_DUTY_PERSON_REJECT_TASK.getValue()); +// +// String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文 +// String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文 +// +// // 获取认证清单 - 飞书跳转链接 +// Map hrefFeishuMap = this.getCertificationInventoryLinkHrefFeishu(projectLibraryBase.getId(), PRN_CN, PRN_EN); +// String hrefFeishu_CN = (String) hrefFeishuMap.get("hrefFeishu_CN"); +// String hrefFeishu_EN = (String) hrefFeishuMap.get("hrefFeishu_EN"); +// String hrefFeishu_CN_P = (String) hrefFeishuMap.get("hrefFeishu_CN_P"); +// +// Map standNameAndItemName = this.platformProjectCertificationInventoryEOService.getStandNameAndItemName(projectCertificationInventoryEOList); +// String standName = (String) standNameAndItemName.get("standName"); +// String itemName = (String) standNameAndItemName.get("itemName"); +// +// try { +// List certificationIdList = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getId).distinct().collect(Collectors.toList()); +// // 将当前责任人的待办任务转为已办 +// LambdaUpdateWrapper detailUpdateWrap = new LambdaUpdateWrapper<>(); +// detailUpdateWrap.eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId()); +// detailUpdateWrap.eq(ProcessInfoDetailEO::getUserId,currentUser.getId()); +// detailUpdateWrap.eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.ZRRJSRW.getKey()); +// detailUpdateWrap.in(ProcessInfoDetailEO::getProjectLawsInventoryId,certificationIdList); +// detailUpdateWrap.set(ProcessInfoDetailEO::getStatus,TaskStatusEnum.HAVE_DONE.getValue()); +// detailUpdateWrap.set(ProcessInfoDetailEO::getUpdateTime,new Date()); +// detailUpdateWrap.set(ProcessInfoDetailEO::getUpdateBy,currentUser.getUsername()); +// this.processInfoDetailEOService.update(detailUpdateWrap); +// +// this.certificationInventoryEOListSortByInventoryVerifyEndTimeAsc(projectCertificationInventoryEOList); +// +// List processInfoDetailEOList = new ArrayList<>(); +// List certificationEngineerList = Arrays.asList(certificationEngineer.split(",")); +// // 给认证工程师分配任务 +// for (String userId : certificationEngineerList) { +// 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()); +// processInfoDetailEO.setEndTime(projectCertificationInventoryEOList.get(0).getInventoryVerifyEndTime()); +// processInfoDetailEOList.add(processInfoDetailEO); +// } +// +// // 删除该项目数据的待办任务,key为 认证工程师接受任务的数据 +// QueryWrapper deleteDetailWrap = new QueryWrapper<>(); +// deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getProcessInfoId,projectLibraryBase.getId()); +// deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getTaskDefinitionKey,CertificationFlowNodeEnum.RZGCSJSRW.getKey()); +// deleteDetailWrap.lambda().eq(ProcessInfoDetailEO::getFlowType,FlowTypeEnum.CERTIFICATION_LC.getValue()); +// this.processInfoDetailEOService.remove(deleteDetailWrap); +// this.processInfoDetailEOService.saveBatch(processInfoDetailEOList); +// +// // 责任人接受任务,将数据的状态更新为 结果待提交。 +// this.updateBatchById(projectCertificationInventoryEOList); +// +// List certificationEngineers = this.sysUserService.querySysUserListByIdList(certificationEngineerList); +// try { +// for (String userId : certificationEngineerList) { +// String thirdId = this.sysUserService.getUserThirdIdByUserId(certificationEngineers,userId); +// +// if(StringUtils.isNotEmpty(thirdId)){ +// // 根据结束时间进行排序,获取最近的时间,发消息时使用。 +//// this.certificationInventoryEOListSortByEndTimeAsc(projectCertificationInventoryEOList); +// Date endTime = projectCertificationInventoryEOList.get(0).getInventoryVerifyEndTime(); +// +// JSONObject larkMesJson = new JSONObject(); +// larkMesJson.put("template_id", TemplateInfoEnum2.CERTIFICATION_MESSAGE11.getValue()); +// larkMesJson.put("userIds",thirdId); +// +// Map templateVariableMap = new HashMap<>(); +// templateVariableMap.put("projectNameCn",PRN_CN); +// templateVariableMap.put("projectNameEn",PRN_EN); +// templateVariableMap.put("standName",standName); +// templateVariableMap.put("itemName",itemName); +// templateVariableMap.put("Initiator",projectLibraryBase.getStudioEngineerName()); +// templateVariableMap.put("endTime",DateUtils.formatDate(endTime)); +// templateVariableMap.put("viewBtnUrlCn",hrefFeishu_CN); +// templateVariableMap.put("viewBtnUrlEn",hrefFeishu_EN); +// templateVariableMap.put("viewBtnUrlCnPhone",hrefFeishu_CN_P); +// +// templateVariableMap.put("operateUserName",currentUser.getUsername()); +// +// larkMesJson.put("templateVariableMap",templateVariableMap); +// this.feishuService.batchSendLarkCardMsgByTemplate2(larkMesJson); +// } +// } +// } catch (Exception e) { +// log.error("飞书消息推送失败"); +// } +// }catch (Exception ex){ +// ex.printStackTrace(); +// log.error("责任人-拒绝任务失败:" + ex.getMessage()); +// throw new JeroBootException("拒绝任务失败!"); +// } +// return Result.OK("拒绝任务成功!"); +// } /** * 认证工程师退回至studio任务