From c5975f90ae289358522f7df5e36a5ab200e01418 Mon Sep 17 00:00:00 2001 From: LHD_HY <2872546851@qq.com> Date: Tue, 18 Nov 2025 14:51:16 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=9C=9F=E6=A3=80=E6=9F=A5=E8=B5=84?= =?UTF-8?q?=E8=B4=A8=E8=AF=81=E4=B9=A6=E8=BF=87=E6=9C=9F=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/constant/CertificateConstants.java | 5 ++ .../mapper/IMDQualificationMapper.java | 10 ++++ .../service/IMDQualificationService.java | 10 ++++ .../impl/MDQualificationServiceImpl.java | 51 +++++++++++++++++-- .../resources/mapper/QualificationMapper.xml | 10 ++++ .../quartz/task/ScanCertificateTask.java | 20 ++++++++ 6 files changed, 103 insertions(+), 3 deletions(-) diff --git a/bonus-common/src/main/java/com/bonus/common/constant/CertificateConstants.java b/bonus-common/src/main/java/com/bonus/common/constant/CertificateConstants.java index c3358df..d0d9906 100644 --- a/bonus-common/src/main/java/com/bonus/common/constant/CertificateConstants.java +++ b/bonus-common/src/main/java/com/bonus/common/constant/CertificateConstants.java @@ -14,4 +14,9 @@ public class CertificateConstants { /**营业执照*/ public static final String BUSINESS_LICENSE = "business_license"; + + /**资质证书*/ + public static final String QUALIFICATON_CERTIFICATE = "qualification_certificate"; + + } diff --git a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/mapper/IMDQualificationMapper.java b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/mapper/IMDQualificationMapper.java index ce62b2a..2ec1990 100644 --- a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/mapper/IMDQualificationMapper.java +++ b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/mapper/IMDQualificationMapper.java @@ -2,6 +2,7 @@ package com.bonus.mainDataBase.mapper; import com.bonus.common.domain.mainDatabase.dto.QualificationDto; 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 org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -58,4 +59,13 @@ public interface IMDQualificationMapper { * @date 2025/10/30 14:10 */ QualificationVo getQualificationData(QualificationDto dto); + + /** + * 查询资质库过期证件 + * @return List + * @author csy + * @date 2025/11/16 20:30 + */ + List queryExpiredCertificate(); + } diff --git a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/IMDQualificationService.java b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/IMDQualificationService.java index 80d48d9..f0a8b28 100644 --- a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/IMDQualificationService.java +++ b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/IMDQualificationService.java @@ -1,6 +1,7 @@ package com.bonus.mainDataBase.service; 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.vo.QualificationVo; @@ -52,4 +53,13 @@ public interface IMDQualificationService { * @date 2025/10/30 10:32 */ QualificationVo getQualificationData(QualificationDto dto); + + /** + * 查询资质库过期证件 + * @return List + * @author csy + * @date 2025/11/16 20:29 + */ + List queryExpiredCertificate(); + } diff --git a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/impl/MDQualificationServiceImpl.java b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/impl/MDQualificationServiceImpl.java index a82938d..a3ebc5e 100644 --- a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/impl/MDQualificationServiceImpl.java +++ b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/impl/MDQualificationServiceImpl.java @@ -1,17 +1,21 @@ 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.po.Qualification; +import com.bonus.common.domain.mainDatabase.po.ErrorInfo; import com.bonus.common.domain.mainDatabase.vo.QualificationVo; import com.bonus.mainDataBase.mapper.IMDQualificationMapper; 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 org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; +import java.text.SimpleDateFormat; +import java.util.*; /** * @className:MDQualificationServiceImpl @@ -86,4 +90,45 @@ public class MDQualificationServiceImpl implements IMDQualificationService { return new QualificationVo(); } } + + + @Override + public List queryExpiredCertificate() { + try { + List errorInfos = new ArrayList<>(); + // 定义日期格式化器(根据实际需求调整格式,如yyyy-MM-dd) + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + // 查询所有资质信息 + List 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<>(); + } + } + + } diff --git a/bonus-mainDatabase/src/main/resources/mapper/QualificationMapper.xml b/bonus-mainDatabase/src/main/resources/mapper/QualificationMapper.xml index 9d0b408..45d7e0e 100644 --- a/bonus-mainDatabase/src/main/resources/mapper/QualificationMapper.xml +++ b/bonus-mainDatabase/src/main/resources/mapper/QualificationMapper.xml @@ -168,4 +168,14 @@ and qualification_id = #{qualificationId} + + diff --git a/bonus-quartz/src/main/java/com/bonus/quartz/task/ScanCertificateTask.java b/bonus-quartz/src/main/java/com/bonus/quartz/task/ScanCertificateTask.java index 21f7825..81d4c53 100644 --- a/bonus-quartz/src/main/java/com/bonus/quartz/task/ScanCertificateTask.java +++ b/bonus-quartz/src/main/java/com/bonus/quartz/task/ScanCertificateTask.java @@ -5,6 +5,7 @@ import com.bonus.common.domain.mainDatabase.po.ErrorInfo; import com.bonus.mainDataBase.service.IMDEnterpriseService; import com.bonus.mainDataBase.service.IMDErrorInfoService; import com.bonus.mainDataBase.service.IMDPersonnelService; +import com.bonus.mainDataBase.service.IMDQualificationService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Component; @@ -33,6 +34,9 @@ public class ScanCertificateTask { @Resource(name = "IMDPersonnelService") private IMDPersonnelService imdPersonnelService; + @Resource(name = "IMDQualificationService") + private IMDQualificationService imdQualificationService; + public void scanCertificate() { log.info("开始扫描证件是否过期"); List totalList = new ArrayList<>(); @@ -62,6 +66,10 @@ public class ScanCertificateTask { List personnelCertificateList = handlePersonnelCertificateErrorInfo(); errorInfos.addAll(personnelCertificateList); break; + case TableConstants.TB_ENTERPRISE_QUALIFICATION: // 人员证件 + List qualificaitonList = handleQualificationErrorInfo(); + errorInfos.addAll(qualificaitonList); + break; default: break; } @@ -87,6 +95,18 @@ public class ScanCertificateTask { * @author cwchen * @date 2025/11/17 14:50 */ + private List handleQualificationErrorInfo() { + List expiredList = imdQualificationService.queryExpiredCertificate(); + return filterNotExistErrorInfo(expiredList, TableConstants.TB_PERSONNEL_CERTIFICATE); + } + + /** + * 处理资质证件过期异常数据 + * + * @return List + * @author lhdhy + * @date 2025/11/17 16:50 + */ private List handlePersonnelCertificateErrorInfo() { List expiredList = imdPersonnelService.queryExpiredCertificate(); return filterNotExistErrorInfo(expiredList, TableConstants.TB_PERSONNEL_CERTIFICATE);