From 02a8dcca28cf655362797c99ce8fe1da8b311622 Mon Sep 17 00:00:00 2001 From: CD <1103614279@qq.com> Date: Wed, 2 Nov 2022 14:15:16 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E8=AE=A1=E7=AC=A6=E5=90=88=E6=80=A7?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E5=AE=9A=E6=97=B6=E5=99=A8+=E5=82=AC?= =?UTF-8?q?=E5=8A=9E=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectLawsInventoryEOController.java | 2 +- .../modules/project/job/TaskAffirmJob.java | 8 +- .../project/job/designComplianceJob.java | 330 +++++++++++++----- .../ProjectLawsInventoryEOServiceImpl.java | 61 +++- .../modules/project/vo/ProjectTaskUrgVo.java | 3 +- 5 files changed, 302 insertions(+), 102 deletions(-) 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 3f950e953..39d77a213 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 @@ -461,7 +461,7 @@ public class ProjectLawsInventoryEOController extends JeroController taskUrg(ProjectTaskUrgVo projectTaskUrgVo) { + public Result taskUrg(@RequestBody ProjectTaskUrgVo projectTaskUrgVo) { return this.projectLawsInventoryEOService.taskUrg(projectTaskUrgVo); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/TaskAffirmJob.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/TaskAffirmJob.java index 1a7bfc260..c12b42c6b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/TaskAffirmJob.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/TaskAffirmJob.java @@ -155,13 +155,9 @@ public class TaskAffirmJob implements Job { } //飞书跳转链接 + String hrefFeishu = backUrl - + JumpLinkEnum.INVENTORY_AFFIRM_LINK.getLink() - + projectLibraryBase.getId() - + JumpLinkEnum.INVENTORY_AFFIRM_LINK.getType() - + "&projectName=" + projectNameInfoEO.getProjectName() + "-" - + projectYearNameInfoEO.getYearName() - + "&targetMarket=" + projectLibraryBase.getTargetMarket(); + + JumpLinkEnum.TASK_AFFIRM_LINK.getLink(); //项目名称 String projectVersion = (com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getParentId()) && com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getProjectVersion())) ? "00" : projectLibraryBase.getProjectVersion(); diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java index 1ea8abeb1..aa151598c 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/job/designComplianceJob.java @@ -1,7 +1,13 @@ package com.jero.modules.project.job; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.jero.common.constant.enums.MessageType2Enum; import com.jero.common.constant.enums.MessageTypeEnum; +import com.jero.common.constant.enums.MsgColorEnum; +import com.jero.modules.document.entity.BussDocumentLibraryEO; +import com.jero.modules.document.service.IBussDocumentLibraryEOService; +import com.jero.modules.feishu.service.IFeishuService; +import com.jero.modules.feishu.vo.FeishuMsg2Vo; import com.jero.modules.feishu.vo.FeishuMsgVo; import com.jero.modules.project.entity.*; import com.jero.modules.project.enums.DesignComplianceStatusEnum; @@ -13,8 +19,11 @@ import com.jero.modules.project.mapper.ProjectNameInfoEOMapper; import com.jero.modules.project.mapper.ProjectYearNameInfoEOMapper; import com.jero.modules.project.service.IProjectLawsInventoryEOService; import com.jero.modules.project.service.IProjectTaskInventoryEOService; +import com.jero.modules.system.entity.SysUser; +import com.jero.modules.system.service.ISysUserService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.quartz.Job; import org.quartz.JobExecutionContext; @@ -22,6 +31,7 @@ import org.quartz.JobExecutionException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; +import java.io.IOException; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -52,13 +62,20 @@ public class designComplianceJob implements Job { @Value(value = "${jero.backUrl}") private String backUrl; + @Autowired + private IBussDocumentLibraryEOService bussDocumentLibraryEOService; + @Autowired + private ISysUserService sysUserService; + @Autowired + private IFeishuService feishuService; + @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { log.info("设计符合性确认流程,定时任务开启 ====================================================="); //查询出已经启动了设计符合性流程的数据。 并且流程没有结束。 QueryWrapper queryProjectTaskInventoryWrapper = new QueryWrapper<>(); queryProjectTaskInventoryWrapper.isNotNull("design_p_id"); - queryProjectTaskInventoryWrapper.lambda().ne(ProjectTaskInventoryEO::getDesignStatus, DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue()); + queryProjectTaskInventoryWrapper.lambda().eq(ProjectTaskInventoryEO::getDesignStatus, DesignComplianceStatusEnum.TO_SUBMIT.getValue()); List projectTaskInventoryEOList = projectTaskInventoryEOService.getBaseMapper().selectList(queryProjectTaskInventoryWrapper); if(CollectionUtils.isNotEmpty(projectTaskInventoryEOList)){ @@ -79,15 +96,24 @@ public class designComplianceJob implements Job { Date currentDate = new Date(); - //获取后三天前的时间 - Calendar calendar=new GregorianCalendar(); - calendar.setTime(new Date()); - calendar.add(Calendar.DATE,3); - Date threeDays = calendar.getTime(); - - String threeDaysStr = sdf.format(threeDays); + //两周 + Calendar twoWeeksLaterCalendar=new GregorianCalendar(); + twoWeeksLaterCalendar.setTime(new Date()); + twoWeeksLaterCalendar.add(Calendar.DATE,14); + Date twoWeeksLaterDays = twoWeeksLaterCalendar.getTime(); + String twoWeeksLaterDaysStr = sdf.format(twoWeeksLaterDays); + //一周 + Calendar oneWeekLaterCalendar=new GregorianCalendar(); + oneWeekLaterCalendar.setTime(new Date()); + oneWeekLaterCalendar.add(Calendar.DATE,7); + Date oneWeekLaterDays = oneWeekLaterCalendar.getTime(); + String oneWeekLaterDaysStr = sdf.format(oneWeekLaterDays); + //当天 String currentDateStr = sdf.format(currentDate); + + String msgTitle = MessageType2Enum.DESIGN_COMPLIANCE_CONFIRMATION.getCn() + "/" + MessageType2Enum.DESIGN_COMPLIANCE_CONFIRMATION.getEn(); + for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseList) { QueryWrapper projectNameInfoEOQueryWrapper = new QueryWrapper<>(); projectNameInfoEOQueryWrapper.lambda().eq(ProjectNameInfoEO::getId,projectLibraryBase.getProjectNameId()); @@ -97,109 +123,249 @@ public class designComplianceJob implements Job { projectYearInfoEOQueryWrapper.lambda().eq(ProjectYearNameInfoEO::getId,projectLibraryBase.getYearNameId()); ProjectYearNameInfoEO projectYearNameInfoEO = projectYearNameInfoEOMapper.selectOne(projectYearInfoEOQueryWrapper); + //项目名称 + String projectVersion = (com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getParentId()) && com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getProjectVersion())) ? "00" : projectLibraryBase.getProjectVersion(); + String projectName = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + "-" + projectLibraryBase.getTargetMarket() + "-" + projectVersion; + + for (ProjectLawsInventoryEO projectLawsInventoryEO: projectLawsInventoryEOList) { - List threeDaysUserIdList = new ArrayList<>(); + + //法规中英文 + String LAW_CN = projectLawsInventoryEO.getSerialNumber() + " " + projectLawsInventoryEO.getTitle();//法规 + BussDocumentLibraryEO bussDocumentLibraryEO = bussDocumentLibraryEOService.queryById(projectLawsInventoryEO.getStandId()); + String LAW_EN = ""; + if (ObjectUtils.isEmpty(bussDocumentLibraryEO)) { + LAW_EN = LAW_CN; + } else { + LAW_EN = projectLawsInventoryEO.getSerialNumber() + " " + bussDocumentLibraryEO.getTitleEn();//法规 + } + + + List twoWeeksLaterUserIdList = new ArrayList<>(); + List oneWeeksLaterUserIdList = new ArrayList<>(); List currentDaysUserIdList = new ArrayList<>(); + List dueUserIdList = new ArrayList<>(); - for (ProjectTaskInventoryEO projectTaskInventoryEO : projectTaskInventoryEOList) { - if(StringUtils.equals(projectTaskInventoryEO.getProjectLawsInventoryId(),projectLawsInventoryEO.getId())){ - //如果设计符合性 - 结束日期是当前日期 - if(projectLawsInventoryEO.getDesignDueDate() != null){ - if(StringUtils.equals(currentDateStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){ - if(StringUtils.isEmpty(projectTaskInventoryEO.getDesignSendMsgFlag())){ - if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){ - currentDaysUserIdList.add(projectLawsInventoryEO.getDesignDutyId()); - }if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignInitiatorId())){ - currentDaysUserIdList.add(projectLawsInventoryEO.getDesignInitiatorId()); - } - projectTaskInventoryEO.setDesignSendMsgFlag(SendMsgFlagEnum.FALSE.getValue()); - projectTaskInventoryEOService.updateById(projectTaskInventoryEO); - } + if(StringUtils.equals(projectLawsInventoryEO.getProjectLibraryId(),projectLibraryBase.getId())){ + //如果设计符合性 - 结束日期是当前日期 + if(projectLawsInventoryEO.getDesignDueDate() != null){ + if(StringUtils.equals(currentDateStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){ + if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){ + currentDaysUserIdList.add(projectLawsInventoryEO.getDesignDutyId()); } + } - //如果设计符合性 - 结束日期是三天后的日期 - if(StringUtils.equals(threeDaysStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){ - if(StringUtils.isEmpty(projectTaskInventoryEO.getDesignSendMsgCurrentFlag())){ - if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){ - threeDaysUserIdList.add(projectLawsInventoryEO.getDesignDutyId()); - }if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignInitiatorId())){ - threeDaysUserIdList.add(projectLawsInventoryEO.getDesignInitiatorId()); - } - projectTaskInventoryEO.setDesignSendMsgCurrentFlag(SendMsgFlagEnum.FALSE.getValue()); - projectTaskInventoryEOService.updateById(projectTaskInventoryEO); - } + //如果设计符合性 - 结束日期是两周后的日期 + if(StringUtils.equals(twoWeeksLaterDaysStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){ + if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){ + twoWeeksLaterUserIdList.add(projectLawsInventoryEO.getDesignDutyId()); + } + } + + //如果设计符合性 - 结束日期是一周后的日期 + if(StringUtils.equals(oneWeekLaterDaysStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){ + if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){ + oneWeeksLaterUserIdList.add(projectLawsInventoryEO.getDesignDutyId()); + } + } + //逾期三天、七天、十四天 + Calendar due3Days = new GregorianCalendar(); + due3Days.setTime(projectLawsInventoryEO.getDesignDueDate()); + due3Days.add(Calendar.DATE, 3); + Date overdue3Days = due3Days.getTime(); + + Calendar due7Days = new GregorianCalendar(); + due7Days.setTime(projectLawsInventoryEO.getDesignDueDate()); + due7Days.add(Calendar.DATE, 7); + Date overdue7Days = due7Days.getTime(); + + Calendar due14Days = new GregorianCalendar(); + due14Days.setTime(projectLawsInventoryEO.getDesignDueDate()); + due14Days.add(Calendar.DATE, 14); + Date overdue14Days = due14Days.getTime(); + if (StringUtils.equals(sdf.format(overdue3Days), currentDateStr) + || StringUtils.equals(sdf.format(overdue7Days), currentDateStr) + || StringUtils.equals(sdf.format(overdue14Days), currentDateStr)) { + if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){ + dueUserIdList.add(projectLawsInventoryEO.getDesignDutyId()); } } } + } - if(CollectionUtils.isNotEmpty(threeDaysUserIdList)){ - threeDaysUserIdList = threeDaysUserIdList.stream().distinct().collect(Collectors.toList()); + String hrefFeishu = backUrl + + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + + projectLibraryBase.getId() + + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType() + + "&projectName=" + projectNameInfoEO.getProjectName(); + + if (ObjectUtils.isNotEmpty(dueUserIdList)) { + dueUserIdList = dueUserIdList.stream().distinct().collect(Collectors.toList()); + List sysUsers = sysUserService.listByIds(dueUserIdList); + List thirdIdList = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(sysUsers)){ + thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList()); + } + try { + FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo(); + feishuMsgVo.setTitle(msgTitle); + feishuMsgVo.setCnContentUpper("您好,您的任务已逾期,请尽快处理"); + feishuMsgVo.setCnContentLower("项目: " + projectName + + "\n法规: " + LAW_CN + + "\n发起人: 系统通知"+ + "\n截止时间: "+ sdf.format(projectLawsInventoryEO.getDesignDueDate())); + feishuMsgVo.setEnContentUpper("Hello! Your task is overdue. Please check and address it ASAP"); + feishuMsgVo.setEnContentLower("Project: " + projectName + + "\nRegulation No: " + LAW_EN + + "\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()+ + "\nDue Date: "+ sdf.format(projectLawsInventoryEO.getDesignDueDate())); + feishuMsgVo.setUrl(hrefFeishu); + feishuMsgVo.setColor(MsgColorEnum.YELLOW.getValue()); // 颜色 + feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo); + } catch (IOException e) { + log.error("飞书消息推送失败"); + } + } + + if (ObjectUtils.isNotEmpty(oneWeeksLaterUserIdList)) { + oneWeeksLaterUserIdList = oneWeeksLaterUserIdList.stream().distinct().collect(Collectors.toList()); + List sysUsers = sysUserService.listByIds(oneWeeksLaterUserIdList); + List thirdIdList = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(sysUsers)){ + thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList()); + } + try { + FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo(); + feishuMsgVo.setTitle(msgTitle); + feishuMsgVo.setCnContentUpper("您好,您的任务将于7天后结束,请及时查看处理"); + feishuMsgVo.setCnContentLower("项目: " + projectName + + "\n法规: " + LAW_CN + + "\n发起人: 系统通知"); + feishuMsgVo.setEnContentUpper("Hello! Your task will end in 7 days. Please check and address it in a timely manner"); + feishuMsgVo.setEnContentLower("Project: " + projectName + + "\nRegulation No: " + LAW_EN + + "\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); + feishuMsgVo.setUrl(hrefFeishu); + feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色 + feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo); + } catch (IOException e) { + log.error("飞书消息推送失败"); + } + } + + if(CollectionUtils.isNotEmpty(twoWeeksLaterUserIdList)){ + twoWeeksLaterUserIdList = twoWeeksLaterUserIdList.stream().distinct().collect(Collectors.toList()); + List sysUsers = sysUserService.listByIds(twoWeeksLaterUserIdList); + List thirdIdList = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(sysUsers)){ + thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList()); + } + try { + FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo(); + feishuMsgVo.setTitle(msgTitle); + feishuMsgVo.setCnContentUpper("您好,您的任务将于14天后结束,请及时查看处理"); + feishuMsgVo.setCnContentLower("项目: " + projectName + + "\n法规: " + LAW_CN + + "\n发起人: 系统通知"); + feishuMsgVo.setEnContentUpper("Hello! Your task will end in 14 days. Please check and address it in a timely manner"); + feishuMsgVo.setEnContentLower("Project: " + projectName + + "\nRegulation No: " + LAW_EN + + "\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); + feishuMsgVo.setUrl(hrefFeishu); + feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色 + feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo); + } catch (IOException e) { + log.error("飞书消息推送失败"); + } //您XXX(项目名称)中GB 7258的设计符合性确认剩余处理时间还有3天,请及时查看处理 - String msgContentEN = "The remaining processing time for the design compliance confirmation for " - + projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName() - + projectYearNameInfoEO.getYearName()+ " " - + projectLibraryBase.getTargetMarket() - + " are 3 days. Please check and address it in a timely manner."; - String msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName()+ " " + projectLibraryBase.getTargetMarket() - + ": You have a design compliance task to complete"; + //String msgContentEN = "The remaining processing time for the design compliance confirmation for " + // + projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName() + // + projectYearNameInfoEO.getYearName()+ " " + // + projectLibraryBase.getTargetMarket() + // + " are 3 days. Please check and address it in a timely manner."; + //String msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName()+ " " + projectLibraryBase.getTargetMarket() + // + ": You have a design compliance task to complete"; - FeishuMsgVo feishuMsgVo = new FeishuMsgVo(); - feishuMsgVo.setContent("Hello! The remaining processing time for the task are 3 days. Please check and address it in a timely manner."); - feishuMsgVo.setTaskType("Design Compliance Confirmation"); - feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()); - feishuMsgVo.setRegulationNo(projectLawsInventoryEO.getSerialNumber()); + //FeishuMsgVo feishuMsgVo = new FeishuMsgVo(); + //feishuMsgVo.setContent("Hello! The remaining processing time for the task are 3 days. Please check and address it in a timely manner."); + //feishuMsgVo.setTaskType("Design Compliance Confirmation"); + //feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()); + //feishuMsgVo.setRegulationNo(projectLawsInventoryEO.getSerialNumber()); //飞书跳转链接 - String hrefFeishu = backUrl + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + projectLibraryBase.getId() + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType(); + //String hrefFeishu = backUrl + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + projectLibraryBase.getId() + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType(); //系统内部跳转链接 - String href = "" + " View details" + ""; - String contentInfo = msgContentEN + " " + href; - Map sendMessageMap = new HashMap<>(); - sendMessageMap.put("hrefFeishu",hrefFeishu); - sendMessageMap.put("contentInfo",contentInfo); + //String href = "" + " View details" + ""; + //String contentInfo = msgContentEN + " " + href; + //Map sendMessageMap = new HashMap<>(); + //sendMessageMap.put("hrefFeishu",hrefFeishu); + //sendMessageMap.put("contentInfo",contentInfo); //发送消息 - projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,threeDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.COMPLIANCE_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); + //projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,threeDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.COMPLIANCE_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); } if(CollectionUtils.isNotEmpty(currentDaysUserIdList)){ currentDaysUserIdList = currentDaysUserIdList.stream().distinct().collect(Collectors.toList()); - + List sysUsers = sysUserService.listByIds(currentDaysUserIdList); + List thirdIdList = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(sysUsers)){ + thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList()); + } + try { + FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo(); + feishuMsgVo.setTitle(msgTitle); + feishuMsgVo.setCnContentUpper("您好,您的任务将于今天到期,请及时查看处理"); + feishuMsgVo.setCnContentLower("项目: " + projectName + + "\n法规: " + LAW_CN + + "\n发起人: 系统通知"); + feishuMsgVo.setEnContentUpper("Hello! Your task will expire today. Please check and address it ASAP"); + feishuMsgVo.setEnContentLower("Project: " + projectName + + "\nRegulation No: " + LAW_EN + + "\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); + feishuMsgVo.setUrl(hrefFeishu); + feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色 + feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo); + } catch (IOException e) { + log.error("飞书消息推送失败"); + } //您XXX(项目名称)中GB 7258的设计符合性确认任务今天即将结束,请及时查看处理 - String msgContentEN = "The design compliance confirmation of " - + projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName() - + " will expire today. Please check and address it in time."; - String msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName()+ " " + projectLibraryBase.getTargetMarket() - + ": You have a design compliance task to complete"; + //String msgContentEN = "The design compliance confirmation of " + // + projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName() + // + " will expire today. Please check and address it in time."; + //String msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName()+ " " + projectLibraryBase.getTargetMarket() + // + ": You have a design compliance task to complete"; - FeishuMsgVo feishuMsgVo = new FeishuMsgVo(); - feishuMsgVo.setContent("Hello! The task will expire today. Please check and address it in a timely manner."); - feishuMsgVo.setTaskType("Design Compliance Confirmation"); - feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()); - feishuMsgVo.setRegulationNo(projectLawsInventoryEO.getSerialNumber()); + //FeishuMsgVo feishuMsgVo = new FeishuMsgVo(); + //feishuMsgVo.setContent("Hello! The task will expire today. Please check and address it in a timely manner."); + //feishuMsgVo.setTaskType("Design Compliance Confirmation"); + //feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket()); + //feishuMsgVo.setRegulationNo(projectLawsInventoryEO.getSerialNumber()); //飞书跳转链接 - String hrefFeishu = backUrl - + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() - + projectLibraryBase.getId() - + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType() - + "&projectName=" + projectNameInfoEO.getProjectName(); + //String hrefFeishu = backUrl + // + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + // + projectLibraryBase.getId() + // + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType() + // + "&projectName=" + projectNameInfoEO.getProjectName(); + + //系统内部跳转链接 - String href = "" + " View details" + ""; - String contentInfo = msgContentEN + " " + href; - Map sendMessageMap = new HashMap<>(); - sendMessageMap.put("hrefFeishu",hrefFeishu); - sendMessageMap.put("contentInfo",contentInfo); + //String href = "" + " View details" + ""; + //String contentInfo = msgContentEN + " " + href; + //Map sendMessageMap = new HashMap<>(); + //sendMessageMap.put("hrefFeishu",hrefFeishu); + //sendMessageMap.put("contentInfo",contentInfo); //发送消息 - projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,currentDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.COMPLIANCE_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); + //projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,currentDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.COMPLIANCE_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()); } } } 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 181c7ac18..1f77c6fce 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 @@ -9035,19 +9035,28 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl taskUrg(ProjectTaskUrgVo projectTaskUrgVo) { if (ObjectUtils.isEmpty(projectTaskUrgVo.getProjectLawsInventoryIds())) { - throw new JeroBootException("请选择至少一条数据"); + if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) { + throw new JeroBootException("请选择至少一条数据"); + } else { + throw new JeroBootException("Please select at least one piece of data"); + } + } if (ObjectUtils.isEmpty(projectTaskUrgVo.getType())) { - throw new JeroBootException("请选择催办类型"); + if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) { + throw new JeroBootException("请选择催办类型"); + } else { + throw new JeroBootException("Please select the type of reminder"); + } } String title = ""; - if (FlowTypeEnum.SJFHXSHLC.getValue().equals(projectTaskUrgVo.getCut())) { + if (FlowTypeEnum.SJFHXSHLC.getValue().equals(projectTaskUrgVo.getType())) { title = MessageType2Enum.DESIGN_COMPLIANCE_CONFIRMATION.getCn() + "/" + MessageType2Enum.DESIGN_COMPLIANCE_CONFIRMATION.getEn(); - } else if (FlowTypeEnum.PREHOMOQRLC.getValue().equals(projectTaskUrgVo.getCut())) { + } else if (FlowTypeEnum.PREHOMOQRLC.getValue().equals(projectTaskUrgVo.getType())) { title = MessageType2Enum.PRE_HOMO_CONFIRMATION.getCn() + "/" + MessageType2Enum.PRE_HOMO_CONFIRMATION.getEn(); - } else if (FlowTypeEnum.YZFHXSCLC.getValue().equals(projectTaskUrgVo.getCut())) { + } else if (FlowTypeEnum.YZFHXSCLC.getValue().equals(projectTaskUrgVo.getType())) { title = MessageType2Enum.VALIDATION_COMPLIANCE_CONFIRMATION.getCn() + "/" + MessageType2Enum.VALIDATION_COMPLIANCE_CONFIRMATION.getEn(); } else { if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) { @@ -9056,8 +9065,8 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl queryProjectTaskInventoryWrapper = new QueryWrapper<>(); + queryProjectTaskInventoryWrapper.isNotNull("design_p_id"); + queryProjectTaskInventoryWrapper.lambda().eq(ProjectTaskInventoryEO::getProjectLawsInventoryId, projectLawsInventoryId); + List list = projectTaskInventoryEOService.list(queryProjectTaskInventoryWrapper); + + if (FlowTypeEnum.SJFHXSHLC.getValue().equals(projectTaskUrgVo.getType())) { dueDate = sdf.format(lawsInventoryEO.getDesignDueDate()); + if (DesignComplianceStatusEnum.TO_REVIEW.getValue().equals(list.get(0).getDesignStatus()) + ||DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue().equals(list.get(0).getDesignStatus())) { + if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) { + throw new JeroBootException(LAW_CN + "已提交,无法催办"); + } else { + throw new JeroBootException(LAW_EN + "is committed,can't be urged"); + } + } if (ObjectUtils.isNotEmpty(lawsInventoryEO.getDesignDutyId())) { userId = lawsInventoryEO.getDesignDutyId(); } - } else if (FlowTypeEnum.PREHOMOQRLC.getValue().equals(projectTaskUrgVo.getCut())) { + } else if (FlowTypeEnum.PREHOMOQRLC.getValue().equals(projectTaskUrgVo.getType())) { dueDate = sdf.format(lawsInventoryEO.getPrehomoDueDate()); + if (DesignComplianceStatusEnum.TO_REVIEW.getValue().equals(list.get(0).getDesignStatus()) + ||DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue().equals(list.get(0).getDesignStatus())) { + if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) { + throw new JeroBootException(LAW_CN + "已提交,无法催办"); + } else { + throw new JeroBootException(LAW_EN + "is committed,can't be urged"); + } + } if (ObjectUtils.isNotEmpty(lawsInventoryEO.getPrehomoDutyId())) { userId = lawsInventoryEO.getPrehomoDutyId(); } - } else if (FlowTypeEnum.YZFHXSCLC.getValue().equals(projectTaskUrgVo.getCut())) { + } else if (FlowTypeEnum.YZFHXSCLC.getValue().equals(projectTaskUrgVo.getType())) { dueDate = sdf.format(lawsInventoryEO.getVerifyDueDate()); + if (DesignComplianceStatusEnum.TO_REVIEW.getValue().equals(list.get(0).getDesignStatus()) + ||DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue().equals(list.get(0).getDesignStatus())) { + if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) { + throw new JeroBootException(LAW_CN + "已提交,无法催办"); + } else { + throw new JeroBootException(LAW_EN + "is committed,can't be urged"); + } + } if (ObjectUtils.isNotEmpty(lawsInventoryEO.getVerifyDutyId())) { userId = lawsInventoryEO.getVerifyDutyId(); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/ProjectTaskUrgVo.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/ProjectTaskUrgVo.java index 1a74a5139..571268627 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/ProjectTaskUrgVo.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/vo/ProjectTaskUrgVo.java @@ -2,14 +2,13 @@ package com.jero.modules.project.vo; import lombok.Data; -import java.util.List; @Data public class ProjectTaskUrgVo { private String cut; - private List projectLawsInventoryIds; + private String projectLawsInventoryIds; private String type;