企业证件管理 到期前十五天预警、已经到期证件提醒

This commit is contained in:
lc 2024-06-19 11:08:39 +08:00
parent e4ab8609c0
commit 7fdf6100bb
2 changed files with 51 additions and 21 deletions

View File

@ -1,16 +1,13 @@
package cn.iocoder.yudao.module.fta.dal.dataobject.job; 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.framework.quartz.core.handler.JobHandler;
import cn.iocoder.yudao.module.fta.dal.dataobject.enterpriseinformation.CredentialManagementDO;
import cn.iocoder.yudao.module.fta.dal.dataobject.enterpriseinformation.EnterpriseInformationDO; 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.dal.mysql.enterpriseinformation.EnterpriseInformationMapper;
import cn.iocoder.yudao.module.fta.service.enterpriseinformation.CredentialManagementService; 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.NotifyMessageSendApi;
import cn.iocoder.yudao.module.system.api.notify.dto.NotifySendSingleToUserReqDTO; 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.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -32,10 +29,11 @@ public class credentialManagementJob implements JobHandler {
private NotifyMessageSendApi notifySendApi; private NotifyMessageSendApi notifySendApi;
@Resource @Resource
private CredentialManagementService credentialManagementService; private CredentialManagementService credentialManagementService;
@Resource
private EnterpriseInformationMapper enterpriseInformationMapper; private EnterpriseInformationMapper enterpriseInformationMapper;
/** /**
* 证件即将过期提醒
* 每天凌晨1点执行一次 * 每天凌晨1点执行一次
*/ */
public void checkCertificateExpiration() { public void checkCertificateExpiration() {
@ -45,18 +43,29 @@ public class credentialManagementJob implements JobHandler {
//查询到到期时间 //查询到到期时间
credentialManagementService.getAllCertificates().forEach(certificate -> { credentialManagementService.getAllCertificates().forEach(certificate -> {
LocalDate expiryDate = certificate.getExpiryDate(); LocalDate expiryDate = certificate.getExpiryDate();
LambdaQueryWrapper<EnterpriseInformationDO> wrapper = new LambdaQueryWrapper<EnterpriseInformationDO>()
.eq(EnterpriseInformationDO::getId, certificate.getInformationId());
EnterpriseInformationDO enterpriseInformation = enterpriseInformationMapper.selectOne(wrapper);
//证书已经过期
if(expiryDate.isBefore(today)){
Map<String, Object> templateParams = new HashMap<>();
String templateCode = "fta_credential_management_overdue";
templateParams.put("enterpriseName",certificate.getEnterpriseName());
judgementCertificate(certificate, templateParams);
templateParams.put("expiryDate",certificate.getExpiryDate().toString());
notifySendApi.sendSingleMessageToAdmin(new NotifySendSingleToUserReqDTO()
.setUserId(Long.parseLong(enterpriseInformation.getCreator())).setTemplateCode(templateCode).setTemplateParams(templateParams));
}
long daysUntilExpiration = ChronoUnit.DAYS.between(today, expiryDate); long daysUntilExpiration = ChronoUnit.DAYS.between(today, expiryDate);
Map<String, Object> templateParams = new HashMap<>(); Map<String, Object> templateParams = new HashMap<>();
LambdaQueryWrapper<EnterpriseInformationDO> wrapper = new LambdaQueryWrapper<EnterpriseInformationDO>()
.eq(EnterpriseInformationDO::getId, certificate.getInformationId());
EnterpriseInformationDO enterpriseInformation = enterpriseInformationMapper.selectOne(wrapper);
String templateCode = "fta_credential_management"; String templateCode = "fta_credential_management";
templateParams.put("idType","安全证"); templateParams.put("enterpriseName",certificate.getEnterpriseName());
judgementCertificate(certificate, templateParams);
// 如果到期时间和当前时间相差15天则发送通知 // 如果到期时间和当前时间相差15天则发送通知
if (daysUntilExpiration == daysDifference) { if (daysUntilExpiration <= daysDifference && today.isBefore(expiryDate)) {
// 执行你的逻辑例如发送通知 // 执行你的逻辑例如发送通知
log.info("[checkCertificateExpiration][证书 {} 到期时间与当前时间相差 {} 天]", certificate.getCertificateNumber(), daysDifference); log.info("[checkCertificateExpiration][证书 {} 到期时间与当前时间相差 {} 天]", certificate.getCertificateNumber(), daysDifference);
// 这里可以添加发送通知的逻辑 // 这里可以添加发送通知的逻辑
@ -67,8 +76,31 @@ public class credentialManagementJob implements JobHandler {
}); });
} }
/**
*判断证件
* @param certificate 证件信息
* @param templateParams
*/
private static void judgementCertificate(CredentialManagementDO certificate, Map<String, Object> templateParams) {
switch (certificate.getIdType()){
case 0:
templateParams.put("idType","安全员证");
break;
case 1:
templateParams.put("idType","安全负责人证");
break;
case 2:
templateParams.put("idType","危险品证");
break;
default:
templateParams.put("idType","证件");
break;
}
}
@Override @Override
public String execute(String param) throws Exception { public String execute(String param) throws Exception {
checkCertificateExpiration();
return null; return null;
} }
} }

View File

@ -1,25 +1,20 @@
package cn.iocoder.yudao.module.fta.service.enterpriseinformation; package cn.iocoder.yudao.module.fta.service.enterpriseinformation;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.fta.controller.admin.enterpriseinformation.vo.CredentialManagementPageReqVO; import cn.iocoder.yudao.module.fta.controller.admin.enterpriseinformation.vo.CredentialManagementPageReqVO;
import cn.iocoder.yudao.module.fta.controller.admin.enterpriseinformation.vo.CredentialManagementSaveReqVO; 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.dataobject.enterpriseinformation.CredentialManagementDO;
import cn.iocoder.yudao.module.fta.dal.mysql.enterpriseinformation.CredentialManagementMapper; import cn.iocoder.yudao.module.fta.dal.mysql.enterpriseinformation.CredentialManagementMapper;
import com.sun.deploy.security.CredentialInfo;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import javax.annotation.Resource;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.fta.enums.ErrorCodeConstants.*; import static cn.iocoder.yudao.module.fta.enums.ErrorCodeConstants.CREDENTIAL_MANAGEMENT_NOT_EXISTS;
/** /**
* 企业证件 Service 实现类 * 企业证件 Service 实现类
@ -80,7 +75,10 @@ public class CredentialManagementServiceImpl implements CredentialManagementServ
/** /**
* 1查询出所有的CredentialManagementDO信息 * 1查询出所有的CredentialManagementDO信息
*/ */
return credentialManagementMapper.selectList(); List<CredentialManagementDO> credentialManagementDOS = credentialManagementMapper.selectList();
List<CredentialManagementDO> list = credentialManagementDOS.stream().filter(data -> data.getStatus() != null &&
data.getStatus().equals("已通过审核")).collect(Collectors.toList());
return list;
} }
//public List<Map<String, Object>> getAllCertificates() { //public List<Map<String, Object>> getAllCertificates() {
@ -124,4 +122,4 @@ public class CredentialManagementServiceImpl implements CredentialManagementServ
// CredentialInfo credentialInfo = new CredentialInfo(informationId, expiryDate); // CredentialInfo credentialInfo = new CredentialInfo(informationId, expiryDate);
// certificates.add(credentialInfo); // certificates.add(credentialInfo);
//} //}
} }