bug修护
parent
274c48ba4a
commit
407d4326ee
|
|
@ -15,6 +15,7 @@ import org.qinan.safetyeval.domain.exception.ErrorCode;
|
|||
import org.qinan.safetyeval.domain.gateway.*;
|
||||
import org.qinan.safetyeval.domain.query.PageResult;
|
||||
import org.qinan.safetyeval.domain.query.QualFilingQuery;
|
||||
import org.qinan.safetyeval.domain.support.QualFilingExpertCheckSupport;
|
||||
import org.qinan.safetyeval.infrastructure.adapter.auth.AuthUserContextAdapter;
|
||||
import org.qinan.safetyeval.infrastructure.support.OrgContextResolver;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
|
@ -28,7 +29,9 @@ import java.math.BigDecimal;
|
|||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -76,6 +79,9 @@ public class QualFilingOrchestrator {
|
|||
@Resource
|
||||
private QualFilingStatusGuard statusGuard;
|
||||
|
||||
@Resource
|
||||
private QualFilingReviewGateway qualFilingReviewGateway;
|
||||
|
||||
@Resource
|
||||
private QualFilingMaterialTemplateProvider materialTemplateProvider;
|
||||
|
||||
|
|
@ -210,17 +216,49 @@ public class QualFilingOrchestrator {
|
|||
domainQuery.setFilingUnitName(query.getFilingUnitName());
|
||||
domainQuery.setFilingUnitTypeName(query.getFilingUnitTypeName());
|
||||
domainQuery.setBusinessScope(query.getBusinessScope());
|
||||
domainQuery.setNeedExpertCheck(query.getNeedExpertCheck());
|
||||
domainQuery.setFilingStatusCode(query.getFilingStatusCode());
|
||||
domainQuery.setApplyTypeCode(query.getApplyTypeCode());
|
||||
domainQuery.setFilingTerritoryCode(query.getFilingTerritoryCode());
|
||||
domainQuery.setSupervision(query.getSupervision());
|
||||
PageResult<QualFilingEntity> pageResult = qualFilingGateway.page(domainQuery);
|
||||
Map<Long, QualFilingReviewEntity> reviewMap = loadReviewMap(pageResult.getRecords());
|
||||
List<QualFilingCO> records = pageResult.getRecords().stream()
|
||||
.map(entity -> toCO(entity))
|
||||
.map(entity -> toListCO(entity, reviewMap))
|
||||
.collect(Collectors.toList());
|
||||
return PageResult.of(records, pageResult.getTotal(), pageResult.getPageNum(), pageResult.getPageSize());
|
||||
}
|
||||
|
||||
private Map<Long, QualFilingReviewEntity> loadReviewMap(List<QualFilingEntity> filings) {
|
||||
Map<Long, QualFilingReviewEntity> reviewMap = new HashMap<>();
|
||||
if (filings == null) {
|
||||
return reviewMap;
|
||||
}
|
||||
for (QualFilingEntity filing : filings) {
|
||||
Long reviewId = filing.getFilingReviewId();
|
||||
if (reviewId == null || reviewMap.containsKey(reviewId)) {
|
||||
continue;
|
||||
}
|
||||
QualFilingReviewEntity review = qualFilingReviewGateway.get(reviewId);
|
||||
if (review != null) {
|
||||
reviewMap.put(reviewId, review);
|
||||
}
|
||||
}
|
||||
return reviewMap;
|
||||
}
|
||||
|
||||
private QualFilingCO toListCO(QualFilingEntity entity, Map<Long, QualFilingReviewEntity> reviewMap) {
|
||||
QualFilingCO co = toCO(entity);
|
||||
if (co == null) {
|
||||
return null;
|
||||
}
|
||||
co.setNeedExpertCheck(QualFilingExpertCheckSupport.needsExpertCheck(entity.getFilingUnitTypeName()));
|
||||
QualFilingReviewEntity review = entity.getFilingReviewId() != null
|
||||
? reviewMap.get(entity.getFilingReviewId()) : null;
|
||||
co.setExpertStatus(QualFilingExpertCheckSupport.resolveExpertStatus(entity.getFilingUnitTypeName(), review));
|
||||
return co;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public void initMaterialTemplate(Long filingId) {
|
||||
QualFilingEntity filing = qualFilingGateway.get(filingId);
|
||||
|
|
|
|||
|
|
@ -105,6 +105,12 @@ public class QualFilingCO {
|
|||
@ApiModelProperty(value = "审核id")
|
||||
private Long filingReviewId;
|
||||
|
||||
@ApiModelProperty(value = "是否需专家核验(查询聚合,非表字段)")
|
||||
private Boolean needExpertCheck;
|
||||
|
||||
@ApiModelProperty(value = "专家核验状态(arranging/pending/passed,查询聚合,非表字段)")
|
||||
private String expertStatus;
|
||||
|
||||
@ApiModelProperty(value = "提交时间")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
|
|
|
|||
|
|
@ -30,6 +30,9 @@ public class QualFilingPageQuery extends BasePageQuery {
|
|||
@ApiModelProperty(value = "安全评价业务范围")
|
||||
private String businessScope;
|
||||
|
||||
@ApiModelProperty(value = "是否专家核验(yes-是 no-否,异地单位需专家核验)")
|
||||
private String needExpertCheck;
|
||||
|
||||
@ApiModelProperty(value = "备案状态编码(1已备案2审核中3已打回4变更审核中5暂存)")
|
||||
private Integer filingStatusCode;
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,9 @@ public class QualFilingQuery {
|
|||
/** 安全评价业务范围 */
|
||||
private String businessScope;
|
||||
|
||||
/** 是否专家核验(yes/no) */
|
||||
private String needExpertCheck;
|
||||
|
||||
/** 备案状态 */
|
||||
private Integer filingStatusCode;
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,36 @@
|
|||
package org.qinan.safetyeval.domain.support;
|
||||
|
||||
import org.qinan.safetyeval.domain.entity.QualFilingReviewEntity;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
/**
|
||||
* 资质备案专家核验判定(异地单位需专家核验)
|
||||
*/
|
||||
public final class QualFilingExpertCheckSupport {
|
||||
|
||||
private static final String REMOTE_UNIT_KEYWORD = "异地";
|
||||
|
||||
private QualFilingExpertCheckSupport() {
|
||||
}
|
||||
|
||||
public static boolean needsExpertCheck(String filingUnitTypeName) {
|
||||
return StringUtils.hasText(filingUnitTypeName)
|
||||
&& filingUnitTypeName.contains(REMOTE_UNIT_KEYWORD);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return arranging=待安排, pending=待核验, passed=已核验;本地单位返回 null
|
||||
*/
|
||||
public static String resolveExpertStatus(String filingUnitTypeName, QualFilingReviewEntity review) {
|
||||
if (!needsExpertCheck(filingUnitTypeName)) {
|
||||
return null;
|
||||
}
|
||||
if (review == null || review.getFilingExpertId() == null) {
|
||||
return "arranging";
|
||||
}
|
||||
if ("1".equals(review.getReviewResult())) {
|
||||
return "passed";
|
||||
}
|
||||
return "pending";
|
||||
}
|
||||
}
|
||||
|
|
@ -119,6 +119,13 @@ public class QualFilingGatewayImpl implements QualFilingGateway {
|
|||
if (StringUtils.hasText(query.getBusinessScope())) {
|
||||
wrapper.like(QualFilingDO::getBusinessScope, query.getBusinessScope());
|
||||
}
|
||||
if (StringUtils.hasText(query.getNeedExpertCheck())) {
|
||||
if ("yes".equalsIgnoreCase(query.getNeedExpertCheck())) {
|
||||
wrapper.like(QualFilingDO::getFilingUnitTypeName, "异地");
|
||||
} else if ("no".equalsIgnoreCase(query.getNeedExpertCheck())) {
|
||||
wrapper.like(QualFilingDO::getFilingUnitTypeName, "本地");
|
||||
}
|
||||
}
|
||||
if (StringUtils.hasText(query.getFilingTerritoryCode())) {
|
||||
String territory = query.getFilingTerritoryCode();
|
||||
wrapper.and(w -> w.eq(QualFilingDO::getFilingTerritoryCode, territory)
|
||||
|
|
|
|||
Loading…
Reference in New Issue