From 1f74492ebd1e35c986331a3b35b8001adde4531d Mon Sep 17 00:00:00 2001
From: xue <571013506@qq.com>
Date: Wed, 15 May 2024 18:08:09 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=81=E4=B8=9A=E8=AF=81=E4=BB=B6=E7=AB=99?=
=?UTF-8?q?=E5=86=85=E4=BF=A1--=E6=9C=AA=E6=B5=8B=E8=AF=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
yudao-module-fta/yudao-module-fta-biz/pom.xml | 13 ++++
.../job/credentialManagementJob.java | 74 +++++++++++++++++++
.../CredentialManagementService.java | 10 +++
.../CredentialManagementServiceImpl.java | 56 ++++++++++++++
.../src/main/resources/application-local.yaml | 2 +-
5 files changed, 154 insertions(+), 1 deletion(-)
create mode 100644 yudao-module-fta/yudao-module-fta-biz/src/main/java/cn/iocoder/yudao/module/fta/dal/dataobject/job/credentialManagementJob.java
diff --git a/yudao-module-fta/yudao-module-fta-biz/pom.xml b/yudao-module-fta/yudao-module-fta-biz/pom.xml
index 39796ec..4b3ba1e 100644
--- a/yudao-module-fta/yudao-module-fta-biz/pom.xml
+++ b/yudao-module-fta/yudao-module-fta-biz/pom.xml
@@ -55,11 +55,24 @@
yudao-spring-boot-starter-excel
+
+
+ cn.iocoder.boot
+ yudao-spring-boot-starter-job
+
+
cn.iocoder.boot
yudao-spring-boot-starter-test
+
+
+
+ cn.iocoder.boot
+ yudao-module-system-api
+ ${revision}
+
diff --git a/yudao-module-fta/yudao-module-fta-biz/src/main/java/cn/iocoder/yudao/module/fta/dal/dataobject/job/credentialManagementJob.java b/yudao-module-fta/yudao-module-fta-biz/src/main/java/cn/iocoder/yudao/module/fta/dal/dataobject/job/credentialManagementJob.java
new file mode 100644
index 0000000..f0abd99
--- /dev/null
+++ b/yudao-module-fta/yudao-module-fta-biz/src/main/java/cn/iocoder/yudao/module/fta/dal/dataobject/job/credentialManagementJob.java
@@ -0,0 +1,74 @@
+package cn.iocoder.yudao.module.fta.dal.dataobject.job;
+
+import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
+import cn.iocoder.yudao.framework.mybatis.core.query.QueryWrapperX;
+import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
+import cn.iocoder.yudao.module.fta.dal.dataobject.enterpriseinformation.EnterpriseInformationDO;
+import cn.iocoder.yudao.module.fta.dal.mysql.enterpriseinformation.EnterpriseInformationMapper;
+import cn.iocoder.yudao.module.fta.service.enterpriseinformation.CredentialManagementService;
+import cn.iocoder.yudao.module.fta.service.enterpriseinformation.EnterpriseInformationService;
+import cn.iocoder.yudao.module.system.api.notify.NotifyMessageSendApi;
+import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.temporal.ChronoUnit;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 企业证件过期查询
+ */
+@Slf4j
+@Component
+public class credentialManagementJob implements JobHandler {
+
+
+ @Resource
+ private NotifyMessageSendApi notifySendApi;
+ @Resource
+ private CredentialManagementService credentialManagementService;
+
+ private EnterpriseInformationMapper enterpriseInformationMapper;
+
+ /**
+ * 每天凌晨1点执行一次
+ */
+ public void checkCertificateExpiration() {
+ LocalDate today = LocalDate.now();
+ int daysDifference = 15; // 证书到期时间和当前时间相差的天数阈值
+
+ //查询到到期时间
+ credentialManagementService.getAllCertificates().forEach(certificate -> {
+ LocalDate expiryDate = certificate.getExpiryDate();
+ long daysUntilExpiration = ChronoUnit.DAYS.between(today, expiryDate);
+
+ Map templateParams = new HashMap<>();
+
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper()
+ .eq(EnterpriseInformationDO::getId, certificate.getInformationId());
+ EnterpriseInformationDO enterpriseInformation = enterpriseInformationMapper.selectOne(wrapper);
+
+ String templateCode = "fta_credential_management";
+ templateParams.put("idType","安全证");
+ // 如果到期时间和当前时间相差15天,则发送通知
+ if (daysUntilExpiration == daysDifference) {
+ // 执行你的逻辑,例如发送通知
+ log.info("[checkCertificateExpiration][证书 {} 到期时间与当前时间相差 {} 天]", certificate.getCertificateNumber(), daysDifference);
+ // 这里可以添加发送通知的逻辑
+
+ notifySendApi.sendSingleMessageToAdmin(new NotifySendSingleToUserReqDTO()
+ .setUserId(Long.parseLong(enterpriseInformation.getCreator())).setTemplateCode(templateCode).setTemplateParams(templateParams));
+ }
+ });
+ }
+
+ @Override
+ public String execute(String param) throws Exception {
+ return null;
+ }
+}
diff --git a/yudao-module-fta/yudao-module-fta-biz/src/main/java/cn/iocoder/yudao/module/fta/service/enterpriseinformation/CredentialManagementService.java b/yudao-module-fta/yudao-module-fta-biz/src/main/java/cn/iocoder/yudao/module/fta/service/enterpriseinformation/CredentialManagementService.java
index a39fb9e..a051f22 100644
--- a/yudao-module-fta/yudao-module-fta-biz/src/main/java/cn/iocoder/yudao/module/fta/service/enterpriseinformation/CredentialManagementService.java
+++ b/yudao-module-fta/yudao-module-fta-biz/src/main/java/cn/iocoder/yudao/module/fta/service/enterpriseinformation/CredentialManagementService.java
@@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.fta.dal.dataobject.enterpriseinformation.Credenti
import javax.validation.*;
+import java.util.List;
/**
@@ -54,4 +55,13 @@ public interface CredentialManagementService {
*/
PageResult getCredentialManagementPage(CredentialManagementPageReqVO pageReqVO);
+
+ // 假设这里有一个方法用于从数据库或其他地方获取所有证书的列表
+ List getAllCertificates();
+
+ // 假设这里有一个方法用于发送通知
+ //public void sendNotification(Certificate certificate) {
+ // // 实现发送通知的逻辑
+ //}
+
}
\ No newline at end of file
diff --git a/yudao-module-fta/yudao-module-fta-biz/src/main/java/cn/iocoder/yudao/module/fta/service/enterpriseinformation/CredentialManagementServiceImpl.java b/yudao-module-fta/yudao-module-fta-biz/src/main/java/cn/iocoder/yudao/module/fta/service/enterpriseinformation/CredentialManagementServiceImpl.java
index 7d120c0..817bc9c 100644
--- a/yudao-module-fta/yudao-module-fta-biz/src/main/java/cn/iocoder/yudao/module/fta/service/enterpriseinformation/CredentialManagementServiceImpl.java
+++ b/yudao-module-fta/yudao-module-fta-biz/src/main/java/cn/iocoder/yudao/module/fta/service/enterpriseinformation/CredentialManagementServiceImpl.java
@@ -5,12 +5,19 @@ import cn.iocoder.yudao.module.fta.controller.admin.enterpriseinformation.vo.Cre
import cn.iocoder.yudao.module.fta.controller.admin.enterpriseinformation.vo.CredentialManagementSaveReqVO;
import cn.iocoder.yudao.module.fta.dal.dataobject.enterpriseinformation.CredentialManagementDO;
import cn.iocoder.yudao.module.fta.dal.mysql.enterpriseinformation.CredentialManagementMapper;
+import com.sun.deploy.security.CredentialInfo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.fta.enums.ErrorCodeConstants.*;
@@ -68,4 +75,53 @@ public class CredentialManagementServiceImpl implements CredentialManagementServ
return credentialManagementMapper.selectPage(pageReqVO);
}
+ @Override
+ public List getAllCertificates() {
+ /**
+ * 1、查询出所有的CredentialManagementDO信息
+ */
+ return credentialManagementMapper.selectList();
+ }
+
+ //public List