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; 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 com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import org.typroject.tyboot.core.rdbms.model.BaseModel;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date;
/** /**
*
*
* @author system_generator * @author system_generator
* @date 2024-07-03 * @date 2024-07-03
*/ */
...@@ -18,7 +17,7 @@ import java.util.Date; ...@@ -18,7 +17,7 @@ import java.util.Date;
@ApiModel(value="JgUseRegistrationManageDto", description="") @ApiModel(value="JgUseRegistrationManageDto", description="")
public class JgUseRegistrationManageDto extends BaseDto { public class JgUseRegistrationManageDto extends BaseDto {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "使用单位名称") @ApiModelProperty(value = "使用单位名称")
...@@ -27,30 +26,39 @@ public class JgUseRegistrationManageDto extends BaseDto { ...@@ -27,30 +26,39 @@ public class JgUseRegistrationManageDto extends BaseDto {
@ApiModelProperty(value = "申请编号") @ApiModelProperty(value = "申请编号")
private String applyNo; private String applyNo;
@ApiModelProperty(value = "使用登记证状态(登记,注销)") @ApiModelProperty(value = "使用登记证状态(已登记,已注销)")
private String certificateStatus; private String certificateStatus;
@ApiModelProperty(value = "接收机构") @ApiModelProperty(value = "接收机构")
private String receiveOrgName; private String receiveOrgName;
@ApiModelProperty(value = "办理日期") @ApiModelProperty(value = "办理日期")
private Date auditPassDate; private String auditPassDate;
@ApiModelProperty(value = "登记类别") @ApiModelProperty(value = "登记类别")
private String regType; private String regType;
@ApiModelProperty(value = "申请日期") @ApiModelProperty(value = "申请日期")
private Date regDate; private String regDate;
@ApiModelProperty(value = "设备种类") @ApiModelProperty(value = "设备种类")
private String equList; private String equList;
@ApiModelProperty(value = "设备类别") @ApiModelProperty(value = "设备类别")
private String equCategory; private String equCategory;
@ApiModelProperty(value = "设备品种") @ApiModelProperty(value = "设备品种")
private String equDefine; private String equDefine;
@ApiModelProperty(value = "设备种类编码")
private String equListCode;
@ApiModelProperty(value = "设备类别编码")
private String equCategoryCode;
@ApiModelProperty(value = "设备品种编码")
private String equDefineCode;
@ApiModelProperty(value = "备注") @ApiModelProperty(value = "备注")
private String remark; private String remark;
...@@ -58,7 +66,7 @@ public class JgUseRegistrationManageDto extends BaseDto { ...@@ -58,7 +66,7 @@ public class JgUseRegistrationManageDto extends BaseDto {
private String createUserId; private String createUserId;
@ApiModelProperty(value = "创建时间") @ApiModelProperty(value = "创建时间")
private Date createDate; private String createDate;
@ApiModelProperty(value = "使用登记编号") @ApiModelProperty(value = "使用登记编号")
private String useRegistrationCode; private String useRegistrationCode;
...@@ -69,16 +77,16 @@ public class JgUseRegistrationManageDto extends BaseDto { ...@@ -69,16 +77,16 @@ public class JgUseRegistrationManageDto extends BaseDto {
@ApiModelProperty(value = "接收机构公司代码") @ApiModelProperty(value = "接收机构公司代码")
private String receiveCompanyCode; private String receiveCompanyCode;
@ApiModelProperty(value = "使用登记证书参数")
private String useRegistrationCertificateParam;
@ApiModelProperty(value = "登记证书编号") @ApiModelProperty(value = "登记证书编号")
private String certificateNo; private String certificateNo;
@ApiModelProperty(value = "使用标志参数")
private String useFlagCertificateParam;
@ApiModelProperty(value = "数据类型:监管/行政审批局,企业") @ApiModelProperty(value = "数据类型:监管/行政审批局,企业")
private String dataType; private String dataType;
@ApiModelProperty(value = "设备使用地址")
private String equUseAddress;
@ApiModelProperty(value = "使用单位统一信用代码-搜索使用")
private String useUnitCreditCodeForSearch;
} }
...@@ -36,7 +36,7 @@ public class JgUseRegistrationManage extends BaseEntity { ...@@ -36,7 +36,7 @@ public class JgUseRegistrationManage extends BaseEntity {
private String applyNo; private String applyNo;
/** /**
* 使用登记证状态(登记,注销) * 使用登记证状态(已登记,已注销)
*/ */
@TableField("certificate_status") @TableField("certificate_status")
private String certificateStatus; private String certificateStatus;
...@@ -83,6 +83,25 @@ public class JgUseRegistrationManage extends BaseEntity { ...@@ -83,6 +83,25 @@ public class JgUseRegistrationManage extends BaseEntity {
@TableField("equ_define") @TableField("equ_define")
private String equDefine; 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 { ...@@ -120,21 +139,15 @@ public class JgUseRegistrationManage extends BaseEntity {
private String receiveCompanyCode; private String receiveCompanyCode;
/** /**
* 使用登记证书参数
*/
@TableField("use_registration_certificate_param")
private String useRegistrationCertificateParam;
/**
* 登记证书唯一标识 * 登记证书唯一标识
*/ */
@TableField("certificate_no") @TableField("certificate_no")
private String certificateNo; private String certificateNo;
/** /**
* 使用标志参数 * 设备使用地址
*/ */
@TableField("use_flag_certificate_param") @TableField("equ_use_address")
private String useFlagCertificateParam; private String equUseAddress;
} }
...@@ -69,4 +69,5 @@ public interface JgUseRegistrationMapper extends BaseMapper<JgUseRegistration> { ...@@ -69,4 +69,5 @@ public interface JgUseRegistrationMapper extends BaseMapper<JgUseRegistration> {
List<CompanyEquipCountDto> queryForFlowingEquipList(); List<CompanyEquipCountDto> queryForFlowingEquipList();
Map<String,String> getEquTypeByUseRegSeq(@Param("sequenceNbr")String sequenceNbr); Map<String,String> getEquTypeByUseRegSeq(@Param("sequenceNbr")String sequenceNbr);
Map<String,String> getEquTypeByVehSeq(@Param("sequenceNbr")String sequenceNbr);
} }
...@@ -4,29 +4,33 @@ ...@@ -4,29 +4,33 @@
<sql id="page_list"> <sql id="page_list">
select select
tjurm.sequence_nbr AS sequence_nbr, tjurm.sequence_nbr AS sequenceNbr,
tjurm.use_unit_name AS use_unit_name, tjurm.use_unit_name AS useUnitName,
tjurm.apply_no AS apply_no, tjurm.apply_no AS applyNo,
tjurm.certificate_status AS certificate_status, tjurm.certificate_status AS certificateStatus,
tjurm.receive_org_name AS receive_org_name, tjurm.receive_org_name AS receiveOrgName,
tjurm.audit_pass_date AS audit_pass_date, DATE_FORMAT(tjurm.audit_pass_date,'%Y-%m-%d') AS auditPassDate,
tjurm.reg_type AS reg_type, tjurm.reg_type AS regType,
DATE_FORMAT(tjurm.reg_date,'%Y-%m-%d') AS reg_date, DATE_FORMAT(tjurm.reg_date,'%Y-%m-%d') AS regDate,
tjurm.equ_list AS equ_list, tjurm.equ_list AS equList,
tjurm.equ_define AS equ_define, tjurm.equ_define AS equDefine,
tjurm.remark AS remark, tjurm.remark AS remark,
tjurm.rec_user_id AS rec_user_id, tjurm.rec_user_id AS recUserId,
DATE_FORMAT(tjurm.rec_date,'%Y-%m-%d') AS rec_date, DATE_FORMAT(tjurm.rec_date,'%Y-%m-%d') AS recDate,
tjurm.create_user_id AS create_user_id, tjurm.create_user_id AS createUserId,
DATE_FORMAT(tjurm.create_date,'%Y-%m-%d') AS create_date, DATE_FORMAT(tjurm.create_date,'%Y-%m-%d') AS createDate,
tjurm.rec_user_name AS rec_user_name, tjurm.rec_user_name AS recUserName,
tjurm.use_registration_code AS use_registration_code, tjurm.use_registration_code AS useRegistrationCode,
tjurm.use_unit_credit_code AS use_unit_credit_code, tjurm.use_unit_credit_code AS useUnitCreditCode,
tjurm.receive_company_code AS receive_company_code, tjurm.receive_company_code AS receiveCompanyCode,
tjurm.use_registration_certificate_param AS use_registration_certificate_param, tjurm.use_registration_certificate_param AS useRegistrationCertificateParam,
tjurm.certificate_no AS certificate_no, tjurm.certificate_no AS certificateNo,
tjurm.use_flag_certificate_param AS use_flag_certificate_param, tjurm.use_flag_certificate_param AS useFlagCertificateParam,
tjurm.equ_category AS equ_category 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> </sql>
...@@ -46,6 +50,41 @@ ...@@ -46,6 +50,41 @@
from tzs_jg_use_registration_manage tjurm from tzs_jg_use_registration_manage tjurm
<where> <where>
tjurm.is_delete = 0 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' "> <if test="dto.dataType == 'company' ">
AND tjurm.use_unit_credit_code = #{dto.useUnitCreditCode} AND tjurm.use_unit_credit_code = #{dto.useUnitCreditCode}
......
...@@ -532,11 +532,29 @@ ...@@ -532,11 +532,29 @@
<select id="getEquTypeByUseRegSeq" resultType="java.util.Map"> <select id="getEquTypeByUseRegSeq" resultType="java.util.Map">
select ur.sequence_nbr as sequenceNbr, select ur.sequence_nbr as sequenceNbr,
GROUP_CONCAT(DISTINCT (SELECT name from tz_equipment_category where code = jri.EQU_LIST)) as equList, 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_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 from tzs_jg_use_registration ur
LEFT JOIN tzs_jg_use_registration_eq re on ur.sequence_nbr = re.equip_transfer_id 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 LEFT JOIN idx_biz_jg_register_info jri on re.equ_id = jri.RECORD
where ur.sequence_nbr = #{sequenceNbr} where ur.sequence_nbr = #{sequenceNbr}
</select> </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> </mapper>
...@@ -11,8 +11,11 @@ import io.swagger.annotations.ApiOperation; ...@@ -11,8 +11,11 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationManageServiceImpl; import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationManageServiceImpl;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
...@@ -162,13 +165,16 @@ public class JgUseRegistrationManageController extends BaseController { ...@@ -162,13 +165,16 @@ public class JgUseRegistrationManageController extends BaseController {
/** /**
* 根据证的sequenceNbr 批量查询证下面的所有设备 * 根据证的sequenceNbr 批量查询证下面的所有设备
* @param sequenceNbr 证的sequenceNbr集合 * @param sequenceNbrs 证的sequenceNbr集合
* @return 证下的所有设备 * @return 证下的所有设备
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/queryEquByCertificateSeqList") @GetMapping(value = "/queryEquByCertificateSeqList")
@ApiOperation(httpMethod = "GET",value = "根据证的sequenceNbr 查询证下面的所有设备", notes = "根据证的sequenceNbr 查询证下面的所有设备") @ApiOperation(httpMethod = "GET",value = "根据证的sequenceNbr 批量查询证下面的所有设备", notes = "根据证的sequenceNbr 批量查询证下面的所有设备")
public ResponseModel<List<JSONObject>> queryEquByCertificateSeqList(List<Long> sequenceNbr) { public ResponseModel<List<JSONObject>> queryEquByCertificateSeqList(@RequestParam String sequenceNbrs) {
return ResponseHelper.buildResponse(jgUseRegistrationManageServiceImpl.queryEquByCertificateSeqList(sequenceNbr)); 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; ...@@ -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.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationEq; 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.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.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgRegistrationHistoryMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.*;
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.service.IJgUseRegistrationManageService; 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.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo; import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
...@@ -28,9 +26,11 @@ import org.elasticsearch.client.RequestOptions; ...@@ -28,9 +26,11 @@ import org.elasticsearch.client.RequestOptions;
import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.client.RestHighLevelClient;
import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.TermsQueryBuilder;
import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
...@@ -39,6 +39,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -39,6 +39,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* 服务实现类 * 服务实现类
...@@ -62,213 +63,124 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr ...@@ -62,213 +63,124 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
private JgUseRegistrationEqMapper jgUseRegistrationEqMapper; private JgUseRegistrationEqMapper jgUseRegistrationEqMapper;
@Autowired @Autowired
private JgRegistrationHistoryMapper jgRegistrationHistoryMapper;
@Autowired
private CommonServiceImpl commonServiceImpl; private CommonServiceImpl commonServiceImpl;
@Autowired @Autowired
private IdxBizJgUseInfoServiceImpl idxBizJgUseInfoService; private IdxBizJgUseInfoServiceImpl idxBizJgUseInfoService;
@Autowired @Autowired
private IdxBizJgRegisterInfoServiceImpl idxBizJgRegisterInfoService; private JgVehicleInformationMapper jgVehicleInformationMapper;
@Autowired @Autowired
private IdxBizJgFactoryInfoServiceImpl idxBizJgFactoryInfoService; private JgVehicleInformationEqMapper jgVehicleInformationEqMapper;
@Autowired
private JgUseRegistrationServiceImpl jgUseRegistrationServiceImpl;
/** /**
* 将已经通过使用登记审批的证信息录入到 jg-use-registration-manage 表中 * 将已经通过使用登记审批的证信息录入到 jg-use-registration-manage 表中
*/ */
@Transactional(rollbackFor = Exception.class)
public Boolean brushHistoryCertificate() { public Boolean brushHistoryCertificate() {
this.baseMapper.delete(new LambdaQueryWrapper<>()); this.baseMapper.delete(new LambdaQueryWrapper<>());
// 使用登记表中已经审批通过的单子 // 使用登记表中已经审批通过的单子
List<JgUseRegistration> jgUseRegistrations = jgUseRegistrationMapper.selectList(new LambdaQueryWrapper<JgUseRegistration>() List<JgUseRegistration> jgUseRegistrations = jgUseRegistrationMapper.selectList(new LambdaQueryWrapper<JgUseRegistration>()
.eq(JgUseRegistration::getStatus, "已完成")); .eq(JgUseRegistration::getStatus, "已完成"));
for (JgUseRegistration useRegistration : jgUseRegistrations) { for (JgUseRegistration useRegistration : jgUseRegistrations) {
// 设备使用地址
String fullAddress = "";
// 设备种类/类别/品种 // 设备种类/类别/品种
Map<String, String> equType = jgUseRegistrationMapper.getEquTypeByUseRegSeq(String.valueOf(useRegistration.getSequenceNbr())); 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 jgUseRegistrationManage = new JgUseRegistrationManage();
jgUseRegistrationManage.setUseUnitName(useRegistration.getUseUnitName()); jgUseRegistrationManage.setUseUnitName(useRegistration.getUseUnitName());
jgUseRegistrationManage.setApplyNo(useRegistration.getApplyNo()); jgUseRegistrationManage.setApplyNo(useRegistration.getApplyNo());
jgUseRegistrationManage.setCertificateStatus("登记"); jgUseRegistrationManage.setCertificateStatus("登记");
jgUseRegistrationManage.setReceiveOrgName(useRegistration.getReceiveOrgName()); jgUseRegistrationManage.setReceiveOrgName(useRegistration.getReceiveOrgName());
jgUseRegistrationManage.setAuditPassDate(useRegistration.getAuditPassDate()); jgUseRegistrationManage.setAuditPassDate(useRegistration.getAuditPassDate());
jgUseRegistrationManage.setRegType(BusinessTypeEnum.JG_USAGE_REGISTRATION.getName()); jgUseRegistrationManage.setRegType(BusinessTypeEnum.JG_USAGE_REGISTRATION.getName());
jgUseRegistrationManage.setRegDate(useRegistration.getRegDate()); jgUseRegistrationManage.setRegDate(useRegistration.getRegDate());
jgUseRegistrationManage.setEquList(equType.get("equList")); jgUseRegistrationManage.setEquList(equType.get("equList"));
jgUseRegistrationManage.setEquListCode(equType.get("equListCode"));
jgUseRegistrationManage.setEquCategory(equType.get("equCategory")); jgUseRegistrationManage.setEquCategory(equType.get("equCategory"));
jgUseRegistrationManage.setEquCategoryCode(equType.get("equCategoryCode"));
jgUseRegistrationManage.setEquDefine(equType.get("equDefine")); jgUseRegistrationManage.setEquDefine(equType.get("equDefine"));
jgUseRegistrationManage.setEquDefineCode(equType.get("equDefineCode"));
jgUseRegistrationManage.setIsDelete(Boolean.FALSE); jgUseRegistrationManage.setIsDelete(Boolean.FALSE);
jgUseRegistrationManage.setRecUserId(useRegistration.getRecUserId()); jgUseRegistrationManage.setRecUserId(useRegistration.getRecUserId());
jgUseRegistrationManage.setRecUserName(useRegistration.getRecUserName()); jgUseRegistrationManage.setRecUserName(useRegistration.getRecUserName());
jgUseRegistrationManage.setRecDate(useRegistration.getRecDate()); jgUseRegistrationManage.setRecDate(useRegistration.getRecDate());
jgUseRegistrationManage.setCreateUserId(useRegistration.getCreateUserId()); jgUseRegistrationManage.setCreateUserId(useRegistration.getCreateUserId());
jgUseRegistrationManage.setCreateDate(useRegistration.getCreateDate()); jgUseRegistrationManage.setCreateDate(useRegistration.getRecDate());
jgUseRegistrationManage.setEquUseAddress(fullAddress);
jgUseRegistrationManage.setUseRegistrationCode(useRegistration.getUseRegistrationCode()); jgUseRegistrationManage.setUseRegistrationCode(useRegistration.getUseRegistrationCode());
jgUseRegistrationManage.setUseUnitCreditCode(useRegistration.getUseUnitCreditCode()); jgUseRegistrationManage.setUseUnitCreditCode(useRegistration.getUseUnitCreditCode());
jgUseRegistrationManage.setReceiveCompanyCode(useRegistration.getReceiveCompanyCode()); jgUseRegistrationManage.setReceiveCompanyCode(useRegistration.getReceiveCompanyCode());
jgUseRegistrationManage.setCertificateNo(commonServiceImpl.generateCertificateNo(equType,useRegistration.getAuditPassDate(),useRegistration.getReceiveCompanyCode())); jgUseRegistrationManage.setCertificateNo(commonServiceImpl.generateCertificateNo(equType,useRegistration.getAuditPassDate(),useRegistration.getReceiveCompanyCode()));
// jgUseRegistrationManage.setUseRegistrationCertificateParam(this.buildUseRegistrationCertificateParam(useRegistration));
// jgUseRegistrationManage.setUseFlagCertificateParam(this.buildUseFlagCertificateParam());
this.baseMapper.insert(jgUseRegistrationManage); 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; 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 ...@@ -286,33 +198,38 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
public List<JgUseRegistrationManageDto> queryByUseUnitCreditCode(JgUseRegistrationManageDto dto) { public List<JgUseRegistrationManageDto> queryByUseUnitCreditCode(JgUseRegistrationManageDto dto) {
return jgUseRegistrationManageMapper.queryByUseUnitCreditCode(dto); return jgUseRegistrationManageMapper.queryByUseUnitCreditCode(dto);
} }
/**
* 根据证的sequenceNbr,查询证下面的所有设备
*/
public List<JSONObject> queryEquByCertificateSeq(Long sequenceNbr) { public List<JSONObject> queryEquByCertificateSeq(Long sequenceNbr) {
return queryEquByCertificateSeqList(Collections.singletonList(sequenceNbr)); return queryEquByCertificateSeqList(Collections.singletonList(sequenceNbr));
} }
/** /**
* 根据证的sequenceNbr集合,批量查询证下面的所有设备 * 根据证的sequenceNbr集合,批量查询证下面的所有设备
*/ */
public List<JSONObject> queryEquByCertificateSeqList(List<Long> sequenceNbrList) { 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) .in(JgUseRegistrationManage::getSequenceNbr, sequenceNbrList)
.eq(JgUseRegistrationManage::getIsDelete, 0)); .eq(JgUseRegistrationManage::getIsDelete, 0));
if (ValidationUtil.isEmpty(jgUseRegistrationManage) || ValidationUtil.isEmpty(jgUseRegistrationManage.getApplyNo())){ if (ValidationUtil.isEmpty(jgUseRegistrationManageList)){
return new ArrayList<>(); return new ArrayList<>();
} }
JgUseRegistration useRegistration = jgUseRegistrationMapper.selectOne(new LambdaQueryWrapper<JgUseRegistration>() List<JSONObject> result = new ArrayList<>();
.eq(JgUseRegistration::getApplyNo, jgUseRegistrationManage.getApplyNo())); Set<String> useOrgCodes = jgUseRegistrationManageList.stream().map(JgUseRegistrationManage::getUseRegistrationCode).collect(Collectors.toSet());
// es中通过查询【使用登记证编号】所有设备 // es中通过查询【使用登记证编号】所有设备
SearchRequest request = new SearchRequest(); SearchRequest request = new SearchRequest("idx_biz_view_jg_all");
request.indices("idx_biz_view_jg_all");
SearchSourceBuilder builder = new SearchSourceBuilder(); SearchSourceBuilder builder = new SearchSourceBuilder();
builder.trackTotalHits(true); builder.trackTotalHits(true);
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
builder.query(boolMust); BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
BoolQueryBuilder pBuilder = QueryBuilders.boolQuery(); TermsQueryBuilder termsQuery = QueryBuilders.termsQuery("USE_ORG_CODE", useOrgCodes);
pBuilder.must(QueryBuilders.termQuery("USE_ORG_CODE", useRegistration.getUseRegistrationCode())); boolQuery.must(termsQuery);
boolMust.must(pBuilder); builder.query(boolQuery);
request.source(builder); request.source(builder);
List<JSONObject> result = new ArrayList<>();
try { try {
SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT); SearchResponse response = restHighLevelClient.search(request, RequestOptions.DEFAULT);
for (SearchHit hit : response.getHits().getHits()) { for (SearchHit hit : response.getHits().getHits()) {
......
...@@ -14,7 +14,8 @@ public enum InspectionCompanyType { ...@@ -14,7 +14,8 @@ public enum InspectionCompanyType {
* 检验单位分类 * 检验单位分类
*/ */
LEGAL("legal","法定"), LEGAL("legal","法定"),
THIRD("third","第3方"); THIRD("third","第3方"),
ALL("all","全部机构");
private String code; private String code;
private String name; private String name;
......
...@@ -2,10 +2,12 @@ package com.yeejoin.amos.boot.module.jyjc.biz.action; ...@@ -2,10 +2,12 @@ package com.yeejoin.amos.boot.module.jyjc.biz.action;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; 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.InspectionCompanyType;
import com.yeejoin.amos.boot.module.jyjc.api.enums.LicenceTypeEnum; 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.api.enums.OpenBizTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.biz.rule.InspectionEquipInfo; 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.jyjc.biz.service.impl.RuleCommonServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto; import com.yeejoin.amos.boot.module.ymt.api.dto.TzBaseEnterpriseInfoDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseUnitLicence; import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseUnitLicence;
...@@ -40,6 +42,7 @@ public class RuleActionHandler { ...@@ -40,6 +42,7 @@ public class RuleActionHandler {
private final RedissonClient redissonClient; private final RedissonClient redissonClient;
private RedisUtils redisUtils; private RedisUtils redisUtils;
private RuleCommonServiceImpl ruleCommonService; private RuleCommonServiceImpl ruleCommonService;
private JyjcInspectionApplicationNoAcceptLogServiceImpl noAcceptLogService;
/** /**
* 省特检院等特殊公司code * 省特检院等特殊公司code
...@@ -79,18 +82,18 @@ public class RuleActionHandler { ...@@ -79,18 +82,18 @@ public class RuleActionHandler {
try { try {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS); boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
if (!isLocked) { if (!isLocked) {
log.warn("规则回填重复丢弃:请求变量参数:{},核对项目编码:{},是否进行属地过滤:{},默认的检验机构code:{}, 法定的检验机构code:{}, 法定的检验机构code: {},是否需要匹配核准代码:{}", bizObj, itemCode, isMatchArea, defaultInspectionCode, legalInspectionCodes, inspectionCompanyType, isMatchItem); log.warn("规则回掉重复,消息将丢弃");
return; return;
} }
if (redisUtils.hasKey(this.buildRedisDataKey("filterInspectionOrgAction", inspectionEquipInfo.getUuid()))) { if (redisUtils.hasKey(this.buildRedisDataKey("filterInspectionOrgAction", inspectionEquipInfo.getUuid()))) {
log.warn("规则回填重复丢弃:请求变量参数:{},核对项目编码:{},是否进行属地过滤:{},默认的检验机构code:{}, 法定的检验机构code:{}, 法定的检验机构code: {},是否需要匹配核准代码:{}", bizObj, itemCode, isMatchArea, defaultInspectionCode, legalInspectionCodes, inspectionCompanyType, isMatchItem); log.warn("规则回掉重复,消息将丢弃");
return; return;
} }
redisUtils.set(this.buildRedisDataKey("filterInspectionOrgAction", inspectionEquipInfo.getUuid()), inspectionEquipInfo.getUuid(), 3600); redisUtils.set(this.buildRedisDataKey("filterInspectionOrgAction", inspectionEquipInfo.getUuid()), inspectionEquipInfo.getUuid(), 3600);
// 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, isMustAccept); List<TzBaseEnterpriseInfoDto> tzBaseEnterpriseInfoList = getInspectionUnitListForLegal(unitLicenceList, isMatchArea, inspectionEquipInfo, OpenBizTypeEnum.JY.getCode(), defaultInspectionCode, legalInspectionCodes, isMustAccept);
ruleCommonService.publishMqttMessage(inspectionEquipInfo.getComponentKey(), tzBaseEnterpriseInfoList); ruleCommonService.publishMqttMessage(inspectionEquipInfo.getComponentKey(), tzBaseEnterpriseInfoList);
} catch (MqttException | InterruptedException e) { } catch (MqttException | InterruptedException e) {
log.error("首次提交的检验机构匹配动作执行失败: {}", e.getMessage()); log.error("首次提交的检验机构匹配动作执行失败: {}", e.getMessage());
...@@ -152,6 +155,43 @@ public class RuleActionHandler { ...@@ -152,6 +155,43 @@ public class RuleActionHandler {
return tzBaseUnitLicences; 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) { 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() : "";
...@@ -189,7 +229,22 @@ public class RuleActionHandler { ...@@ -189,7 +229,22 @@ public class RuleActionHandler {
return matchEnterpriseInfos; 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() : ""; String areaCode = isMatchArea ? inspectionEquipInfo.getAreaCode() : "";
// 所有符合单位的code // 所有符合单位的code
...@@ -215,10 +270,93 @@ public class RuleActionHandler { ...@@ -215,10 +270,93 @@ public class RuleActionHandler {
return matchEnterpriseInfos; 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) { private void setIsCanNoAccept(List<TzBaseEnterpriseInfoDto> matchEnterpriseInfos, Boolean isCanNoAccept) {
matchEnterpriseInfos.forEach(m -> m.setUseCodeAndName(m.getUseCode() + "_" + 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 ...@@ -137,6 +137,7 @@ public class EnableRuleDataPreparationListener implements ApplicationListener<In
inspectionEquipInfo.setLastNoAcceptInspectionCode(this.buildLastNoAcceptInspectionCode(jyjcInspectionApplicationNoAcceptLog)); inspectionEquipInfo.setLastNoAcceptInspectionCode(this.buildLastNoAcceptInspectionCode(jyjcInspectionApplicationNoAcceptLog));
// 是否球罐 0 1 转 boolean // 是否球罐 0 1 转 boolean
inspectionEquipInfo.setIsBallValve(!"0".equals(registrationInfo.getWhetherSphericalTank())); inspectionEquipInfo.setIsBallValve(!"0".equals(registrationInfo.getWhetherSphericalTank()));
inspectionEquipInfo.setAppSeq(equipInfoModel.getAppSeq());
// 触发规则 // 触发规则
publisher.publish(new TouchRuleEvent(this, inspectionEquipInfo)); publisher.publish(new TouchRuleEvent(this, inspectionEquipInfo));
} }
......
...@@ -60,4 +60,7 @@ public class InspectionEquipInfo implements Serializable { ...@@ -60,4 +60,7 @@ public class InspectionEquipInfo implements Serializable {
@ApiModelProperty(value = "是否是球阀,压力容器定向规则使用") @ApiModelProperty(value = "是否是球阀,压力容器定向规则使用")
private Boolean isBallValve = false; 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