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