Commit 94fc4620 authored by suhuiguang's avatar suhuiguang

fix(jyjc): 报检规则4.0开发

1.开通多个机构类型时,对省内公益机构匹配资质时,限制证书类型 2.机构分类增加到证表
parent b335b73a
......@@ -65,4 +65,7 @@ public class BaseEnterpriseCertDto extends BaseDto {
@ApiModelProperty(value = "证的状态:报检预留字段,如启用、停用、超期等")
private Integer certState;
@ApiModelProperty(value = "机构分类")
private String agencyClassify;
}
......@@ -3,11 +3,10 @@ package com.yeejoin.amos.boot.module.common.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.entity.BaseLogicEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
......@@ -102,4 +101,10 @@ public class BaseEnterpriseCert extends BaseEntity {
*/
@TableField("cert_state")
private Integer certState;
/**
* 机构分类
*/
@TableField(value = "agency_classify")
private String agencyClassify;
}
......@@ -84,7 +84,7 @@ public class RuleActionHandler {
}
redisUtils.set(this.buildRedisDataKey("firstInspectionOrgMatchAction2", inspectionEquipInfo.getUuid()), inspectionEquipInfo.getUuid(), 3600);
// 1.获取所有的符合资质条件的单位许可信息
List<TzBaseUnitLicence> unitLicenceList = getBaseUnitLicenceList(itemCode, isMatchItem, orgType);
List<TzBaseUnitLicence> unitLicenceList = getBaseUnitLicenceList(itemCode, isMatchItem, orgType, inspectionCompanyType);
// 2.匹配过滤机构信息,区分检验还是检测
List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoList = getInspectionUnitListForFirstCommit2(isMatchItem, unitLicenceList, isMatchArea, inspectionEquipInfo, orgType, defaultInspectionCode, legalInspectionCodes, isMustAccept, inspectionCompanyType);
// 3.数据去重按照use_code
......@@ -143,7 +143,7 @@ public class RuleActionHandler {
InspectionEquipInfo inspectionEquipInfo = (InspectionEquipInfo) bizObj;
try {
// 1.获取所有的符合资质条件的单位许可信息
List<TzBaseUnitLicence> unitLicenceList = getBaseUnitLicenceList(itemCode, isMatchItem, orgType);
List<TzBaseUnitLicence> unitLicenceList = getBaseUnitLicenceList(itemCode, isMatchItem, orgType, inspectionCompanyType);
// 2.匹配过滤机构信息,默认检验机构(目前检测没配置规则,后续检测也需要配置规则时,需要规则那回调方法新增参数,区分检验还是检测)
List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoList = getInspectionUnitListForNoAccept2(isMatchItem, unitLicenceList, isMatchArea, inspectionEquipInfo, orgType, defaultInspectionCode, legalInspectionCodes, inspectionCompanyType, isMustAccept);
// 3.去掉已经不予受理的单位,报检时该单位不能再进行接收报检信息(列表不显示)
......@@ -174,7 +174,7 @@ public class RuleActionHandler {
}
private List<TzBaseUnitLicence> getBaseUnitLicenceList(String itemCode, Boolean isMatchItem, String orgType) {
private List<TzBaseUnitLicence> getBaseUnitLicenceList(String itemCode, Boolean isMatchItem, String orgType, String filterCompanyType) {
List<TzBaseUnitLicence> tzBaseUnitLicences = new ArrayList<>();
if (isMatchItem && StringUtils.isNotEmpty(itemCode)) {
tzBaseUnitLicences = baseUnitLicenceMapper.selectList(new LambdaQueryWrapper<TzBaseUnitLicence>()
......@@ -188,14 +188,29 @@ public class RuleActionHandler {
}
if (!tzBaseUnitLicences.isEmpty()) {
// 匹配单位类型的证书
List<String> certSeqs = baseEnterpriseCertService.list(new LambdaQueryWrapper<BaseEnterpriseCert>()
InspectionCompanyType inspectionCompanyType = InspectionCompanyType.getByCode(filterCompanyType);
List<String> certSeqs;
if (inspectionCompanyType == InspectionCompanyType.LEGAL) { // 省内公益逻辑
certSeqs = baseEnterpriseCertService.list(new LambdaQueryWrapper<BaseEnterpriseCert>()
.in(com.yeejoin.amos.boot.biz.common.entity.BaseEntity::getSequenceNbr, tzBaseUnitLicences.stream().map(TzBaseUnitLicence::getEnterpriseCertSeq).collect(Collectors.toList()))
.eq(BaseEnterpriseCert::getUnitType, OpenBizTypeEnumV2.getOneByCode(orgType).getUnitType())
.eq(com.yeejoin.amos.boot.biz.common.entity.BaseEntity::getIsDelete, false)
// 省内匹配时需要匹配证书也是省内开通的
.eq(BaseEnterpriseCert::getAgencyClassify, JyAgencyClassifyEnum.SBGY.getCode())
.select(com.yeejoin.amos.boot.biz.common.entity.BaseEntity::getSequenceNbr))
.stream().map(e -> String.valueOf(e.getSequenceNbr())).collect(Collectors.toList());
// 返回符合核准项目且开通的项目且开通的单位类型能匹配上的资质
tzBaseUnitLicences = tzBaseUnitLicences.stream().filter(l -> certSeqs.contains(l.getEnterpriseCertSeq())).collect(Collectors.toList());
} else { // 其他逻辑
certSeqs = baseEnterpriseCertService.list(new LambdaQueryWrapper<BaseEnterpriseCert>()
.in(com.yeejoin.amos.boot.biz.common.entity.BaseEntity::getSequenceNbr, tzBaseUnitLicences.stream().map(TzBaseUnitLicence::getEnterpriseCertSeq).collect(Collectors.toList()))
.eq(BaseEnterpriseCert::getUnitType, OpenBizTypeEnumV2.getOneByCode(orgType).getUnitType())
.eq(com.yeejoin.amos.boot.biz.common.entity.BaseEntity::getIsDelete, false)
.select(com.yeejoin.amos.boot.biz.common.entity.BaseEntity::getSequenceNbr))
.stream().map(e -> String.valueOf(e.getSequenceNbr())).collect(Collectors.toList());
// 返回符合核准项目且开通的项目且开通的单位类型能匹配上的资质
tzBaseUnitLicences = tzBaseUnitLicences.stream().filter(l -> certSeqs.contains(l.getEnterpriseCertSeq())).collect(Collectors.toList());
}
}
return tzBaseUnitLicences;
}
......
......@@ -913,6 +913,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
cert.setRecUserId(RequestContext.getExeUserId());
cert.setRecDate(new Date());
cert.setCertState(LicenceStateEnum.enabled.getValue());
cert.setAgencyClassify(jyjcOpeningApplication.getAgencyClassify());
Optional.ofNullable(e.getItemCodes())
.orElseGet(Collections::emptyList)
.stream()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment