From 6794e56cfe216f507df1d6da4c47e6fa667d08fa Mon Sep 17 00:00:00 2001 From: CD <1103614279@qq.com> Date: Wed, 26 Oct 2022 14:33:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8F=82=E6=95=B0=E6=B8=85?= =?UTF-8?q?=E5=8D=95=E6=88=AA=E6=AD=A2=E6=97=B6=E9=97=B4=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=EF=BC=8C=E8=AE=A4=E8=AF=81=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=A8=A1=E5=9D=97=E6=B6=88=E6=81=AF=E5=A4=84?= =?UTF-8?q?=E7=90=86=E5=AE=8C=E6=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/ParamsCollectManifestEOMapper.java | 4 +- .../xml/ParamsCollectManifestEOMapper.xml | 6 +- .../IParamsCollectManifestEOService.java | 4 + .../ParamsCollectManifestEOServiceImpl.java | 149 ++++++++++++++++++ .../cert/collect/task/ScheduledTask.java | 30 ++++ .../main/java/com/jero/LawNioApplication.java | 2 + 6 files changed, 193 insertions(+), 2 deletions(-) create mode 100644 jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/task/ScheduledTask.java diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java index 76eedb79c..140f9c0c8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/ParamsCollectManifestEOMapper.java @@ -26,4 +26,6 @@ public interface ParamsCollectManifestEOMapper extends BaseMapper listInfoOfTitle(@Param("paramsManifestId") String paramsManifestId); IPage pageInfo(@Param("page") IPage page, @Param("paramsCollectManifestEO") ParamsCollectManifestEO paramsCollectManifestEO); - } + + List queryByParamManifestId(@Param("paramsManifestId") String paramsManifestIdString); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml index 0b45b9351..8c30b86c8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/mapper/xml/ParamsCollectManifestEOMapper.xml @@ -108,4 +108,8 @@ order by del_flag desc, add_flag desc, change_flag desc, nio_number asc - \ No newline at end of file + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java index 16249bc07..0266ae8dc 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/IParamsCollectManifestEOService.java @@ -164,4 +164,8 @@ public interface IParamsCollectManifestEOService extends IService updateBatchDutyTerritory(ParamsCollectManifestVO paramsCollectManifestVO); + + //监控参数收集任务的截止时间,并根据时间段发送飞书 + void checkDeadline(); + } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java index 07ed93543..8e105fc78 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/service/impl/ParamsCollectManifestEOServiceImpl.java @@ -2871,4 +2871,153 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("state", ManifestStateEnum.COLLECTING.getValue()); + List manifestEOS = paramsManifestEOService.list(queryWrapper); + for (ParamsManifestEO manifestEO : manifestEOS) { + //项目名称 + ParamsManifestVO projectInfo = paramsManifestEOService.getProjectById(manifestEO.getProjectId()); + if (ObjectUtils.isNotEmpty(projectInfo)) { + //url + String urlParamsStr = parseUrlParams(manifestEO); + String hrefFeishu = backUrl + "/ParameterItemCollection" + urlParamsStr; + //查出对应清单 + List collectManifestEOS = paramsCollectManifestEOMapper.queryByParamManifestId(manifestEO.getId()); + Map> seven = new HashMap<>(); + Map> three = new HashMap<>(); + Map> today = new HashMap<>(); + for (ParamsCollectManifestEO collectManifestEO : collectManifestEOS) { + String thirdId = null; + if (CollectManifestStateEnum.WAIT_SDT.getValue().equals(collectManifestEO.getState()) + ||CollectManifestStateEnum.DRE_BACK.getValue().equals(collectManifestEO.getState())) { + //工程接口人 + if (ObjectUtils.isNotEmpty(collectManifestEO.getSdt())) { + SysUser sdt = sysUserService.getUserByName(collectManifestEO.getSdt()); + if (ObjectUtils.isNotEmpty(sdt)) { + thirdId = sdt.getThirdId(); + } + } + + } else if (CollectManifestStateEnum.WAIT_FILL.getValue().equals(collectManifestEO.getState()) + ||CollectManifestStateEnum.CERT_BACK.getValue().equals(collectManifestEO.getState())) { + //填写人 + if (ObjectUtils.isNotEmpty(collectManifestEO.getDre())) { + SysUser dre = sysUserService.getUserByName(collectManifestEO.getDre()); + if (ObjectUtils.isNotEmpty(dre)) { + thirdId = dre.getThirdId(); + } + } + } + //截止时间 + if (ObjectUtils.isNotEmpty(thirdId) && ObjectUtils.isNotEmpty(collectManifestEO.getDeadline())) { + String deadline =sdf.format(collectManifestEO.getDeadline()); + //判断日期 + int days = 0; + try { + days = (int) (sdf.parse(deadline).getTime() - sdf.parse(now).getTime()) / (24 * 60 * 60 * 1000); + } catch (Exception e) { + e.printStackTrace(); + throw new JeroBootException("时间获取失败"); + } + if (days == 7) { + deadlineDateMap(seven, collectManifestEO, thirdId); + } else if (days == 3) { + deadlineDateMap(three, collectManifestEO, thirdId); + } else if (now.equals(deadline)) { + deadlineDateMap(today, collectManifestEO, thirdId); + } + + } + } + + String title = MessageType2Enum.HOMO_PARAMETER_COLLECTION.getCn() + "/" + MessageType2Enum.HOMO_PARAMETER_COLLECTION.getEn(); + String cnContentLower = "项目: " + projectInfo.getProjectName() + + "\n发起人: 系统"; + String enContentLower = "Project: " + projectInfo.getProjectName() + + "\nInitiator: system"; + if (!seven.isEmpty()) { + for (String key : seven.keySet()) { + String[] thirds = new String[1]; + thirds[0] = key; + List stringList = seven.get(key); + String join = StringUtils.join(stringList, ","); + try { + FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo(); + feishuMsgVo.setTitle(title); + feishuMsgVo.setCnContentUpper("您参与填写的参数"+ join +",还有7天到期,请及时查看处理"); + feishuMsgVo.setCnContentLower(cnContentLower); + feishuMsgVo.setEnContentUpper("The parameter "+ join +" you filled in will expire in 7 days. Please check and address it in a timely manner"); + feishuMsgVo.setEnContentLower(enContentLower); + feishuMsgVo.setUrl(hrefFeishu); + feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色 + feishuService.sendCard(thirds, feishuMsgVo); + } catch (IOException e) { + log.error("飞书消息推送失败"); + } + } + } + if (!three.isEmpty()) { + for (String key : three.keySet()) { + String[] thirds = new String[1]; + thirds[0] = key; + List stringList = three.get(key); + String join = StringUtils.join(stringList, ","); + try { + FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo(); + feishuMsgVo.setTitle(title); + feishuMsgVo.setCnContentUpper("您参与填写的参数"+ join +",还有3天到期,请及时查看处理"); + feishuMsgVo.setCnContentLower(cnContentLower); + feishuMsgVo.setEnContentUpper("The parameter "+ join +" you filled in will expire in 3 days. Please check and address it in a timely manner"); + feishuMsgVo.setEnContentLower(enContentLower); + feishuMsgVo.setUrl(hrefFeishu); + feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色 + feishuService.sendCard(thirds, feishuMsgVo); + } catch (IOException e) { + log.error("飞书消息推送失败"); + } + } + } + if (!today.isEmpty()) { + for (String key : today.keySet()) { + String[] thirds = new String[1]; + thirds[0] = key; + List stringList = today.get(key); + String join = StringUtils.join(stringList, ","); + try { + FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo(); + feishuMsgVo.setTitle(title); + feishuMsgVo.setCnContentUpper("您参与填写的参数"+ join +",将于今天到期,请及时查看处理"); + feishuMsgVo.setCnContentLower(cnContentLower); + feishuMsgVo.setEnContentUpper("The parameter "+ join +" you filled in will expire today. Please check and address it in a timely manner"); + feishuMsgVo.setEnContentLower(enContentLower); + feishuMsgVo.setUrl(hrefFeishu); + feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色 + feishuService.sendCard(thirds, feishuMsgVo); + } catch (IOException e) { + log.error("飞书消息推送失败"); + } + } + } + } + } + + } + + private void deadlineDateMap(Map> today, ParamsCollectManifestEO collectManifestEO, String thirdId) { + List stringList = today.get(thirdId); + if (ObjectUtils.isEmpty(stringList)) { + stringList = new ArrayList<>(); + stringList.add("NIO-" + collectManifestEO.getNioNumber()); + today.put(thirdId, stringList); + } else { + stringList.add("NIO-" + collectManifestEO.getNioNumber()); + } + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/task/ScheduledTask.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/task/ScheduledTask.java new file mode 100644 index 000000000..91fb719d8 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/cert/collect/task/ScheduledTask.java @@ -0,0 +1,30 @@ +package com.jero.modules.cert.collect.task; + +import com.jero.modules.cert.collect.service.IParamsCollectManifestEOService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@Component +@Slf4j +public class ScheduledTask { + + @Autowired + private IParamsCollectManifestEOService paramsCollectManifestEOServicea; + + /** + * 监控参数收集任务的截止时间,并根据时间段发送飞书 + */ + //@Scheduled(cron = "0 30 14 * * ?") + @Scheduled(cron = "0 0 0 */1 * ?") + public void checkTime() { + log.info("-----checkDeadline-----begin-----------"); + + paramsCollectManifestEOServicea.checkDeadline(); + + log.info("-----checkDeadline------end-----------"); + } + + +} diff --git a/jero-boot/jero-boot-single-startup/src/main/java/com/jero/LawNioApplication.java b/jero-boot/jero-boot-single-startup/src/main/java/com/jero/LawNioApplication.java index 207380e88..87c4ee8cb 100644 --- a/jero-boot/jero-boot-single-startup/src/main/java/com/jero/LawNioApplication.java +++ b/jero-boot/jero-boot-single-startup/src/main/java/com/jero/LawNioApplication.java @@ -11,6 +11,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.core.env.Environment; +import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.web.socket.server.standard.ServerEndpointExporter; import java.net.InetAddress; @@ -25,6 +26,7 @@ import java.net.UnknownHostException; @SpringBootApplication @EnableEurekaClient @EnableFeignClients +@EnableScheduling public class LawNioApplication extends SpringBootServletInitializer { @Override