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

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;
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.CredentialManagementDO;
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;
@ -32,10 +29,11 @@ public class credentialManagementJob implements JobHandler {
private NotifyMessageSendApi notifySendApi;
@Resource
private CredentialManagementService credentialManagementService;
@Resource
private EnterpriseInformationMapper enterpriseInformationMapper;
/**
* 证件即将过期提醒
* 每天凌晨1点执行一次
*/
public void checkCertificateExpiration() {
@ -45,18 +43,29 @@ public class credentialManagementJob implements JobHandler {
//查询到到期时间
credentialManagementService.getAllCertificates().forEach(certificate -> {
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);
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";
templateParams.put("idType","安全证");
templateParams.put("enterpriseName",certificate.getEnterpriseName());
judgementCertificate(certificate, templateParams);
// 如果到期时间和当前时间相差15天则发送通知
if (daysUntilExpiration == daysDifference) {
if (daysUntilExpiration <= daysDifference && today.isBefore(expiryDate)) {
// 执行你的逻辑例如发送通知
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
public String execute(String param) throws Exception {
checkCertificateExpiration();
return null;
}
}

View File

@ -1,25 +1,20 @@
package cn.iocoder.yudao.module.fta.service.enterpriseinformation;
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.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 javax.annotation.Resource;
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.module.fta.enums.ErrorCodeConstants.*;
import static cn.iocoder.yudao.module.fta.enums.ErrorCodeConstants.CREDENTIAL_MANAGEMENT_NOT_EXISTS;
/**
* 企业证件 Service 实现类
@ -80,7 +75,10 @@ public class CredentialManagementServiceImpl implements CredentialManagementServ
/**
* 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() {