dev ,local swagger open
parent
6930bd73e3
commit
6086e7831d
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -23,4 +23,9 @@ public interface QualFilingMaterialGateway {
|
|||
void delete(Long id);
|
||||
|
||||
PageResult<QualFilingMaterialEntity> page(QualFilingMaterialQuery query);
|
||||
|
||||
/**
|
||||
* 统计指定备案下满足上传状态和材料类型的记录数
|
||||
*/
|
||||
int countByFilingIdAndUploadStatusCodeAndMaterialType(Long filingId, Integer uploadStatusCode, Integer materialType);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
Loading…
Reference in New Issue