Commit 188712f4 authored by 刘林's avatar 刘林

Merge remote-tracking branch 'origin/develop_tzs_register_to_0715' into…

Merge remote-tracking branch 'origin/develop_tzs_register_to_0715' into develop_tzs_register_to_0715 # Conflicts: # amos-boot-system-tzs/amos-boot-module-jg/amos-boot-module-jg-api/src/main/java/com/yeejoin/amos/boot/module/jg/api/dto/JgUseRegistrationManageDto.java
parents 7c744893 198f03ef
package com.yeejoin.amos.boot.module.jg.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.typroject.tyboot.core.rdbms.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
*
*
* @author system_generator
* @date 2024-07-03
*/
......@@ -18,7 +17,7 @@ import java.util.Date;
@ApiModel(value="JgUseRegistrationManageDto", description="")
public class JgUseRegistrationManageDto extends BaseDto {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "使用单位名称")
......@@ -27,30 +26,39 @@ public class JgUseRegistrationManageDto extends BaseDto {
@ApiModelProperty(value = "申请编号")
private String applyNo;
@ApiModelProperty(value = "使用登记证状态(登记,注销)")
@ApiModelProperty(value = "使用登记证状态(已登记,已注销)")
private String certificateStatus;
@ApiModelProperty(value = "接收机构")
private String receiveOrgName;
@ApiModelProperty(value = "办理日期")
private Date auditPassDate;
private String auditPassDate;
@ApiModelProperty(value = "登记类别")
private String regType;
@ApiModelProperty(value = "申请日期")
private Date regDate;
private String regDate;
@ApiModelProperty(value = "设备种类")
private String equList;
@ApiModelProperty(value = "设备类别")
private String equCategory;
@ApiModelProperty(value = "设备类别")
private String equCategory;
@ApiModelProperty(value = "设备品种")
private String equDefine;
@ApiModelProperty(value = "设备种类编码")
private String equListCode;
@ApiModelProperty(value = "设备类别编码")
private String equCategoryCode;
@ApiModelProperty(value = "设备品种编码")
private String equDefineCode;
@ApiModelProperty(value = "备注")
private String remark;
......@@ -58,7 +66,7 @@ public class JgUseRegistrationManageDto extends BaseDto {
private String createUserId;
@ApiModelProperty(value = "创建时间")
private Date createDate;
private String createDate;
@ApiModelProperty(value = "使用登记编号")
private String useRegistrationCode;
......@@ -69,16 +77,16 @@ public class JgUseRegistrationManageDto extends BaseDto {
@ApiModelProperty(value = "接收机构公司代码")
private String receiveCompanyCode;
@ApiModelProperty(value = "使用登记证书参数")
private String useRegistrationCertificateParam;
@ApiModelProperty(value = "登记证书编号")
private String certificateNo;
@ApiModelProperty(value = "使用标志参数")
private String useFlagCertificateParam;
@ApiModelProperty(value = "数据类型:监管/行政审批局,企业")
private String dataType;
@ApiModelProperty(value = "设备使用地址")
private String equUseAddress;
@ApiModelProperty(value = "使用单位统一信用代码-搜索使用")
private String useUnitCreditCodeForSearch;
}
......@@ -36,7 +36,7 @@ public class JgUseRegistrationManage extends BaseEntity {
private String applyNo;
/**
* 使用登记证状态(登记,注销)
* 使用登记证状态(已登记,已注销)
*/
@TableField("certificate_status")
private String certificateStatus;
......@@ -83,6 +83,25 @@ public class JgUseRegistrationManage extends BaseEntity {
@TableField("equ_define")
private String equDefine;
/**
* 设备种类编码
*/
@TableField("equ_list_code")
private String equListCode;
/**
* 设备类别编码
*/
@TableField("equ_category_code")
private String equCategoryCode;
/**
* 设备品种编码
*/
@TableField("equ_define_code")
private String equDefineCode;
/**
* 备注
*/
......@@ -120,21 +139,15 @@ public class JgUseRegistrationManage extends BaseEntity {
private String receiveCompanyCode;
/**
* 使用登记证书参数
*/
@TableField("use_registration_certificate_param")
private String useRegistrationCertificateParam;
/**
* 登记证书唯一标识
*/
@TableField("certificate_no")
private String certificateNo;
/**
* 使用标志参数
* 设备使用地址
*/
@TableField("use_flag_certificate_param")
private String useFlagCertificateParam;
@TableField("equ_use_address")
private String equUseAddress;
}
......@@ -69,4 +69,5 @@ public interface JgUseRegistrationMapper extends BaseMapper<JgUseRegistration> {
List<CompanyEquipCountDto> queryForFlowingEquipList();
Map<String,String> getEquTypeByUseRegSeq(@Param("sequenceNbr")String sequenceNbr);
Map<String,String> getEquTypeByVehSeq(@Param("sequenceNbr")String sequenceNbr);
}
......@@ -4,29 +4,33 @@
<sql id="page_list">
select
tjurm.sequence_nbr AS sequence_nbr,
tjurm.use_unit_name AS use_unit_name,
tjurm.apply_no AS apply_no,
tjurm.certificate_status AS certificate_status,
tjurm.receive_org_name AS receive_org_name,
tjurm.audit_pass_date AS audit_pass_date,
tjurm.reg_type AS reg_type,
DATE_FORMAT(tjurm.reg_date,'%Y-%m-%d') AS reg_date,
tjurm.equ_list AS equ_list,
tjurm.equ_define AS equ_define,
tjurm.sequence_nbr AS sequenceNbr,
tjurm.use_unit_name AS useUnitName,
tjurm.apply_no AS applyNo,
tjurm.certificate_status AS certificateStatus,
tjurm.receive_org_name AS receiveOrgName,
DATE_FORMAT(tjurm.audit_pass_date,'%Y-%m-%d') AS auditPassDate,
tjurm.reg_type AS regType,
DATE_FORMAT(tjurm.reg_date,'%Y-%m-%d') AS regDate,
tjurm.equ_list AS equList,
tjurm.equ_define AS equDefine,
tjurm.remark AS remark,
tjurm.rec_user_id AS rec_user_id,
DATE_FORMAT(tjurm.rec_date,'%Y-%m-%d') AS rec_date,
tjurm.create_user_id AS create_user_id,
DATE_FORMAT(tjurm.create_date,'%Y-%m-%d') AS create_date,
tjurm.rec_user_name AS rec_user_name,
tjurm.use_registration_code AS use_registration_code,
tjurm.use_unit_credit_code AS use_unit_credit_code,
tjurm.receive_company_code AS receive_company_code,
tjurm.use_registration_certificate_param AS use_registration_certificate_param,
tjurm.certificate_no AS certificate_no,
tjurm.use_flag_certificate_param AS use_flag_certificate_param,
tjurm.equ_category AS equ_category
tjurm.rec_user_id AS recUserId,
DATE_FORMAT(tjurm.rec_date,'%Y-%m-%d') AS recDate,
tjurm.create_user_id AS createUserId,
DATE_FORMAT(tjurm.create_date,'%Y-%m-%d') AS createDate,
tjurm.rec_user_name AS recUserName,
tjurm.use_registration_code AS useRegistrationCode,
tjurm.use_unit_credit_code AS useUnitCreditCode,
tjurm.receive_company_code AS receiveCompanyCode,
tjurm.use_registration_certificate_param AS useRegistrationCertificateParam,
tjurm.certificate_no AS certificateNo,
tjurm.use_flag_certificate_param AS useFlagCertificateParam,
tjurm.equ_category AS equCategory,
tjurm.equ_use_address AS equUseAddress,
tjurm.equ_code AS equCode,
tjurm.use_inner_code AS useInnerCode,
tjurm.factory_num AS factoryNum
</sql>
......@@ -46,6 +50,41 @@
from tzs_jg_use_registration_manage tjurm
<where>
tjurm.is_delete = 0
<if test="dto.equList != null and dto.equList != ''">
and tjurm.equ_list = #{dto.equList}
</if>
<if test="dto.equListCode != null and dto.equListCode != ''">
and tjurm.equ_list_code = #{dto.equListCode}
</if>
<if test="dto.equCategory != null and dto.equCategory != ''">
and tjurm.equ_category = #{dto.equCategory}
</if>
<if test="dto.equCategoryCode != null and dto.equCategoryCode != ''">
and tjurm.equ_category_code = #{dto.equCategoryCode}
</if>
<if test="dto.equDefineCode != null and dto.equDefineCode != ''">
and tjurm.equ_define = #{dto.equDefineCode}
</if>
<if test="dto.equDefineCode != null and dto.equDefineCode != ''">
and tjurm.equ_define_code = #{dto.equDefineCode}
</if>
-- 使用登记证编号
<if test="dto.useRegistrationCode != null and dto.useRegistrationCode != ''">
and tjurm.use_registration_code = #{dto.useRegistrationCode}
</if>
-- 申请单号
<if test="dto.applyNo != null and dto.applyNo != ''">
and tjurm.apply_no = #{dto.applyNo}
</if>
<if test="dto.auditPassDate != null and dto.auditPassDate != ''">
and tjurm.audit_pass_date like concat('%',DATE_FORMAT(#{dto.auditPassDate},'%Y-%m-%d'),'%')
</if>
<if test="dto.certificateStatus != null and dto.certificateStatus != ''">
and tjurm.certificate_status = #{dto.certificateStatus}
</if>
<if test="dto.useUnitCreditCodeForSearch != null and dto.useUnitCreditCodeForSearch != ''">
and tjurm.use_unit_credit_code = #{dto.useUnitCreditCodeForSearch}
</if>
-- 企业根据企业统一信用代码匹配
<if test="dto.dataType == 'company' ">
AND tjurm.use_unit_credit_code = #{dto.useUnitCreditCode}
......
......@@ -532,11 +532,29 @@
<select id="getEquTypeByUseRegSeq" resultType="java.util.Map">
select ur.sequence_nbr as sequenceNbr,
GROUP_CONCAT(DISTINCT (SELECT name from tz_equipment_category where code = jri.EQU_LIST)) as equList,
jri.EQU_LIST as equListCode,
GROUP_CONCAT(DISTINCT (SELECT name from tz_equipment_category where code = jri.EQU_CATEGORY)) as equCategory,
GROUP_CONCAT(DISTINCT (SELECT name from tz_equipment_category where code = jri.EQU_DEFINE)) as equDefine
jri.EQU_CATEGORY as equCategoryCode,
GROUP_CONCAT(DISTINCT (SELECT name from tz_equipment_category where code = jri.EQU_DEFINE)) as equDefine,
jri.EQU_DEFINE as equDefineCode
from tzs_jg_use_registration ur
LEFT JOIN tzs_jg_use_registration_eq re on ur.sequence_nbr = re.equip_transfer_id
LEFT JOIN idx_biz_jg_register_info jri on re.equ_id = jri.RECORD
where ur.sequence_nbr = #{sequenceNbr}
</select>
<select id="getEquTypeByVehSeq" resultType="java.util.Map">
SELECT
ur.sequence_nbr AS sequenceNbr,
GROUP_CONCAT ( DISTINCT ( SELECT NAME FROM tz_equipment_category WHERE code = jri.EQU_LIST ) ) AS equList,
jri.EQU_LIST as equListCode,
GROUP_CONCAT ( DISTINCT ( SELECT NAME FROM tz_equipment_category WHERE code = jri.EQU_CATEGORY ) ) AS equCategory,
jri.EQU_CATEGORY as equCategoryCode,
GROUP_CONCAT ( DISTINCT ( SELECT NAME FROM tz_equipment_category WHERE code = jri.EQU_DEFINE ) ) AS equDefine,
jri.EQU_DEFINE as equDefineCode
FROM
tzs_jg_vehicle_information ur
LEFT JOIN tzs_jg_vehicle_information_eq re ON ur.sequence_nbr = re.vehicle_id
LEFT JOIN idx_biz_jg_register_info jri ON re.equ_id = jri.RECORD
where ur.sequence_nbr = #{sequenceNbr}
</select>
</mapper>
......@@ -11,8 +11,11 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationManageServiceImpl;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
......@@ -162,13 +165,16 @@ public class JgUseRegistrationManageController extends BaseController {
/**
* 根据证的sequenceNbr 批量查询证下面的所有设备
* @param sequenceNbr 证的sequenceNbr集合
* @param sequenceNbrs 证的sequenceNbr集合
* @return 证下的所有设备
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/queryEquByCertificateSeqList")
@ApiOperation(httpMethod = "GET",value = "根据证的sequenceNbr 查询证下面的所有设备", notes = "根据证的sequenceNbr 查询证下面的所有设备")
public ResponseModel<List<JSONObject>> queryEquByCertificateSeqList(List<Long> sequenceNbr) {
return ResponseHelper.buildResponse(jgUseRegistrationManageServiceImpl.queryEquByCertificateSeqList(sequenceNbr));
@ApiOperation(httpMethod = "GET",value = "根据证的sequenceNbr 批量查询证下面的所有设备", notes = "根据证的sequenceNbr 批量查询证下面的所有设备")
public ResponseModel<List<JSONObject>> queryEquByCertificateSeqList(@RequestParam String sequenceNbrs) {
List<Long> collect = Arrays.stream(sequenceNbrs.split(","))
.map(Long::parseLong)
.collect(Collectors.toList());
return ResponseHelper.buildResponse(jgUseRegistrationManageServiceImpl.queryEquByCertificateSeqList(collect));
}
}
......@@ -8,11 +8,9 @@ import com.yeejoin.amos.boot.module.jg.api.dto.UseFlagParamDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationEq;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationManage;
import com.yeejoin.amos.boot.module.jg.api.entity.JgVehicleInformation;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgRegistrationHistoryMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationManageMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.service.IJgUseRegistrationManageService;
import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
......@@ -28,9 +26,11 @@ import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.TermsQueryBuilder;
import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
......@@ -39,6 +39,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.util.*;
import java.util.stream.Collectors;
/**
* 服务实现类
......@@ -62,213 +63,124 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
private JgUseRegistrationEqMapper jgUseRegistrationEqMapper;
@Autowired
private JgRegistrationHistoryMapper jgRegistrationHistoryMapper;
@Autowired
private CommonServiceImpl commonServiceImpl;
@Autowired
private IdxBizJgUseInfoServiceImpl idxBizJgUseInfoService;
@Autowired
private IdxBizJgRegisterInfoServiceImpl idxBizJgRegisterInfoService;
private JgVehicleInformationMapper jgVehicleInformationMapper;
@Autowired
private IdxBizJgFactoryInfoServiceImpl idxBizJgFactoryInfoService;
@Autowired
private JgUseRegistrationServiceImpl jgUseRegistrationServiceImpl;
private JgVehicleInformationEqMapper jgVehicleInformationEqMapper;
/**
* 将已经通过使用登记审批的证信息录入到 jg-use-registration-manage 表中
*/
@Transactional(rollbackFor = Exception.class)
public Boolean brushHistoryCertificate() {
this.baseMapper.delete(new LambdaQueryWrapper<>());
// 使用登记表中已经审批通过的单子
List<JgUseRegistration> jgUseRegistrations = jgUseRegistrationMapper.selectList(new LambdaQueryWrapper<JgUseRegistration>()
.eq(JgUseRegistration::getStatus, "已完成"));
for (JgUseRegistration useRegistration : jgUseRegistrations) {
// 设备使用地址
String fullAddress = "";
// 设备种类/类别/品种
Map<String, String> equType = jgUseRegistrationMapper.getEquTypeByUseRegSeq(String.valueOf(useRegistration.getSequenceNbr()));
if (!"unit".equals(useRegistration.getManageType())){
List<JgUseRegistrationEq> jgUseRegistrationEqs = jgUseRegistrationEqMapper.selectList(new LambdaQueryWrapper<JgUseRegistrationEq>()
.eq(JgUseRegistrationEq::getEquipTransferId, useRegistration.getSequenceNbr()));
if (!ValidationUtil.isEmpty(jgUseRegistrationEqs)){
String equId = jgUseRegistrationEqs.get(0).getEquId();
IdxBizJgUseInfo useInfo = idxBizJgUseInfoService.getOne(new QueryWrapper<IdxBizJgUseInfo>()
.eq("RECORD", equId));
if (!ObjectUtils.isEmpty(useInfo.getProvinceName())) {
fullAddress += useInfo.getProvinceName();
}
if (!ObjectUtils.isEmpty(useInfo.getCityName())) {
fullAddress += useInfo.getCityName();
}
if (!ObjectUtils.isEmpty(useInfo.getCountyName())) {
fullAddress += useInfo.getCountyName();
}
if (!ObjectUtils.isEmpty(useInfo.getStreetName())) {
fullAddress += useInfo.getStreetName();
}
if (!ObjectUtils.isEmpty(useInfo.getAddress())) {
fullAddress += useInfo.getAddress();
}
}
}
// 组装数据
JgUseRegistrationManage jgUseRegistrationManage = new JgUseRegistrationManage();
jgUseRegistrationManage.setUseUnitName(useRegistration.getUseUnitName());
jgUseRegistrationManage.setApplyNo(useRegistration.getApplyNo());
jgUseRegistrationManage.setCertificateStatus("登记");
jgUseRegistrationManage.setCertificateStatus("登记");
jgUseRegistrationManage.setReceiveOrgName(useRegistration.getReceiveOrgName());
jgUseRegistrationManage.setAuditPassDate(useRegistration.getAuditPassDate());
jgUseRegistrationManage.setRegType(BusinessTypeEnum.JG_USAGE_REGISTRATION.getName());
jgUseRegistrationManage.setRegDate(useRegistration.getRegDate());
jgUseRegistrationManage.setEquList(equType.get("equList"));
jgUseRegistrationManage.setEquListCode(equType.get("equListCode"));
jgUseRegistrationManage.setEquCategory(equType.get("equCategory"));
jgUseRegistrationManage.setEquCategoryCode(equType.get("equCategoryCode"));
jgUseRegistrationManage.setEquDefine(equType.get("equDefine"));
jgUseRegistrationManage.setEquDefineCode(equType.get("equDefineCode"));
jgUseRegistrationManage.setIsDelete(Boolean.FALSE);
jgUseRegistrationManage.setRecUserId(useRegistration.getRecUserId());
jgUseRegistrationManage.setRecUserName(useRegistration.getRecUserName());
jgUseRegistrationManage.setRecDate(useRegistration.getRecDate());
jgUseRegistrationManage.setCreateUserId(useRegistration.getCreateUserId());
jgUseRegistrationManage.setCreateDate(useRegistration.getCreateDate());
jgUseRegistrationManage.setCreateDate(useRegistration.getRecDate());
jgUseRegistrationManage.setEquUseAddress(fullAddress);
jgUseRegistrationManage.setUseRegistrationCode(useRegistration.getUseRegistrationCode());
jgUseRegistrationManage.setUseUnitCreditCode(useRegistration.getUseUnitCreditCode());
jgUseRegistrationManage.setReceiveCompanyCode(useRegistration.getReceiveCompanyCode());
jgUseRegistrationManage.setCertificateNo(commonServiceImpl.generateCertificateNo(equType,useRegistration.getAuditPassDate(),useRegistration.getReceiveCompanyCode()));
// jgUseRegistrationManage.setUseRegistrationCertificateParam(this.buildUseRegistrationCertificateParam(useRegistration));
// jgUseRegistrationManage.setUseFlagCertificateParam(this.buildUseFlagCertificateParam());
this.baseMapper.insert(jgUseRegistrationManage);
}
// 车用气瓶使用登记表中已经审批通过的单子
List<JgVehicleInformation> jgVehicleInformations = jgVehicleInformationMapper.selectList(new LambdaQueryWrapper<JgVehicleInformation>()
.eq(JgVehicleInformation::getStatus, "已完成"));
for (JgVehicleInformation vehicleInformation : jgVehicleInformations) {
// 设备种类/类别/品种
Map<String, String> equType = jgUseRegistrationMapper.getEquTypeByVehSeq(String.valueOf(vehicleInformation.getSequenceNbr()));
// 组装数据
JgUseRegistrationManage jgUseRegistrationManage = new JgUseRegistrationManage();
jgUseRegistrationManage.setUseUnitName(vehicleInformation.getUseUnitName());
jgUseRegistrationManage.setApplyNo(vehicleInformation.getApplyNo());
jgUseRegistrationManage.setCertificateStatus("已登记");
jgUseRegistrationManage.setReceiveOrgName(vehicleInformation.getReceiveOrgName());
jgUseRegistrationManage.setAuditPassDate(vehicleInformation.getAuditPassDate());
jgUseRegistrationManage.setRegType(BusinessTypeEnum.JG_VEHICLE_GAS_APPLICATION.getName());
jgUseRegistrationManage.setRegDate(vehicleInformation.getRegDate());
jgUseRegistrationManage.setEquList(equType.get("equList"));
jgUseRegistrationManage.setEquListCode(equType.get("equListCode"));
jgUseRegistrationManage.setEquCategory(equType.get("equCategory"));
jgUseRegistrationManage.setEquCategoryCode(equType.get("equCategoryCode"));
jgUseRegistrationManage.setEquDefine(equType.get("equDefine"));
jgUseRegistrationManage.setEquDefineCode(equType.get("equDefineCode"));
jgUseRegistrationManage.setIsDelete(Boolean.FALSE);
jgUseRegistrationManage.setRecUserId(vehicleInformation.getRecUserId());
jgUseRegistrationManage.setRecUserName(vehicleInformation.getRecUserName());
jgUseRegistrationManage.setRecDate(vehicleInformation.getRecDate());
jgUseRegistrationManage.setCreateUserId(vehicleInformation.getCreateUserId());
jgUseRegistrationManage.setCreateDate(vehicleInformation.getRecDate());
jgUseRegistrationManage.setEquUseAddress("");
jgUseRegistrationManage.setUseRegistrationCode(vehicleInformation.getUseRegistrationCode());
jgUseRegistrationManage.setUseUnitCreditCode(vehicleInformation.getUseUnitCreditCode());
jgUseRegistrationManage.setReceiveCompanyCode(vehicleInformation.getReceiveCompanyCode());
jgUseRegistrationManage.setCertificateNo(commonServiceImpl.generateCertificateNo(equType,vehicleInformation.getAuditPassDate(),vehicleInformation.getReceiveCompanyCode()));
this.baseMapper.insert(jgUseRegistrationManage);
}
return Boolean.TRUE;
}
/**
* 组装使用登记证参数
*/
// private String buildUseRegistrationCertificateParam(JgUseRegistration useRegistration) {
// Map<String, Object> exportParamsMap = getStringObjectMap(useRegistration);
// return JSON.toJSONString(exportParamsMap);
// }
// private Map<String, Object> getStringObjectMap(JgUseRegistration useRegistration) {
// Map<String, Object> exportParamsMap = new HashMap<>();
// exportParamsMap.put("manageType", useRegistration.getManageType());
// LambdaQueryWrapper<JgUseRegistrationEq> useEqLambda = new QueryWrapper<JgUseRegistrationEq>().lambda();
// useEqLambda.eq(JgUseRegistrationEq::getEquipTransferId, useRegistration.getSequenceNbr());
// List<JgUseRegistrationEq> useRegistrationEqList = jgUseRegistrationEqMapper.selectList(useEqLambda);
//
// if (ValidationUtil.isEmpty(useRegistration) || ValidationUtil.isEmpty(useRegistrationEqList)) {
// throw new BadRequest("使用登记证导出失败,请稍后重试!");
// }
// // 登记机关
// if (ValidationUtil.isEmpty(useRegistration.getReceiveOrgName())) {
// throw new BadRequest("使用登记证导出失败,登记机关为空!");
// }
// exportParamsMap.put("receiveOrgName", useRegistration.getReceiveOrgName());
// // 使用登记证编号
// if (ValidationUtil.isEmpty(useRegistration.getUseRegistrationCode())) {
// throw new BadRequest("使用登记证导出失败,使用登记证编号为空!");
// }
// exportParamsMap.put("useRegistrationCode", useRegistration.getUseRegistrationCode());
// // 使用单位名称
// if (ValidationUtil.isEmpty(useRegistration.getUseUnitName())) {
// throw new BadRequest("使用登记证导出失败,使用单位名称为空!");
// }
// exportParamsMap.put("useUnitName", useRegistration.getUseUnitName());
//
// // 监管码
// if (ValidationUtil.isEmpty(useRegistration.getSupervisoryCode())) {
// throw new BadRequest("使用登记证导出失败,监管码为空!");
// }
// exportParamsMap.put("supervisoryCode", useRegistration.getSupervisoryCode());
//
// JgUseRegistrationServiceImpl.getAuditPassedDate(useRegistration.getAuditPassDate(), exportParamsMap);
//
// // 查询设备注册信息
// IdxBizJgRegisterInfo registerInfo = idxBizJgRegisterInfoService.getOne(new QueryWrapper<IdxBizJgRegisterInfo>().eq("RECORD", useRegistrationEqList.get(0).getEquId()));
// if (!ValidationUtil.isEmpty(registerInfo)) {
// // 设备种类、类别、品种
// String equList = registerInfo.getEquList();// 设备种类
// String equCategory = registerInfo.getEquCategory();// 设备类别
// String equDefine = registerInfo.getEquDefine();// 设备品种
// List<EquipmentCategory> categoryList0 = commonServiceImpl.getEquipmentCategoryList(equList, null);
// List<EquipmentCategory> categoryList1 = commonServiceImpl.getEquipmentCategoryList(equCategory, null);
// List<EquipmentCategory> categoryList2 = commonServiceImpl.getEquipmentCategoryList(equDefine, null);
// if (CollectionUtils.isNotEmpty(categoryList0)) {
// if (ValidationUtil.isEmpty(categoryList0.get(0).getName())) {
// throw new BadRequest("使用登记证导出失败,设备种类为空!");
// }
// exportParamsMap.put("equList", categoryList0.get(0).getName());
// }
// if (CollectionUtils.isNotEmpty(categoryList1)) {
// if (ValidationUtil.isEmpty(categoryList1.get(0).getName())) {
// throw new BadRequest("使用登记证导出失败,设备类别为空!");
// }
// exportParamsMap.put("equCategory", categoryList1.get(0).getName());
// }
// if (CollectionUtils.isNotEmpty(categoryList2)) {
// if (ValidationUtil.isEmpty(categoryList2.get(0).getName())) {
// throw new BadRequest("使用登记证导出失败,设备品种为空!");
// }
// exportParamsMap.put("equDefine", categoryList2.get(0).getName());
// }
// // 设备代码
// if (ValidationUtil.isEmpty(registerInfo.getEquCode())) {
// throw new BadRequest("使用登记证导出失败,设备代码为空!");
// }
// exportParamsMap.put("equCode", registerInfo.getEquCode());
// }
//
// IdxBizJgUseInfo useInfo = idxBizJgUseInfoService.getOneData(useRegistrationEqList.get(0).getEquId());
// if (!ValidationUtil.isEmpty(useInfo)) {
// if (ValidationUtil.isEmpty(useInfo.getUseInnerCode())) {
// throw new BadRequest("使用登记证导出失败,设备单位内部编码为空!");
// }
// // 单位内部编码
// exportParamsMap.put("useInnerCode", useInfo.getUseInnerCode());
// // 设备使用地址
// String fullAddress = "";
// if (!ObjectUtils.isEmpty(useInfo.getProvinceName())) {
// fullAddress += useInfo.getProvinceName();
// }
// if (!ObjectUtils.isEmpty(useInfo.getCityName())) {
// fullAddress += useInfo.getCityName();
// }
// if (!ObjectUtils.isEmpty(useInfo.getCountyName())) {
// fullAddress += useInfo.getCountyName();
// }
// if (!ObjectUtils.isEmpty(useInfo.getStreetName())) {
// fullAddress += useInfo.getStreetName();
// }
// if (!ObjectUtils.isEmpty(useInfo.getAddress())) {
// fullAddress += useInfo.getAddress();
// }
// if (ValidationUtil.isEmpty(fullAddress)) {
// throw new BadRequest("使用登记证导出失败,设备使用地址为空!");
// }
// exportParamsMap.put("fullAddress", fullAddress);
// }
// IdxBizJgFactoryInfo factoryInfo = idxBizJgFactoryInfoService.getOneData(useRegistrationEqList.get(0).getEquId());
// // 产品编号(出厂编号)
// if (!ValidationUtil.isEmpty(factoryInfo)) {
// if (ValidationUtil.isEmpty(factoryInfo.getFactoryNum())) {
// throw new BadRequest("使用登记证导出失败,产品编号为空!");
// }
// exportParamsMap.put("factoryNum", factoryInfo.getFactoryNum());
// }
// exportParamsMap.put("applyNo", useRegistration.getApplyNo());
// return exportParamsMap;
// }
/**
* 组装使用标志参数
*/
// private String buildUseFlagCertificateParam(JgUseRegistration useRegistration) {
// Map<String, Object> exportParamsMap = getStringObjectMap(useRegistration);
// UseFlagParamDto useFlagParamDto = new UseFlagParamDto();
// useFlagParamDto.setReceiveCompanyCode(useRegistration.getReceiveCompanyCode());
// useFlagParamDto.setEquList(exportParamsMap.get("equList").toString());
// useFlagParamDto.setEquListCode(registerInfo.getEquList());
// useFlagParamDto.setEquipCode(registerInfo.getEquCode());
// useFlagParamDto.setEquipCategory(exportParamsMap.get("equCategory").toString());
// useFlagParamDto.setEquipDefine(Optional.ofNullable(exportParamsMap.get("equDefine"))
// .orElse(exportParamsMap.get("equCategory").toString())
// .toString());
// useFlagParamDto.setUseUnitName(exportParamsMap.get("useUnitName").toString());
// useFlagParamDto.setUseInnerCode(exportParamsMap.get("useInnerCode").toString());
// useFlagParamDto.setReceiveOrgName(useRegistration.getReceiveOrgName());
// useFlagParamDto.setUseRegistrationCode(exportParamsMap.get("useRegistrationCode").toString());
// useFlagParamDto.setFactoryNumber(factoryInfo.getFactoryNum());
// useFlagParamDto.setCarNumber(registerInfo.getCarNumber());
// useFlagParamDto.setApplyNo(useRegistration.getApplyNo());
// // 检验信息字段设置
// jgUseRegistrationServiceImpl.setInspectField(registerInfo, useFlagParamDto);
// // 电梯维保信息字段设置
// jgUseRegistrationServiceImpl.setMainInfoField(registerInfo, useFlagParamDto);
// // 车用气瓶专用字段 暂无数据源 需车用气瓶功能开发完成后进行
// useFlagParamDto.setCylinderNumOrVolume("");
// useFlagParamDto.setFillingMedium("");
// return JSON.toJSONString(useFlagParamDto);
// }
/**
* 分页查询
......@@ -286,33 +198,38 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
public List<JgUseRegistrationManageDto> queryByUseUnitCreditCode(JgUseRegistrationManageDto dto) {
return jgUseRegistrationManageMapper.queryByUseUnitCreditCode(dto);
}
/**
* 根据证的sequenceNbr,查询证下面的所有设备
*/
public List<JSONObject> queryEquByCertificateSeq(Long sequenceNbr) {
return queryEquByCertificateSeqList(Collections.singletonList(sequenceNbr));
}
/**
* 根据证的sequenceNbr集合,批量查询证下面的所有设备
*/
public List<JSONObject> queryEquByCertificateSeqList(List<Long> sequenceNbrList) {
JgUseRegistrationManage jgUseRegistrationManage = this.baseMapper.selectOne(new LambdaQueryWrapper<JgUseRegistrationManage>()
List<JgUseRegistrationManage> jgUseRegistrationManageList = this.baseMapper.selectList(new LambdaQueryWrapper<JgUseRegistrationManage>()
.in(JgUseRegistrationManage::getSequenceNbr, sequenceNbrList)
.eq(JgUseRegistrationManage::getIsDelete, 0));
if (ValidationUtil.isEmpty(jgUseRegistrationManage) || ValidationUtil.isEmpty(jgUseRegistrationManage.getApplyNo())){
if (ValidationUtil.isEmpty(jgUseRegistrationManageList)){
return new ArrayList<>();
}
JgUseRegistration useRegistration = jgUseRegistrationMapper.selectOne(new LambdaQueryWrapper<JgUseRegistration>()
.eq(JgUseRegistration::getApplyNo, jgUseRegistrationManage.getApplyNo()));
List<JSONObject> result = new ArrayList<>();
Set<String> useOrgCodes = jgUseRegistrationManageList.stream().map(JgUseRegistrationManage::getUseRegistrationCode).collect(Collectors.toSet());
// es中通过查询【使用登记证编号】所有设备
SearchRequest request = new SearchRequest();
request.indices("idx_biz_view_jg_all");
SearchRequest request = new SearchRequest("idx_biz_view_jg_all");
SearchSourceBuilder builder = new SearchSourceBuilder();
builder.trackTotalHits(true);
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
builder.query(boolMust);
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery();
pBuilder.must(QueryBuilders.termQuery("USE_ORG_CODE", useRegistration.getUseRegistrationCode()));
boolMust.must(pBuilder);
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
TermsQueryBuilder termsQuery = QueryBuilders.termsQuery("USE_ORG_CODE", useOrgCodes);
boolQuery.must(termsQuery);
builder.query(boolQuery);
request.source(builder);
List<JSONObject> result = new ArrayList<>();
try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
for (SearchHit hit : response.getHits().getHits()) {
......
......@@ -14,7 +14,8 @@ public enum InspectionCompanyType {
* 检验单位分类
*/
LEGAL("legal","法定"),
THIRD("third","第3方");
THIRD("third","第3方"),
ALL("all","全部机构");
private String code;
private String name;
......
......@@ -2,10 +2,12 @@ package com.yeejoin.amos.boot.module.jyjc.biz.action;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplicationNoAcceptLog;
import com.yeejoin.amos.boot.module.jyjc.api.enums.InspectionCompanyType;
import com.yeejoin.amos.boot.module.jyjc.api.enums.LicenceTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.enums.OpenBizTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.rule.InspectionEquipInfo;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.JyjcInspectionApplicationNoAcceptLogServiceImpl;
import com.yeejoin.amos.boot.module.jyjc.biz.service.impl.RuleCommonServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseUnitLicence;
......@@ -40,6 +42,7 @@ public class RuleActionHandler {
private final RedissonClient redissonClient;
private RedisUtils redisUtils;
private RuleCommonServiceImpl ruleCommonService;
private JyjcInspectionApplicationNoAcceptLogServiceImpl noAcceptLogService;
/**
* 省特检院等特殊公司code
......@@ -79,18 +82,18 @@ public class RuleActionHandler {
try {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
if (!isLocked) {
log.warn("规则回填重复丢弃:请求变量参数:{},核对项目编码:{},是否进行属地过滤:{},默认的检验机构code:{}, 法定的检验机构code:{}, 法定的检验机构code: {},是否需要匹配核准代码:{}", bizObj, itemCode, isMatchArea, defaultInspectionCode, legalInspectionCodes, inspectionCompanyType, isMatchItem);
log.warn("规则回掉重复,消息将丢弃");
return;
}
if (redisUtils.hasKey(this.buildRedisDataKey("filterInspectionOrgAction", inspectionEquipInfo.getUuid()))) {
log.warn("规则回填重复丢弃:请求变量参数:{},核对项目编码:{},是否进行属地过滤:{},默认的检验机构code:{}, 法定的检验机构code:{}, 法定的检验机构code: {},是否需要匹配核准代码:{}", bizObj, itemCode, isMatchArea, defaultInspectionCode, legalInspectionCodes, inspectionCompanyType, isMatchItem);
log.warn("规则回掉重复,消息将丢弃");
return;
}
redisUtils.set(this.buildRedisDataKey("filterInspectionOrgAction", inspectionEquipInfo.getUuid()), inspectionEquipInfo.getUuid(), 3600);
// 1.获取所有的符合资质条件的单位许可信息
List<TzBaseUnitLicence> unitLicenceList = getBaseUnitLicenceList(itemCode, isMatchItem);
// 2.匹配过滤机构信息,默认检验机构(目前检测没配置规则,后续检测也需要配置规则时,需要规则那回调方法新增参数,区分检验还是检测)
List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoList = getInspectionUnitListForFirstCommit(unitLicenceList, isMatchArea, inspectionEquipInfo, OpenBizTypeEnum.JY.getCode(), defaultInspectionCode, legalInspectionCodes, isMustAccept);
List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoList = getInspectionUnitListForLegal(unitLicenceList, isMatchArea, inspectionEquipInfo, OpenBizTypeEnum.JY.getCode(), defaultInspectionCode, legalInspectionCodes, isMustAccept);
ruleCommonService.publishMqttMessage(inspectionEquipInfo.getComponentKey(), tzBaseEnterpriseInfoList);
} catch (MqttException | InterruptedException e) {
log.error("首次提交的检验机构匹配动作执行失败: {}", e.getMessage());
......@@ -152,6 +155,43 @@ public class RuleActionHandler {
return tzBaseUnitLicences;
}
private List<TzBaseEnterpriseInfoDto> getInspectionUnitListForNoAccept2(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, InspectionEquipInfo inspectionEquipInfo, String openBizType, String defaultInspectionCode, String legalInspectionCodes, String inspectionCompanyType, Boolean isCanNoAccept) {
List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = new ArrayList<>();
if(inspectionCompanyType.equals(InspectionCompanyType.ALL.getCode())){
// 是否进行属地过滤
String areaCode = isMatchArea ? inspectionEquipInfo.getAreaCode() : "";
// 所有符合资质的单位code
Set<String> unitCodes = unitLicenceList.stream().map(TzBaseUnitLicence::getUnitCode).collect(Collectors.toSet());
// 1.按照资质 + 开通区域,进行单位的筛选
if (unitCodes.size() > 0) {
matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(new ArrayList<>(unitCodes), areaCode, openBizType);
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理
this.setIsCanNoAccept(matchEnterpriseInfos, isCanNoAccept);
}
// 2.去掉已经不予受理的机构
List<String> unitCodesList = getNoAcceptHistoryUnit(inspectionEquipInfo);
matchEnterpriseInfos = matchEnterpriseInfos.stream().filter(u-> !unitCodesList.contains(u.getUseCode())).collect(Collectors.toList());
// 3.未空时显示默认机构(兜底机构),只匹配开通的业务类型(检验还是检测)且不匹配开通区域且不可不予受理操作
if(matchEnterpriseInfos.isEmpty()){
matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(new ArrayList<>(Arrays.asList(defaultInspectionCode.split(","))), "", openBizType);
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理
this.setIsCanNoAccept(matchEnterpriseInfos, true);
}
} else {
log.warn("{}:待实现", inspectionCompanyType);
}
return matchEnterpriseInfos;
}
private List<String> getNoAcceptHistoryUnit(InspectionEquipInfo inspectionEquipInfo) {
LambdaQueryWrapper<JyjcInspectionApplicationNoAcceptLog> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JyjcInspectionApplicationNoAcceptLog::getApplicationSeq, inspectionEquipInfo.getAppSeq());
queryWrapper.select(JyjcInspectionApplicationNoAcceptLog::getInspectionUnitCode);
List<JyjcInspectionApplicationNoAcceptLog> acceptLogs = noAcceptLogService.list(queryWrapper);
return acceptLogs.stream().map(JyjcInspectionApplicationNoAcceptLog::getInspectionUnitCode).collect(Collectors.toList());
}
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() : "";
......@@ -189,7 +229,22 @@ public class RuleActionHandler {
return matchEnterpriseInfos;
}
private List<TzBaseEnterpriseInfoDto> getInspectionUnitListForFirstCommit(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, InspectionEquipInfo inspectionEquipInfo, String openBizType, String defaultInspectionCode, String legalInspectionCodes, Boolean isCanNoAccept) {
private List<TzBaseEnterpriseInfoDto> getInspectionUnitListForFirstCommit2(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, InspectionEquipInfo inspectionEquipInfo, String openBizType, String defaultInspectionCode, String legalInspectionCodes, Boolean isMustAccept, String inspectionCompanyType) {
List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = new ArrayList<>();
if(inspectionCompanyType.equals(InspectionCompanyType.ALL.getCode())){
matchEnterpriseInfos = getInspectionUnitListForAll(unitLicenceList, isMatchArea, inspectionEquipInfo, openBizType, defaultInspectionCode, legalInspectionCodes, isMustAccept);
}if(inspectionCompanyType.equals(InspectionCompanyType.LEGAL.getCode())){
// 目前未使用到可替换 firstInspectionOrgMatchAction 业务
matchEnterpriseInfos = getInspectionUnitListForLegal(unitLicenceList, isMatchArea, inspectionEquipInfo, openBizType, defaultInspectionCode, legalInspectionCodes, isMustAccept);
} else if(inspectionCompanyType.equals(InspectionCompanyType.THIRD.getCode())){
// TODO 待实现
log.warn("{}类型:未实现",InspectionCompanyType.THIRD.getName());
}
return matchEnterpriseInfos;
}
private List<TzBaseEnterpriseInfoDto> getInspectionUnitListForLegal(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, InspectionEquipInfo inspectionEquipInfo, String openBizType, String defaultInspectionCode, String legalInspectionCodes, Boolean isCanNoAccept) {
// 是否进行属地过滤
String areaCode = isMatchArea ? inspectionEquipInfo.getAreaCode() : "";
// 所有符合单位的code
......@@ -215,10 +270,93 @@ public class RuleActionHandler {
return matchEnterpriseInfos;
}
private List<TzBaseEnterpriseInfoDto> getInspectionUnitListForAll(List<TzBaseUnitLicence> unitLicenceList, Boolean isMatchArea, InspectionEquipInfo inspectionEquipInfo, String openBizType, String defaultInspectionCode, String legalInspectionCodes, Boolean isCanNoAccept) {
// 是否进行属地过滤
String areaCode = isMatchArea ? inspectionEquipInfo.getAreaCode() : "";
// 所有符合单位的code
Set<String> unitCodes = unitLicenceList.stream().map(TzBaseUnitLicence::getUnitCode).collect(Collectors.toSet());
List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos = tzBaseEnterpriseInfoMapper.getInspectionUnitListByCode(new ArrayList<>(unitCodes), areaCode, openBizType);
// 返回下一步是否可不予返回,供下一节点审核时显示判断是否显示不予受理按钮,在提交时数据会写入到主表:true-必须处理,false-可不予受理
this.setIsCanNoAccept(matchEnterpriseInfos, isCanNoAccept);
return matchEnterpriseInfos;
}
private void setIsCanNoAccept(List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos, Boolean isCanNoAccept) {
matchEnterpriseInfos.forEach(m -> m.setUseCodeAndName(m.getUseCode() + "_" + isCanNoAccept));
}
/**
* 规则回调方法-用户自选首次提交的检验机构匹配,可替换firstInspectionOrgMatchAction,由于规则修改太多,故新增一个
*
* @param bizObj 请求变量参数
* @param itemCode 核对项目编码,多个用逗号分割
* @param isMatchArea 是否进行属地过滤(检验检测机构的开通区域包含设备归属地市),true-过滤,false-不过滤
* @param defaultInspectionCode 默认的检验机构code,多个用逗号分割,在按照属地匹配不上时,默认的检验机构
* @param legalInspectionCodes 法定的检验机构code,多个用逗号分割,检验机构的最大集合-不为空
* @param inspectionCompanyType 需要显示的单位类型:legal-法定、third-第3方、all-全部,默认都是legal-法定,预留需求变更点
* @param isMatchItem 是否需要匹配核准代码:true-匹配; false-不匹配
* @param isMustAccept true-必须处理,false-可不予受理
* @param orgType jy-检验机构,jc-检测机构
*/
public void firstInspectionOrgMatchAction2(Object bizObj, String itemCode, Boolean isMatchArea, String defaultInspectionCode, String legalInspectionCodes, String inspectionCompanyType, Boolean isMatchItem, Boolean isMustAccept, String orgType) {
log.info("收到用户自选首次提交的检验机构匹配规则回调:请求变量参数:{},核对项目编码:{},是否进行属地过滤:{},默认的检验机构code:{}, 法定的检验机构code:{}, 检验机构类型: {},是否需要匹配核准代码:{},是否必须处理:{},检验机构类型:{}", bizObj, itemCode, isMatchArea, defaultInspectionCode, legalInspectionCodes, inspectionCompanyType, isMatchItem, isMustAccept, orgType);
InspectionEquipInfo inspectionEquipInfo = (InspectionEquipInfo) bizObj;
// 规则不支持或者的关系消息会重复故去重处理
RLock lock = redissonClient.getLock(this.buildLockKey("firstInspectionOrgMatchAction2", inspectionEquipInfo.getUuid()));
try {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
if (!isLocked) {
log.warn("规则回掉重复,消息将丢弃");
return;
}
if (redisUtils.hasKey(this.buildRedisDataKey("firstInspectionOrgMatchAction2", inspectionEquipInfo.getUuid()))) {
log.warn("规则回掉重复,消息将丢弃");
return;
}
redisUtils.set(this.buildRedisDataKey("firstInspectionOrgMatchAction2", inspectionEquipInfo.getUuid()), inspectionEquipInfo.getUuid(), 3600);
// 1.获取所有的符合资质条件的单位许可信息
List<TzBaseUnitLicence> unitLicenceList = getBaseUnitLicenceList(itemCode, isMatchItem);
// 2.匹配过滤机构信息,区分检验还是检测
List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoList = getInspectionUnitListForFirstCommit2(unitLicenceList, isMatchArea, inspectionEquipInfo, orgType, defaultInspectionCode, legalInspectionCodes, isMustAccept, inspectionCompanyType);
ruleCommonService.publishMqttMessage(inspectionEquipInfo.getComponentKey(), tzBaseEnterpriseInfoList);
} catch (MqttException | InterruptedException e) {
log.error("用户自选首次提交的检验机构匹配动作执行失败: {}", e.getMessage());
} finally {
if (lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
}
/**
* 规则回调方法-用户自选不予受理的检验机构匹配
*
* @param bizObj 请求变量参数
* @param itemCode 核对项目编码,多个用逗号分割
* @param isMatchArea 是否进行属地过滤(检验检测机构的开通区域包含设备归属地市),true-过滤,false-不过滤
* @param defaultInspectionCode 默认的检验机构code
* @param inspectionCompanyType 需要显示的单位类型:legal-法定、third-第3方、all-全部,默认都是legal-法定,预留需求变更点
* @param legalInspectionCodes 法定的检验机构code,多个用逗号分割,检验机构的最大集合-不为空
* @param isMustAccept true-必须处理,false-可不予受理
* @param orgType jy-检验机构,jc-检测机构
*/
public void noAcceptInspectionOrgMatchAction2(Object bizObj, String itemCode, Boolean isMatchArea, String defaultInspectionCode, String inspectionCompanyType, Boolean isMatchItem, String legalInspectionCodes, Boolean isMustAccept, String orgType) {
log.info("收到不予受理的检验机构匹配规则回调:请求变量参数:{},核对项目编码:{},是否进行属地过滤:{},默认的检验机构code:{}, 法定的检验机构code:{}, 检验机构类型: {},是否需要匹配核准代码:{},是否必须处理:{},公司类型:{}", bizObj, itemCode, isMatchArea, defaultInspectionCode, legalInspectionCodes, inspectionCompanyType, isMatchItem, isMustAccept, orgType);
InspectionEquipInfo inspectionEquipInfo = (InspectionEquipInfo) bizObj;
try {
// 1.获取所有的符合资质条件的单位许可信息
List<TzBaseUnitLicence> unitLicenceList = getBaseUnitLicenceList(itemCode, isMatchItem);
// 2.匹配过滤机构信息,默认检验机构(目前检测没配置规则,后续检测也需要配置规则时,需要规则那回调方法新增参数,区分检验还是检测)
List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoList = getInspectionUnitListForNoAccept2(unitLicenceList, isMatchArea, inspectionEquipInfo, orgType, defaultInspectionCode, legalInspectionCodes, inspectionCompanyType, isMustAccept);
ruleCommonService.publishMqttMessage(inspectionEquipInfo.getComponentKey(), tzBaseEnterpriseInfoList);
} catch (MqttException e) {
log.error("Error publishing MQTT message: {}", e.getMessage());
}
}
}
......@@ -137,6 +137,7 @@ public class EnableRuleDataPreparationListener implements ApplicationListener<In
inspectionEquipInfo.setLastNoAcceptInspectionCode(this.buildLastNoAcceptInspectionCode(jyjcInspectionApplicationNoAcceptLog));
// 是否球罐 0 1 转 boolean
inspectionEquipInfo.setIsBallValve(!"0".equals(registrationInfo.getWhetherSphericalTank()));
inspectionEquipInfo.setAppSeq(equipInfoModel.getAppSeq());
// 触发规则
publisher.publish(new TouchRuleEvent(this, inspectionEquipInfo));
}
......
......@@ -60,4 +60,7 @@ public class InspectionEquipInfo implements Serializable {
@ApiModelProperty(value = "是否是球阀,压力容器定向规则使用")
private Boolean isBallValve = false;
@ApiModelProperty(value = "申请表主键")
private String appSeq;
}
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