dev ,local swagger open

dev-deployment
luotaiqian 2026-07-01 11:27:44 +08:00
parent 6930bd73e3
commit 6086e7831d
5 changed files with 70 additions and 22 deletions

View File

@ -23,7 +23,6 @@ import javax.annotation.Resource;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@ -815,17 +814,12 @@ public class QualFilingOrchestrator {
* >= 25 >= 30%
*/
private QualFilingComplianceCheckResultCO checkPersonnelCount(Long filingId) {
List<QualFilingPersonnelEntity> personnelList =
qualFilingPersonnelGateway.listByFilingId(filingId);
int total = personnelList.size();
int total = qualFilingPersonnelGateway.countByFilingId(filingId);
if (total == 0) {
return buildResult(QualFilingComplianceCheckEnum.PERSONNEL_COUNT,
QualFilingComplianceCheckEnum.STATUS_FAIL);
}
long engineerCount = personnelList.stream()
.filter(p -> p.getRegisterEngineerFlag() != null
&& p.getRegisterEngineerFlag() == 1)
.count();
int engineerCount = qualFilingPersonnelGateway.countByFilingIdAndRegisterEngineerFlag(filingId, 1);
boolean pass = total >= QualFilingComplianceCheckEnum.PERSONNEL_COUNT_LOWER
&& engineerCount * 100 / total >= QualFilingComplianceCheckEnum.PERSONNEL_RATE;
return buildResult(QualFilingComplianceCheckEnum.PERSONNEL_COUNT,
@ -836,16 +830,13 @@ public class QualFilingOrchestrator {
*
*/
private QualFilingComplianceCheckResultCO checkPersonnelExperience(Long filingId) {
List<QualFilingPersonnelEntity> personnelList =
qualFilingPersonnelGateway.listByFilingId(filingId);
if (personnelList.isEmpty()) {
int total = qualFilingPersonnelGateway.countByFilingId(filingId);
if (total == 0) {
return buildResult(QualFilingComplianceCheckEnum.PERSONNEL_EXPERIENCE,
QualFilingComplianceCheckEnum.STATUS_FAIL);
}
LocalDate now = LocalDate.now();
boolean allQualified = personnelList.stream()
.allMatch(p -> p.getJoinWorkDate() != null
&& ChronoUnit.YEARS.between(p.getJoinWorkDate(), now) >= 2);
LocalDate threshold = LocalDate.now().minusYears(2);
boolean allQualified = qualFilingPersonnelGateway.countByFilingIdAndJoinWorkDateAfter(filingId, threshold) == 0;
return buildResult(QualFilingComplianceCheckEnum.PERSONNEL_EXPERIENCE,
allQualified ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL);
}
@ -874,14 +865,12 @@ public class QualFilingOrchestrator {
* qual_filing_material upload_status_code=2 material_type=4
*/
private QualFilingComplianceCheckResultCO checkCreditRecord(Long filingId) {
List<QualFilingMaterialEntity> materials =
qualFilingMaterialGateway.listByFilingId(filingId);
boolean pass = materials.stream()
.anyMatch(m -> m.getUploadStatusCode() != null
&& m.getUploadStatusCode() == QualFilingMaterialUploadStatusEnum.UPLOADED.getCode()
&& MaterialTypeEnum.NO_VIOLATION_RECORD.getCode() == m.getMaterialType());
int count = qualFilingMaterialGateway.countByFilingIdAndUploadStatusCodeAndMaterialType(
filingId,
QualFilingMaterialUploadStatusEnum.UPLOADED.getCode(),
MaterialTypeEnum.NO_VIOLATION_RECORD.getCode());
return buildResult(QualFilingComplianceCheckEnum.CREDIT_RECORD,
pass ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL);
count > 0 ? QualFilingComplianceCheckEnum.STATUS_PASS : QualFilingComplianceCheckEnum.STATUS_FAIL);
}
private QualFilingComplianceCheckResultCO buildResult(QualFilingComplianceCheckEnum item, String status) {

View File

@ -23,4 +23,9 @@ public interface QualFilingMaterialGateway {
void delete(Long id);
PageResult<QualFilingMaterialEntity> page(QualFilingMaterialQuery query);
/**
*
*/
int countByFilingIdAndUploadStatusCodeAndMaterialType(Long filingId, Integer uploadStatusCode, Integer materialType);
}

View File

@ -3,6 +3,8 @@ package org.qinan.safetyeval.domain.gateway;
import org.qinan.safetyeval.domain.entity.QualFilingPersonnelEntity;
import org.qinan.safetyeval.domain.query.QualFilingPersonnelQuery;
import org.qinan.safetyeval.domain.query.PageResult;
import java.time.LocalDate;
import java.util.List;
/**
@ -23,4 +25,19 @@ public interface QualFilingPersonnelGateway {
void delete(Long id);
PageResult<QualFilingPersonnelEntity> page(QualFilingPersonnelQuery query);
/**
*
*/
int countByFilingId(Long filingId);
/**
*
*/
int countByFilingIdAndRegisterEngineerFlag(Long filingId, Integer registerEngineerFlag);
/**
*
*/
int countByFilingIdAndJoinWorkDateAfter(Long filingId, LocalDate joinWorkDate);
}

View File

@ -86,6 +86,16 @@ public class QualFilingMaterialGatewayImpl implements QualFilingMaterialGateway
return PageResult.of(entities, result.getTotal(), result.getCurrent(), result.getSize());
}
@Override
public int countByFilingIdAndUploadStatusCodeAndMaterialType(Long filingId, Integer uploadStatusCode, Integer materialType) {
LambdaQueryWrapper<QualFilingMaterialDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(QualFilingMaterialDO::getFilingId, filingId);
wrapper.eq(QualFilingMaterialDO::getDeleteEnum, "false");
wrapper.eq(QualFilingMaterialDO::getUploadStatusCode, uploadStatusCode);
wrapper.eq(QualFilingMaterialDO::getMaterialType, materialType);
return qualFilingMaterialMapper.selectCount(wrapper).intValue();
}
private QualFilingMaterialDO toDO(QualFilingMaterialEntity entity) {
QualFilingMaterialDO dataObject = new QualFilingMaterialDO();
dataObject.setFilingId(entity.getFilingId());

View File

@ -14,6 +14,7 @@ import org.springframework.stereotype.Component;
import org.springframework.util.StringUtils;
import javax.annotation.Resource;
import java.time.LocalDate;
import java.util.List;
import java.util.stream.Collectors;
@ -86,6 +87,32 @@ public class QualFilingPersonnelGatewayImpl implements QualFilingPersonnelGatewa
return PageResult.of(entities, result.getTotal(), result.getCurrent(), result.getSize());
}
@Override
public int countByFilingId(Long filingId) {
LambdaQueryWrapper<QualFilingPersonnelDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(QualFilingPersonnelDO::getFilingId, filingId);
wrapper.eq(QualFilingPersonnelDO::getDeleteEnum, "false");
return qualFilingPersonnelMapper.selectCount(wrapper).intValue();
}
@Override
public int countByFilingIdAndRegisterEngineerFlag(Long filingId, Integer registerEngineerFlag) {
LambdaQueryWrapper<QualFilingPersonnelDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(QualFilingPersonnelDO::getFilingId, filingId);
wrapper.eq(QualFilingPersonnelDO::getDeleteEnum, "false");
wrapper.eq(QualFilingPersonnelDO::getRegisterEngineerFlag, registerEngineerFlag);
return qualFilingPersonnelMapper.selectCount(wrapper).intValue();
}
@Override
public int countByFilingIdAndJoinWorkDateAfter(Long filingId, LocalDate joinWorkDate) {
LambdaQueryWrapper<QualFilingPersonnelDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(QualFilingPersonnelDO::getFilingId, filingId);
wrapper.eq(QualFilingPersonnelDO::getDeleteEnum, "false");
wrapper.gt(QualFilingPersonnelDO::getJoinWorkDate, joinWorkDate);
return qualFilingPersonnelMapper.selectCount(wrapper).intValue();
}
private QualFilingPersonnelDO toDO(QualFilingPersonnelEntity entity) {
QualFilingPersonnelDO dataObject = new QualFilingPersonnelDO();
dataObject.setFilingId(entity.getFilingId());