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.gateway.*;
|
||||||
import org.qinan.safetyeval.domain.query.PageResult;
|
import org.qinan.safetyeval.domain.query.PageResult;
|
||||||
import org.qinan.safetyeval.domain.query.QualFilingQuery;
|
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.adapter.auth.AuthUserContextAdapter;
|
||||||
import org.qinan.safetyeval.infrastructure.support.OrgContextResolver;
|
import org.qinan.safetyeval.infrastructure.support.OrgContextResolver;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
|
|
@ -28,7 +29,9 @@ import java.math.BigDecimal;
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -76,6 +79,9 @@ public class QualFilingOrchestrator {
|
||||||
@Resource
|
@Resource
|
||||||
private QualFilingStatusGuard statusGuard;
|
private QualFilingStatusGuard statusGuard;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private QualFilingReviewGateway qualFilingReviewGateway;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private QualFilingMaterialTemplateProvider materialTemplateProvider;
|
private QualFilingMaterialTemplateProvider materialTemplateProvider;
|
||||||
|
|
||||||
|
|
@ -210,17 +216,49 @@ public class QualFilingOrchestrator {
|
||||||
domainQuery.setFilingUnitName(query.getFilingUnitName());
|
domainQuery.setFilingUnitName(query.getFilingUnitName());
|
||||||
domainQuery.setFilingUnitTypeName(query.getFilingUnitTypeName());
|
domainQuery.setFilingUnitTypeName(query.getFilingUnitTypeName());
|
||||||
domainQuery.setBusinessScope(query.getBusinessScope());
|
domainQuery.setBusinessScope(query.getBusinessScope());
|
||||||
|
domainQuery.setNeedExpertCheck(query.getNeedExpertCheck());
|
||||||
domainQuery.setFilingStatusCode(query.getFilingStatusCode());
|
domainQuery.setFilingStatusCode(query.getFilingStatusCode());
|
||||||
domainQuery.setApplyTypeCode(query.getApplyTypeCode());
|
domainQuery.setApplyTypeCode(query.getApplyTypeCode());
|
||||||
domainQuery.setFilingTerritoryCode(query.getFilingTerritoryCode());
|
domainQuery.setFilingTerritoryCode(query.getFilingTerritoryCode());
|
||||||
domainQuery.setSupervision(query.getSupervision());
|
domainQuery.setSupervision(query.getSupervision());
|
||||||
PageResult<QualFilingEntity> pageResult = qualFilingGateway.page(domainQuery);
|
PageResult<QualFilingEntity> pageResult = qualFilingGateway.page(domainQuery);
|
||||||
|
Map<Long, QualFilingReviewEntity> reviewMap = loadReviewMap(pageResult.getRecords());
|
||||||
List<QualFilingCO> records = pageResult.getRecords().stream()
|
List<QualFilingCO> records = pageResult.getRecords().stream()
|
||||||
.map(entity -> toCO(entity))
|
.map(entity -> toListCO(entity, reviewMap))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
return PageResult.of(records, pageResult.getTotal(), pageResult.getPageNum(), pageResult.getPageSize());
|
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
|
@Transactional
|
||||||
public void initMaterialTemplate(Long filingId) {
|
public void initMaterialTemplate(Long filingId) {
|
||||||
QualFilingEntity filing = qualFilingGateway.get(filingId);
|
QualFilingEntity filing = qualFilingGateway.get(filingId);
|
||||||
|
|
|
||||||
|
|
@ -105,6 +105,12 @@ public class QualFilingCO {
|
||||||
@ApiModelProperty(value = "审核id")
|
@ApiModelProperty(value = "审核id")
|
||||||
private Long filingReviewId;
|
private Long filingReviewId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否需专家核验(查询聚合,非表字段)")
|
||||||
|
private Boolean needExpertCheck;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "专家核验状态(arranging/pending/passed,查询聚合,非表字段)")
|
||||||
|
private String expertStatus;
|
||||||
|
|
||||||
@ApiModelProperty(value = "提交时间")
|
@ApiModelProperty(value = "提交时间")
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,9 @@ public class QualFilingPageQuery extends BasePageQuery {
|
||||||
@ApiModelProperty(value = "安全评价业务范围")
|
@ApiModelProperty(value = "安全评价业务范围")
|
||||||
private String businessScope;
|
private String businessScope;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "是否专家核验(yes-是 no-否,异地单位需专家核验)")
|
||||||
|
private String needExpertCheck;
|
||||||
|
|
||||||
@ApiModelProperty(value = "备案状态编码(1已备案2审核中3已打回4变更审核中5暂存)")
|
@ApiModelProperty(value = "备案状态编码(1已备案2审核中3已打回4变更审核中5暂存)")
|
||||||
private Integer filingStatusCode;
|
private Integer filingStatusCode;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,9 @@ public class QualFilingQuery {
|
||||||
/** 安全评价业务范围 */
|
/** 安全评价业务范围 */
|
||||||
private String businessScope;
|
private String businessScope;
|
||||||
|
|
||||||
|
/** 是否专家核验(yes/no) */
|
||||||
|
private String needExpertCheck;
|
||||||
|
|
||||||
/** 备案状态 */
|
/** 备案状态 */
|
||||||
private Integer filingStatusCode;
|
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())) {
|
if (StringUtils.hasText(query.getBusinessScope())) {
|
||||||
wrapper.like(QualFilingDO::getBusinessScope, 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())) {
|
if (StringUtils.hasText(query.getFilingTerritoryCode())) {
|
||||||
String territory = query.getFilingTerritoryCode();
|
String territory = query.getFilingTerritoryCode();
|
||||||
wrapper.and(w -> w.eq(QualFilingDO::getFilingTerritoryCode, territory)
|
wrapper.and(w -> w.eq(QualFilingDO::getFilingTerritoryCode, territory)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue