定期检查资质证书过期数据

This commit is contained in:
LHD_HY 2025-11-18 14:51:16 +08:00
parent d1809af5e4
commit c5975f90ae
6 changed files with 103 additions and 3 deletions

View File

@ -14,4 +14,9 @@ public class CertificateConstants {
/**营业执照*/ /**营业执照*/
public static final String BUSINESS_LICENSE = "business_license"; public static final String BUSINESS_LICENSE = "business_license";
/**资质证书*/
public static final String QUALIFICATON_CERTIFICATE = "qualification_certificate";
} }

View File

@ -2,6 +2,7 @@ package com.bonus.mainDataBase.mapper;
import com.bonus.common.domain.mainDatabase.dto.QualificationDto; import com.bonus.common.domain.mainDatabase.dto.QualificationDto;
import com.bonus.common.domain.mainDatabase.po.Qualification; import com.bonus.common.domain.mainDatabase.po.Qualification;
import com.bonus.common.domain.mainDatabase.vo.EnterpriseVo;
import com.bonus.common.domain.mainDatabase.vo.QualificationVo; import com.bonus.common.domain.mainDatabase.vo.QualificationVo;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
@ -58,4 +59,13 @@ public interface IMDQualificationMapper {
* @date 2025/10/30 14:10 * @date 2025/10/30 14:10
*/ */
QualificationVo getQualificationData(QualificationDto dto); QualificationVo getQualificationData(QualificationDto dto);
/**
* 查询资质库过期证件
* @return List<ErrorInfo>
* @author csy
* @date 2025/11/16 20:30
*/
List<QualificationVo> queryExpiredCertificate();
} }

View File

@ -1,6 +1,7 @@
package com.bonus.mainDataBase.service; package com.bonus.mainDataBase.service;
import com.bonus.common.domain.mainDatabase.dto.QualificationDto; import com.bonus.common.domain.mainDatabase.dto.QualificationDto;
import com.bonus.common.domain.mainDatabase.po.ErrorInfo;
import com.bonus.common.domain.mainDatabase.po.Qualification; import com.bonus.common.domain.mainDatabase.po.Qualification;
import com.bonus.common.domain.mainDatabase.vo.QualificationVo; import com.bonus.common.domain.mainDatabase.vo.QualificationVo;
@ -52,4 +53,13 @@ public interface IMDQualificationService {
* @date 2025/10/30 10:32 * @date 2025/10/30 10:32
*/ */
QualificationVo getQualificationData(QualificationDto dto); QualificationVo getQualificationData(QualificationDto dto);
/**
* 查询资质库过期证件
* @return List<ErrorInfo>
* @author csy
* @date 2025/11/16 20:29
*/
List<ErrorInfo> queryExpiredCertificate();
} }

View File

@ -1,17 +1,21 @@
package com.bonus.mainDataBase.service.impl; package com.bonus.mainDataBase.service.impl;
import com.bonus.common.constant.CertificateConstants;
import com.bonus.common.domain.mainDatabase.dto.QualificationDto; import com.bonus.common.domain.mainDatabase.dto.QualificationDto;
import com.bonus.common.domain.mainDatabase.po.Qualification; import com.bonus.common.domain.mainDatabase.po.Qualification;
import com.bonus.common.domain.mainDatabase.po.ErrorInfo;
import com.bonus.common.domain.mainDatabase.vo.QualificationVo; import com.bonus.common.domain.mainDatabase.vo.QualificationVo;
import com.bonus.mainDataBase.mapper.IMDQualificationMapper; import com.bonus.mainDataBase.mapper.IMDQualificationMapper;
import com.bonus.mainDataBase.service.IMDQualificationService; import com.bonus.mainDataBase.service.IMDQualificationService;
import org.apache.commons.collections4.CollectionUtils;
import com.bonus.common.utils.CertificateUtil;
import com.bonus.common.constant.TableConstants;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.ArrayList; import java.text.SimpleDateFormat;
import java.util.List; import java.util.*;
import java.util.Optional;
/** /**
* @className:MDQualificationServiceImpl * @className:MDQualificationServiceImpl
@ -86,4 +90,45 @@ public class MDQualificationServiceImpl implements IMDQualificationService {
return new QualificationVo(); return new QualificationVo();
} }
} }
@Override
public List<ErrorInfo> queryExpiredCertificate() {
try {
List<ErrorInfo> errorInfos = new ArrayList<>();
// 定义日期格式化器根据实际需求调整格式如yyyy-MM-dd
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 查询所有资质信息
List<QualificationVo> qualificationList = Optional.ofNullable(imdQualificationMapper.queryExpiredCertificate())
.orElse(new ArrayList<>());
if (CollectionUtils.isNotEmpty(qualificationList)) {
for (QualificationVo vo : qualificationList) {
// 将Date类型的证书截止日期转换为String类型
String certificateEndDateStr = null;
Date endDate = vo.getCertificateEndDate();
if (endDate != null) {
certificateEndDateStr = sdf.format(endDate);
}
// 调用工具类检查证书状态传入转换后的字符串
ErrorInfo errorInfo = CertificateUtil.checkCertificateState(
certificateEndDateStr, // 转换后的String类型截止日期
CertificateConstants.QUALIFICATON_CERTIFICATE,
vo.getQualificationId(),
vo.getEnterpriseId(),
TableConstants.TB_ENTERPRISE_QUALIFICATION
);
if (Objects.nonNull(errorInfo)) {
errorInfos.add(errorInfo);
}
}
}
return errorInfos;
} catch (Exception e) {
log.error("查询过期资质证书异常", e);
return new ArrayList<>();
}
}
} }

View File

@ -168,4 +168,14 @@
and qualification_id = #{qualificationId} and qualification_id = #{qualificationId}
</select> </select>
<select id="queryExpiredCertificate" resultMap="qualificationResult">
SELECT
q.qualification_id AS qualificationId,
q.enterprise_id AS enterpriseId,
q.certificate_name AS certificateName,
q.certificate_end_date AS certificateEndDate
FROM tb_enterprise_qualification q
WHERE q.del_flag = '0'
</select>
</mapper> </mapper>

View File

@ -5,6 +5,7 @@ import com.bonus.common.domain.mainDatabase.po.ErrorInfo;
import com.bonus.mainDataBase.service.IMDEnterpriseService; import com.bonus.mainDataBase.service.IMDEnterpriseService;
import com.bonus.mainDataBase.service.IMDErrorInfoService; import com.bonus.mainDataBase.service.IMDErrorInfoService;
import com.bonus.mainDataBase.service.IMDPersonnelService; import com.bonus.mainDataBase.service.IMDPersonnelService;
import com.bonus.mainDataBase.service.IMDQualificationService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -33,6 +34,9 @@ public class ScanCertificateTask {
@Resource(name = "IMDPersonnelService") @Resource(name = "IMDPersonnelService")
private IMDPersonnelService imdPersonnelService; private IMDPersonnelService imdPersonnelService;
@Resource(name = "IMDQualificationService")
private IMDQualificationService imdQualificationService;
public void scanCertificate() { public void scanCertificate() {
log.info("开始扫描证件是否过期"); log.info("开始扫描证件是否过期");
List<ErrorInfo> totalList = new ArrayList<>(); List<ErrorInfo> totalList = new ArrayList<>();
@ -62,6 +66,10 @@ public class ScanCertificateTask {
List<ErrorInfo> personnelCertificateList = handlePersonnelCertificateErrorInfo(); List<ErrorInfo> personnelCertificateList = handlePersonnelCertificateErrorInfo();
errorInfos.addAll(personnelCertificateList); errorInfos.addAll(personnelCertificateList);
break; break;
case TableConstants.TB_ENTERPRISE_QUALIFICATION: // 人员证件
List<ErrorInfo> qualificaitonList = handleQualificationErrorInfo();
errorInfos.addAll(qualificaitonList);
break;
default: default:
break; break;
} }
@ -87,6 +95,18 @@ public class ScanCertificateTask {
* @author cwchen * @author cwchen
* @date 2025/11/17 14:50 * @date 2025/11/17 14:50
*/ */
private List<ErrorInfo> handleQualificationErrorInfo() {
List<ErrorInfo> expiredList = imdQualificationService.queryExpiredCertificate();
return filterNotExistErrorInfo(expiredList, TableConstants.TB_PERSONNEL_CERTIFICATE);
}
/**
* 处理资质证件过期异常数据
*
* @return List<ErrorInfo>
* @author lhdhy
* @date 2025/11/17 16:50
*/
private List<ErrorInfo> handlePersonnelCertificateErrorInfo() { private List<ErrorInfo> handlePersonnelCertificateErrorInfo() {
List<ErrorInfo> expiredList = imdPersonnelService.queryExpiredCertificate(); List<ErrorInfo> expiredList = imdPersonnelService.queryExpiredCertificate();
return filterNotExistErrorInfo(expiredList, TableConstants.TB_PERSONNEL_CERTIFICATE); return filterNotExistErrorInfo(expiredList, TableConstants.TB_PERSONNEL_CERTIFICATE);