diff --git a/bonus-admin/src/main/java/com/bonus/web/service/enterprise/EnterpriseService.java b/bonus-admin/src/main/java/com/bonus/web/service/enterprise/EnterpriseService.java index 1cb3170..52818a2 100644 --- a/bonus-admin/src/main/java/com/bonus/web/service/enterprise/EnterpriseService.java +++ b/bonus-admin/src/main/java/com/bonus/web/service/enterprise/EnterpriseService.java @@ -96,7 +96,7 @@ public class EnterpriseService { sourceFileService.saveResourceFile(dto.getFiles()); // 4.检查身份证是否过期,存在过期则保存至异常信息表 ErrorInfo errorInfo = CertificateUtil.checkCertificateState(dto.getIdCardStartDate(), CertificateConstants.NATIONAL_EMBLEM_ID_CARD, - dto.getEnterpriseId(), dto.getEnterpriseId()); + dto.getEnterpriseId(), dto.getEnterpriseId(),TableConstants.TB_ENTERPRISE); if (Objects.nonNull(errorInfo)) { List errorInfos = Collections.singletonList(errorInfo); imdErrorInfoService.addErrorInfo(errorInfos); @@ -149,7 +149,7 @@ public class EnterpriseService { Collections.singletonList(CertificateConstants.NATIONAL_EMBLEM_ID_CARD)); // 6.检查身份证是否过期,存在过期则保存至异常信息表 ErrorInfo errorInfo = CertificateUtil.checkCertificateState(dto.getIdCardStartDate(), CertificateConstants.NATIONAL_EMBLEM_ID_CARD, - dto.getEnterpriseId(), dto.getEnterpriseId()); + dto.getEnterpriseId(), dto.getEnterpriseId(),TableConstants.TB_ENTERPRISE); if (Objects.nonNull(errorInfo)) { List errorInfos = Collections.singletonList(errorInfo); imdErrorInfoService.addErrorInfo(errorInfos); diff --git a/bonus-admin/src/main/java/com/bonus/web/service/enterprise/PersonnelService.java b/bonus-admin/src/main/java/com/bonus/web/service/enterprise/PersonnelService.java index aa5c081..0e2a1e6 100644 --- a/bonus-admin/src/main/java/com/bonus/web/service/enterprise/PersonnelService.java +++ b/bonus-admin/src/main/java/com/bonus/web/service/enterprise/PersonnelService.java @@ -118,7 +118,8 @@ public class PersonnelService { ErrorInfo errorInfo = CertificateUtil.checkCertificateState(item.getPersonnelCertificate().getCertificateValidityPeriod(), item.getPersonnelCertificate().getCertificateType(), item.getPersonnelCertificate().getPersonnelCertificateId(), - dto.getEnterpriseId()); + dto.getEnterpriseId(), + TableConstants.TB_ENTERPRISE_PERSONNEL); if (Objects.nonNull(errorInfo)) { errorInfos.add(errorInfo); } @@ -215,7 +216,8 @@ public class PersonnelService { ErrorInfo errorInfo = CertificateUtil.checkCertificateState(item.getPersonnelCertificate().getCertificateValidityPeriod(), item.getPersonnelCertificate().getCertificateType(), item.getPersonnelCertificate().getPersonnelCertificateId(), - dto.getEnterpriseId()); + dto.getEnterpriseId(), + TableConstants.TB_ENTERPRISE_PERSONNEL); if (Objects.nonNull(errorInfo)) { errorInfos.add(errorInfo); } diff --git a/bonus-admin/src/main/java/com/bonus/web/service/enterprise/QualificationService.java b/bonus-admin/src/main/java/com/bonus/web/service/enterprise/QualificationService.java index f47c208..3679145 100644 --- a/bonus-admin/src/main/java/com/bonus/web/service/enterprise/QualificationService.java +++ b/bonus-admin/src/main/java/com/bonus/web/service/enterprise/QualificationService.java @@ -110,7 +110,8 @@ public class QualificationService { endDateStr, dto.getQualificationType(), dto.getQualificationId(), - dto.getEnterpriseId() + dto.getEnterpriseId(), + TableConstants.TB_ENTERPRISE_QUALIFICATION ); if (Objects.nonNull(errorInfo)) { List errorInfos = new ArrayList<>(); @@ -179,7 +180,8 @@ public class QualificationService { endDateStr, dto.getQualificationType(), dto.getQualificationId(), - dto.getEnterpriseId() + dto.getEnterpriseId(), + TableConstants.TB_ENTERPRISE_QUALIFICATION ); if (Objects.nonNull(newErrorInfo)) { List newErrorInfos = new ArrayList<>(); diff --git a/bonus-admin/src/main/java/com/bonus/web/service/enterprise/ToolService.java b/bonus-admin/src/main/java/com/bonus/web/service/enterprise/ToolService.java index 28cf797..fc72d85 100644 --- a/bonus-admin/src/main/java/com/bonus/web/service/enterprise/ToolService.java +++ b/bonus-admin/src/main/java/com/bonus/web/service/enterprise/ToolService.java @@ -5,6 +5,7 @@ import com.bonus.common.constant.Constants; import com.bonus.common.constant.TableConstants; import com.bonus.common.core.domain.AjaxResult; import com.bonus.common.domain.file.po.ResourceFilePo; +import com.bonus.common.domain.file.po.ResourceFileRecordPo; import com.bonus.common.domain.file.vo.ResourceFileVo; import com.bonus.common.domain.mainDatabase.dto.TechnicalDto; import com.bonus.common.domain.mainDatabase.dto.ToolDto; @@ -16,6 +17,7 @@ import com.bonus.common.enums.ErrorMessageEnum; import com.bonus.common.utils.ValidatorsUtils; import com.bonus.file.service.FileUploadService; import com.bonus.file.service.SourceFileService; +import com.bonus.framework.manager.AsyncManager; import com.bonus.mainDataBase.service.IMDToolService; import com.bonus.web.util.ImportExcelUtils; import com.bonus.web.validateService.ToolValidateService; @@ -238,14 +240,21 @@ public class ToolService { imdToolService.batchImportData(dto, toolList); // 5.添加文件 List files = new ArrayList<>(); + List resourceFileRecordPos = new ArrayList<>(); for (ToolDto toolDto : toolList) { for (ResourceFilePo po : toolDto.getFiles()) { + ResourceFileRecordPo recordPo = new ResourceFileRecordPo(); po.setBusinessId(toolDto.getToolId()); // 业务id po.setSourceTable(TableConstants.TB_ENTERPRISE_TOOL); // 来源表 + recordPo.setFilePath(po.getFilePath()); files.add(po); } } sourceFileService.saveResourceFile(files); + // 6.保存系统资源存储记录 + if(CollectionUtils.isNotEmpty(resourceFileRecordPos)) { + AsyncManager.me().executeSaveResourceFilesModule(resourceFileRecordPos); + } } catch (Exception e) { log.error(e.toString(), e); return AjaxResult.error(e.getMessage()); @@ -323,4 +332,5 @@ public class ToolService { return sb.toString(); } + } diff --git a/bonus-common/src/main/java/com/bonus/common/domain/mainDatabase/po/PersonnelCertificate.java b/bonus-common/src/main/java/com/bonus/common/domain/mainDatabase/po/PersonnelCertificate.java index d0268f7..12f6d9d 100644 --- a/bonus-common/src/main/java/com/bonus/common/domain/mainDatabase/po/PersonnelCertificate.java +++ b/bonus-common/src/main/java/com/bonus/common/domain/mainDatabase/po/PersonnelCertificate.java @@ -66,4 +66,9 @@ public class PersonnelCertificate { */ private String professionalName; + /** + * 企业id + * */ + private Long enterpriseId; + } \ No newline at end of file diff --git a/bonus-common/src/main/java/com/bonus/common/utils/CertificateUtil.java b/bonus-common/src/main/java/com/bonus/common/utils/CertificateUtil.java index cc10998..580f864 100644 --- a/bonus-common/src/main/java/com/bonus/common/utils/CertificateUtil.java +++ b/bonus-common/src/main/java/com/bonus/common/utils/CertificateUtil.java @@ -53,7 +53,7 @@ public class CertificateUtil { * @date 2025/10/23 10:02 */ public static ErrorInfo checkCertificateState(String endDate, String certificateType, - Long businessId, Long enterpriseId) { + Long businessId, Long enterpriseId,String sourceTable) { // 检查证书是否过期 boolean isExpired = isCertificateExpired(endDate, certificateType); @@ -62,7 +62,7 @@ public class CertificateUtil { } // 构建错误信息 - return buildErrorInfo(businessId, enterpriseId, certificateType); + return buildErrorInfo(businessId, enterpriseId, certificateType,sourceTable); } /** @@ -128,7 +128,7 @@ public class CertificateUtil { /** * 构建错误信息对象 */ - private static ErrorInfo buildErrorInfo(Long businessId, Long enterpriseId, String certificateType) { + private static ErrorInfo buildErrorInfo(Long businessId, Long enterpriseId, String certificateType,String sourceTable) { String errorContent = CERTIFICATE_ERROR_MAP.getOrDefault(certificateType, "证书过期"); ErrorInfo errorInfo = new ErrorInfo(); @@ -137,6 +137,8 @@ public class CertificateUtil { errorInfo.setEnterpriseId(enterpriseId); errorInfo.setErrorTime(new Date()); errorInfo.setErrorContent(errorContent); + errorInfo.setBusinessType(certificateType); + errorInfo.setSourceTable(sourceTable); return errorInfo; } diff --git a/bonus-file/src/main/java/com/bonus/file/mapper/ISourceFileMapper.java b/bonus-file/src/main/java/com/bonus/file/mapper/ISourceFileMapper.java index 312bfbc..2943607 100644 --- a/bonus-file/src/main/java/com/bonus/file/mapper/ISourceFileMapper.java +++ b/bonus-file/src/main/java/com/bonus/file/mapper/ISourceFileMapper.java @@ -85,4 +85,12 @@ public interface ISourceFileMapper { * @date 2025/11/14 15:26 */ void addResourceFileRecord(List list); + + /** + * 查询需要删除的文件 + * @return List + * @author cwchen + * @date 2025/11/14 18:11 + */ + List getDelFiles(); } diff --git a/bonus-file/src/main/java/com/bonus/file/service/SourceFileService.java b/bonus-file/src/main/java/com/bonus/file/service/SourceFileService.java index f697420..8d1fb70 100644 --- a/bonus-file/src/main/java/com/bonus/file/service/SourceFileService.java +++ b/bonus-file/src/main/java/com/bonus/file/service/SourceFileService.java @@ -121,4 +121,19 @@ public class SourceFileService { TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); } } + + /** + * 查询需要删除的文件 + * @return List + * @author cwchen + * @date 2025/11/14 16:17 + */ + public List getDelFiles() { + try { + return Optional.ofNullable(mapper.getDelFiles()).orElse(new ArrayList<>()); + } catch (Exception e) { + log.error(e.toString(),e); + return null; + } + } } diff --git a/bonus-file/src/main/resources/mapper/SourceFileMapper.xml b/bonus-file/src/main/resources/mapper/SourceFileMapper.xml index 221cae4..10d10da 100644 --- a/bonus-file/src/main/resources/mapper/SourceFileMapper.xml +++ b/bonus-file/src/main/resources/mapper/SourceFileMapper.xml @@ -109,4 +109,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ) + + + diff --git a/bonus-framework/src/main/java/com/bonus/framework/manager/AsyncManager.java b/bonus-framework/src/main/java/com/bonus/framework/manager/AsyncManager.java index b3f266d..a1ddaf2 100644 --- a/bonus-framework/src/main/java/com/bonus/framework/manager/AsyncManager.java +++ b/bonus-framework/src/main/java/com/bonus/framework/manager/AsyncManager.java @@ -113,6 +113,24 @@ public class AsyncManager return execute(callable); } + /** + * 批量执行保存系统资源文件的异步任务 + * @param list + * @return Future> + * @author cwchen + * @date 2025/11/14 15:35 + */ + public Future executeSaveResourceFilesModule(List list) { + Callable callable = new Callable() { + @Override + public Void call() throws Exception { + SpringUtils.getBean(SourceFileService.class).addResourceFileRecord(list); + return null; // 必须返回 null + } + }; + return execute(callable); + } + /** * 停止任务线程池 */ diff --git a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/mapper/IMDEnterpriseMapper.java b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/mapper/IMDEnterpriseMapper.java index edea0f1..6333971 100644 --- a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/mapper/IMDEnterpriseMapper.java +++ b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/mapper/IMDEnterpriseMapper.java @@ -1,6 +1,7 @@ package com.bonus.mainDataBase.mapper; import com.bonus.common.domain.mainDatabase.dto.EnterpriseDto; +import com.bonus.common.domain.mainDatabase.po.ErrorInfo; import com.bonus.common.domain.mainDatabase.vo.EnterpriseVo; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -70,4 +71,12 @@ public interface IMDEnterpriseMapper { * @date 2025/10/23 14:08 */ int isRepeat(EnterpriseDto dto); + + /** + * 查询主体库过期证件 + * @return List + * @author cwchen + * @date 2025/11/16 20:30 + */ + List queryExpiredCertificate(); } diff --git a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/mapper/IMDPersonnelMapper.java b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/mapper/IMDPersonnelMapper.java index 50d381e..aa1e6f8 100644 --- a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/mapper/IMDPersonnelMapper.java +++ b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/mapper/IMDPersonnelMapper.java @@ -3,6 +3,7 @@ package com.bonus.mainDataBase.mapper; import com.bonus.common.domain.mainDatabase.dto.EnterpriseDto; import com.bonus.common.domain.mainDatabase.dto.EnterprisePersonnelDto; import com.bonus.common.domain.mainDatabase.po.EnterprisePersonnel; +import com.bonus.common.domain.mainDatabase.po.PersonnelCertificate; import com.bonus.common.domain.mainDatabase.vo.EnterprisePersonnelVo; import com.bonus.common.domain.mainDatabase.vo.EnterpriseVo; import org.apache.ibatis.annotations.Param; @@ -66,4 +67,12 @@ public interface IMDPersonnelMapper { * @date 2025/10/24 13:27 */ EnterprisePersonnel getPersonnelData(EnterprisePersonnelDto dto); + + /** + * 查询证件有效期 + * @return List + * @author cwchen + * @date 2025/11/16 20:56 + */ + List queryExpiredCertificate(); } diff --git a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/IMDEnterpriseService.java b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/IMDEnterpriseService.java index 6ad7616..7f56838 100644 --- a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/IMDEnterpriseService.java +++ b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/IMDEnterpriseService.java @@ -1,6 +1,7 @@ package com.bonus.mainDataBase.service; import com.bonus.common.domain.mainDatabase.dto.EnterpriseDto; +import com.bonus.common.domain.mainDatabase.po.ErrorInfo; import com.bonus.common.domain.mainDatabase.vo.EnterpriseVo; import java.util.List; @@ -58,4 +59,12 @@ public interface IMDEnterpriseService { * @date 2025/10/23 14:07 */ int isRepeat(EnterpriseDto dto); + + /** + * 查询主体库过期证件 + * @return List + * @author cwchen + * @date 2025/11/16 20:29 + */ + List queryExpiredCertificate(); } diff --git a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/IMDPersonnelService.java b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/IMDPersonnelService.java index ba35218..eacb7d4 100644 --- a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/IMDPersonnelService.java +++ b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/IMDPersonnelService.java @@ -2,6 +2,7 @@ package com.bonus.mainDataBase.service; import com.bonus.common.domain.mainDatabase.dto.EnterprisePersonnelDto; import com.bonus.common.domain.mainDatabase.po.EnterprisePersonnel; +import com.bonus.common.domain.mainDatabase.po.ErrorInfo; import com.bonus.common.domain.mainDatabase.vo.EnterprisePersonnelVo; import java.util.List; @@ -60,4 +61,12 @@ public interface IMDPersonnelService { * @date 2025/10/24 13:26 */ EnterprisePersonnel getPersonnelData(EnterprisePersonnelDto dto); + + /** + * 查询人员库过期证件 + * @return List + * @author cwchen + * @date 2025/11/16 20:42 + */ + List queryExpiredCertificate(); } diff --git a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/impl/MDEnterpriseServiceImpl.java b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/impl/MDEnterpriseServiceImpl.java index e4c520f..62612be 100644 --- a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/impl/MDEnterpriseServiceImpl.java +++ b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/impl/MDEnterpriseServiceImpl.java @@ -1,16 +1,19 @@ package com.bonus.mainDataBase.service.impl; +import com.bonus.common.constant.CertificateConstants; +import com.bonus.common.constant.TableConstants; import com.bonus.common.domain.mainDatabase.dto.EnterpriseDto; +import com.bonus.common.domain.mainDatabase.po.ErrorInfo; import com.bonus.common.domain.mainDatabase.vo.EnterpriseVo; +import com.bonus.common.utils.CertificateUtil; import com.bonus.mainDataBase.mapper.IMDEnterpriseMapper; import com.bonus.mainDataBase.service.IMDEnterpriseService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; +import java.util.*; /** * @className:MDEnterpriseServiceImpl @@ -73,4 +76,25 @@ public class MDEnterpriseServiceImpl implements IMDEnterpriseService { return 0; } } + + @Override + public List queryExpiredCertificate() { + try { + List errorInfos = new ArrayList<>(); + List list = Optional.ofNullable(imdEnterpriseMapper.queryExpiredCertificate()).orElse(new ArrayList<>()); + if(CollectionUtils.isNotEmpty(list)){ + for (EnterpriseVo.EnterpriseDetailVo vo : list) { + ErrorInfo errorInfo = CertificateUtil.checkCertificateState(vo.getIdCardStartDate(), CertificateConstants.NATIONAL_EMBLEM_ID_CARD, + vo.getEnterpriseId(), vo.getEnterpriseId(), TableConstants.TB_ENTERPRISE); + if(Objects.nonNull(errorInfo)){ + errorInfos.add(errorInfo); + } + } + } + return errorInfos; + } catch (Exception e) { + log.error(e.toString(), e); + return null; + } + } } diff --git a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/impl/MDPersonnelServiceImpl.java b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/impl/MDPersonnelServiceImpl.java index 4c8408a..b0e7859 100644 --- a/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/impl/MDPersonnelServiceImpl.java +++ b/bonus-mainDatabase/src/main/java/com/bonus/mainDataBase/service/impl/MDPersonnelServiceImpl.java @@ -1,19 +1,22 @@ package com.bonus.mainDataBase.service.impl; +import com.bonus.common.constant.CertificateConstants; +import com.bonus.common.constant.TableConstants; import com.bonus.common.domain.mainDatabase.dto.EnterprisePersonnelDto; import com.bonus.common.domain.mainDatabase.po.EnterprisePersonnel; +import com.bonus.common.domain.mainDatabase.po.ErrorInfo; +import com.bonus.common.domain.mainDatabase.po.PersonnelCertificate; import com.bonus.common.domain.mainDatabase.vo.EnterprisePersonnelVo; import com.bonus.common.domain.mainDatabase.vo.EnterpriseVo; +import com.bonus.common.utils.CertificateUtil; import com.bonus.mainDataBase.mapper.IMDPersonnelMapper; import com.bonus.mainDataBase.service.IMDPersonnelService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Optional; +import java.util.*; /** * @className:MDPersonnelServiceImpl @@ -74,4 +77,25 @@ public class MDPersonnelServiceImpl implements IMDPersonnelService { return new EnterprisePersonnel(); } } + + @Override + public List queryExpiredCertificate() { + try { + List errorInfos = new ArrayList<>(); + List list = Optional.ofNullable(imdPersonnelMapper.queryExpiredCertificate()).orElse(new ArrayList<>()); + if(CollectionUtils.isNotEmpty(list)){ + for (PersonnelCertificate vo : list) { + ErrorInfo errorInfo = CertificateUtil.checkCertificateState(vo.getCertificateValidityPeriod(), vo.getCertificateType(), + vo.getPersonnelCertificateId(), vo.getEnterpriseId(), TableConstants.TB_PERSONNEL_CERTIFICATE); + if(Objects.nonNull(errorInfo)){ + errorInfos.add(errorInfo); + } + } + } + return errorInfos; + } catch (Exception e) { + log.error(e.toString(), e); + return null; + } + } } diff --git a/bonus-mainDatabase/src/main/resources/mapper/EnterpriseMapper.xml b/bonus-mainDatabase/src/main/resources/mapper/EnterpriseMapper.xml index a870962..82463a6 100644 --- a/bonus-mainDatabase/src/main/resources/mapper/EnterpriseMapper.xml +++ b/bonus-mainDatabase/src/main/resources/mapper/EnterpriseMapper.xml @@ -143,4 +143,12 @@ UPDATE tb_enterprise SET del_flag = '1' WHERE enterprise_id = #{params.enterpriseId} + + + diff --git a/bonus-mainDatabase/src/main/resources/mapper/PersonnelMapper.xml b/bonus-mainDatabase/src/main/resources/mapper/PersonnelMapper.xml index ba7e3c3..4d54ea7 100644 --- a/bonus-mainDatabase/src/main/resources/mapper/PersonnelMapper.xml +++ b/bonus-mainDatabase/src/main/resources/mapper/PersonnelMapper.xml @@ -119,4 +119,15 @@ FROM tb_enterprise_personnel WHERE personnel_id = #{personnelId} + + + diff --git a/bonus-quartz/pom.xml b/bonus-quartz/pom.xml index 188fb40..612eee6 100644 --- a/bonus-quartz/pom.xml +++ b/bonus-quartz/pom.xml @@ -34,6 +34,14 @@ com.bonus bonus-common + + com.bonus + bonus-file + + + com.bonus + bonus-mainDatabase +