Commit c48bcba5 authored by suhuiguang's avatar suhuiguang

1.检验检测报检规则3.0版本

parent 181926e9
...@@ -217,4 +217,10 @@ public class JyjcInspectionApplication extends BaseEntity { ...@@ -217,4 +217,10 @@ public class JyjcInspectionApplication extends BaseEntity {
@TableField(value = "plan_data", typeHandler = JacksonTypeHandler.class) @TableField(value = "plan_data", typeHandler = JacksonTypeHandler.class)
private JSONObject planData; private JSONObject planData;
/**
* 是否必须处理: true-必须处理,false-可不予受理
*/
@TableField(value = "is_must_accept")
private Boolean isMustAccept;
} }
...@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; ...@@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
/** /**
* @author LiuLin * @author LiuLin
* @date 2024年01月02日 16:47 * @date 2024年01月02日 16:47
......
...@@ -166,6 +166,11 @@ public class JyjcInspectionApplicationModel extends BaseModel { ...@@ -166,6 +166,11 @@ public class JyjcInspectionApplicationModel extends BaseModel {
@ApiModelProperty(value = "是否已经进行计划排期") @ApiModelProperty(value = "是否已经进行计划排期")
private Boolean isExistPlanData; private Boolean isExistPlanData;
/**
* 是否必须处理: true-必须处理,false-可不予受理
*/
private Boolean isMustAccept;
public String getProcessInstanceId() { public String getProcessInstanceId() {
return this.instanceId != null ? this.instanceId : this.processInstanceId; return this.instanceId != null ? this.instanceId : this.processInstanceId;
} }
......
...@@ -27,6 +27,7 @@ import java.time.LocalDate; ...@@ -27,6 +27,7 @@ import java.time.LocalDate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -41,7 +42,6 @@ public class RuleActionHandler { ...@@ -41,7 +42,6 @@ public class RuleActionHandler {
private final EmqKeeper emqKeeper; private final EmqKeeper emqKeeper;
private final TzBaseUnitLicenceMapper baseUnitLicenceMapper; private final TzBaseUnitLicenceMapper baseUnitLicenceMapper;
private final TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper; private final TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
private final RuleCommonServiceImpl ruleCommonService;
private final RedissonClient redissonClient; private final RedissonClient redissonClient;
private RedisUtils redisUtils; private RedisUtils redisUtils;
...@@ -58,7 +58,6 @@ public class RuleActionHandler { ...@@ -58,7 +58,6 @@ public class RuleActionHandler {
this.emqKeeper = emqKeeper; this.emqKeeper = emqKeeper;
this.baseUnitLicenceMapper = baseUnitLicenceMapper; this.baseUnitLicenceMapper = baseUnitLicenceMapper;
this.tzBaseEnterpriseInfoMapper = tzBaseEnterpriseInfoMapper; this.tzBaseEnterpriseInfoMapper = tzBaseEnterpriseInfoMapper;
this.ruleCommonService = ruleCommonService;
this.redissonClient = redissonClient; this.redissonClient = redissonClient;
this.redisUtils = redisUtils; this.redisUtils = redisUtils;
} }
...@@ -73,8 +72,9 @@ public class RuleActionHandler { ...@@ -73,8 +72,9 @@ public class RuleActionHandler {
* @param legalInspectionCodes 法定的检验机构code,多个用逗号分割,检验机构的最大集合-不为空 * @param legalInspectionCodes 法定的检验机构code,多个用逗号分割,检验机构的最大集合-不为空
* @param inspectionCompanyType 需要显示的单位类型:legal-法定、third-第3方、all-全部,默认都是legal-法定,预留需求变更点 * @param inspectionCompanyType 需要显示的单位类型:legal-法定、third-第3方、all-全部,默认都是legal-法定,预留需求变更点
* @param isMatchItem 是否需要匹配核准代码:true-匹配; false-不匹配 * @param isMatchItem 是否需要匹配核准代码:true-匹配; false-不匹配
* @param isMustAccept true-必须处理,false-可不予受理
*/ */
public void filterInspectionOrgAction(Object bizObj, String itemCode, Boolean isMatchArea, String defaultInspectionCode, String legalInspectionCodes, String inspectionCompanyType, Boolean isMatchItem) { public void filterInspectionOrgAction(Object bizObj, String itemCode, Boolean isMatchArea, String defaultInspectionCode, String legalInspectionCodes, String inspectionCompanyType, Boolean isMatchItem, Boolean isMustAccept) {
log.info("收到首次提交的检验机构匹配规则回调:请求变量参数:{},核对项目编码:{},是否进行属地过滤:{},默认的检验机构code:{}, 法定的检验机构code:{}, 法定的检验机构code: {},是否需要匹配核准代码:{}", bizObj, itemCode, isMatchArea, defaultInspectionCode, legalInspectionCodes, inspectionCompanyType, isMatchItem); log.info("收到首次提交的检验机构匹配规则回调:请求变量参数:{},核对项目编码:{},是否进行属地过滤:{},默认的检验机构code:{}, 法定的检验机构code:{}, 法定的检验机构code: {},是否需要匹配核准代码:{}", bizObj, itemCode, isMatchArea, defaultInspectionCode, legalInspectionCodes, inspectionCompanyType, isMatchItem);
InspectionEquipInfo inspectionEquipInfo = (InspectionEquipInfo) bizObj; InspectionEquipInfo inspectionEquipInfo = (InspectionEquipInfo) bizObj;
// 规则不支持或者的关系消息会重复故去重处理 // 规则不支持或者的关系消息会重复故去重处理
...@@ -93,10 +93,10 @@ public class RuleActionHandler { ...@@ -93,10 +93,10 @@ public class RuleActionHandler {
// 1.获取所有的符合资质条件的单位许可信息 // 1.获取所有的符合资质条件的单位许可信息
List<TzBaseUnitLicence> unitLicenceList = getBaseUnitLicenceList(itemCode, isMatchItem); List<TzBaseUnitLicence> unitLicenceList = getBaseUnitLicenceList(itemCode, isMatchItem);
// 2.匹配过滤机构信息,默认检验机构(目前检测没配置规则,后续检测也需要配置规则时,需要规则那回调方法新增参数,区分检验还是检测) // 2.匹配过滤机构信息,默认检验机构(目前检测没配置规则,后续检测也需要配置规则时,需要规则那回调方法新增参数,区分检验还是检测)
List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoList = getInspectionUnitListForFirstCommit(unitLicenceList, isMatchArea, inspectionEquipInfo, OpenBizTypeEnum.JY.getCode(), defaultInspectionCode, legalInspectionCodes); List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoList = getInspectionUnitListForFirstCommit(unitLicenceList, isMatchArea, inspectionEquipInfo, OpenBizTypeEnum.JY.getCode(), defaultInspectionCode, legalInspectionCodes, isMustAccept);
publishMqttMessage(inspectionEquipInfo.getComponentKey(), tzBaseEnterpriseInfoList); publishMqttMessage(inspectionEquipInfo.getComponentKey(), tzBaseEnterpriseInfoList);
} catch (MqttException | InterruptedException e) { } catch (MqttException | InterruptedException e) {
log.error("Error publishing MQTT message: {}", e.getMessage()); log.error("首次提交的检验机构匹配动作执行失败: {}", e.getMessage());
} finally { } finally {
if (lock.isHeldByCurrentThread()) { if (lock.isHeldByCurrentThread()) {
lock.unlock(); lock.unlock();
...@@ -122,15 +122,16 @@ public class RuleActionHandler { ...@@ -122,15 +122,16 @@ public class RuleActionHandler {
* @param defaultInspectionCode 默认的检验机构code * @param defaultInspectionCode 默认的检验机构code
* @param inspectionCompanyType 需要显示的单位类型:legal-法定、third-第3方、all-全部,默认都是legal-法定,预留需求变更点 * @param inspectionCompanyType 需要显示的单位类型:legal-法定、third-第3方、all-全部,默认都是legal-法定,预留需求变更点
* @param legalInspectionCodes 法定的检验机构code,多个用逗号分割,检验机构的最大集合-不为空 * @param legalInspectionCodes 法定的检验机构code,多个用逗号分割,检验机构的最大集合-不为空
* @param isMustAccept true-必须处理,false-可不予受理
*/ */
public void noAcceptInspectionOrgMatchAction(Object bizObj, String itemCode, Boolean isMatchArea, String defaultInspectionCode, String inspectionCompanyType, Boolean isMatchItem, String legalInspectionCodes) { public void noAcceptInspectionOrgMatchAction(Object bizObj, String itemCode, Boolean isMatchArea, String defaultInspectionCode, String inspectionCompanyType, Boolean isMatchItem, String legalInspectionCodes, Boolean isMustAccept) {
log.info("收到不予受理的检验机构匹配规则回调:请求变量参数:{},核对项目编码:{},是否进行属地过滤:{},默认的检验机构code:{}, 法定的检验机构code:{}, 法定的检验机构code: {},是否需要匹配核准代码:{}", bizObj, itemCode, isMatchArea, defaultInspectionCode, legalInspectionCodes, inspectionCompanyType, isMatchItem); log.info("收到不予受理的检验机构匹配规则回调:请求变量参数:{},核对项目编码:{},是否进行属地过滤:{},默认的检验机构code:{}, 法定的检验机构code:{}, 法定的检验机构code: {},是否需要匹配核准代码:{}", bizObj, itemCode, isMatchArea, defaultInspectionCode, legalInspectionCodes, inspectionCompanyType, isMatchItem);
InspectionEquipInfo inspectionEquipInfo = (InspectionEquipInfo) bizObj; InspectionEquipInfo inspectionEquipInfo = (InspectionEquipInfo) bizObj;
try { try {
// 1.获取所有的符合资质条件的单位许可信息 // 1.获取所有的符合资质条件的单位许可信息
List<TzBaseUnitLicence> unitLicenceList = getBaseUnitLicenceList(itemCode, isMatchItem); List<TzBaseUnitLicence> unitLicenceList = getBaseUnitLicenceList(itemCode, isMatchItem);
// 2.匹配过滤机构信息,默认检验机构(目前检测没配置规则,后续检测也需要配置规则时,需要规则那回调方法新增参数,区分检验还是检测) // 2.匹配过滤机构信息,默认检验机构(目前检测没配置规则,后续检测也需要配置规则时,需要规则那回调方法新增参数,区分检验还是检测)
List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoList = getInspectionUnitListForNoAccept(unitLicenceList, isMatchArea, inspectionEquipInfo, OpenBizTypeEnum.JY.getCode(), defaultInspectionCode, legalInspectionCodes, inspectionCompanyType); List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoList = getInspectionUnitListForNoAccept(unitLicenceList, isMatchArea, inspectionEquipInfo, OpenBizTypeEnum.JY.getCode(), defaultInspectionCode, legalInspectionCodes, inspectionCompanyType, isMustAccept);
publishMqttMessage(inspectionEquipInfo.getComponentKey(), tzBaseEnterpriseInfoList); publishMqttMessage(inspectionEquipInfo.getComponentKey(), tzBaseEnterpriseInfoList);
} catch (MqttException e) { } catch (MqttException e) {
log.error("Error publishing MQTT message: {}", e.getMessage()); log.error("Error publishing MQTT message: {}", e.getMessage());
...@@ -154,15 +155,17 @@ public class RuleActionHandler { ...@@ -154,15 +155,17 @@ public class RuleActionHandler {
return tzBaseUnitLicences; return tzBaseUnitLicences;
} }
private List<TzBaseEnterpriseInfoDto> getInspectionUnitListForNoAccept(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, InspectionEquipInfo inspectionEquipInfo, String openBizType, String defaultInspectionCode, String legalInspectionCodes, String inspectionCompanyType) { private List<TzBaseEnterpriseInfoDto> getInspectionUnitListForNoAccept(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, InspectionEquipInfo inspectionEquipInfo, String openBizType, String defaultInspectionCode, String legalInspectionCodes, String inspectionCompanyType, Boolean isCanNoAccept) {
// 是否进行属地过滤 // 是否进行属地过滤
String areaCode = isMatchArea ? inspectionEquipInfo.getAreaCode() : ""; String areaCode = isMatchArea ? inspectionEquipInfo.getAreaCode() : "";
// 所有符合单位的code // 所有符合单位的code
List<String> unitCodes = unitLicenceList.stream().map(TzBaseUnitLicence::getUnitCode).collect(Collectors.toList()); Set<String> unitCodes = unitLicenceList.stream().map(TzBaseUnitLicence::getUnitCode).collect(Collectors.toSet());
List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = new ArrayList<>(); List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = new ArrayList<>();
// 按照资质 + areaCode,进行设备单位的筛选 // 按照资质 + areaCode,进行设备单位的筛选
if (unitCodes.size() > 0) { if (unitCodes.size() > 0) {
matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(unitCodes, areaCode, openBizType); matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(new ArrayList<>(unitCodes), areaCode, openBizType);
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理
this.setIsCanNoAccept(matchEnterpriseInfos, isCanNoAccept);
} }
// 第三方时需要去掉法定机构 // 第三方时需要去掉法定机构
if (inspectionCompanyType.equals(InspectionCompanyType.THIRD.getCode())) { if (inspectionCompanyType.equals(InspectionCompanyType.THIRD.getCode())) {
...@@ -176,44 +179,57 @@ public class RuleActionHandler { ...@@ -176,44 +179,57 @@ public class RuleActionHandler {
matchEnterpriseInfos = matchEnterpriseInfos.stream().filter(e -> defaultInspectionCode.contains(e.getUseCode())).collect(Collectors.toList()); matchEnterpriseInfos = matchEnterpriseInfos.stream().filter(e -> defaultInspectionCode.contains(e.getUseCode())).collect(Collectors.toList());
log.info("匹配到的法定检验机构:{}", matchEnterpriseInfos); log.info("匹配到的法定检验机构:{}", matchEnterpriseInfos);
} }
// 代码严谨判断,如前置调整法定机构单位为注册,返回全部的法定机构和第3方机构 // 代码严谨判断,如前置条件法定机构单位未注册,返回全部的法定机构和第3方机构
if (matchEnterpriseInfos.isEmpty()) { if (matchEnterpriseInfos.isEmpty()) {
log.info("指定的默认的检验机构未匹配到,将返回所有的检验机构包括第三方和法定检验机构,省特检院除外"); log.info("指定的默认的检验机构未匹配到,将返回所有的检验机构包括第三方和法定检验机构,省特检院除外");
matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(null, null, openBizType); matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(null, null, openBizType);
matchEnterpriseInfos = matchEnterpriseInfos.stream().filter(c -> !specialInspectionCompanyCode.contains(c.getUseCode())).collect(Collectors.toList()); matchEnterpriseInfos = matchEnterpriseInfos.stream().filter(c -> !specialInspectionCompanyCode.contains(c.getUseCode())).collect(Collectors.toList());
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理
this.setIsCanNoAccept(matchEnterpriseInfos, false);
log.info("指定的默认的检验机构未匹配到,将返回所有的检验机构包括第三方和法定检验机构,数据为:{}", matchEnterpriseInfos); log.info("指定的默认的检验机构未匹配到,将返回所有的检验机构包括第三方和法定检验机构,数据为:{}", matchEnterpriseInfos);
} }
return matchEnterpriseInfos; return matchEnterpriseInfos;
} }
private List<TzBaseEnterpriseInfoDto> getInspectionUnitListForFirstCommit(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, InspectionEquipInfo inspectionEquipInfo, String openBizType, String defaultInspectionCode, String legalInspectionCodes) { private List<TzBaseEnterpriseInfoDto> getInspectionUnitListForFirstCommit(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, InspectionEquipInfo inspectionEquipInfo, String openBizType, String defaultInspectionCode, String legalInspectionCodes, Boolean isCanNoAccept) {
// 是否进行属地过滤 // 是否进行属地过滤
String areaCode = isMatchArea ? inspectionEquipInfo.getAreaCode() : ""; String areaCode = isMatchArea ? inspectionEquipInfo.getAreaCode() : "";
// 所有符合单位的code // 所有符合单位的code
List<String> unitCodes = unitLicenceList.stream() Set<String> unitCodes = unitLicenceList.stream()
.map(TzBaseUnitLicence::getUnitCode) .map(TzBaseUnitLicence::getUnitCode)
.collect(Collectors.toList()); .collect(Collectors.toSet());
// 将法定机构和符合资质要求的机构取交集 // 将法定机构和符合资质要求的机构取交集
List<String> legalUnitCodes = Arrays.stream(legalInspectionCodes.split(",")).filter(unitCodes::contains).collect(Collectors.toList()); List<String> legalUnitCodes = Arrays.stream(legalInspectionCodes.split(",")).filter(unitCodes::contains).collect(Collectors.toList());
List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = new ArrayList<>(); List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = new ArrayList<>();
// 按照资质 + areaCode,进行设备单位的筛选 // 按照资质 + areaCode,进行设备单位的筛选
if (legalUnitCodes.size() > 0) { if (legalUnitCodes.size() > 0) {
matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(legalUnitCodes, areaCode, openBizType); matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(legalUnitCodes, areaCode, openBizType);
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入
this.setIsCanNoAccept(matchEnterpriseInfos, isCanNoAccept);
} }
// 未匹配到法定机构时,返回指定的默认的法定机构 // 未匹配到法定机构时,返回指定的默认的法定机构, 默认及法定机构不进行开通区域的匹配
if (matchEnterpriseInfos.isEmpty()) { if (matchEnterpriseInfos.isEmpty()) {
log.info("按照资质、区域未匹配到法定检验机构"); log.info("按照资质、区域未匹配到法定检验机构");
matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(new ArrayList<>(Arrays.asList(defaultInspectionCode.split(","))), areaCode, openBizType); matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(new ArrayList<>(Arrays.asList(defaultInspectionCode.split(","))), "", openBizType);
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理
this.setIsCanNoAccept(matchEnterpriseInfos, isCanNoAccept);
} }
// 代码严谨判断,如前置调整法定机构单位为注册,返回全部的法定机构和第3方机构 // 代码严谨判断,如前置条件法定机构单位未注册,返回全部的法定机构和第3方机构
if (matchEnterpriseInfos.isEmpty()) { if (matchEnterpriseInfos.isEmpty()) {
log.info("指定的默认的检验机构未匹配到,将返回所有的检验机构包括第三方和法定检验机构,省特检院除外"); log.info("指定的默认的检验机构未匹配到,将返回所有的检验机构包括第三方和法定检验机构,省特检院除外");
matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(null, null, openBizType); matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(null, null, openBizType);
matchEnterpriseInfos = matchEnterpriseInfos.stream().filter(c -> !specialInspectionCompanyCode.contains(c.getUseCode())).collect(Collectors.toList()); matchEnterpriseInfos = matchEnterpriseInfos.stream().filter(c -> !specialInspectionCompanyCode.contains(c.getUseCode())).collect(Collectors.toList());
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理
this.setIsCanNoAccept(matchEnterpriseInfos, false);
} }
return matchEnterpriseInfos; return matchEnterpriseInfos;
} }
private void setIsCanNoAccept(List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos, Boolean isCanNoAccept) {
matchEnterpriseInfos.forEach(m -> {
m.setUseCodeAndName(m.getUseCode() + "_" + isCanNoAccept);
});
}
private void publishMqttMessage(String componentKey, Object message) throws MqttException { private void publishMqttMessage(String componentKey, Object message) throws MqttException {
log.info("报检规则推送到web主题:{}:,消息内容为:{}", String.format(TopicEnum.INSPECTION_LIST_PUSH.getTopic(), componentKey), JSON.toJSONString(message)); log.info("报检规则推送到web主题:{}:,消息内容为:{}", String.format(TopicEnum.INSPECTION_LIST_PUSH.getTopic(), componentKey), JSON.toJSONString(message));
...@@ -226,21 +242,5 @@ public class RuleActionHandler { ...@@ -226,21 +242,5 @@ public class RuleActionHandler {
} }
} }
public List<TzBaseEnterpriseInfoDto> getInspectionUnitList(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, String record, String openBizType) {
// 是否进行属地过滤
String areaCode = isMatchArea ? ruleCommonService.getArea(record) : "";
// 所有符合单位的code
List<String> unitCodes = unitLicenceList.stream().map(TzBaseUnitLicence::getUnitCode).collect(Collectors.toList());
List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = new ArrayList<>();
// 按照资质 + areaCode,进行设备单位的筛选
if (unitCodes.size() > 0) {
matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(unitCodes, areaCode, openBizType);
}
if (matchEnterpriseInfos.isEmpty()) {
log.info("按照资质、区域未匹配到对应的单位、按照地市未匹配到单位,将返回全部单位");
return tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(null, null, openBizType);
}
return matchEnterpriseInfos;
}
} }
...@@ -38,17 +38,25 @@ import java.util.Map; ...@@ -38,17 +38,25 @@ import java.util.Map;
public class JyjcInspectionApplicationController extends BaseController { public class JyjcInspectionApplicationController extends BaseController {
@Autowired @Autowired
JyjcInspectionApplicationServiceImpl jyjcInspectionApplicationServiceImpl; private JyjcInspectionApplicationServiceImpl jyjcInspectionApplicationServiceImpl;
// 业务通用发起——基本信息 /**
private static final String basic = "basic"; * 业务通用发起——基本信息
// 业务通用发起——设备信息 */
private static final String equipPageInfo = "equipPageInfo"; private static final String BASIC = "basic";
// 业务通用发起——技术参数-
private static final String filePageData = "filePageData"; /**
* 业务通用发起——设备信息
*/
private static final String EQUIP_PAGE_INFO = "equipPageInfo";
/**
* 业务通用发起——技术参数
*/
private static final String FILE_PAGE_DATA = "filePageData";
@Autowired @Autowired
EventPublisher eventPublisher; private EventPublisher eventPublisher;
/** /**
* 新增 * 新增
...@@ -59,11 +67,11 @@ public class JyjcInspectionApplicationController extends BaseController { ...@@ -59,11 +67,11 @@ public class JyjcInspectionApplicationController extends BaseController {
@PostMapping(value = "/save") @PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "暂存、提交", notes = "新增") @ApiOperation(httpMethod = "POST", value = "暂存、提交", notes = "新增")
public ResponseModel<List<JyjcInspectionApplicationModel>> save(@RequestBody JSONObject model) { public ResponseModel<List<JyjcInspectionApplicationModel>> save(@RequestBody JSONObject model) {
if (model.containsKey(basic)) { if (model.containsKey(BASIC)) {
JSONObject finallyJson = new JSONObject(); JSONObject finallyJson = new JSONObject();
Map<String, Object> basicObj = (Map<String, Object>) model.get(basic); Map<String, Object> basicObj = (Map<String, Object>) model.get(BASIC);
Map<String, Object> equipPageInfoObj = (Map<String, Object>) model.get(equipPageInfo); Map<String, Object> equipPageInfoObj = (Map<String, Object>) model.get(EQUIP_PAGE_INFO);
Map<String, Object> filePageDataObj = (Map<String, Object>) model.get(filePageData); Map<String, Object> filePageDataObj = (Map<String, Object>) model.get(FILE_PAGE_DATA);
finallyJson.putAll(model); finallyJson.putAll(model);
finallyJson.putAll(basicObj); finallyJson.putAll(basicObj);
finallyJson.putAll(equipPageInfoObj); finallyJson.putAll(equipPageInfoObj);
...@@ -122,7 +130,7 @@ public class JyjcInspectionApplicationController extends BaseController { ...@@ -122,7 +130,7 @@ public class JyjcInspectionApplicationController extends BaseController {
@GetMapping(value = "/{sequenceNbr}") @GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个") @ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个", notes = "根据sequenceNbr查询单个")
public ResponseModel<Map<String, Object>> selectOne(@PathVariable Long sequenceNbr) { public ResponseModel<Map<String, Object>> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(jyjcInspectionApplicationServiceImpl.selectBySeq(sequenceNbr)); return ResponseHelper.buildResponse(jyjcInspectionApplicationServiceImpl.selectBySeq(sequenceNbr, getSelectedOrgInfo().getCompany().getCompanyType()));
} }
......
...@@ -54,4 +54,10 @@ public class InspectionEquipInfo implements Serializable { ...@@ -54,4 +54,10 @@ public class InspectionEquipInfo implements Serializable {
@ApiModelProperty(value = "所在区域") @ApiModelProperty(value = "所在区域")
private String areaCode; private String areaCode;
@ApiModelProperty(value = "设备所在区/县行政编码")
private String districtOrCountyCode;
@ApiModelProperty(value = "是否是球阀,压力容器定向规则使用")
private Boolean isBallValve = false;
} }
...@@ -195,6 +195,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -195,6 +195,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
// 校验流程中的不能再次提交 // 校验流程中的不能再次提交
this.checkForFlowingEquip(model); this.checkForFlowingEquip(model);
if (CharSequenceUtil.isNotEmpty(model.getProcessInstanceId()) && model.getOperationType().equals("0")) { if (CharSequenceUtil.isNotEmpty(model.getProcessInstanceId()) && model.getOperationType().equals("0")) {
// 之前有工作流,再次提交
model.setOperationType("2"); model.setOperationType("2");
} }
...@@ -215,7 +216,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -215,7 +216,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
String[] inspectionUnit = model.getInspectionUnitCode().split("_"); String[] inspectionUnit = model.getInspectionUnitCode().split("_");
if (inspectionUnit.length == 2) { if (inspectionUnit.length == 2) {
model.setInspectionUnitCode(inspectionUnit[0]); model.setInspectionUnitCode(inspectionUnit[0]);
model.setInspectionUnitName(inspectionUnit[1]); model.setIsMustAccept(Boolean.parseBoolean(inspectionUnit[1]));
} else { } else {
this.setInspectionUnitNameAfterSave(model); this.setInspectionUnitNameAfterSave(model);
} }
...@@ -358,6 +359,13 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -358,6 +359,13 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
model.setDockingUnitCode(jyjcOpeningApplications.get(0).getDockingUnitCode()); model.setDockingUnitCode(jyjcOpeningApplications.get(0).getDockingUnitCode());
} }
} }
String[] inspectionUnit = model.getInspectionUnitCode().split("_");
if (inspectionUnit.length == 2) {
model.setInspectionUnitCode(inspectionUnit[0]);
model.setIsMustAccept(Boolean.parseBoolean(inspectionUnit[1]));
} else {
this.setInspectionUnitNameAfterSave(model);
}
this.setInspectionUnitNameAfterSave(model); this.setInspectionUnitNameAfterSave(model);
//更新报检装备监管码 //更新报检装备监管码
...@@ -569,9 +577,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -569,9 +577,8 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
return this.queryForList("", false); return this.queryForList("", false);
} }
public Map<String, Object> selectBySeq(Long sequenceNbr) { public Map<String, Object> selectBySeq(Long sequenceNbr, String companyType) {
JyjcInspectionApplicationModel model = this.getBaseMapper().selectDataBySeq(sequenceNbr); JyjcInspectionApplicationModel model = this.getBaseMapper().selectDataBySeq(sequenceNbr);
int times = noAcceptLogService.count(new LambdaQueryWrapper<JyjcInspectionApplicationNoAcceptLog>().eq(JyjcInspectionApplicationNoAcceptLog::getApplicationSeq, sequenceNbr).eq(JyjcInspectionApplicationNoAcceptLog::getInspectionUnitCode,shanxiCompanyCode));
Map<String, Object> map = BeanUtil.beanToMap(model); Map<String, Object> map = BeanUtil.beanToMap(model);
List<Map<String, Object>> dataByApplicationSeq = jyjcInspectionApplicationAttachmentService.getBaseMapper().getDataByApplicationSeq(sequenceNbr); List<Map<String, Object>> dataByApplicationSeq = jyjcInspectionApplicationAttachmentService.getBaseMapper().getDataByApplicationSeq(sequenceNbr);
Map<String, Object> attMap = new HashMap<>(); Map<String, Object> attMap = new HashMap<>();
...@@ -606,8 +613,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec ...@@ -606,8 +613,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
map.put("equip", arrayList); map.put("equip", arrayList);
} }
map.putAll(attMap); map.putAll(attMap);
// 陕西特检验院不予首次的次数 map.put("companyType", companyType);
map.put("sytjybyslcs",times);
this.setPlanData(sequenceNbr, map); this.setPlanData(sequenceNbr, map);
return map; return map;
} }
......
...@@ -32,6 +32,7 @@ import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto; ...@@ -32,6 +32,7 @@ import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseUnitLicenceDto; import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseUnitLicenceDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.BaseUnitLicence; import com.yeejoin.amos.boot.module.ymt.api.entity.BaseUnitLicence;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseUnitLicence;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
...@@ -130,6 +131,12 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -130,6 +131,12 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
@Autowired @Autowired
RedissonClient redissonClient; RedissonClient redissonClient;
@Autowired
private RuleCommonServiceImpl ruleCommonService;
@Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
private static Map<String, DictionarieValueModel> permissionLevelMap; private static Map<String, DictionarieValueModel> permissionLevelMap;
private static List<DictionarieValueModel> permissionItemList; private static List<DictionarieValueModel> permissionItemList;
...@@ -902,7 +909,24 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp ...@@ -902,7 +909,24 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
@Override @Override
public List<TzBaseEnterpriseInfoDto> getUnitListByRecord(String record) { public List<TzBaseEnterpriseInfoDto> getUnitListByRecord(String record) {
return ruleActionHandler.getInspectionUnitList(new ArrayList<>(), true, record, OpenBizTypeEnum.JC.getCode()); return this.getInspectionUnitList(new ArrayList<>(), true, record, OpenBizTypeEnum.JC.getCode());
}
private List<TzBaseEnterpriseInfoDto> getInspectionUnitList(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, String record, String openBizType) {
// 是否进行属地过滤
String areaCode = isMatchArea ? ruleCommonService.getArea(record) : "";
// 所有符合单位的code
Set<String> unitCodes = unitLicenceList.stream().map(TzBaseUnitLicence::getUnitCode).collect(Collectors.toSet());
List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = new ArrayList<>();
// 按照资质 + areaCode,进行设备单位的筛选
if (unitCodes.size() > 0) {
matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(new ArrayList<>(unitCodes), areaCode, openBizType);
}
if (matchEnterpriseInfos.isEmpty()) {
log.info("按照资质、区域未匹配到对应的单位、按照地市未匹配到单位,将返回全部单位");
return tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(null, null, openBizType);
}
return matchEnterpriseInfos;
} }
/** /**
......
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