企业主体库问题修改

This commit is contained in:
cwchen 2025-11-17 14:10:52 +08:00
parent b8341a9d8c
commit b49b7d63c7
8 changed files with 127 additions and 35 deletions

View File

@ -23,6 +23,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
@ -62,7 +63,28 @@ public class EnterpriseService {
* @date 2025/10/22 16:18
*/
public List<EnterpriseVo> getList(EnterpriseDto dto) {
return imdEnterpriseService.getList(dto);
List<EnterpriseVo> list = imdEnterpriseService.getList(dto);
for (EnterpriseVo vo : list) {
ErrorInfo errorQueryDto = createErrorQueryDto(vo);
// 查询异常消息
List<String> errorList = imdErrorInfoService.getErrorInfoByTable(errorQueryDto);
vo.setErrorInfos(errorList);
}
return list;
}
/**
* 创建查询条件
* @param vo
* @return ErrorInfo
* @author cwchen
* @date 2025/11/17 13:27
*/
public static ErrorInfo createErrorQueryDto(EnterpriseVo vo){
ErrorInfo errorInfo = new ErrorInfo();
errorInfo.setSourceTable(TableConstants.TB_ENTERPRISE);
errorInfo.setBusinessId(vo.getEnterpriseId());
return errorInfo;
}
/**
@ -94,11 +116,9 @@ public class EnterpriseService {
file.setSourceTable(TableConstants.TB_ENTERPRISE); // 来源表
}
sourceFileService.saveResourceFile(dto.getFiles());
// 4.检查身份证是否过期,存在过期则保存至异常信息表
ErrorInfo errorInfo = CertificateUtil.checkCertificateState(dto.getIdCardStartDate(), CertificateConstants.NATIONAL_EMBLEM_ID_CARD,
dto.getEnterpriseId(), dto.getEnterpriseId(),TableConstants.TB_ENTERPRISE);
if (Objects.nonNull(errorInfo)) {
List<ErrorInfo> errorInfos = Collections.singletonList(errorInfo);
// 4.检查身份证和营业执照是否过期,存在过期则保存至异常信息表
List<ErrorInfo> errorInfos = checkCertificateStates(dto);
if (CollectionUtils.isNotEmpty(errorInfos)) {
imdErrorInfoService.addErrorInfo(errorInfos);
}
} catch (Exception e) {
@ -145,13 +165,14 @@ public class EnterpriseService {
sourceFileService.delResourceFile(dto.getDelFiles(), TableConstants.TB_ENTERPRISE);
}
// 5.删除异常信息数据
List<String> errorType = new ArrayList<>();
errorType.add(CertificateConstants.NATIONAL_EMBLEM_ID_CARD);
errorType.add(CertificateConstants.BUSINESS_LICENSE);
imdErrorInfoService.delErrorInfo(dto.getEnterpriseId(), TableConstants.TB_ENTERPRISE,
Collections.singletonList(CertificateConstants.NATIONAL_EMBLEM_ID_CARD));
// 6.检查身份证是否过期,存在过期则保存至异常信息表
ErrorInfo errorInfo = CertificateUtil.checkCertificateState(dto.getIdCardStartDate(), CertificateConstants.NATIONAL_EMBLEM_ID_CARD,
dto.getEnterpriseId(), dto.getEnterpriseId(),TableConstants.TB_ENTERPRISE);
if (Objects.nonNull(errorInfo)) {
List<ErrorInfo> errorInfos = Collections.singletonList(errorInfo);
errorType);
// 6.检查身份证和营业执照是否过期,存在过期则保存至异常信息表
List<ErrorInfo> errorInfos = checkCertificateStates(dto);
if (CollectionUtils.isNotEmpty(errorInfos)) {
imdErrorInfoService.addErrorInfo(errorInfos);
}
} catch (Exception e) {
@ -162,6 +183,27 @@ public class EnterpriseService {
return AjaxResult.success();
}
private List<ErrorInfo> checkCertificateStates(EnterpriseDto dto) {
List<ErrorInfo> errorInfos = new ArrayList<>();
addIfNotNull(errorInfos,
CertificateUtil.checkCertificateState(dto.getIdCardStartDate(),
CertificateConstants.NATIONAL_EMBLEM_ID_CARD,
dto.getEnterpriseId(), dto.getEnterpriseId(), TableConstants.TB_ENTERPRISE));
addIfNotNull(errorInfos,
CertificateUtil.checkCertificateState(dto.getBusinessTerm(),
CertificateConstants.BUSINESS_LICENSE,
dto.getEnterpriseId(), dto.getEnterpriseId(), TableConstants.TB_ENTERPRISE));
return errorInfos;
}
private void addIfNotNull(List<ErrorInfo> list, ErrorInfo item) {
if (Objects.nonNull(item)) {
list.add(item);
}
}
/**
* 主体库->删除主体库
*

View File

@ -11,4 +11,7 @@ public class CertificateConstants {
/**身份证*/
public static final String NATIONAL_EMBLEM_ID_CARD = "national_emblem_id_card";
/**营业执照*/
public static final String BUSINESS_LICENSE = "business_license";
}

View File

@ -23,17 +23,18 @@ public class CertificateUtil {
static {
// 初始化证书类型与错误信息的映射
CERTIFICATE_ERROR_MAP.put("national_emblem_id_card", "身份证过期");
CERTIFICATE_ERROR_MAP.put("constructor_certificate", "建造师证书过期");
CERTIFICATE_ERROR_MAP.put("safety_assessment_certificate_b", "安全考核B证过期");
CERTIFICATE_ERROR_MAP.put("safety_assessment_certificate_c", "安全考核C证过期");
CERTIFICATE_ERROR_MAP.put("professional_title_certificate", "质检员证过期");
CERTIFICATE_ERROR_MAP.put("quality_inspector_certificate", "质检员证过期");
CERTIFICATE_ERROR_MAP.put("construction_worker_certificate", "施工员证过期");
CERTIFICATE_ERROR_MAP.put("materials_officer_certificate", "材料员证过期");
CERTIFICATE_ERROR_MAP.put("document_clerk_certificate", "资料员证过期");
CERTIFICATE_ERROR_MAP.put("mechanic_s_certificate", "机械员证过期");
CERTIFICATE_ERROR_MAP.put("cost_engineer_certificate", "造价员证过期");
CERTIFICATE_ERROR_MAP.put("national_emblem_id_card", "【身份证】已过期");
CERTIFICATE_ERROR_MAP.put("business_license", "【营业执照】已过期");
CERTIFICATE_ERROR_MAP.put("constructor_certificate", "【建造师证书】已过期");
CERTIFICATE_ERROR_MAP.put("safety_assessment_certificate_b", "【安全考核B证】已过期");
CERTIFICATE_ERROR_MAP.put("safety_assessment_certificate_c", "【安全考核C证】已过期");
CERTIFICATE_ERROR_MAP.put("professional_title_certificate", "【质检员证】已过期");
CERTIFICATE_ERROR_MAP.put("quality_inspector_certificate", "【质检员证】已过期");
CERTIFICATE_ERROR_MAP.put("construction_worker_certificate", "【施工员证】已过期");
CERTIFICATE_ERROR_MAP.put("materials_officer_certificate", "【材料员证】已过期");
CERTIFICATE_ERROR_MAP.put("document_clerk_certificate", "【资料员证】已过期");
CERTIFICATE_ERROR_MAP.put("mechanic_s_certificate", "【机械员证】已过期");
CERTIFICATE_ERROR_MAP.put("cost_engineer_certificate", "【造价员证】已过期");
}
/**
@ -74,8 +75,8 @@ public class CertificateUtil {
return true; // 如果日期为空视为过期
}
// 身份证特殊处理
if ("national_emblem_id_card".equals(certificateType)) {
// 身份证营业执照特殊处理
if ("national_emblem_id_card".equals(certificateType) || "business_license".equals(certificateType)) {
return isIdCardExpired(endDate);
}

View File

@ -470,8 +470,8 @@ public class DateTimeHelper {
public static void main(String[] args) {
// getWeekDataList("2023-08-01");
System.err.println(getDayADDorReduce("2023-01-01", -7));
System.err.println(isExpired("2018.02.14"));
// System.err.println(getDayADDorReduce("2023-01-01", -7));
// System.err.println(getWeekStartOrEndTime("2023-09-01",true));
// System.err.println(getWeekStartOrEndTime("2023-09-01",false));
}
@ -789,24 +789,41 @@ public class DateTimeHelper {
* @return true: 已超过当前日期过期, false: 未超过当前日期
*/
public static boolean isExpired(String dateStr) {
return isExpired(dateStr, "yyyy-MM-dd");
return dateIsExpired(dateStr);
}
/**
* 判断传入日期是否超过当前日期自定义格式
* @param dateStr 日期字符串
* @param pattern 日期格式
* @return true: 已超过当前日期过期, false: 未超过当前日期
*/
public static boolean isExpired(String dateStr, String pattern) {
public static boolean dateIsExpired(String dateStr) {
try {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
LocalDate inputDate = LocalDate.parse(dateStr, formatter);
LocalDate currentDate = LocalDate.now();
return inputDate.isBefore(currentDate);
// 尝试多种常见日期格式
String[] patterns = {
"yyyy-MM-dd",
"yyyy.MM.dd",
"yyyy/MM/dd",
"yyyyMMdd"
};
for (String pattern : patterns) {
try {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
LocalDate inputDate = LocalDate.parse(dateStr, formatter);
LocalDate currentDate = LocalDate.now();
return inputDate.isBefore(currentDate);
} catch (Exception e) {
// 尝试下一种格式
continue;
}
}
log.error("日期格式无法识别: {}", dateStr);
return false;
} catch (Exception e) {
log.error("日期格式错误:{}", dateStr);
log.error("日期解析异常: {}", dateStr);
return false;
}
}
}

View File

@ -56,4 +56,13 @@ public interface IMDErrorInfoMapper {
* @date 2025/10/24 12:18
*/
void delErrorInfoByBusinessId(List<ErrorInfo> list);
/**
* 查询异常消息
* @param errorQueryDto
* @return List<String>
* @author cwchen
* @date 2025/11/17 13:28
*/
List<String> getErrorInfoByTable(ErrorInfo errorQueryDto);
}

View File

@ -54,4 +54,13 @@ public interface IMDErrorInfoService {
* @date 2025/10/24 12:18
*/
void delErrorInfoByBusinessId(List<ErrorInfo> errorInfoList);
/**
* 查询异常消息
* @param errorQueryDto
* @return List<String>
* @author cwchen
* @date 2025/11/17 13:28
*/
List<String> getErrorInfoByTable(ErrorInfo errorQueryDto);
}

View File

@ -7,6 +7,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
/**
@ -43,4 +44,9 @@ public class MDErrorInfoServiceImpl implements IMDErrorInfoService {
public void delErrorInfoByBusinessId(List<ErrorInfo> errorInfoList) {
imdErrorInfoMapper.delErrorInfoByBusinessId(errorInfoList);
}
@Override
public List<String> getErrorInfoByTable(ErrorInfo errorQueryDto) {
return imdErrorInfoMapper.getErrorInfoByTable(errorQueryDto);
}
}

View File

@ -58,4 +58,9 @@
AND tb_error_info.business_type = t.business_type
)
</delete>
<!--查询异常消息-->
<select id="getErrorInfoByTable" resultType="java.lang.String">
SELECT error_content FROM tb_error_info WHERE source_table = #{sourceTable} AND business_id = #{businessId}
</select>
</mapper>