Commit 07e45265 authored by hezhuozhi's avatar hezhuozhi

Merge remote-tracking branch 'origin/develop_tzs_register_test' into develop_tzs_register_test

parents 76313e16 45fd03ef
......@@ -26,16 +26,18 @@ spring.redis.lettuce.pool.max-wait=-1
spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0
localhost=${spring.cloud.client.ip-address}
#注册中心地址
eureka.client.service-url.defaultZone =http://172.16.10.243:10001/eureka/
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url=http://172.16.3.89:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.health-check-url=http://${localhost}:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator
eureka.instance.status-page-url=http://172.16.3.89:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs=http://172.16.3.89:${server.port}${server.servlet.context-path}/swagger-ui.html
eureka.instance.ip-address=172.16.3.89
eureka.instance.status-page-url=http://${localhost}:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs=http://${localhost}:${server.port}${server.servlet.context-path}/swagger-ui.html
eureka.instance.ip-address=${localhost}
eureka.instance.instance-id=${eureka.instance.ip-address}:${server.port}
##emqx
......
package com.yeejoin.amos.boot.module.jg.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
......@@ -167,4 +168,13 @@ public class JgChangeRegistrationReformDto extends BaseDto {
@ApiModelProperty(value = "作废人员id")
private String cancelUserId;
@ApiModelProperty(value = "工程装置id")
private String projectContraptionId;
@TableField("project_contraption")
@ApiModelProperty(value = "工程装置名称")
private String projectContraption;
}
......@@ -128,6 +128,9 @@ public class JgChangeRegistrationUnitDto extends BaseDto {
@ApiModelProperty(value = "使用登记证列表")
private List<Map<String, Object>> registrationList;
@ApiModelProperty(value = "装置列表")
private List<Map<String, Object>> projectContraptionList;
@ApiModelProperty(value = "设备类别")
private String equType;
......
package com.yeejoin.amos.boot.module.jg.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
......@@ -154,4 +155,7 @@ public class JgEquipTransferDto extends BaseDto {
@ApiModelProperty(value = "工作流下一节点任务id")
private String nextTaskId;
@ApiModelProperty(value = "工程装置表seq--压力管道用")
private String projectContraptionSeq;
}
package com.yeejoin.amos.boot.module.jg.api.dto;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
......@@ -171,11 +172,18 @@ public class JgReformNoticeDto extends BaseDto {
@ApiModelProperty(value = "工程装置名称")
private String projectContraption;
@ApiModelProperty(value = "工程装置id")
private String projectContraptionId;
/* ---------------- -------------- */
@ApiModelProperty (value = "告知设备列表")
private List<Map<String, Object>> deviceList;
@ApiModelProperty(value = "删除的管道列表")
private List<Map<String, Object>> delPipelineList;
@ApiModelProperty (value = "区名字")
private String countyName;
......@@ -278,4 +286,7 @@ public class JgReformNoticeDto extends BaseDto {
@ApiModelProperty("作废人员id")
private String cancelUserId;
@ApiModelProperty("管道改造的长度变化值(正值为增加,负值为减少)-压力管道用")
private String pipeLengthChanged;
}
......@@ -286,4 +286,18 @@ public class JgChangeRegistrationReform extends BaseEntity {
*/
@TableField("cancel_user_name")
private String cancelUserName;
/**
* 工程装置id
*/
@TableField("project_contraption_id")
private String projectContraptionId;
/**
* 工程装置名称
*/
@TableField("project_contraption")
private String projectContraption;
}
......@@ -70,4 +70,9 @@ public class JgChangeRegistrationUnitEq extends BaseEntity {
@TableField("create_user_name")
private String createUserName;
/**
* 装置Id
*/
@TableField("project_contraption_id")
private String projectContraptionId;
}
......@@ -228,4 +228,10 @@ public class JgEquipTransfer extends BaseEntity {
*/
@TableField(value = "equ_list_code")
private String equListCode;
/**
* 工程装置表seq--压力管道用
*/
@TableField(value = "project_contraption_seq")
private String projectContraptionSeq;
}
......@@ -184,6 +184,12 @@ public class JgReformNotice extends BaseEntity {
private String projectContraption;
/**
* 工程装置id
*/
@TableField("project_contraption_id")
private String projectContraptionId;
/**
* 施工负责人手机
*/
@TableField("construction_manager_phone")
......@@ -407,4 +413,10 @@ public class JgReformNotice extends BaseEntity {
*/
@TableField("cancel_user_id")
private String cancelUserId;
/**
* 管道改造的长度变化值(正值为增加,负值为减少)-压力管道用
*/
@TableField("pipe_length_changed")
private String pipeLengthChanged;
}
package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgChangeRegistrationReformDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgChangeRegistrationReform;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.api.vo.tableDataExportVo.ChangeRegistrationReformVo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* 改造变更登记 Mapper 接口
......@@ -41,7 +44,22 @@ public interface JgChangeRegistrationReformMapper extends BaseMapper<JgChangeReg
@Select("select name from tz_equipment_category where code=#{code}")
String getEquiplistNameByEquiplist(String code);
List<Map<String, Object>> getDetailById(@Param("id") Long id);
/**
*
* @param id 主键
* @param equListCode 设备种类
* @return 压力管道或者其他详情
*/
List<Map<String, Object>> getDetailById(@Param("id") Long id, @Param("equListCode") String equListCode);
List<CompanyEquipCountDto> queryForFlowingEquipList();
IPage<IdxBizJgProjectContraption> queryJgProjectContraptionPage(Page<IdxBizJgProjectContraption> page,@Param("companyCode") String useUnitCreditCode,@Param("proIds") Set<String> proIds);
/**
* 查询指定装置下的管道,样式为汇总表样式
* @param projectContraptionSeq 装置id
* @return List<Map<String, Object>>
*/
List<Map<String, Object>> selectPieLineListByProjectId(@Param("projectContraptionSeq") String projectContraptionSeq);
}
......@@ -6,8 +6,9 @@ import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationManage;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.api.vo.tableDataExportVo.CertificateVo;
import org.apache.ibatis.annotations.MapKey;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
......@@ -37,4 +38,10 @@ public interface JgUseRegistrationManageMapper extends BaseMapper<JgUseRegistrat
List<Map<String, String>> initUseRegistrationCodeIntoRedis(@Param("year") String year);
List<Map<String, String>> initVehicleUseRegCodeIntoRedis(@Param("year") String year);
Page<IdxBizJgProjectContraption> queryForUnitByProjectContraptionPage(@Param("page") Page<IdxBizJgProjectContraption> page,
@Param("dto") Map<String, String> params,
@Param("sort") SortVo sortMap);
JgUseRegistrationManage getLatestJgUseRegistrationManage(@Param("useUnitCreditCode")String useUnitCreditCode, @Param("equDefineCode")String equDefineCode);
}
......@@ -33,7 +33,7 @@ public interface IJgReformNoticeService extends IService<JgReformNotice> {
* @param noticeDto 改造告知
* @param op 操作类型
*/
JgReformNoticeDto updateInstallationNotice(String submitType, JgReformNoticeDto noticeDto, String op);
JgReformNoticeDto updateNotice(String submitType, Map<String, Object> noticeMap, String op);
/**
* 分页查询
......
......@@ -20,8 +20,7 @@
jri.PRODUCT_NAME as productName,
jri.EQU_CODE as equCode,
use.USE_INNER_CODE as innerCode,
concat(use.PROVINCE_NAME,use.CITY_NAME,use.COUNTY_NAME,use.STREET_NAME) as place,
use."ADDRESS" as detailedAddress,
concat_ws('', use.PROVINCE_NAME,use.CITY_NAME,use.COUNTY_NAME,use.STREET_NAME, use."ADDRESS") as place,
ifnull(ur.instance_id, '') as instanceId,
re.equ_id as equipId,
ur.apply_no as applyNo,
......@@ -34,72 +33,113 @@
oi.CODE96333 as code96333,
ur.cancel_reason as cancelReason,
(SELECT name from tz_equipment_category ec WHERE ec.code = jri.EQU_LIST) AS equList,
(select name from tz_equipment_category ec WHERE ec.code = jri.EQU_DEFINE) AS equDefine
(select name from tz_equipment_category ec WHERE ec.code = jri.EQU_DEFINE) AS equDefine,
ur.receive_company_code,
jri.EQU_LIST,
jri.EQU_CATEGORY,
jri.EQU_DEFINE,
ur.transfer_to_user_ids,
ur.use_unit_credit_code
from tzs_jg_change_registration_reform ur
LEFT JOIN tzs_jg_change_registration_reform_eq re on ur.sequence_nbr = re.equip_transfer_id
LEFT JOIN idx_biz_jg_register_info jri on jri.RECORD = re.equ_id
LEFT JOIN idx_biz_jg_use_info use on use.RECORD = re.equ_id
LEFT JOIN idx_biz_jg_other_info oi ON oi.RECORD = re.equ_id
where
jri."EQU_LIST" != '8000'
and ur.is_delete = 0
union all
select ur.sequence_nbr as sequenceNbr,
ur.audit_status as auditStatus,
ur.use_unit_name as useUnitName,
ur.use_registration_code as useRegistrationCode,
ur.status,
ur.receive_org_name as receiveOrgName,
DATE_FORMAT(ur.reg_date,'%Y-%m-%d') as regDate,
DATE_FORMAT(ur.audit_pass_date,'%Y-%m-%d') as auditPassDate,
DATE_FORMAT(ur.create_date,'%Y-%m-%d') as createDate,
pc.equ_category_name as equCategory,
pc.project_contraption as productName,
pc.equ_code as equCode,
'' as innerCode,
concat_ws('',pc.PROVINCE_NAME,pc.CITY_NAME,pc.COUNTY_NAME,pc.STREET_NAME, pc."ADDRESS") as place,
ifnull(ur.instance_id, '') as instanceId,
'' as equipId,
ur.apply_no as applyNo,
ifnull(ur.next_executor_ids,'') as nextExecutorIds,
ur.promoter,
ur.supervisory_code as supervisoryCode,
ur.next_execute_user_ids as nextExecuteUserIds,
ur.next_task_id as nextTaskId,
ur.create_user_id as createUserId,
'' as code96333,
ur.cancel_reason as cancelReason,
pc.equ_list_name AS equList,
pc.equ_define_name AS equDefine,
ur.receive_company_code,
pc.EQU_LIST,
pc.EQU_CATEGORY,
pc.EQU_DEFINE,
ur.transfer_to_user_ids,
ur.use_unit_credit_code
from tzs_jg_change_registration_reform ur,
idx_biz_jg_project_contraption pc
where
ur.project_contraption_id = pc.sequence_nbr
and ur.is_delete = 0
</sql>
<select id="getListPage" resultType="java.util.Map">
<include refid="page_list"/>
select * from
(
<include refid="page_list"/>
) as ur
<where>
and ur.is_delete = 0
<if test="dto.auditStatus != null and dto.auditStatus != ''">
and ur.audit_status = #{dto.auditStatus}
and ur.auditStatus = #{dto.auditStatus}
</if>
<if test="dto.supervisoryCode != null and dto.supervisoryCode != ''">
and ur.supervisory_code like concat('%',#{dto.supervisoryCode},'%')
and ur.supervisoryCode like concat('%',#{dto.supervisoryCode},'%')
</if>
<if test="dto.applyNo != null and dto.applyNo != ''">
and ur.apply_no like concat('%',#{dto.applyNo},'%')
and ur.applyNo like concat('%',#{dto.applyNo},'%')
</if>
<if test="dto.useRegistrationCode != null and dto.useRegistrationCode != ''">
and ur.use_registration_code like concat('%',#{dto.useRegistrationCode},'%')
and ur.useRegistrationCode like concat('%',#{dto.useRegistrationCode},'%')
</if>
<if test="dto.receiveCompanyCode != null and dto.receiveCompanyCode != ''">
and ur.receive_company_code = #{dto.receiveCompanyCode}
</if>
<if test="dto.useUnitName != null and dto.useUnitName != ''">
and ur.use_unit_name like concat('%',#{dto.useUnitName},'%')
and ur.useUnitName like concat('%',#{dto.useUnitName},'%')
</if>
<if test="dto.applicationDate != null and dto.applicationDate != ''">
and ur.reg_date like concat('%',DATE_FORMAT(#{dto.applicationDate},'%Y-%m-%d'),'%')
and ur.regDate like concat('%',DATE_FORMAT(#{dto.applicationDate},'%Y-%m-%d'),'%')
</if>
<if test="dto.equList != null and dto.equList != ''">
AND jri."EQU_LIST" = #{dto.equList}
AND ur."EQU_LIST" = #{dto.equList}
</if>
<if test="dto.equCategory != null and dto.equCategory != ''">
AND jri."equ_category" = #{dto.equCategory}
AND ur."equ_category" = #{dto.equCategory}
</if>
<if test="dto.equDefine != null and dto.equDefine != ''">
AND jri."EQU_DEFINE" = #{dto.equDefine}
</if>
<if test="dto.equCode != null and dto.equCode != ''">
AND jri."EQU_CODE" like concat('%',#{dto.equCode},'%')
AND ur."EQU_CODE" like concat('%',#{dto.equCode},'%')
</if>
<if test="dto.code96333 != null and dto.code96333 != ''">
AND oi.CODE96333 like concat('%',#{dto.code96333},'%')
AND ur.CODE96333 like concat('%',#{dto.code96333},'%')
</if>
<if test="dto.createDate != null">
AND ur.create_date LIKE concat(DATE_FORMAT(#{dto.createDate},'%Y-%m-%d'),'%')
AND ur.createDate LIKE concat(DATE_FORMAT(#{dto.createDate},'%Y-%m-%d'),'%')
</if>
<if test="dto.equAddress != null and dto.equAddress != ''">
AND (
use."PROVINCE_NAME" LIKE CONCAT('%', #{dto.equAddress}, '%')
OR use."CITY_NAME" LIKE CONCAT('%', #{dto.equAddress}, '%')
OR use."COUNTY_NAME" LIKE CONCAT('%', #{dto.equAddress}, '%')
OR use."STREET_NAME" LIKE CONCAT('%', #{dto.equAddress}, '%')
)
</if>
<if test="roleIds != null and dto.dataType == 'supervision'">
<foreach collection='roleIds' item='role' open='and (' close=')' separator='or'>
instance_status like concat('%',#{role},'%')
</foreach>
AND ur."place" LIKE CONCAT('%', #{dto.equAddress}, '%')
</if>
<if test="dto.dataType != null and dto.dataType == 'supervision' ">
and (ur.receive_org_code = #{dto.receiveOrgCode} or (ur.transfer_to_user_ids like concat('%',#{currentUserId},'%')))
and (ur.receive_company_code = #{dto.receiveOrgCode} or (ur.transfer_to_user_ids like concat('%',#{currentUserId},'%')))
AND ur.instance_id <![CDATA[<>]]> ''
</if>
<if test="dto.dataType != null and dto.dataType == 'company' ">
......@@ -110,7 +150,7 @@
<if test="sort != null">
ur.${sort.field} ${sort.sortType},
</if>
ur.create_date DESC, ur.apply_no DESC
ur.createDate DESC, ur.applyNo DESC
</select>
<select id="queryChangeRegistrationReformInIds" resultType="com.yeejoin.amos.boot.module.jg.api.vo.tableDataExportVo.ChangeRegistrationReformVo">
......@@ -201,31 +241,60 @@
<select id="getDetailById" resultType="java.util.Map">
select ur.sequence_nbr as sequenceNbr,
ur.audit_status as auditStatus,
ur.use_unit_name as useUnitName,
ur.use_registration_code as useRegistrationCode,
ur.status,
ur.receive_org_name as receiveOrgName,
DATE_FORMAT(ur.reg_date,'%Y-%m-%d') as regDate,
DATE_FORMAT(ur.audit_pass_date,'%Y-%m-%d') as auditPassDate,
(SELECT name from tz_equipment_category where code = jri.EQU_CATEGORY) as equCategory,
jri.PRODUCT_NAME as productName,
jri.EQU_CODE as equCode,
use.USE_INNER_CODE as innerCode,
concat(use.PROVINCE_NAME,use.CITY_NAME,use.COUNTY_NAME,use.STREET_NAME,use.ADDRESS) as place,
ifnull(ur.instance_id, '') as instanceId,
re.equ_id as equipId,
ur.apply_no as applyNo,
ifnull(ur.next_executor_ids,'') as nextExecutorIds,
ur.promoter,
ur.supervisory_code as supervisoryCode,
ur.next_execute_user_ids as nextExecuteUserIds
from tzs_jg_change_registration_reform ur
LEFT JOIN tzs_jg_change_registration_reform_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_use_info use on re.equ_id = use.RECORD
where ur.sequence_nbr = #{id}
<choose>
<when test='equListCode != null and equListCode == "8000"'>
select ur.sequence_nbr as sequenceNbr,
ur.audit_status as auditStatus,
ur.use_unit_name as useUnitName,
ur.use_registration_code as useRegistrationCode,
ur.status,
ur.receive_org_name as receiveOrgName,
DATE_FORMAT(ur.reg_date,'%Y-%m-%d') as regDate,
DATE_FORMAT(ur.audit_pass_date,'%Y-%m-%d') as auditPassDate,
pc.equ_category_name as equCategory,
pc.project_contraption as productName,
pc.equ_code as equCode,
concat_ws('',pc.PROVINCE_NAME,pc.CITY_NAME,pc.COUNTY_NAME,pc.STREET_NAME, pc."ADDRESS") as place,
ifnull(ur.instance_id, '') as instanceId,
ur.apply_no as applyNo,
ifnull(ur.next_executor_ids,'') as nextExecutorIds,
ur.promoter,
ur.supervisory_code as supervisoryCode,
ur.next_execute_user_ids as nextExecuteUserIds
from tzs_jg_change_registration_reform ur,
idx_biz_jg_project_contraption pc
where
ur.project_contraption_id = pc.sequence_nbr
and ur.sequence_nbr = #{id}
</when>
<otherwise>
select ur.sequence_nbr as sequenceNbr,
ur.audit_status as auditStatus,
ur.use_unit_name as useUnitName,
ur.use_registration_code as useRegistrationCode,
ur.status,
ur.receive_org_name as receiveOrgName,
DATE_FORMAT(ur.reg_date,'%Y-%m-%d') as regDate,
DATE_FORMAT(ur.audit_pass_date,'%Y-%m-%d') as auditPassDate,
(SELECT name from tz_equipment_category where code = jri.EQU_CATEGORY) as equCategory,
jri.PRODUCT_NAME as productName,
jri.EQU_CODE as equCode,
use.USE_INNER_CODE as innerCode,
concat(use.PROVINCE_NAME,use.CITY_NAME,use.COUNTY_NAME,use.STREET_NAME,use.ADDRESS) as place,
ifnull(ur.instance_id, '') as instanceId,
re.equ_id as equipId,
ur.apply_no as applyNo,
ifnull(ur.next_executor_ids,'') as nextExecutorIds,
ur.promoter,
ur.supervisory_code as supervisoryCode,
ur.next_execute_user_ids as nextExecuteUserIds
from tzs_jg_change_registration_reform ur
LEFT JOIN tzs_jg_change_registration_reform_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_use_info use on re.equ_id = use.RECORD
where ur.sequence_nbr = #{id}
</otherwise>
</choose>
</select>
<select id="queryForFlowingEquipList"
resultType="com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto">
......@@ -239,4 +308,87 @@
a.sequence_nbr = b.equip_transfer_id
and a.status not in('使用单位待提交','一级受理已驳回','使用单位已撤回','已作废','已完成')
</select>
<select id="queryJgProjectContraptionPage"
resultType="com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption">
select
*
from
(
select
pc.*,
(select count(distinct ibjui.record) from idx_biz_jg_use_info ibjui, idx_biz_jg_inspection_detection_info di where ibjui."RECORD" = di."RECORD" and ibjui.project_contraption_id=pc.sequence_nbr and di."INSPECT_TYPE" <![CDATA[<>]]> '') as inspectNum,
(select count(1) from idx_biz_jg_use_info ibjui where ibjui.project_contraption_id= pc.sequence_nbr) as totalNum
from
idx_biz_jg_project_contraption pc
where
1=1
and pc.use_registration_code <![CDATA[<>]]> ''
and pc.is_into_management = true
and pc.use_unit_credit_code=#{companyCode}
and (pc.project_contraption_parent_id is null or pc.project_contraption_parent_id = '')
and pc.equ_category = '8300'
<if test="proIds != null and proIds.size() > 0">
and pc.sequence_nbr not in
<foreach collection="proIds" item="projectContraptionId" open="(" close=")" separator=",">
#{projectContraptionId}
</foreach>
</if>
and EXISTS (SELECt 1 FROM tzs_jg_reform_notice a where a.notice_status='6616' and a.project_contraption_id = pc.sequence_nbr)
) s
</select>
<sql id="page-list-pipeline">
SELECT
ui."USE_UNIT_NAME" useUnitName,
ui."USE_UNIT_CREDIT_CODE" useUnitCreditCode,
ui."PROJECT_CONTRAPTION_ID" as projectContraptionId,
to_char(ui."USE_DATE", 'YYYY-MM') useDate,
(SELECT DESIGN_UNIT_NAME from idx_biz_jg_design_info where "RECORD" = ui."RECORD") designUnitName,
(SELECT USC_UNIT_NAME from idx_biz_jg_construction_info where "RECORD" = ui."RECORD" ORDER BY USC_DATE DESC limit 1) uscUnitName,
to_char((SELECT USC_DATE from idx_biz_jg_construction_info where "RECORD" = ui."RECORD" ORDER BY USC_DATE DESC limit 1), 'YYYY-MM') uscDate,
ui."RECORD" record,
ui.IS_INTO_MANAGEMENT as isIntoManagement,
ri."EQU_CODE" equCode,
ri."EQU_LIST" equList,
(select name from tz_equipment_category where code = ri."EQU_LIST") equListName,
ri."EQU_CATEGORY" equCategory,
(select name from tz_equipment_category where code = ri."EQU_CATEGORY") equCategoryName,
ri."EQU_DEFINE" equDefine,
(select name from tz_equipment_category where code = ri."EQU_DEFINE") equDefineName,
-- 历史遗留问题 故 as
pp."PIPE_NAME" as productName,
ri."BRAND_NAME" brandName,
ri."EQU_TYPE" equType,
ri."EQU_CODE_TYPE" equCodeType,
ri."WHETHER_VEHICLE_CYLINDER" whetherVehicleCylinder,
ri."USE_ORG_CODE" useOrgCode,
pp."DEVICE_NAME" deviceName,
(select name from cb_data_dictionary where code = pp."DEVICE_LEVEL" and type in ('GYGDHIS','8100','8200','8300')) deviceLevel,
pp."PIPE_NAME" pipeName,
pp."PIPELINE_NUMBER" pipelineNumber,
pp."NOMINAL_DIAMETER" nominalDiameter,
pp."WALL_THICKNESS" wallThickness,
pp."PIPE_LENGTH" pipeLength,
pp."PRESSURE" pressure,
pp."TEMPERATURE" temperature,
pp."MEDIUM" medium,
pp."REMARKS" remarks,
pp."WORK_PRESSURE" AS workPressure,
pp."WORK_TEMPERATURE" AS workTemperature,
pp."WORK_MEDIUM" AS workMedium,
(select INSPECT_ORG_NAME from idx_biz_jg_inspection_detection_info where "RECORD" = ui."RECORD" ORDER BY INSPECT_DATE DESC limit 1) inspectOrgName,
(select name from cb_data_dictionary where type = 'JYJL' and code = (select INSPECT_CONCLUSION from idx_biz_jg_inspection_detection_info where "RECORD" = ui."RECORD" ORDER BY INSPECT_DATE DESC limit 1)) inspectConclusion,
to_char((select NEXT_INSPECT_DATE from idx_biz_jg_inspection_detection_info where "RECORD" = ui."RECORD" ORDER BY INSPECT_DATE DESC limit 1), 'YYYY-MM-DD') nextInspectDate
FROM
idx_biz_jg_use_info ui
LEFT JOIN idx_biz_jg_register_info ri on ri."RECORD" = ui."RECORD"
LEFT JOIN idx_biz_jg_tech_params_pipeline pp ON pp."RECORD" = ui."RECORD"
</sql>
<select id="selectPieLineListByProjectId" resultType="java.util.Map">
select * from (
<include refid="page-list-pipeline"/>
WHERE
ui."PROJECT_CONTRAPTION_ID" = #{projectContraptionSeq}
ORDER BY ui.REC_DATE DESC
)
</select>
</mapper>
......@@ -61,9 +61,11 @@
(select name from tz_equipment_category tec1 where tec1.code = ri."EQU_LIST") AS equList,
(select name from tz_equipment_category tec2 where tec2.code = ri."EQU_CATEGORY") AS equCategory,
(select name from tz_equipment_category tec3 where tec3.code = ri."EQU_DEFINE") AS equDefine
FROM
tzs_jg_equip_transfer jet
LEFT JOIN tzs_jg_equip_transfer_eq ete ON ete.equip_transfer_id = jet.sequence_nbr
FROM tzs_jg_equip_transfer jet
LEFT JOIN (SELECT *,
ROW_NUMBER() OVER (PARTITION BY equip_transfer_id ORDER BY equip_transfer_id) AS rn
FROM tzs_jg_equip_transfer_eq) ete
ON ete.equip_transfer_id = jet.sequence_nbr AND ete.rn = 1
LEFT JOIN idx_biz_jg_register_info ri ON ri.record = ete.equ_id
LEFT JOIN idx_biz_jg_design_info di ON di.record = ete.equ_id
LEFT JOIN idx_biz_jg_factory_info fi ON fi.record = ete.equ_id
......@@ -184,6 +186,7 @@
jet.instance_status AS instanceStatus,
jet.accept_date AS acceptDate,
jet.task_name AS taskName,
jet.project_contraption_seq AS projectContraptionSeq,
ri.product_name AS productName,
ri.brand_name AS brandName,
ri.equ_type AS equType,
......@@ -221,9 +224,11 @@
(select name from tz_equipment_category tec WHERE ri."EQU_CATEGORY"::text = tec.code::text) AS equDefine,
(select SUPERVISORY_CODE from idx_biz_jg_other_info oi WHERE ri.RECORD = oi.RECORD) AS supervisoryCode,
ete.equ_id AS equId
FROM
tzs_jg_equip_transfer jet
LEFT JOIN tzs_jg_equip_transfer_eq ete ON ete.equip_transfer_id = jet.sequence_nbr
FROM tzs_jg_equip_transfer jet
LEFT JOIN (SELECT *,
ROW_NUMBER() OVER (PARTITION BY equip_transfer_id ORDER BY equip_transfer_id) AS rn
FROM tzs_jg_equip_transfer_eq) ete
ON ete.equip_transfer_id = jet.sequence_nbr AND ete.rn = 1
LEFT JOIN idx_biz_jg_register_info ri ON ri.record = ete.equ_id
LEFT JOIN idx_biz_jg_design_info di ON di.record = ete.equ_id
LEFT JOIN idx_biz_jg_factory_info fi ON fi.record = ete.equ_id
......
......@@ -28,6 +28,7 @@
isn.notice_report_url AS noticeReportUrl,
isn.create_user_id as createUserId,
isn.next_task_id AS nextTaskId,
isn.org_branch_name as orgBranchName,
isn.next_execute_user_ids as nextExecuteUserIds,
(SELECT name from tz_equipment_category where code = isn.equ_list_code) AS equListName,
(SELECT name from tz_equipment_category where code = isn.equ_category_code) AS equList,
......@@ -75,11 +76,11 @@
</if>
<if test="param.orgBranchCode != null and param.orgBranchCode != ''">
<choose>
<when test="client == 'jgAudit'">
AND isn.org_branch_code= #{param.orgBranchCode}
<when test="client == 'jgLook'">
AND isn.org_branch_code LIKE concat(#{param.orgBranchCode},'%')
</when>
<otherwise>
AND isn.org_branch_code LIKE concat(#{param.orgBranchCode},'%')
AND isn.org_branch_code= #{param.orgBranchCode}
</otherwise>
</choose>
</if>
......
......@@ -35,6 +35,7 @@
isn.inform_number AS informNumber,
isn.next_task_id as nextTaskId,
isn.cancel_reason as cancelReason,
isn.project_contraption_id as projectContraptionId,
DATE_FORMAT(isn.plan_date,'%Y-%m-%d') AS planDate,
DATE_FORMAT(isn.notice_date,'%Y-%m-%d') AS noticeDate,
DATE_FORMAT(isn.accept_date,'%Y-%m-%d') AS acceptDate,
......
......@@ -39,6 +39,9 @@
<select id="queryByUseUnitCreditCode" resultType="com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationManageDto">
<include refid="page_list"/>
from tzs_jg_use_registration_manage tjurm
<if test="dto.regType != null and dto.regType != '' ">
LEFT JOIN tzs_jg_use_registration ur on ur.use_registration_code = tjurm.use_registration_code
</if>
<where>
tjurm.is_delete = 0
<if test="dto.useUnitCreditCode != null and dto.useUnitCreditCode != ''">
......@@ -62,8 +65,8 @@
<if test="dto.isCyl != null and dto.isCyl == 1 ">
AND tjurm.reg_type != '车用气瓶登记'
</if>
<if test="dto.whetherVehicleCylinder != null and dto.whetherVehicleCylinder == 1 ">
AND tjurm.reg_type = '车用气瓶登记'
<if test="dto.regType != null and dto.regType != '' ">
AND ur.reg_type in (0,2)
</if>
ORDER BY tjurm.rec_date DESC
</where>
......@@ -254,4 +257,202 @@
HAVING code <![CDATA[ <> ]]> '00000'
ORDER BY prefix
</select>
<select id="queryForUnitByProjectContraptionPage"
resultType="com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption">
SELECT distinct
ibjpc.*
FROM
idx_biz_jg_project_contraption ibjpc
left join tzs_jg_use_registration_manage tjurm ON ibjpc.use_registration_code = tjurm.use_registration_code
WHERE
EXISTS (
SELECT
1
FROM
idx_biz_jg_use_info ibjui
INNER JOIN (
select DISTINCT record from (
select
equ_id as record
from
tzs_jg_use_registration a,
tzs_jg_use_registration_eq b
where
a.sequence_nbr = b.equip_transfer_id
and a.is_delete = 0
and (a.status <![CDATA[ <> ]]> '使用单位待提交' and a.status <![CDATA[ <> ]]> '一级受理已驳回' and a.status <![CDATA[ <> ]]> '使用单位已撤回' and a.status <![CDATA[ <> ]]> '已作废')
UNION
select
equ_id as record
from
tzs_jg_change_registration_reform a,
tzs_jg_change_registration_reform_eq b
where
a.sequence_nbr = b.equip_transfer_id
and (a.audit_status <![CDATA[ <> ]]> '使用单位待提交' and a.audit_status <![CDATA[ <> ]]> '一级受理已驳回' and a.audit_status <![CDATA[ <> ]]> '使用单位已撤回' and a.audit_status <![CDATA[ <> ]]> '已作废')
UNION
select
equ_id as record
from
tzs_jg_change_registration_transfer a,
tzs_jg_change_registration_transfer_eq b
where
a.sequence_nbr = b.equip_transfer_id
and (a.audit_status <![CDATA[ <> ]]> '使用单位待提交' and a.audit_status <![CDATA[ <> ]]> '一级受理已驳回' and a.audit_status <![CDATA[ <> ]]> '使用单位已撤回' and a.audit_status <![CDATA[ <> ]]> '已作废')
UNION
select
equ_id as record
from
tzs_jg_change_registration_unit a,
tzs_jg_change_registration_unit_eq b
where
a.sequence_nbr = b.unit_change_registration_id
and (a.status <![CDATA[ <> ]]> '使用单位待提交' and a.status <![CDATA[ <> ]]> '一级受理已驳回' and a.status <![CDATA[ <> ]]> '使用单位已撤回' and a.status <![CDATA[ <> ]]> '已作废')
UNION
select
equ_id as record
from
tzs_jg_enable_disable a,
tzs_jg_enable_disable_eq b
where
a.sequence_nbr = b.enable_disable_apply_id
and (a.audit_status <![CDATA[ <> ]]> '已驳回' and a.audit_status <![CDATA[ <> ]]> '已撤回' and a.audit_status <![CDATA[ <> ]]> '待提交' and a.audit_status <![CDATA[ <> ]]> '已作废')
UNION
select
equ_id as record
from
tzs_jg_installation_notice a,
tzs_jg_installation_notice_eq b
where
a.sequence_nbr = b.equip_transfer_id
and (a.notice_status <![CDATA[ <> ]]> '6614' and a.notice_status <![CDATA[ <> ]]> '6615' and a.notice_status <![CDATA[ <> ]]> '6610' and a.notice_status <![CDATA[ <> ]]> '6617')
UNION
select
equ_id as record
from
tzs_jg_maintain_notice a,
tzs_jg_maintain_notice_eq b
where
a.sequence_nbr = b.equip_transfer_id
and (a.notice_status <![CDATA[ <> ]]> '6614' and a.notice_status <![CDATA[ <> ]]> '6615' and a.notice_status <![CDATA[ <> ]]> '6610' and a.notice_status <![CDATA[ <> ]]> '6617')
UNION
select
equ_id as record
from
tzs_jg_maintenance_contract a,
tzs_jg_maintenance_contract_eq b
where
a.sequence_nbr = b.equip_transfer_id
and (a.status <![CDATA[ <> ]]> '已作废' and a.status <![CDATA[ <> ]]> '维保单位已驳回' and a.status <![CDATA[ <> ]]> '使用单位已撤回' and a.status <![CDATA[ <> ]]> '使用单位待提交')
UNION
select
equ_id as record
from
tzs_jg_reform_notice a,
tzs_jg_reform_notice_eq b
where
a.sequence_nbr = b.equip_transfer_id
and (a.notice_status <![CDATA[ <> ]]> '6614' and a.notice_status <![CDATA[ <> ]]> '6615' and a.notice_status <![CDATA[ <> ]]> '6610' and a.notice_status <![CDATA[ <> ]]> '6617')
UNION
select
equ_id as record
from
tzs_jg_scrap_cancel a,
tzs_jg_scrap_cancel_eq b
where
a.sequence_nbr = b.equip_transfer_id
and (a.audit_status <![CDATA[ <> ]]> '使用单位已撤回' and a.audit_status <![CDATA[ <> ]]> '一级受理已驳回' and a.audit_status <![CDATA[ <> ]]> '使用单位待提交' and a.audit_status <![CDATA[ <> ]]> '已作废')
UNION
select
equ_id as record
from
tzs_jg_transfer_notice a,
tzs_jg_transfer_notice_eq b
where
a.sequence_nbr = b.equip_transfer_id
and (a.notice_status <![CDATA[ <> ]]> '6614' and a.notice_status <![CDATA[ <> ]]> '6615' and a.notice_status <![CDATA[ <> ]]> '6610' and a.notice_status <![CDATA[ <> ]]> '6617')
UNION
select
equ_id as record
from
tzs_jg_vehicle_information a,
tzs_jg_vehicle_information_eq b
where
a.sequence_nbr = b.vehicle_id
and (a.status <![CDATA[ <> ]]> '使用单位待提交' and a.status <![CDATA[ <> ]]> '一级受理已驳回' and a.status <![CDATA[ <> ]]> '使用单位已撤回' and a.status <![CDATA[ <> ]]> '已作废')
UNION
select
equ_id as record
from
tzs_jg_change_vehicle_registration_unit a,
tzs_jg_change_vehicle_registration_unit_eq b
where
a.sequence_nbr = b.unit_change_id
and (a.status <![CDATA[ <> ]]> '使用单位待提交' and a.status <![CDATA[ <> ]]> '一级受理已驳回' and a.status <![CDATA[ <> ]]> '使用单位已撤回' and a.status <![CDATA[ <> ]]> '已作废')
) temp
) a ON ibjui.record = a.record
WHERE
ibjpc.sequence_nbr = ibjui.PROJECT_CONTRAPTION_ID
)
and ibjpc.use_unit_credit_code = #{dto.originalUseUnitCreditCode}
and ibjpc.is_delete = 0
and tjurm.is_delete = 0
and (ibjpc.project_contraption_parent_id is null or ibjpc.project_contraption_parent_id = '')
<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 like concat('%',#{dto.useRegistrationCode},'%')
</if>
<if test="dto.certificateStatus != null and dto.certificateStatus != ''">
and tjurm.certificate_status = #{dto.certificateStatus}
</if>
<if test="dto.projectContraption != null and dto.projectContraption != ''">
and ibjpc.project_contraption like concat('%',#{dto.projectContraption},'%')
</if>
<if test="dto.projectContraptionNo != null and dto.projectContraptionNo != ''">
and ibjpc.project_contraption_no like concat('%', #{dto.projectContraptionNo},'%')
</if>
ORDER BY
<if test="sort != null">
ibjpc.${sort.field} ${sort.sortType},
</if>
ibjpc.rec_date DESC
</select>
<select id="getLatestJgUseRegistrationManage"
resultType="com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationManage">
SELECT DISTINCT tjur.*
FROM
tzs_jg_use_registration_manage tjur
LEFT JOIN idx_biz_jg_register_info ri ON ri.USE_ORG_CODE=tjur.use_registration_code
LEFT JOIN idx_biz_jg_use_info ui on ui."RECORD" = ri."RECORD"
WHERE
ui.DATA_SOURCE like 'jg_his%'
and ui.DATA_SOURCE not like 'jg_his_black%'
and (ri.USE_ORG_CODE is not null or ri.USE_ORG_CODE != '')
and tjur.is_delete=0
and tjur.certificate_status='已登记'
and tjur.use_unit_credit_code=#{useUnitCreditCode}
and tjur.equ_define_code=#{equDefineCode}
ORDER BY tjur.certificate_no DESC
LIMIT 1
</select>
</mapper>
......@@ -267,13 +267,11 @@
</if>
<if test="dto.orgBranchCode != null and dto.orgBranchCode != ''">
<choose>
<when test="client == 'jgAudit'">
and supervisionOrgCode = #{dto.orgBranchCode}
<when test="client == 'jgLook'">
and supervisionOrgCode like concat(#{dto.orgBranchCode},'%')
</when>
<otherwise>
and supervisionOrgCode like concat(#{dto.orgBranchCode},'%')
and supervisionOrgCode = #{dto.orgBranchCode}
</otherwise>
</choose>
</if>
......@@ -348,6 +346,16 @@
<if test="dto.auditPassDateStart != null and dto.auditPassDateEnd != null">
AND auditPassDate BETWEEN #{dto.auditPassDateStart} AND #{dto.auditPassDateEnd}
</if>
<if test="dto.orgBranchCode != null and dto.orgBranchCode != ''">
<choose>
<when test="client == 'jgLook'">
and supervisionOrgCode like concat(#{dto.orgBranchCode},'%')
</when>
<otherwise>
and supervisionOrgCode = #{dto.orgBranchCode}
</otherwise>
</choose>
</if>
<if test="dto.dataType == 'supervision' ">
<choose>
<when test="client == 'jgAudit'">
......@@ -932,16 +940,24 @@
ri."EQU_CATEGORY" = '2300'
and ui."DATA_SOURCE" like 'jg%'
and (ri.whether_vehicle_cylinder is null or ri.whether_vehicle_cylinder != 1)
<if test="jsonObject.DATA_SOURCE != null and jsonObject.DATA_SOURCE != 'jg_his'">
and ui."DATA_SOURCE" like 'jg%'
and ui."DATA_SOURCE" not like 'jg_his%'
</if>
<if test="jsonObject.DATA_SOURCE != null and jsonObject.DATA_SOURCE == 'jg_his'">
and ui."DATA_SOURCE" like 'jg_his%'
</if>
<if test="jsonObject.DATA_SOURCE == null or jsonObject.DATA_SOURCE == ''">
and ui."DATA_SOURCE" like 'jg%'
</if>
<if test="jsonObject.DATA_SOURCE != null">
<choose>
<when test="jsonObject.DATA_SOURCE == 'jg_his_black'">
and ui."DATA_SOURCE" like 'jg_his_black%'
</when>
<when test="jsonObject.DATA_SOURCE == 'jg_his'">
and ui."DATA_SOURCE" like 'jg_his%'
and ui."DATA_SOURCE" not like 'jg_his_black%'
</when>
<otherwise>
and ui."DATA_SOURCE" like 'jg%'
and ui."DATA_SOURCE" not like 'jg_his%'
</otherwise>
</choose>
</if>
-- 保证使用单位选择设备时(record为null) 能选择到本单位的设备 并且 监管单位在查看时(record 不为null)可以匹配到所有的设备
<if test="jsonObject.useUnitCreditCode != null and jsonObject.useUnitCreditCode != '' and jsonObject.record == null">
and ui."USE_UNIT_CREDIT_CODE" = #{jsonObject.useUnitCreditCode}
......@@ -1234,7 +1250,7 @@
<foreach collection="projectContraptionSeqList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
AND ui.IS_INTO_MANAGEMENT = true
--AND ui.IS_INTO_MANAGEMENT = true
ORDER BY ui.REC_DATE DESC
)
</select>
......
......@@ -48,9 +48,10 @@
and tjvi.org_branch_code = #{dto.orgBranchCode}
</when>
<otherwise>
and tjvi.org_branch_code LIKE CONCAT(#{dto.orgBranchCode}, '%')
AND tjvi.org_branch_code LIKE CONCAT(#{dto.orgBranchCode}, '%')
</otherwise>
</choose> </if>
</choose>
</if>
</where>
order by
<if test="sort != null">
......@@ -101,7 +102,8 @@
date_format(tjvi.create_date,'%Y-%m-%d') as createDate,
tjvi.cancel_reason as cancelReason,
tjvi.reg_type as regType,
tjvi.org_branch_code as orgBranchCode
tjvi.org_branch_code as orgBranchCode,
tjvi.org_branch_name as orgBranchName
from tzs_jg_vehicle_information tjvi
</sql>
......
......@@ -13,6 +13,7 @@ import com.yeejoin.amos.boot.module.jg.api.dto.EquipmentClassifyDto;
import com.yeejoin.amos.boot.module.jg.api.dto.UseFlagParamDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationManage;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IJgInstallationNoticeService;
import com.yeejoin.amos.boot.module.jg.biz.service.ICommonService;
......@@ -446,6 +447,26 @@ public class CommonController extends BaseController {
/**
* 获取当前登录人单位及以下管辖分局树
*
* @return result
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getOrgTreeByCompanyLevel")
@ApiOperation(httpMethod = "GET", value = "按照当前登录人单位类型返回管辖机构树", notes = "按照当前登录人单位类型返回管辖机构树,")
public ResponseModel<Object> getOrgTreeByCompanyLevel() {
ReginParams reginParams = getSelectedOrgInfo();
String orgCode = reginParams.getCompany().getOrgCode();
if (reginParams.getCompany().getLevel().equals(BaseController.COMPANY_TYPE_COMPANY)) { // 公司类型人员返回全部树
return getCreatTree();
} else { // 监管机构返回当前登录人机构及一下(只考虑非审批机构使用)
return ResponseHelper.buildResponse(commonService.loginUnitAndBelowGetTree(orgCode));
}
}
/**
* 获取管辖分局树
*
* @return
......
......@@ -31,7 +31,8 @@ import java.util.Map;
@Api(tags = "管道工程装置表Api")
@RequestMapping(value = "/idx-biz-jg-project-contraption")
public class IdxBizJgProjectContraptionController extends BaseController {
// 设备基本信息表单id
private static final String EQUIP_INFO_FORM_ID = "equipInfo";
@Autowired
IdxBizJgProjectContraptionServiceImpl idxBizJgProjectContraptionServiceImpl;
......@@ -124,11 +125,28 @@ public class IdxBizJgProjectContraptionController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/details")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个管道工程装置表", notes = "根据sequenceNbr查询单个管道工程装置表")
public ResponseModel<Map<String, Map<String, Object>>> selectOne(@RequestParam("sequenceNbr") String sequenceNbr) {
public ResponseModel<Map<String, Map<String, Object>>> details(@RequestParam("sequenceNbr") String sequenceNbr) {
return ResponseHelper.buildResponse(idxBizJgProjectContraptionServiceImpl.details(sequenceNbr));
}
/**
* 根据sequenceNbr查询详情-不包裹设备表单Id
*
* @param sequenceNbr 主键
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/detailsNotFormId")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个管道工程装置表", notes = "根据sequenceNbr查询单个管道工程装置表")
// 传record的原因是前端组件内部写死了,此处是工程装置表seq
public ResponseModel<Object> detailsNotFormId(@RequestParam("record") String sequenceNbr) {
Map<String, Object> objectMap = idxBizJgProjectContraptionServiceImpl.details(sequenceNbr).get(EQUIP_INFO_FORM_ID);
Object pipelineListObj = objectMap.remove("pipelineList");
objectMap.put("deviceList", pipelineListObj);
return ResponseHelper.buildResponse(objectMap);
}
/**
* 根据sequenceNbr分页查询管道信息
*
* @param sequenceNbr
......
......@@ -166,7 +166,7 @@ public class IdxBizJqEquipmentRegisterController extends BaseController {
}
// 历史无证设备录入(有证-his,无证-black))
if ( "black".equals(dataSource) && "2000".equals(equList) && "SB_XZ".equals(type) && "0".equals(businessScenarios)) {
dictionarieValueModels = dictionarieValueModels.stream().filter(dictionarieValueModel -> !dictionarieValueModel.getDictDataValue().equals("移动式压力容器") && !dictionarieValueModel.getDictDataValue().equals("气瓶")).collect(Collectors.toList());
dictionarieValueModels = dictionarieValueModels.stream().filter(dictionarieValueModel -> !dictionarieValueModel.getDictDataValue().equals("移动式压力容器")).collect(Collectors.toList());
}
return ResponseHelper.buildResponse(dictionarieValueModels);
}
......
package com.yeejoin.amos.boot.module.jg.biz.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
......@@ -9,6 +10,7 @@ import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgChangeRegistrationReform;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgChangeRegistrationReformServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.feign.privilege.model.AgencyModel;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import io.swagger.annotations.Api;
......@@ -214,4 +216,31 @@ public class JgChangeRegistrationReformController extends BaseController {
JgChangeRegistrationReform result = jgChangeRegistrationReformServiceImpl.cancelApplication(registrationReformDto.getSequenceNbr(), registrationReformDto.getCancelReason(), user.getRealName());
return ResponseHelper.buildResponse(result);
}
/**
* 查询无使用登记证,不在流程中的,已纳管的,装置父ID为空的数据
* @param current 当前页
* @param size 每页数
* @return page
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/jgProjectContraptionPage")
@ApiOperation(value = "查询指定使用单位下的可用装置:做过使用登记且做过改造告知", notes = "查询指定使用单位下的可用装置: 做过使用登记且做过改造告知")
public ResponseModel<IPage<IdxBizJgProjectContraption>> getJgProjectContraptionPage(@RequestParam(required = false) String sequenceNbr,
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
Page<IdxBizJgProjectContraption> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
IPage<IdxBizJgProjectContraption> re = jgChangeRegistrationReformServiceImpl.getJgProjectContraptionPage(getSelectedOrgInfo().getCompany().getCompanyCode(), page, sequenceNbr);
return ResponseHelper.buildResponse(re);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "查询工程装置下的所有的管道", notes = "查询工程装置下的所有的管道")
@GetMapping(value = "/getDeviceListByProjectContraptionSeq")
public ResponseModel<Object> getDeviceListByProjectContraption(@RequestParam("record") String projectContraptionSeq) {
return ResponseHelper.buildResponse(jgChangeRegistrationReformServiceImpl.getDeviceListByProjectContraption(projectContraptionSeq));
}
}
......@@ -122,6 +122,20 @@ public class JgChangeRegistrationUnitController extends BaseController {
/**
* 根据sequenceNbr查询详情
*
* @param sequenceNbr 主键
* @return ResponseModel
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/projectContraption/details")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单个管道工程装置表", notes = "根据sequenceNbr查询单个管道工程装置表")
public ResponseModel<Map<String, Map<String, Object>>> detailsByProjectContraption(@RequestParam("sequenceNbr") String sequenceNbr,
@RequestParam("applyNo")String applyNo) {
return ResponseHelper.buildResponse(jgChangeRegistrationUnitServiceImpl.detailsByProjectContraption(sequenceNbr,applyNo));
}
/**
* 列表分页查询
*
* @param current 当前页
......
package com.yeejoin.amos.boot.module.jg.biz.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.jg.api.common.BaseException;
import com.yeejoin.amos.boot.module.jg.api.dto.JgEquipTransferDto;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgEquipTransferServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
......@@ -145,5 +147,26 @@ public class JgEquipTransferController extends BaseController {
}
return ResponseHelper.buildResponse(map);
}
/**
* 查询有使用登记证,不在流程中的,已纳管的,装置父ID为空的数据
*
* @param useUnitCreditCode 使用单位code
* @param current 当前页
* @param size 每页数
* @return page
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/finishSy/proCon")
@ApiOperation(value = "查询指定使用单位下的可用装置,已纳管且使用登记证编号为空或者null", notes = "不包括流程中的")
public ResponseModel<IPage<IdxBizJgProjectContraption>> getJgProjectContraptionPage(@RequestParam String useUnitCreditCode,
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
Page<IdxBizJgProjectContraption> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(jgEquipTransferServiceImpl.getJgProjectContraptionPage(useUnitCreditCode, page));
}
}
......@@ -65,13 +65,9 @@ public class JgReformNoticeController extends BaseController {
@PutMapping(value = "/update")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新改造告知", notes = "根据sequenceNbr更新改造告知")
public ResponseModel<JgReformNoticeDto> updateBySequenceNbrJgReformNotice(@RequestParam String submitType,
@RequestBody JgReformNoticeDto installationInfo,
@RequestBody Map<String, Object> noticeMap,
@RequestParam(value = "op", required = false) String op) {
if (Objects.isNull(installationInfo)) {
throw new IllegalArgumentException("参数installationInfo不能为空");
}
return ResponseHelper.buildResponse(jgReformNoticeService.updateInstallationNotice(submitType, installationInfo, op));
return ResponseHelper.buildResponse(jgReformNoticeService.updateNotice(submitType, noticeMap, op));
}
/**
......
......@@ -363,13 +363,14 @@ public class JgUseRegistrationController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/jgProjectContraptionPage")
@ApiOperation(value = "查询指定使用单位下的可用装置,已纳管且使用登记证编号为空或者null", notes = "不包括流程中的")
public ResponseModel<IPage<IdxBizJgProjectContraption>> getJgProjectContraptionPage(@RequestParam String useUnitCreditCode,
public ResponseModel<IPage<IdxBizJgProjectContraption>> getJgProjectContraptionPage(@RequestParam(value = "useUnitCreditCode") String useUnitCreditCode,
@RequestParam(value = "dataSource") String dataSource,
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
Page<IdxBizJgProjectContraption> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
IPage<IdxBizJgProjectContraption> re = jgUseRegistrationServiceImpl.getJgProjectContraptionPage(useUnitCreditCode, page);
IPage<IdxBizJgProjectContraption> re = jgUseRegistrationServiceImpl.getJgProjectContraptionPage(useUnitCreditCode, dataSource, page);
return ResponseHelper.buildResponse(re);
}
......
......@@ -6,9 +6,9 @@ import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationManageDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationManage;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationManageServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -287,14 +287,40 @@ public class JgUseRegistrationManageController extends BaseController {
Page<JgUseRegistrationManageDto> page = new Page<JgUseRegistrationManageDto>();
page.setCurrent(current);
page.setSize(size);
if (!ValidationUtil.isEmpty(dto.getOriginalUseUnitCreditCode())) {
dto.setUseUnitCreditCodeForSearch(dto.getOriginalUseUnitCreditCode());
String originalUseUnitCreditCode = dto.getOriginalUseUnitCreditCode();
if (!ValidationUtil.isEmpty(originalUseUnitCreditCode)) {
if(originalUseUnitCreditCode.contains("_")){
dto.setUseUnitCreditCodeForSearch(originalUseUnitCreditCode.split("_")[0]);
} else {
dto.setUseUnitCreditCodeForSearch(originalUseUnitCreditCode);
}
} else {
return ResponseHelper.buildResponse(page);
}
return ResponseHelper.buildResponse(jgUseRegistrationManageServiceImpl.queryForJgUseRegistrationManagePage(page, dto, sort));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/unitChangeByProjectContraption/page")
@ApiOperation(httpMethod = "GET", value = "单位变更选择工程/装置分页查询", notes = "单位变更选择工程/装置分页查询")
public ResponseModel<Page<IdxBizJgProjectContraption>> queryForUnitByProjectContraptionPage(@RequestParam Map<String, String> params,
@RequestParam(value = "sort", required = false) String sort,
@RequestParam(value = "current") int current,
@RequestParam(value = "size") int size) {
Page<IdxBizJgProjectContraption> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
String originalUseUnitCreditCode = params.get("originalUseUnitCreditCode");
if (ValidationUtil.isEmpty(originalUseUnitCreditCode)) {
return ResponseHelper.buildResponse(page);
}else {
if(originalUseUnitCreditCode.contains("_")){
params.put("originalUseUnitCreditCode",originalUseUnitCreditCode.split("_")[0]);
}
}
return ResponseHelper.buildResponse(jgUseRegistrationManageServiceImpl.queryForUnitByProjectContraptionPage(page, params, sort));
}
/**
* 根据sequenceNbr查询---大屏使用
*
......
......@@ -144,7 +144,9 @@ public class JgVehicleInformationController extends BaseController {
dto.setDataType(BaseController.COMPANY_TYPE_COMPANY);
} else {
dto.setDataType(BaseController.COMPANY_TYPE_SUPERVISION);
dto.setOrgBranchCode(dto.getOrgBranchCode() != null ? dto.getOrgBranchCode() : info.getCompany().getOrgCode());
if("jgLook".equals(client)){
dto.setOrgBranchCode(dto.getOrgBranchCode() != null ? dto.getOrgBranchCode() : info.getCompany().getOrgCode());
}
}
Page<Map<String, Object>> list = jgVehicleInformationServiceImpl.getPageList(dto,sort, page, dto.getRoleIds(), client);
list.getRecords().forEach(x -> {
......
......@@ -108,6 +108,7 @@ import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
......@@ -1294,6 +1295,11 @@ public class CommonServiceImpl implements ICommonService {
noticeObj.put("receiveOrgCode", !ObjectUtils.isEmpty(basicObj.get("receiveOrgCreditCode")) ? String.valueOf(basicObj.get("receiveOrgCreditCode")) : String.valueOf(basicObj.get("receiveOrgCreditCode1")));
JSONObject jsonObject = new JSONObject(noticeObj);
return jgChangeVehicleRegistrationUnitService.saveMessage(jsonObject, reginParams);
} else if (type.equals(ApplicationFormTypeEnum.DWBG.getBusinessCode()) && !ObjectUtils.isEmpty(noticeObj.get("EQU_LIST_CODE")) && PipelineEnum.PRESSURE_PIPELINE.getCode().equals(noticeObj.get("EQU_LIST_CODE").toString())) {
noticeObj.put("receiveOrgCode", !ObjectUtils.isEmpty(basicObj.get("receiveOrgCreditCode")) ? String.valueOf(basicObj.get("receiveOrgCreditCode")) : String.valueOf(basicObj.get("receiveOrgCreditCode1")));
provideMap.put(DWBG_PAGE_ID, noticeObj);
JSONObject jsonObject = new JSONObject(provideMap);
return jgChangeRegistrationUnitServiceImpl.saveUnitByProjectContraption(submitType,jsonObject, reginParams);
} else if (type.equals(ApplicationFormTypeEnum.DWBG.getBusinessCode())) {
noticeObj.put("receiveOrgCode", !ObjectUtils.isEmpty(basicObj.get("receiveOrgCreditCode")) ? String.valueOf(basicObj.get("receiveOrgCreditCode")) : String.valueOf(basicObj.get("receiveOrgCreditCode1")));
provideMap.put(DWBG_PAGE_ID, noticeObj);
......@@ -1306,10 +1312,8 @@ public class CommonServiceImpl implements ICommonService {
JSONObject jsonObject = new JSONObject(noticeObj);
return jgMaintenanceContractServiceImpl.saveOrSubmit(submitType, jsonObject, reginParams);
} else if (type.equals(ApplicationFormTypeEnum.SBYJ.getBusinessCode())) {
JgEquipTransferDto jgEquipTransferDto = JSON.parseObject(JSON.toJSONString(noticeObj), JgEquipTransferDto.class);
JSONObject jsonObject = (JSONObject) JSONObject.toJSON(jgEquipTransferDto);
jsonObject.put("businessCode", type);
noticeObj.put("businessCode", type);
JSONObject jsonObject = new JSONObject(noticeObj);
return jgEquipTransferServiceImpl.saveTransfer(submitType, jsonObject, reginParams);
} else if (type.contains(ApplicationFormTypeEnum.ZX.getBusinessCode()) || type.contains(ApplicationFormTypeEnum.BF.getBusinessCode())) {
noticeObj.put("cancelType", type.equals("BF_ZX") ? "1" : "2");
......@@ -1336,26 +1340,33 @@ public class CommonServiceImpl implements ICommonService {
@Override
public Object invokeBusinessType(Map<String, Object> map) {
String historyEquType = (String) map.get(HISTORY_EQU_TYPE);
Map<String, Object> noticeObj = (Map<String, Object>) map.get(SECOND);
JSONObject jsonObject = new JSONObject(noticeObj);
switch (historyEquType) {
case "unit":
return jgUseRegistrationServiceImpl.handleUnitHistoryEquip(jsonObject);
case "vehicle":
return jgVehicleInformationService.saveOrUpdateHisData(jsonObject);
case "set_sp"://特殊历史登记
Map<String, Object> useRegFormUploadObj = (Map<String, Object>) map.get(useRegFormUpload);
jsonObject.put("regType", "2");
jsonObject.put("businessCode", "DJ_SY");
String uploadMode = String.valueOf(useRegFormUploadObj.get("uploadMode"));
if (Integer.toString(1).equals(uploadMode)) {
jsonObject.put("submit", Boolean.TRUE);
}
jsonObject.putAll(useRegFormUploadObj);
return jgUseRegistrationServiceImpl.handleUseRegistration(jsonObject);
default:
return jgUseRegistrationServiceImpl.handleHistoryEquip(jsonObject);
JSONObject jsonObject = new JSONObject((Map<String, Object>) map.get(SECOND));
Map<String, Object> useRegFormUploadObj = (Map<String, Object>) map.get(useRegFormUpload);
String uploadMode = String.valueOf(useRegFormUploadObj.get("uploadMode"));
Map<String, Function<JSONObject, Object>> handlerMap = new HashMap<>();
handlerMap.put("unit", jgUseRegistrationServiceImpl::handleUnitHistoryEquip);
handlerMap.put("vehicle", jgVehicleInformationService::saveOrUpdateHisData);
handlerMap.put("set_sp", obj -> handleSpecialRegistration(obj, useRegFormUploadObj, uploadMode,
jgUseRegistrationServiceImpl::handleUseRegistration));
handlerMap.put("unit_sp", obj -> handleSpecialRegistration(obj, useRegFormUploadObj, uploadMode,
jgUseRegistrationServiceImpl::handleUnitUseRegistration));
return handlerMap.getOrDefault(historyEquType, jgUseRegistrationServiceImpl::handleHistoryEquip)
.apply(jsonObject);
}
/**
* 处理特殊登记逻辑
*/
private Object handleSpecialRegistration(JSONObject jsonObject, Map<String, Object> useRegFormUploadObj,
String uploadMode, Function<JSONObject, Object> handler) {
jsonObject.put("regType", "2");
jsonObject.put("businessCode", "DJ_SY");
if ("1".equals(uploadMode)) {
jsonObject.put("submit", Boolean.TRUE);
}
jsonObject.putAll(useRegFormUploadObj);
return handler.apply(jsonObject);
}
@Override
......@@ -2068,6 +2079,22 @@ public class CommonServiceImpl implements ICommonService {
return jgRegistrationHistory != null ? JSONObject.parseObject(jgRegistrationHistory.getChangeData()) : null;
}
public JSONObject queryHistoryData(String currentDocumentId) {
LambdaQueryWrapper<JgRegistrationHistory> lambda = new QueryWrapper<JgRegistrationHistory>().lambda();
lambda.eq(JgRegistrationHistory::getCurrentDocumentId, currentDocumentId);
lambda.eq(JgRegistrationHistory::getIsDelete, false);
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryService.getBaseMapper().selectOne(lambda);
return jgRegistrationHistory != null ? JSONObject.parseObject(jgRegistrationHistory.getChangeData()) : null;
}
public JSONObject queryHisOldData(String currentDocumentId) {
LambdaQueryWrapper<JgRegistrationHistory> lambda = new QueryWrapper<JgRegistrationHistory>().lambda();
lambda.eq(JgRegistrationHistory::getCurrentDocumentId, currentDocumentId);
lambda.eq(JgRegistrationHistory::getIsDelete, false);
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryService.getBaseMapper().selectOne(lambda);
return jgRegistrationHistory != null ? JSONObject.parseObject(jgRegistrationHistory.getOldData()) : new JSONObject();
}
@Override
public JSONArray queryHistoryDataObj(Long currentDocumentId) {
LambdaQueryWrapper<JgRegistrationHistory> lambda = new QueryWrapper<JgRegistrationHistory>().lambda();
......@@ -2253,10 +2280,10 @@ public class CommonServiceImpl implements ICommonService {
}
//施工单位及检测监管部门赋值 车用气瓶模版
if (formData.containsKey("installUnitCode") && formData.getString("installUnitCode").contains("_")){
formData.put("installUnitName",formData.getString("installUnitCode").split("_")[0]);
formData.put("installUnitName",formData.getString("installUnitCode").split("_")[1]);
}
if (formData.containsKey("inspectUnitCreditCode") && formData.getString("inspectUnitCreditCode").contains("_")){
formData.put("inspectUnitName",formData.getString("inspectUnitCreditCode").split("_")[0]);
formData.put("inspectUnitName",formData.getString("inspectUnitCreditCode").split("_")[1]);
}
//管理员赋值 车用气瓶模版
if (formData.containsKey("safetyManagerId") && formData.getString("safetyManagerId").contains("_")){
......@@ -2290,8 +2317,18 @@ public class CommonServiceImpl implements ICommonService {
.filter(obj -> obj instanceof Map)
.map(obj -> (Map<String, Object>) obj).collect(Collectors.toList());
if (manageType.equals(UNIT) && !CollectionUtils.isEmpty(equips)){
//设备数量
formData.put("equNum",equipmentLists.size());
//管道计算的是管道长度
if (formData.containsKey("equListCode") && formData.getString("equListCode").equals("8000")){
double pipeLength = equips.stream().filter(Objects::nonNull)
.filter(map -> map.containsKey("pipeLength") && map.get("pipeLength") instanceof Number)
.mapToDouble(map -> ((Number) map.get("pipeLength")).doubleValue())
.sum();
formData.put("equNum",String.valueOf(pipeLength)+"米");
}else {
//设备数量
formData.put("equNum",equipmentLists.size());
}
//设备品种
formData.put("equDefine",equips.get(0).get("equDefineName"));
......@@ -2676,15 +2713,16 @@ public List<EquipmentClassifyDto> getEquClassifyByCode(String parentCode) {
*/
@Override
public JgUseRegistrationManage getLatestJgUseRegistrationManage(String useUnitCreditCode, String equDefineCode) {
LambdaQueryWrapper<JgUseRegistrationManage> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgUseRegistrationManage::getUseUnitCreditCode, useUnitCreditCode)
.eq(JgUseRegistrationManage::getEquDefineCode, equDefineCode)
.eq(JgUseRegistrationManage::getIsDelete, 0)
.eq(JgUseRegistrationManage::getCertificateStatus, CertificateStatusEnum.YIDENGJI.getName())
.orderByDesc(JgUseRegistrationManage::getCertificateNo);
return jgUseRegistrationManageMapper.selectList(queryWrapper).stream()
.findFirst()
.orElse(null);
// LambdaQueryWrapper<JgUseRegistrationManage> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.eq(JgUseRegistrationManage::getUseUnitCreditCode, useUnitCreditCode)
// .eq(JgUseRegistrationManage::getEquDefineCode, equDefineCode)
// .eq(JgUseRegistrationManage::getIsDelete, 0)
// .eq(JgUseRegistrationManage::getCertificateStatus, CertificateStatusEnum.YIDENGJI.getName())
// .orderByDesc(JgUseRegistrationManage::getCertificateNo);
// return jgUseRegistrationManageMapper.selectList(queryWrapper).stream()
// .findFirst()
// .orElse(null);
return jgUseRegistrationManageMapper.getLatestJgUseRegistrationManage(useUnitCreditCode,equDefineCode);
}
/**
......
......@@ -13,6 +13,8 @@ import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.impl.DataDictionaryServiceImpl;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.EquipSourceEnum;
......@@ -33,11 +35,11 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StopWatch;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
......@@ -116,6 +118,8 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
private ESEquipmentCategory esEquipmentCategory;
@Autowired
private DataDictionaryServiceImpl dataDictionaryServiceImpl;
@Autowired
private RedisUtils redisUtils;
@Override
public boolean saveOrUpdateData(IdxBizJgProjectContraption projectContraption) {
......@@ -192,14 +196,15 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
.eq(BaseController.COMPANY_TYPE_COMPANY.equals(companyLevel) && CompanyTypeEnum.CONSTRUCTION.getName().equals(companyType), IdxBizJgProjectContraption::getUscUnitCreditCode, companyCode)
.eq(BaseController.COMPANY_TYPE_COMPANY.equals(companyLevel) && CompanyTypeEnum.USE.getName().equals(companyType), IdxBizJgProjectContraption::getUseUnitCreditCode, companyCode)
.eq(BaseController.COMPANY_TYPE_COMPANY.equals(companyLevel) && CompanyTypeEnum.INDIVIDUAL.getName().equals(companyType), IdxBizJgProjectContraption::getUseUnitCreditCode, companyCode.split("_").length > 1 ? companyCode.split("_")[1] : companyCode)
// 监管机构按照属地监管部门orgCode进行过滤
// 监管机构按照属地监管部门orgCode进行过滤【最大数据集合】
.likeRight(ValidationUtil.isEmpty(useRegDetail) && BaseController.COMPANY_TYPE_SUPERVISION.equals(companyLevel), IdxBizJgProjectContraption::getOrgCode, company.getOrgCode())
.eq(!ValidationUtil.isEmpty(params.get(IS_INTO_MANAGEMENT)), IdxBizJgProjectContraption::getIsIntoManagement, isIntoManagement)
.eq(!ValidationUtil.isEmpty(useRegistrationCode), IdxBizJgProjectContraption::getUseRegistrationCode, useRegistrationCode)
.eq(!ValidationUtil.isEmpty(equCategory), IdxBizJgProjectContraption::getEquCategory, equCategory)
.eq(!ValidationUtil.isEmpty(equDefine), IdxBizJgProjectContraption::getEquDefine, equDefine)
.like(!ValidationUtil.isEmpty(projectContraption), IdxBizJgProjectContraption::getProjectContraption, projectContraption)
.eq(!ValidationUtil.isEmpty(orgBranchCode), IdxBizJgProjectContraption::getOrgCode, orgBranchCode)
.eq(!ValidationUtil.isEmpty(orgBranchCode) && BaseController.COMPANY_TYPE_COMPANY.equals(companyLevel), IdxBizJgProjectContraption::getOrgCode, orgBranchCode) // 企业 等于匹配
.likeRight(!ValidationUtil.isEmpty(orgBranchCode) && BaseController.COMPANY_TYPE_SUPERVISION.equals(companyLevel), IdxBizJgProjectContraption::getOrgCode, orgBranchCode) // 监管 右模糊匹配
.like(!ValidationUtil.isEmpty(projectContraptionNo), IdxBizJgProjectContraption::getProjectContraptionNo, projectContraptionNo)
.isNull(!ValidationUtil.isEmpty(regCodeIsNull) && Boolean.TRUE.equals(Boolean.valueOf(regCodeIsNull)), IdxBizJgProjectContraption::getUseRegistrationCode)
.isNotNull(!ValidationUtil.isEmpty(regCodeIsNull) && Boolean.FALSE.equals(Boolean.valueOf(regCodeIsNull)), IdxBizJgProjectContraption::getUseRegistrationCode)
......@@ -222,9 +227,9 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
List<Long> projectContraptionIdList = pageList.getRecords().stream().map(IdxBizJgProjectContraption::getSequenceNbr).collect(Collectors.toList());
Map<String, Boolean> canEditMap = this.checkContraptionIsCanEdit(projectContraptionIdList);
pageList.getRecords().forEach(record -> record.setCanEdit(canEditMap.get(record.getSequenceNbr())));
pageList.getRecords().forEach(record -> record.setCanEdit(canEditMap.get(record.getSequenceNbr()+"")));
Map<String, Boolean> canDeleteMap = this.checkContraptionIsCanDelete(projectContraptionIdList, isIntoManagement);
pageList.getRecords().forEach(record -> record.setCanDelete(canDeleteMap.get(record.getSequenceNbr())));
pageList.getRecords().forEach(record -> record.setCanDelete(canDeleteMap.get(record.getSequenceNbr()+"")));
//判断是否有检验结果录入
judgeCheckResult(pageList.getRecords());
}
......@@ -339,6 +344,8 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
}
public Map<String, Map<String, Object>> details(String sequenceNbr) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())) + "", ReginParams.class);
CompanyBo company = reginParams.getCompany();
Map<String, Map<String, Object>> resultMap = new HashMap<>();
if (ObjectUtils.isEmpty(sequenceNbr)) {
resultMap.put(EQUIP_INFO_FORM_ID, Collections.emptyMap());
......@@ -348,6 +355,7 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
Map<String, Object> projectContraptionMap = Optional.ofNullable(baseMapper.getDetail(sequenceNbr))
.map(map -> {
commonServiceImpl.convertStringToJsonobject(map, jsonFields);
map.put("unitType", company.getCompanyType());
map.put("pipelineList", baseMapper.selectEquipList((String) map.get("SEQUENCE_NBR")));
return map;
})
......@@ -667,6 +675,7 @@ public class IdxBizJgProjectContraptionServiceImpl extends BaseService<IdxBizJgP
result.put("inspectConclusionCode", info.getInspectConclusion());
result.put("inspectConclusion", Optional.ofNullable(dataDictionaryServiceImpl.getByCode(info.getInspectConclusion(), "JYJL"))
.map(DataDictionary::getName).orElse(""));
result.put("jySeq", info.getSequenceNbr());
return result;
}
}
\ No newline at end of file
......@@ -513,8 +513,14 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
.doubleValue()
);
projectContraption.setUscUnitName(companyInfoMap.get("companyName").toString());
projectContraption.setUscUnitCreditCode(companyInfoMap.get("creditCode").toString());
// 历史黑设备新增由使用单位新增
if(dataSource.contains("black")){
projectContraption.setUseUnitName(companyInfoMap.get("companyName").toString());
projectContraption.setUseUnitCreditCode(companyInfoMap.get("creditCode").toString());
} else {
projectContraption.setUscUnitName(companyInfoMap.get("companyName").toString());
projectContraption.setUscUnitCreditCode(companyInfoMap.get("creditCode").toString());
}
projectContraption.setIsFirstMerge(false);
idxBizJgProjectContraptionService.saveOrUpdateData(projectContraption);
......@@ -685,6 +691,8 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
esEquipmentDto.setSTATUS("已认领");
esEquipmentDto.setUSC_UNIT_CREDIT_CODE(projectContraption.getUscUnitCreditCode());
esEquipmentDto.setUSC_UNIT_NAME(projectContraption.getUscUnitName());
esEquipmentDto.setUSE_UNIT_CREDIT_CODE(projectContraption.getUseUnitCreditCode());
esEquipmentDto.setUSE_UNIT_NAME(projectContraption.getUseUnitName());
esEquipmentDto.setPROJECT_CONTRAPTION(projectContraption.getProjectContraption());
esEquipmentDto.setPRODUCT_NAME(pipelineInfo.getPipeName());
esEquipmentDto.setProjectContraptionId(String.valueOf(sequenceNbr));
......@@ -1166,7 +1174,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
.filter(x -> "8300".equals(x.getDictDataKey()))
.collect(Collectors.toList());
}
if (EquipmentClassifityEnum.YLGD.getCode().equals(equList) && "black".equals(dataSource)) {
if (EquipmentClassifityEnum.YLGD.getCode().equals(equList)) {
return this.baseMapper.queryAllEquCategoriesUnderTheEquList(equList).stream()
.filter(x -> !"8300".equals(x.getDictDataKey()))
.collect(Collectors.toList());
......@@ -2588,7 +2596,11 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
}
// 增加监管端查询, 查询规则看到本级及之下的设备
if(!ObjectUtils.isEmpty(map.getString("ORG_BRANCH_CODE"))){
boolMust.must(QueryBuilders.termQuery("ORG_BRANCH_CODE.keyword", map.getString("ORG_BRANCH_CODE")));
if(companyLevel.equals(BaseController.COMPANY_TYPE_SUPERVISION)) { // 监管 右模糊查询
boolMust.must(QueryBuilders.wildcardQuery("ORG_BRANCH_CODE.keyword", QueryParser.escape(company.getString("ORG_BRANCH_CODE")) + "*"));
} else { // 企业 等于查询
boolMust.must(QueryBuilders.termQuery("ORG_BRANCH_CODE.keyword", map.getString("ORG_BRANCH_CODE")));
}
}
builder.query(boolMust);
builder.sort("REC_DATE", SortOrder.DESC);
......
......@@ -959,9 +959,9 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
equList.forEach(info -> {
JSONObject equInfo = JSONObject.parseObject(info.toString());
JgCertificateChangeRecordEq jgCertificateChangeRecordEq = new JgCertificateChangeRecordEq();
jgCertificateChangeRecordEq.setEquId(equInfo.get("SEQUENCE_NBR").toString());
jgCertificateChangeRecordEq.setEquId(Objects.isNull(equInfo.get("SEQUENCE_NBR"))? null : equInfo.get("SEQUENCE_NBR").toString());
jgCertificateChangeRecordEq.setChangeRecordId(jgCertificateChangeRecord.getSequenceNbr().toString());
jgCertificateChangeRecordEq.setProductCode(equInfo.get("FACTORY_NUM").toString());
jgCertificateChangeRecordEq.setProductCode(Objects.isNull(equInfo.get("FACTORY_NUM"))? null : equInfo.get("FACTORY_NUM").toString());
jgCertificateChangeRecordEqs.add(jgCertificateChangeRecordEq);
});
}
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
......@@ -16,7 +21,6 @@ import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.EquipTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationReformService;
......@@ -32,6 +36,7 @@ import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgTechParamsElevatorMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.InspectionDetectionInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.OtherInfoMapper;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
......@@ -53,19 +58,21 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.TimeUnit;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl.getAuditPassedDate;
import static java.util.stream.Collectors.toList;
import static java.util.stream.Collectors.toSet;
/**
* 改造变更登记服务实现类
......@@ -154,6 +161,16 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
@Autowired
private SnowflakeIdUtil sequence;
@Resource
IdxBizJgProjectContraptionServiceImpl jgProjectContraptionService;
@Autowired
private JgChangeRegistrationReformEqServiceImpl jgChangeRegistrationReformEqServiceImpl;
@Autowired
private InspectionDetectionInfoMapper inspectionDetectionInfoMapper;
@Autowired
private JgRegistrationHistoryServiceImpl jgRegistrationHistoryServiceImpl;
/***
* @deprecated 根据查询调教获取分页对象
* @param dto 查询的dto对象
......@@ -212,136 +229,213 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String companyCode = CompanyTypeEnum.INDIVIDUAL.getName().equals(reginParams.getCompany().getCompanyType()) ?
reginParams.getCompany().getCompanyCode().split("_")[1] : reginParams.getCompany().getCompanyCode();
UseInfo useInfo = new UseInfo();
String equipId = map.get("record").toString();
LambdaQueryWrapper<UseInfo> lambda = new QueryWrapper<UseInfo>().lambda();
lambda.eq(UseInfo::getRecord, equipId);
// 提交时进行校验设备是否在流程中使用(并发及同时打开多个相同的页面时才会出现此种情况)
this.checkForRepeatUsedEquip(map, equipId, reginParams);
// 使用登记信息
JgChangeRegistrationReform jgChangeRegistrationReform = new JgChangeRegistrationReform();
LambdaQueryWrapper<OtherInfo> otherLambda = new QueryWrapper<OtherInfo>().lambda();
otherLambda.eq(OtherInfo::getRecord, equipId);
OtherInfo otherInfo = otherInfoMapper.selectOne(otherLambda);
String supervisoryCode = otherInfo.getSupervisoryCode();
jgChangeRegistrationReform.setSupervisoryCode(supervisoryCode);
jgChangeRegistrationReform.setUseUnitName(ObjectUtils.isEmpty(useInfo.getUseUnitName()) ? reginParams.getCompany().getCompanyName() : useInfo.getUseUnitName());
jgChangeRegistrationReform.setUseUnitCreditCode(ObjectUtils.isEmpty(useInfo.getUseUnitCreditCode()) ? companyCode : useInfo.getUseUnitCreditCode());
if (!ObjectUtils.isEmpty(map.get("otherAccessories"))) {
jgChangeRegistrationReform.setOtherAccessories(JSONObject.toJSONString(map.get("otherAccessories")));
}
if (!ObjectUtils.isEmpty(map.get("transformationQualityCertificate"))) {
jgChangeRegistrationReform.setTransformationQualityCertificate(JSONObject.toJSONString(map.get("transformationQualityCertificate")));
}
if (!ObjectUtils.isEmpty(map.get("renovationSupervisioninspectionCertificate"))) {
jgChangeRegistrationReform.setRenovationSupervisioninspectionCertificate(JSONObject.toJSONString(map.get("renovationSupervisioninspectionCertificate")));
}
// 使用单位提交
jgChangeRegistrationReform.setUseUnitCreditCode(companyCode);
if (!ObjectUtils.isEmpty(map.get("inspectUnitCreditCode"))) {
jgChangeRegistrationReform.setInspectUnitCreditCode(map.get("inspectUnitCreditCode").toString());
} else {
jgChangeRegistrationReform.setInspectUnitCreditCode(companyCode);
}
if (!ObjectUtils.isEmpty(map.get("inspectOrgName"))) {
jgChangeRegistrationReform.setInspectUnitName(map.get("inspectOrgName").toString());
} else {
jgChangeRegistrationReform.setInspectUnitName(reginParams.getCompany().getCompanyName());
}
if (map.containsKey("receiveCompanyCode")) {
String receiveCompanyCode = String.valueOf(map.getString("receiveCompanyCode"));
String[] receiveCompany = receiveCompanyCode.split("_");
if (!ValidationUtil.isEmpty(receiveCompany)) {
jgChangeRegistrationReform.setReceiveCompanyCode(receiveCompanyCode.split("_")[0]);
jgChangeRegistrationReform.setReceiveOrgCode(receiveCompanyCode.split("_")[0]);
if (receiveCompany.length > 1) {
jgChangeRegistrationReform.setReceiveOrgName(receiveCompanyCode.split("_")[1]);
String equListCode = map.getString("EQU_LIST_CODE");
if(!equListCode.equals(EquipmentClassifityEnum.YLGD.getCode())){
UseInfo useInfo = new UseInfo();
String equipId = map.get("record").toString();
LambdaQueryWrapper<UseInfo> lambda = new QueryWrapper<UseInfo>().lambda();
lambda.eq(UseInfo::getRecord, equipId);
// 提交时进行校验设备是否在流程中使用(并发及同时打开多个相同的页面时才会出现此种情况)
this.checkForRepeatUsedEquip(map, equipId, reginParams);
// 使用登记信息
JgChangeRegistrationReform jgChangeRegistrationReform = new JgChangeRegistrationReform();
LambdaQueryWrapper<OtherInfo> otherLambda = new QueryWrapper<OtherInfo>().lambda();
otherLambda.eq(OtherInfo::getRecord, equipId);
OtherInfo otherInfo = otherInfoMapper.selectOne(otherLambda);
String supervisoryCode = otherInfo.getSupervisoryCode();
jgChangeRegistrationReform.setSupervisoryCode(supervisoryCode);
jgChangeRegistrationReform.setUseUnitName(ObjectUtils.isEmpty(useInfo.getUseUnitName()) ? reginParams.getCompany().getCompanyName() : useInfo.getUseUnitName());
jgChangeRegistrationReform.setUseUnitCreditCode(ObjectUtils.isEmpty(useInfo.getUseUnitCreditCode()) ? companyCode : useInfo.getUseUnitCreditCode());
setUploadField(map, jgChangeRegistrationReform);
// 使用单位提交
jgChangeRegistrationReform.setUseUnitCreditCode(companyCode);
if (!ObjectUtils.isEmpty(map.get("inspectUnitCreditCode"))) {
jgChangeRegistrationReform.setInspectUnitCreditCode(map.get("inspectUnitCreditCode").toString());
} else {
jgChangeRegistrationReform.setInspectUnitCreditCode(companyCode);
}
if (!ObjectUtils.isEmpty(map.get("inspectOrgName"))) {
jgChangeRegistrationReform.setInspectUnitName(map.get("inspectOrgName").toString());
} else {
jgChangeRegistrationReform.setInspectUnitName(reginParams.getCompany().getCompanyName());
}
setReceiveCompanyFields(map, jgChangeRegistrationReform);
// 统计用
CompanyBo companyBo = commonServiceImpl.getOneCompany(jgChangeRegistrationReform.getReceiveCompanyCode());
jgChangeRegistrationReform.setReceiveCompanyOrgCode(companyBo.getOrgCode());
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
//使用登记编号
jgRegistrationHistory.setUseRegistrationCode(idxBizJgRegisterInfoMapper.getUseOrgCodeByEquip(equipId));
//登记类别
jgRegistrationHistory.setRegistrationClass(BUSINESS_TYPE);
//设备id
jgRegistrationHistory.setEquId(equipId);
//修改数据
jgRegistrationHistory.setChangeData(JSONObject.toJSONString(map));
//设备监管码
jgRegistrationHistory.setSupervisoryCode(supervisoryCode);
// 原始的技术参数,在作废时,需要用来恢复之前的数据使用
jgRegistrationHistory.setOldData(JSONObject.toJSONString(idxBizJgRegisterInfoService.getEquipParamsMap(equipId, "", getEquListCode(jgRegistrationHistory))));
//数据状态
jgChangeRegistrationReform.setUseRegistrationCode(jgRegistrationHistory.getUseRegistrationCode());
String equipListName = Optional.ofNullable(map.get("equListDesc")).orElse("无").toString();
jgChangeRegistrationReform.setEquipListName(equipListName);
jgChangeRegistrationReform.setCreateUserId(reginParams.getUserModel().getUserId());
jgChangeRegistrationReform.setCreateUserName(reginParams.getUserModel().getRealName());
jgChangeRegistrationReform.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
jgRegistrationHistory.setStatus("new");
if (map.containsKey("type") && "edit".equals(String.valueOf(map.get("type")))) {
jgChangeRegistrationReform.setSequenceNbr(Long.valueOf(String.valueOf(map.get("sequenceNbr"))));
this.getBaseMapper().updateById(jgChangeRegistrationReform);
jgChangeRegistrationReform = this.getBaseMapper().selectById(jgChangeRegistrationReform.getSequenceNbr());
JgChangeRegistrationReformEq jgChangeRegistrationReformEq = jgChangeRegistrationReformEqMapper.selectOne(new QueryWrapper<JgChangeRegistrationReformEq>().eq("equip_transfer_id", jgChangeRegistrationReform.getSequenceNbr()));
jgChangeRegistrationReformEq.setEquId(equipId);
jgChangeRegistrationReformEqMapper.updateById(jgChangeRegistrationReformEq);
jgRegistrationHistory.setSequenceNbr(jgRegistrationHistoryMapper.getSequenceNbrByRegistratioClassAndDocumentId(BUSINESS_TYPE, String.valueOf(map.get("applyNo"))));
jgRegistrationHistoryMapper.updateById(jgRegistrationHistory);
} else {
//暂存处理
// 业务管理设备信息保存
JgChangeRegistrationReformEq jgChangeRegistrationReformEq = new JgChangeRegistrationReformEq();
jgChangeRegistrationReformEq.setEquId(equipId);
ResponseModel<List<String>> result = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.GZBG.getCode(), 1);
if (!result.getResult().isEmpty()) {
jgChangeRegistrationReform.setApplyNo(result.getResult().get(0));
} else {
jgChangeRegistrationReform.setReceiveOrgName(String.valueOf(map.get("receiveOrgName")));
throw new BadRequest("申请单编号生成失败,请稍后重试!");
}
jgChangeRegistrationReform.setRegDate(new Date());
jgChangeRegistrationReform.setCreateDate(new Date());
jgChangeRegistrationReform.setStatus(WorkFlowStatusEnum.CHANGE_SUBMIT.getPass());
jgChangeRegistrationReform.setAuditStatus(WorkFlowStatusEnum.CHANGE_SUBMIT.getPass());
this.save(jgChangeRegistrationReform);
jgChangeRegistrationReformEq.setEquipTransferId(jgChangeRegistrationReform.getSequenceNbr().toString());
jgChangeRegistrationReformEqMapper.insert(jgChangeRegistrationReformEq);
//当前单据id
jgRegistrationHistory.setCurrentDocumentId(jgChangeRegistrationReform.getApplyNo());
jgRegistrationHistoryMapper.insert(jgRegistrationHistory);
//暂存时生成待办数据
List<TaskModelDto> taskModelDtoList = Arrays.asList(getTaskModelDtoList(jgChangeRegistrationReform, null));
commonServiceImpl.buildTaskModel(taskModelDtoList);
}
} else {
jgChangeRegistrationReform.setReceiveCompanyCode("610000");
}
// 统计用
CompanyBo companyBo = commonServiceImpl.getOneCompany(jgChangeRegistrationReform.getReceiveCompanyCode());
jgChangeRegistrationReform.setReceiveCompanyOrgCode(companyBo.getOrgCode());
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
//使用登记编号
jgRegistrationHistory.setUseRegistrationCode(idxBizJgRegisterInfoMapper.getUseOrgCodeByEquip(equipId));
//登记类别
jgRegistrationHistory.setRegistrationClass(BUSINESS_TYPE);
//设备id
jgRegistrationHistory.setEquId(equipId);
//修改数据
jgRegistrationHistory.setChangeData(JSONObject.toJSONString(map));
//设备监管码
jgRegistrationHistory.setSupervisoryCode(supervisoryCode);
// 原始的技术参数,在作废时,需要用来恢复之前的数据使用
jgRegistrationHistory.setOldData(JSONObject.toJSONString(idxBizJgRegisterInfoService.getEquipParamsMap(equipId, "", getEquListCode(jgRegistrationHistory))));
//数据状态
jgChangeRegistrationReform.setUseRegistrationCode(jgRegistrationHistory.getUseRegistrationCode());
String equipListName = Optional.ofNullable(map.get("equListDesc")).orElse("无").toString();
jgChangeRegistrationReform.setEquipListName(equipListName);
jgChangeRegistrationReform.setCreateUserId(reginParams.getUserModel().getUserId());
jgChangeRegistrationReform.setCreateUserName(reginParams.getUserModel().getRealName());
jgChangeRegistrationReform.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
jgRegistrationHistory.setStatus("new");
if (map.containsKey("type") && "edit".equals(String.valueOf(map.get("type")))) {
jgChangeRegistrationReform.setSequenceNbr(Long.valueOf(String.valueOf(map.get("sequenceNbr"))));
this.getBaseMapper().updateById(jgChangeRegistrationReform);
jgChangeRegistrationReform = this.getBaseMapper().selectById(jgChangeRegistrationReform.getSequenceNbr());
JgChangeRegistrationReformEq jgChangeRegistrationReformEq = jgChangeRegistrationReformEqMapper.selectOne(new QueryWrapper<JgChangeRegistrationReformEq>().eq("equip_transfer_id", jgChangeRegistrationReform.getSequenceNbr()));
jgChangeRegistrationReformEq.setEquId(equipId);
jgChangeRegistrationReformEqMapper.updateById(jgChangeRegistrationReformEq);
jgRegistrationHistory.setSequenceNbr(jgRegistrationHistoryMapper.getSequenceNbrByRegistratioClassAndDocumentId(BUSINESS_TYPE, String.valueOf(map.get("applyNo"))));
jgRegistrationHistoryMapper.updateById(jgRegistrationHistory);
if (!ObjectUtils.isEmpty(map.get("submit"))) {
String instanceId = "";
if (!ObjectUtils.isEmpty(jgChangeRegistrationReform.getSequenceNbr()) && !ObjectUtils.isEmpty(jgChangeRegistrationReform.getInstanceId())) {
// 如果是旧流程则执行一步
flowExecute(jgChangeRegistrationReform.getSequenceNbr(), jgChangeRegistrationReform.getInstanceId(), "0", "", jgChangeRegistrationReform.getNextTaskId());
} else {
// 如果是新启动的流程开启自动访问
jgChangeRegistrationReform.setAuditStatus(WorkFlowStatusEnum.CHANGE_RECEIVE.getPass());
jgChangeRegistrationReform.setStatus(WorkFlowStatusEnum.CHANGE_RECEIVE.getPass());
ProcessTaskDTO processTaskDTO = startByVariable(jgChangeRegistrationReform);
updateExecuteIds(instanceId, jgChangeRegistrationReform, "startWorkfow", processTaskDTO);
List<TaskModelDto> taskModelDtoList = Arrays.asList(getTaskModelDtoList(jgChangeRegistrationReform, processTaskDTO));
//启动之前删除暂存生成的待办
commonServiceImpl.deleteTasksByRelationId(String.valueOf(jgChangeRegistrationReform.getSequenceNbr()));
//重新生成新的待办数据
commonServiceImpl.buildTaskModel(taskModelDtoList);
}
}
return this.getBaseMapper().getDetailById(jgChangeRegistrationReform.getSequenceNbr(), null);
} else {
//暂存处理
// 业务管理设备信息保存
JgChangeRegistrationReformEq jgChangeRegistrationReformEq = new JgChangeRegistrationReformEq();
jgChangeRegistrationReformEq.setEquId(equipId);
ResponseModel<List<String>> result = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.GZBG.getCode(), 1);
if (!result.getResult().isEmpty()) {
jgChangeRegistrationReform.setApplyNo(result.getResult().get(0));
} else {
throw new BadRequest("申请单编号生成失败,请稍后重试!");
List<Map<String, Object>> equipmentLists = (List<Map<String, Object>>) map.get("equipmentLists");
if (CollectionUtils.isEmpty(equipmentLists)) {
throw new BadRequest("请选择设备信息!");
}
jgChangeRegistrationReform.setRegDate(new Date());
jgChangeRegistrationReform.setCreateDate(new Date());
jgChangeRegistrationReform.setStatus(WorkFlowStatusEnum.CHANGE_SUBMIT.getPass());
jgChangeRegistrationReform.setAuditStatus(WorkFlowStatusEnum.CHANGE_SUBMIT.getPass());
this.save(jgChangeRegistrationReform);
jgChangeRegistrationReformEq.setEquipTransferId(jgChangeRegistrationReform.getSequenceNbr().toString());
jgChangeRegistrationReformEqMapper.insert(jgChangeRegistrationReformEq);
//当前单据id
jgRegistrationHistory.setCurrentDocumentId(jgChangeRegistrationReform.getApplyNo());
jgRegistrationHistoryMapper.insert(jgRegistrationHistory);
//暂存时生成待办数据
List<TaskModelDto> taskModelDtoList = Arrays.asList(getTaskModelDtoList(jgChangeRegistrationReform, null));
commonServiceImpl.buildTaskModel(taskModelDtoList);
}
if (!ObjectUtils.isEmpty(map.get("submit"))) {
String instanceId = "";
if (!ObjectUtils.isEmpty(jgChangeRegistrationReform.getSequenceNbr()) && !ObjectUtils.isEmpty(jgChangeRegistrationReform.getInstanceId())) {
// 如果是旧流程则执行一步
flowExecute(jgChangeRegistrationReform.getSequenceNbr(), jgChangeRegistrationReform.getInstanceId(), "0", "", jgChangeRegistrationReform.getNextTaskId());
// 压力管道变更登记逻辑
for (Map<String, Object> equip : equipmentLists) {
// 提交时进行校验设备是否在流程中使用(并发及同时打开多个相同的页面时才会出现此种情况)
checkForRepeatUsedEquip(map, equip.get("record").toString(), reginParams);
}
String projectContraptionId = map.getString("projectContraptionId");
IdxBizJgProjectContraption jgProjectContraption = jgProjectContraptionService.getById(projectContraptionId);
// 使用登记信息
JgChangeRegistrationReform jgChangeRegistrationReform = new JgChangeRegistrationReform();
jgChangeRegistrationReform.setSupervisoryCode(jgProjectContraption.getSupervisoryCode());
jgChangeRegistrationReform.setUseUnitName(reginParams.getCompany().getCompanyName());
jgChangeRegistrationReform.setUseUnitCreditCode(companyCode);
jgChangeRegistrationReform.setProjectContraptionId(projectContraptionId);
jgChangeRegistrationReform.setProjectContraption(map.getString("projectContraption"));
setUploadField(map, jgChangeRegistrationReform);
// 使用单位提交
jgChangeRegistrationReform.setUseUnitCreditCode(companyCode);
setReceiveCompanyFields(map, jgChangeRegistrationReform);
// 统计用
CompanyBo companyBo = commonServiceImpl.getOneCompany(jgChangeRegistrationReform.getReceiveCompanyCode());
jgChangeRegistrationReform.setReceiveCompanyOrgCode(companyBo.getOrgCode());
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
//使用登记编号
jgRegistrationHistory.setUseRegistrationCode(map.getString("useRegistrationCode"));
//登记类别
jgRegistrationHistory.setRegistrationClass(BUSINESS_TYPE);
//设备id
jgRegistrationHistory.setEquId(jgProjectContraption.getSequenceNbr().toString());
//修改数据
jgRegistrationHistory.setChangeData(JSONObject.toJSONString(map));
//设备监管码
jgRegistrationHistory.setSupervisoryCode(jgProjectContraption.getSupervisoryCode());
// 原始的技术参数,在作废时,需要用来恢复之前的数据使用
jgRegistrationHistory.setOldData(JSONObject.toJSONString(this.getDeviceListByProjectContraption(jgProjectContraption.getSequenceNbr().toString())));
//数据状态
jgChangeRegistrationReform.setUseRegistrationCode(map.getString("useRegistrationCode"));
jgChangeRegistrationReform.setEquipListName("压力管道");
jgChangeRegistrationReform.setCreateUserId(reginParams.getUserModel().getUserId());
jgChangeRegistrationReform.setCreateUserName(reginParams.getUserModel().getRealName());
jgChangeRegistrationReform.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
jgRegistrationHistory.setStatus("new");
// 提交、保存、保存并提交逻辑
if (map.containsKey("type") && "edit".equals(String.valueOf(map.get("type")))) {
jgChangeRegistrationReform.setSequenceNbr(Long.valueOf(String.valueOf(map.get("sequenceNbr"))));
this.getBaseMapper().updateById(jgChangeRegistrationReform);
jgChangeRegistrationReform = this.getBaseMapper().selectById(jgChangeRegistrationReform.getSequenceNbr());
// 1.eq更新【先删除再插入】
jgChangeRegistrationReformEqMapper.delete(new LambdaQueryWrapper<JgChangeRegistrationReformEq>().eq(JgChangeRegistrationReformEq::getEquipTransferId, jgChangeRegistrationReform.getSequenceNbr()));
saveEqRelation(reginParams, equipmentLists, jgChangeRegistrationReform);
// 2.历史表更新
jgRegistrationHistory.setSequenceNbr(jgRegistrationHistoryMapper.getSequenceNbrByRegistratioClassAndDocumentId(BUSINESS_TYPE, String.valueOf(map.get("applyNo"))));
jgRegistrationHistoryMapper.updateById(jgRegistrationHistory);
} else {
// 如果是新启动的流程开启自动访问
jgChangeRegistrationReform.setAuditStatus(WorkFlowStatusEnum.CHANGE_RECEIVE.getPass());
jgChangeRegistrationReform.setStatus(WorkFlowStatusEnum.CHANGE_RECEIVE.getPass());
ProcessTaskDTO processTaskDTO = startByVariable(jgChangeRegistrationReform);
updateExecuteIds(instanceId, jgChangeRegistrationReform, "startWorkfow", processTaskDTO);
List<TaskModelDto> taskModelDtoList = Arrays.asList(getTaskModelDtoList(jgChangeRegistrationReform, processTaskDTO));
//启动之前删除暂存生成的待办
commonServiceImpl.deleteTasksByRelationId(String.valueOf(jgChangeRegistrationReform.getSequenceNbr()));
//重新生成新的待办数据
commonServiceImpl.buildTaskModel(taskModelDtoList);
// 新增逻辑
// 1.主表保存
ResponseModel<List<String>> result = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.GZBG.getCode(), 1);
if (!result.getResult().isEmpty()) {
jgChangeRegistrationReform.setApplyNo(result.getResult().get(0));
} else {
throw new BadRequest("申请单编号生成失败,请稍后重试!");
}
jgChangeRegistrationReform.setRegDate(new Date());
jgChangeRegistrationReform.setCreateDate(new Date());
jgChangeRegistrationReform.setStatus(WorkFlowStatusEnum.CHANGE_SUBMIT.getPass());
jgChangeRegistrationReform.setAuditStatus(WorkFlowStatusEnum.CHANGE_SUBMIT.getPass());
this.save(jgChangeRegistrationReform);
// 2.关系表保存
saveEqRelation(reginParams, equipmentLists, jgChangeRegistrationReform);
// 3.历史表保存
jgRegistrationHistory.setCurrentDocumentId(jgChangeRegistrationReform.getApplyNo());
// 原有汇总表保存 用来来恢复技术参数
this.setOldData(jgRegistrationHistory, jgChangeRegistrationReform);
jgRegistrationHistoryMapper.insert(jgRegistrationHistory);
}
if (!ObjectUtils.isEmpty(map.get("submit"))) {
String instanceId = "";
if (!ObjectUtils.isEmpty(jgChangeRegistrationReform.getSequenceNbr()) && !ObjectUtils.isEmpty(jgChangeRegistrationReform.getInstanceId())) {
// 如果是旧流程则执行一步
flowExecute(jgChangeRegistrationReform.getSequenceNbr(), jgChangeRegistrationReform.getInstanceId(), "0", "", jgChangeRegistrationReform.getNextTaskId());
} else {
// 如果是新启动的流程开启自动访问
jgChangeRegistrationReform.setAuditStatus(WorkFlowStatusEnum.CHANGE_RECEIVE.getPass());
jgChangeRegistrationReform.setStatus(WorkFlowStatusEnum.CHANGE_RECEIVE.getPass());
ProcessTaskDTO processTaskDTO = startByVariable(jgChangeRegistrationReform);
updateExecuteIds(instanceId, jgChangeRegistrationReform, "startWorkfow", processTaskDTO);
List<TaskModelDto> taskModelDtoList = Collections.singletonList(getTaskModelDtoList(jgChangeRegistrationReform, processTaskDTO));
//启动之前删除暂存生成的待办
commonServiceImpl.deleteTasksByRelationId(String.valueOf(jgChangeRegistrationReform.getSequenceNbr()));
//重新生成新的待办数据
commonServiceImpl.buildTaskModel(taskModelDtoList);
}
}
return this.getBaseMapper().getDetailById(jgChangeRegistrationReform.getSequenceNbr(), "8000");
}
return this.getBaseMapper().getDetailById(jgChangeRegistrationReform.getSequenceNbr());
} catch (BadRequest |
LocalBadRequest e) {
log.error(e.getMessage(), e);
......@@ -356,6 +450,57 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
}
}
private void setOldData(JgRegistrationHistory jgRegistrationHistory, JgChangeRegistrationReform jgChangeRegistrationReform) {
Map<String, Object> detailMap = getDeviceListByProjectContraption(jgChangeRegistrationReform.getProjectContraptionId());
jgRegistrationHistory.setOldData(JSONObject.toJSONString(detailMap));
}
private static void setReceiveCompanyFields(JSONObject map, JgChangeRegistrationReform jgChangeRegistrationReform) {
if (map.containsKey("receiveCompanyCode")) {
String receiveCompanyCode = String.valueOf(map.getString("receiveCompanyCode"));
String[] receiveCompany = receiveCompanyCode.split("_");
if (!ValidationUtil.isEmpty(receiveCompany)) {
jgChangeRegistrationReform.setReceiveCompanyCode(receiveCompanyCode.split("_")[0]);
jgChangeRegistrationReform.setReceiveOrgCode(receiveCompanyCode.split("_")[0]);
if (receiveCompany.length > 1) {
jgChangeRegistrationReform.setReceiveOrgName(receiveCompanyCode.split("_")[1]);
} else {
jgChangeRegistrationReform.setReceiveOrgName(String.valueOf(map.get("receiveOrgName")));
}
}
} else {
jgChangeRegistrationReform.setReceiveCompanyCode("610000");
}
}
private static void setUploadField(JSONObject map, JgChangeRegistrationReform jgChangeRegistrationReform) {
if (!ObjectUtils.isEmpty(map.get("otherAccessories"))) {
jgChangeRegistrationReform.setOtherAccessories(JSONObject.toJSONString(map.get("otherAccessories")));
}
if (!ObjectUtils.isEmpty(map.get("transformationQualityCertificate"))) {
jgChangeRegistrationReform.setTransformationQualityCertificate(JSONObject.toJSONString(map.get("transformationQualityCertificate")));
}
if (!ObjectUtils.isEmpty(map.get("renovationSupervisioninspectionCertificate"))) {
jgChangeRegistrationReform.setRenovationSupervisioninspectionCertificate(JSONObject.toJSONString(map.get("renovationSupervisioninspectionCertificate")));
}
}
private void saveEqRelation(ReginParams reginParams, List<Map<String, Object>> equipmentLists, JgChangeRegistrationReform jgChangeRegistrationReform) {
List<JgChangeRegistrationReformEq> registrationReformEqs = new ArrayList<>();
for (Map<String, Object> equip : equipmentLists) {
String record = equip.get("record").toString();
JgChangeRegistrationReformEq jgChangeRegistrationReformEq = new JgChangeRegistrationReformEq();
jgChangeRegistrationReformEq.setEquId(record);
jgChangeRegistrationReformEq.setEquipTransferId(jgChangeRegistrationReform.getSequenceNbr().toString());
jgChangeRegistrationReformEq.setRecUserId(reginParams.getUserModel().getUserId());
jgChangeRegistrationReformEq.setRecDate(new Date());
registrationReformEqs.add(jgChangeRegistrationReformEq);
}
jgChangeRegistrationReformEqServiceImpl.saveBatch(registrationReformEqs);
}
public ProcessTaskDTO startByVariable(JgChangeRegistrationReform jgChangeRegistrationReform) {
ProcessTaskDTO processTaskDTO = new ProcessTaskDTO();
//启动流程
......@@ -444,30 +589,115 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
jgChangeRegistrationReform.setAuditPassDate(new Date());
jgChangeRegistrationReform.setAuditStatus(FlowStatusEnum.TO_BE_FINISHED.getName());
jgChangeRegistrationReform.setStatus(FlowStatusEnum.TO_BE_FINISHED.getName());
JgChangeRegistrationReformEq jgChangeRegistrationReformEq = jgChangeRegistrationReformEqMapper.selectOne(new QueryWrapper<JgChangeRegistrationReformEq>().eq("equip_transfer_id", jgChangeRegistrationReform.getSequenceNbr()));
updateTechparamsByEquIdAndCurrentDoucumentId(jgChangeRegistrationReformEq.getEquId(), jgChangeRegistrationReform.getSequenceNbr().toString(), null, jgChangeRegistrationReform.getApplyNo());
HashMap<String, Object> map = new HashMap<>();
jgChangeRegistrationReform.setNextExecuteUserIds("");
jgChangeRegistrationReform.setNextTaskId(nextTaskId);
Map<String, Object> map = new HashMap<>();
map.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
map.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
map.put("flowStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
map.put("flowStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
map.put("relationId", jgChangeRegistrationReform.getInstanceId());
jgChangeRegistrationReform.setNextExecuteUserIds("");
jgChangeRegistrationReform.setNextTaskId(nextTaskId);
map.put("model", conveterTaskMessageDTO(jgChangeRegistrationReform));
TaskV2Model taskV2Model = commonServiceImpl.updateTaskModel(map);
// 生成流水信息
saveRecord(jgChangeRegistrationReformEq.getEquId(), jgChangeRegistrationReform, taskV2Model);
if(!jgChangeRegistrationReform.getEquipListName().equals(EquipmentClassifityEnum.YLGD.getName())){ // 非压力管道逻辑
JgChangeRegistrationReformEq jgChangeRegistrationReformEq = jgChangeRegistrationReformEqMapper.selectOne(new QueryWrapper<JgChangeRegistrationReformEq>().eq("equip_transfer_id", jgChangeRegistrationReform.getSequenceNbr()));
updateTechparamsByEquIdAndCurrentDoucumentId(jgChangeRegistrationReformEq.getEquId(), jgChangeRegistrationReform.getSequenceNbr().toString(), null, jgChangeRegistrationReform.getApplyNo());
// 生成流水信息
saveRecord(jgChangeRegistrationReformEq.getEquId(), jgChangeRegistrationReform, taskV2Model);
} else { // 压力管道逻辑
// 1.批量更新技术参数
// 1.1 技术参数更新
List<IdxBizJgTechParamsPipeline> paramsPipelines = updatePieLineTechAndInspection(jgChangeRegistrationReform);
// 2.按照装置生成证流水
saveCertFlowBatch(jgChangeRegistrationReform, paramsPipelines, taskV2Model);
}
}
// redis流程实时数据更新
commonServiceImpl.saveExecuteFlowData2Redis(instanceId, this.buildInstanceRuntimeData(jgChangeRegistrationReform));
this.getBaseMapper().updateById(jgChangeRegistrationReform);
}
private void saveCertFlowBatch(JgChangeRegistrationReform jgChangeRegistrationReform, List<IdxBizJgTechParamsPipeline> paramsPipelines, TaskV2Model taskV2Model) {
// 1.更新使用登记证信息
JgUseRegistrationManage jgUseRegistrationManage = jgUseRegistrationManageService.lambdaQuery()
.eq(JgUseRegistrationManage::getUseRegistrationCode, jgChangeRegistrationReform.getUseRegistrationCode())
.eq(JgUseRegistrationManage::getIsDelete, 0)
.one();
jgUseRegistrationManage.setAuditPassDate(new Date());
jgUseRegistrationManage.setApplyNo(jgChangeRegistrationReform.getApplyNo());
jgUseRegistrationManage.setRecDate(new Date());
jgUseRegistrationManageService.updateById(jgUseRegistrationManage);
// 2.生成业务流水信息
JgCertificateChangeRecord jgCertificateChangeRecord = new JgCertificateChangeRecord();
jgCertificateChangeRecord.setApplyNo(jgChangeRegistrationReform.getApplyNo());
jgCertificateChangeRecord.setReceiveOrgName(jgChangeRegistrationReform.getReceiveOrgName());
jgCertificateChangeRecord.setAuditPassDate(new Date());
jgCertificateChangeRecord.setRegType(BUSINESS_TYPE);
jgCertificateChangeRecord.setRegDate(jgChangeRegistrationReform.getCreateDate());
FeignClientResult<AgencyUserModel> agencyUserModelFeignClientResult = Privilege.agencyUserClient.queryByUserId(jgChangeRegistrationReform.getCreateUserId());
jgCertificateChangeRecord.setChangeContent(jgChangeRegistrationReform.getUseUnitName()+"的"+agencyUserModelFeignClientResult.getResult().getRealName() +"办理了【" + BUSINESS_TYPE + "】," + "单号【" + jgChangeRegistrationReform.getApplyNo() +
"】" + ",办理日期" + DateUtil.format(jgChangeRegistrationReform.getAuditPassDate(),DatePattern.NORM_DATE_PATTERN));
jgCertificateChangeRecord.setRecUserId(jgChangeRegistrationReform.getRecUserId());
jgCertificateChangeRecord.setRecDate(new Date());
jgCertificateChangeRecord.setCreateDate(new Date());
jgCertificateChangeRecord.setCreateUserId(jgChangeRegistrationReform.getCreateUserId());
jgCertificateChangeRecord.setUseRegistrationCode(jgChangeRegistrationReform.getUseRegistrationCode());
jgCertificateChangeRecord.setCertificateNo(jgUseRegistrationManage.getCertificateNo());
jgCertificateChangeRecord.setUseUnitCreditCode(jgChangeRegistrationReform.getUseUnitCreditCode());
jgCertificateChangeRecord.setUseUnitName(jgChangeRegistrationReform.getUseUnitName());
jgCertificateChangeRecord.setEquCategory("8300");
jgCertificateChangeRecord.setReceiveCompanyCode(jgChangeRegistrationReform.getReceiveOrgCode());
jgCertificateChangeRecord.setRoutePath(taskV2Model.getRoutePath());
// 保存证流水信息
jgCertificateChangeRecordService.save(jgCertificateChangeRecord);
List<JgCertificateChangeRecordEq> changeRecordEqs = paramsPipelines.stream().map(p->{
JgCertificateChangeRecordEq jgCertificateChangeRecordEq = new JgCertificateChangeRecordEq();
jgCertificateChangeRecordEq.setEquId(p.getRecord());
jgCertificateChangeRecordEq.setChangeRecordId(jgCertificateChangeRecord.getSequenceNbr().toString());
return jgCertificateChangeRecordEq;
}).collect(toList());
// 生成设备流水信息
jgCertificateChangeRecordEqService.saveBatch(changeRecordEqs);
}
/**
* 管道的技术参数及检验信息更新
* @param jgChangeRegistrationReform 改造变更登记单据
* @return 更新的管道信息
*/
private List<IdxBizJgTechParamsPipeline> updatePieLineTechAndInspection(JgChangeRegistrationReform jgChangeRegistrationReform) {
JSONObject hisData = commonServiceImpl.queryHistoryData(jgChangeRegistrationReform.getApplyNo());
JSONArray piePines = hisData.getJSONArray("equipmentLists");
List<IdxBizJgTechParamsPipeline> paramsPipelines = new ArrayList<>();
for(int i = 0; i < piePines.size(); i++){
JSONObject item = piePines.getJSONObject(i);
IdxBizJgTechParamsPipeline pipeline = new IdxBizJgTechParamsPipeline();
pipeline.setMedium(item.getString("medium"));
pipeline.setPressure(item.getString("pressure"));
pipeline.setNominalDiameter(item.getString("nominalDiameter"));
pipeline.setTemperature(item.getString("temperature"));
pipeline.setWallThickness(item.getString("wallThickness"));
pipeline.setWorkMedium(item.getString("workMedium"));
pipeline.setWorkPressure(item.getString("workPressure"));
pipeline.setWorkTemperature(item.getString("workTemperature"));
pipeline.setPipeLength(item.getString("pipeLength"));
LambdaUpdateWrapper<IdxBizJgTechParamsPipeline> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(IdxBizJgTechParamsPipeline::getRecord, item.getString("record"));
// 技术参数更新
iIdxBizJgTechParamsPipelineService.update(pipeline, updateWrapper);
pipeline.setRecord(String.valueOf(item.getString("record")));
// 检验信息更新或者插入及记录原始数据用来作废时恢复数据用
updateOrCreateInspectionDetection(item, jgChangeRegistrationReform);
paramsPipelines.add(pipeline);
}
return paramsPipelines;
}
public void saveRecord(String equipId, JgChangeRegistrationReform jgChangeRegistrationReform, TaskV2Model taskV2Model) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryMapper.selectOne(new QueryWrapper<JgRegistrationHistory>()
.eq("equ_id", equipId)
// .eq("equ_id", equipId)
.eq("current_document_id", jgChangeRegistrationReform.getApplyNo())
.eq("registration_class", BUSINESS_TYPE));
......@@ -635,32 +865,35 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
});
}
/**
* 历史数据填充设备种类、设备类别、设备品种
* @param detail 返回json
* @param jgChangeRegistrationReform 当前单据
*/
private void fillingEquCategoryNameForHisData(Map<String, Object> detail, JgChangeRegistrationReform jgChangeRegistrationReform) {
if(!org.springframework.util.StringUtils.isEmpty(jgChangeRegistrationReform.getProjectContraptionId())){
LambdaQueryWrapper<IdxBizJgProjectContraption> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BaseEntity::getSequenceNbr, jgChangeRegistrationReform.getProjectContraptionId());
queryWrapper.select(IdxBizJgProjectContraption::getEquListName,IdxBizJgProjectContraption::getEquCategoryName,IdxBizJgProjectContraption::getEquDefineName,BaseEntity::getSequenceNbr);
IdxBizJgProjectContraption projectContraption = jgProjectContraptionService.getBaseMapper().selectOne(queryWrapper);
if(projectContraption != null){
detail.put("equListName", projectContraption.getEquListName());
detail.put("equCategoryName", projectContraption.getEquCategoryName());
detail.put("equDefineName", projectContraption.getEquDefineName());
}
}
}
@Override
public Map<String, Object> getDetail(String currentDocumentId, String equipId) {
JgChangeRegistrationReform jgChangeRegistrationReform = this.getBaseMapper().selectById(currentDocumentId);
if (ObjectUtils.isEmpty(equipId)) {
equipId = jgChangeRegistrationReformEqMapper.selectEquipId(currentDocumentId);
}
this.doCompensate(jgChangeRegistrationReform);
Map<String, Object> detail = new HashMap<>();
Map<String, Object> originalData = new HashMap<>();
Map<String, Object> originalDataOther = new HashMap<>();
// if (!("已完成".equals(jgChangeRegistrationReform.getStatus()) || !"流程结束".equals(jgChangeRegistrationReform.getStatus()))) {
// 完成时显示历史数据
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryMapper.selectOne(new QueryWrapper<JgRegistrationHistory>()
.eq("equ_id", equipId)
.eq("current_document_id", jgChangeRegistrationReform.getApplyNo())
.eq("registration_class", BUSINESS_TYPE));
originalData = JSONObject.parseObject(jgRegistrationHistory.getChangeData(), Map.class);
Map<String, Object> originalData = JSONObject.parseObject(jgRegistrationHistory.getChangeData(), Map.class);
detail.putAll(originalData);
// } else {
// // 完成显示最新数据
// originalData = idxBizJgRegisterInfoService.getDetailByRecord(equipId);
// originalDataOther = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(equipId);
// detail.putAll(originalDataOther);
// detail.put("techInfo", originalData);
// }
jgChangeRegistrationReform.setReceiveCompanyCode(jgChangeRegistrationReform.getReceiveOrgCode() + "_" + jgChangeRegistrationReform.getReceiveOrgName());
detail.putAll(JSONObject.parseObject(JSONObject.toJSONString(jgChangeRegistrationReform), Map.class));
if(jgChangeRegistrationReform.getCancelDate() != null){
......@@ -677,6 +910,7 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
}
detail.remove("submit");
detail.remove("instanceId");
this.fillingEquCategoryNameForHisData(detail, jgChangeRegistrationReform);
return detail;
}
......@@ -1233,12 +1467,12 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
return;
}
String record = jgRegistrationHistory.getEquId();
String equList = getEquListCode(jgRegistrationHistory);
String equList = getEquListCode(jgRegistrationHistory, jgChangeRegistrationReform);
String oldTechInfo = jgRegistrationHistory.getOldData();
//将历史数据更新到技术参数表中
EquipmentClassifityEnum anEnum = EquipmentClassifityEnum.getOne(equList);
assert anEnum != null;
if (StringUtils.isEmpty(oldTechInfo) || anEnum == null) {
if (StringUtils.isEmpty(oldTechInfo)) {
log.warn("技术参数为空,无法进行回滚技术参数,单据编号:{}", jgChangeRegistrationReform.getApplyNo());
return;
}
......@@ -1300,14 +1534,39 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
// 压力管道
case YLGD:
IdxBizJgTechParamsPipeline pipeline = JSON.parseObject(oldTechInfo, IdxBizJgTechParamsPipeline.class);
// 删除
iIdxBizJgTechParamsPipelineService.remove(new LambdaQueryWrapper<IdxBizJgTechParamsPipeline>().eq(IdxBizJgTechParamsPipeline::getRecord, record));
// 插入
pipeline.setSequenceNbr(sequence.nextId() + "");
iIdxBizJgTechParamsPipelineService.save(pipeline);
JSONObject jsonObject = JSONObject.parseObject(oldTechInfo);
JSONArray piePines = jsonObject.getJSONArray("equipmentLists");
for(int i = 0; i < piePines.size(); i++){
JSONObject item = piePines.getJSONObject(i);
String rcd = item.getString("record");
// 删除
iIdxBizJgTechParamsPipelineService.remove(new LambdaQueryWrapper<IdxBizJgTechParamsPipeline>().eq(IdxBizJgTechParamsPipeline::getRecord, rcd));
// 插入
IdxBizJgTechParamsPipeline pipeline = BeanUtil.copyProperties(item, IdxBizJgTechParamsPipeline.class);
pipeline.setSequenceNbr(sequence.nextId() + "");
iIdxBizJgTechParamsPipelineService.save(pipeline);
}
// 检验信息恢复
JSONObject inspectData = jsonObject.getJSONObject("inspectData");
if(inspectData != null){
// 被更新前的检验信息
JSONArray oData = Optional.ofNullable(inspectData.getJSONArray("oData")).orElse(new JSONArray());
// 改造登记本次插入的检验信息主键sequenceNbr数组
JSONArray insertIds = Optional.ofNullable(inspectData.getJSONArray("insertIds")).orElse(new JSONArray());
// 更新的检验信息换成原来的
for(int i = 0; i < oData.size(); i++){
JSONObject item = oData.getJSONObject(i);
InspectionDetectionInfo inspectionDetectionInfo = BeanUtil.copyProperties(item, InspectionDetectionInfo.class);
inspectionDetectionInfoMapper.deleteById(inspectionDetectionInfo.getSequenceNbr());
inspectionDetectionInfoMapper.insert(inspectionDetectionInfo);
}
// 新插入的删除
if(!insertIds.isEmpty()){
List<String> ids = insertIds.toJavaList(String.class);
inspectionDetectionInfoMapper.deleteBatchIds(ids);
}
}
break;
// 起重机械
case QZJX:
IdxBizJgTechParamsLifting lifting = JSON.parseObject(oldTechInfo, IdxBizJgTechParamsLifting.class);
......@@ -1322,6 +1581,14 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
}
}
private String getEquListCode(JgRegistrationHistory jgRegistrationHistory, JgChangeRegistrationReform jgChangeRegistrationReform) {
if(StringUtils.isNotEmpty(jgChangeRegistrationReform.getProjectContraptionId())){
return EquipmentClassifityEnum.YLGD.getCode();
} else {
return getEquListCode(jgRegistrationHistory);
}
}
private String getEquListCode(JgRegistrationHistory jgRegistrationHistory) {
String record = jgRegistrationHistory.getEquId();
......@@ -1339,4 +1606,126 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
commonServiceImpl.saveExecuteFlowData2Redis(jgChangeRegistrationReform.getInstanceId(), this.buildInstanceRuntimeData(jgChangeRegistrationReform));
}
public IPage<IdxBizJgProjectContraption> getJgProjectContraptionPage(String useUnitCreditCode, Page<IdxBizJgProjectContraption> page, String sequenceNbr) {
// 兼容个人业务
if(useUnitCreditCode.contains("_")){
useUnitCreditCode = useUnitCreditCode.split("_")[1];
}
// 查询流程中的装置
List<JgChangeRegistrationReform> flowIngPros = this.list(new LambdaQueryWrapper<JgChangeRegistrationReform>().notIn(JgChangeRegistrationReform::getStatus, NOT_FLOWING_STATE).select(BaseEntity::getSequenceNbr, JgChangeRegistrationReform::getProjectContraptionId));
Set<String> proIds = flowIngPros.stream().map(JgChangeRegistrationReform::getProjectContraptionId).collect(toSet());
proIds.remove(null);
proIds.remove("");
// 编辑时要有自己
if(StringUtils.isNotEmpty(sequenceNbr)){
proIds.remove(sequenceNbr);
}
return this.getBaseMapper().queryJgProjectContraptionPage(page, useUnitCreditCode, proIds);
}
/**
* 查询指定装置下的装置基本信息、施工/使用信息、管道信息(前缀装置列表已进行过滤,故不进行状态的过滤)
*
* @param projectContraptionSeq 装置id
* @return 装置的详情
*/
public Map<String, Object> getDeviceListByProjectContraption(String projectContraptionSeq) {
IdxBizJgProjectContraption projectContraption = jgProjectContraptionService.getBaseMapper().selectById(projectContraptionSeq);
Map<String, Object> re = new HashMap<>();
List<Map<String, Object>> equList = this.getBaseMapper().selectPieLineListByProjectId(projectContraptionSeq);
re.put("equipmentLists", equList);
re.put("projectContraption", projectContraption.getProjectContraption());
re.put("projectContraptionId", projectContraptionSeq);
re.put("projectContraptionNo", projectContraption.getProjectContraptionNo());
re.put("pipelineLength", projectContraption.getPipelineLength());
re.put("useRegistrationCode", projectContraption.getUseRegistrationCode());
this.setUseAddress(projectContraption, re);
return re;
}
private void updateOrCreateInspectionDetection(Map<String, Object> equipment, JgChangeRegistrationReform registrationReform) {
InspectionDetectionInfo inspectionDetectionInfo = new InspectionDetectionInfo();
BeanUtil.copyProperties(equipment, inspectionDetectionInfo);
// 编辑时会有此数据,所以用来做标识,根据设备record + 检验报告编号判定唯一一条检验流水,有进行更新,无则进行插入
if(inspectionDetectionInfo.getInspectReportNo() != null && inspectionDetectionInfo.getInspectReport() != null){
String record = equipment.get("record").toString();
String jySeq = equipment.get("jySeq") == null ? null : equipment.get("jySeq").toString();
inspectionDetectionInfo.setInspectConclusion((String) equipment.get("inspectConclusionCode"));
inspectionDetectionInfo.setSequenceNbr(jySeq);
saveEquipOfPieLineInspectData(record, inspectionDetectionInfo, registrationReform);
}
}
private void saveEquipOfPieLineInspectData(String record, InspectionDetectionInfo inspectionDetectionInfo, JgChangeRegistrationReform registrationReform) {
// 1.检验机构 + 设备+ 检验报告编号时 , 是唯一的为了防止老数据有重复的,程序健壮,故使用list进行处理
String insertId = null;
InspectionDetectionInfo inspectionDetectionInfoOld = null;
if(inspectionDetectionInfo.getSequenceNbr() != null){ // 编辑
inspectionDetectionInfoOld = inspectionDetectionInfoMapper.selectById(inspectionDetectionInfo.getSequenceNbr());
inspectionDetectionInfo.setRecDate(new Date());
inspectionDetectionInfoMapper.updateById(inspectionDetectionInfo);
} else { // 新增
insertId = sequence.nextId() + "";
inspectionDetectionInfo.setRecord(record);
inspectionDetectionInfo.setRecDate(new Date());
inspectionDetectionInfo.setSequenceNbr(sequence.nextId() + "");
inspectionDetectionInfoMapper.insert(inspectionDetectionInfo);
}
// 2.记录原始检验流水用来作废时恢复数据
JSONObject oldData = commonServiceImpl.queryHisOldData(registrationReform.getApplyNo());
JSONObject inspectData = oldData.getJSONObject("inspectData") == null ? new JSONObject() : oldData.getJSONObject("inspectData");
// 插入的检验数据ids
this.setInsertIds(inspectData, insertId);
// 被更新的原行数据
this.setOData(inspectData, inspectionDetectionInfoOld);
oldData.put("inspectData", inspectData);
LambdaUpdateWrapper<JgRegistrationHistory> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(JgRegistrationHistory::getCurrentDocumentId, registrationReform.getApplyNo());
updateWrapper.set(JgRegistrationHistory::getOldData, JSONObject.toJSONString(oldData));
jgRegistrationHistoryServiceImpl.update(updateWrapper);
}
private void setOData(JSONObject inspectData, InspectionDetectionInfo oInspectionDetectionInfo) {
JSONArray oData = inspectData.getJSONArray("oData");
if(oData == null){
oData = new JSONArray();
inspectData.put("oData",oData);
}
if(oInspectionDetectionInfo != null){
oData.add(oInspectionDetectionInfo);
}
}
private void setInsertIds(JSONObject inspectData, String insertId) {
JSONArray existInsertIds = inspectData.getJSONArray("insertIds");
if(existInsertIds == null){
existInsertIds = new JSONArray();
inspectData.put("insertIds",existInsertIds);
}
if(insertId != null){
existInsertIds.add(insertId);
}
}
/**
* 使用地点-使用登记完成后回把使用登记的地点信息写到装置表。定期检验时显示
* @param projectContraption 装置
* @param re 返回结果:增加使用地点(工业管道是使用登记时的地址);公用、长输管道是安装地址(无使用登记证)
*/
private void setUseAddress(IdxBizJgProjectContraption projectContraption, Map<String, Object> re) {
re.put("useAddress", getDetailAddress(projectContraption));
}
private String getDetailAddress(IdxBizJgProjectContraption projectContraption) {
return trimIfNull(projectContraption.getProvinceName()) + trimIfNull(projectContraption.getCityName()) + trimIfNull(projectContraption.getCountyName()) + trimIfNull(projectContraption.getStreetName() + trimIfNull(projectContraption.getAddress()));
}
private String trimIfNull(String str) {
if (StringUtils.isBlank(str)) {
return "";
}
return str.trim();
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
......@@ -38,6 +39,7 @@ import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.*;
import io.seata.spring.annotation.GlobalTransactional;
import lombok.var;
import org.apache.commons.lang3.ObjectUtils;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
......@@ -55,6 +57,9 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.time.Instant;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
......@@ -176,6 +181,8 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
@Autowired
private TzBaseEnterpriseInfoMapper tzBaseEnterpriseInfoMapper;
@Autowired
private IdxBizJgProjectContraptionServiceImpl projectContraptionService;
/**
* 根据sequenceNbr查询:1、查询单位变更信息,2、查询使用登记证列表
......@@ -218,7 +225,19 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, notice.getApplyNo())
.eq(JgRegistrationHistory::getIsDelete, false));
changeInfo.put("registrationList", JSON.parse(historyServiceOne.getChangeData()));
if(PipelineEnum.PRESSURE_PIPELINE.getCode().equals(notice.getEquListCode())){
//添加申请编号
JSONArray jsonArray = JSON.parseArray(historyServiceOne.getChangeData());
if (!CollectionUtils.isEmpty(jsonArray)) {
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i); // 直接获取 JSONObject
jsonObject.put("applyNo", notice.getApplyNo());
}
changeInfo.put("projectContraptionList", jsonArray);
}
} else {
changeInfo.put("registrationList", JSON.parse(historyServiceOne.getChangeData()));
}
changeInfo.put("havingPermission", notice.getNextExecuteUserIds() != null && notice.getNextExecuteUserIds().contains(RequestContext.getExeUserId()));
String companyType = selectedOrgInfo.getCompany().getCompanyType();
if ("个人主体".equals(companyType)) {
......@@ -287,25 +306,206 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
if (Objects.isNull(noticeDto) || StringUtils.isEmpty(submitType)) {
throw new IllegalArgumentException("参数不能为空");
}
if(PipelineEnum.PRESSURE_PIPELINE.getCode().equals(noticeDto.getEquListCode())){
dealProjectContraptionToUpdate(submitType,noticeDto,op,reginParams);
}else {
// 字段转换
this.convertField(noticeDto);
// 获取单位变更使用登记证列表
List<Map<String, Object>> registrationList = noticeDto.getRegistrationList();
if (CollectionUtils.isEmpty(registrationList)) {
throw new BadRequest("使用登记证不能为空");
}
//根据使用登记证查询设备
List<Long> registrationIdList = registrationList.stream().filter(v -> v.containsKey("sequenceNbr") &&
ObjectUtils.isNotEmpty(v.get("sequenceNbr")) && canConvertToLong(v.get("sequenceNbr").toString()))
.map(v -> Long.parseLong(v.get("sequenceNbr").toString())).collect(Collectors.toList());
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(registrationIdList)) {
throw new BadRequest("使用登记证不能为空");
}
List<JSONObject> deviceList = registrationManageService.queryEquByCertificateSeqList(registrationIdList);
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(deviceList)) {
throw new BadRequest("使用登记证下无设备");
}
ArrayList<String> roleListAll = new ArrayList<>();
ArrayList<String> roleListNext = new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
// 发起流程
if (!StringUtils.hasText(noticeDto.getInstanceId())) {
List<ProcessTaskDTO> processTasks = new ArrayList<>();
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(String.valueOf(new Date().getTime()));
dto.setCompleteFirstTask(true);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
dto.setNextExecuteUserCompanyCode(noticeDto.getReceiveCompanyCode());
processTasks = cmWorkflowService.startBatch(actWorkflowBatchDTO);
String instanceId = processTasks.get(0).getProcessInstance().getId();
String nextTaskId = processTasks.get(0).getNextTask().get(0).getId();
String taskname = processTasks.get(0).getNextTask().get(0).getName();
this.buildRoleList(processTasks, roleListNext, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(processTasks);
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
JgChangeRegistrationUnit notice = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(noticeDto, notice);
notice.setChangeCertificate(noticeDto.getChangeCertificate());
notice.setRemark(noticeDto.getRemark());
if (!ObjectUtils.isEmpty(notice.getInstanceStatus())) {
notice.setInstanceStatus(notice.getInstanceStatus() + "," + roleListAll);
} else {
notice.setInstanceStatus(String.join(",", roleListAll));
}
notice.setInstanceId(instanceId);
notice.setNextTaskId(nextTaskId);
notice.setSupervisoryCode(noticeDto.getSupervisoryCode());
notice.setPromoter(RequestContext.getExeUserId());
notice.setNextExecutorIds(String.join(",", roleListNext));
notice.setStatus(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass());
notice.setNextExecuteUserIds(nextUserIds);
setNewUnitInfo(reginParams, notice);
JgChangeRegistrationUnitMapper.updateById(notice);
commonServiceImpl.deleteTasksByRelationId(notice.getSequenceNbr() + "");
createTaskModel(notice, taskname, "1", nextUserIds);
commonServiceImpl.saveExecuteFlowData2Redis(notice.getInstanceId(), buildInstanceRuntimeData(notice));
} else {
ArrayList<String> roleList = new ArrayList<>();
String taskId = noticeDto.getNextTaskId();
//组装信息
TaskResultDTO task = new TaskResultDTO();
task.setResultCode("approvalStatus");
task.setTaskId(taskId);
task.setComment("");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", op);
if (!ObjectUtils.isEmpty(noticeDto.getInstanceStatus()) &&
(noticeDto.getStatus().equals(WorkFlowStatusEnum.UNIT_RENAME_SUBMIT.getReject()) ||
noticeDto.getStatus().equals(WorkFlowStatusEnum.UNIT_RENAME_SUBMIT.getRollBack()))) {
map.put("approvalStatus", "提交");
}
task.setVariable(map);
//执行流程
task.setNextExecuteUserCompanyCode(noticeDto.getReceiveCompanyCode());
ProcessTaskDTO processTaskDTO = cmWorkflowService.completeOrReject(taskId, task, op);
JgChangeRegistrationUnit bean = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(noticeDto, bean);
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
String taskName1 = "";
String nextTaskId = "";
this.buildRoleList(Collections.singletonList(processTaskDTO), roleList, roleListAll);
List<WorkflowResultDto> workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
if (processTaskDTO != null && processTaskDTO.getNextTask() != null && processTaskDTO.getNextTask().size() > 0) {
taskCode = processTaskDTO.getNextTask().get(0).getKey();
taskName1 = processTaskDTO.getNextTask().get(0).getName();
nextTaskId = processTaskDTO.getNextTask().get(0).getId();
}
bean.setNextExecutorIds(String.join(",", roleList));
if (!ObjectUtils.isEmpty(bean.getInstanceStatus())) {
bean.setInstanceStatus(bean.getInstanceStatus() + "," + String.join(",", roleList));
} else {
bean.setInstanceStatus(String.join(",", roleList));
}
bean.setNextTaskId(nextTaskId);
bean.setPromoter(RequestContext.getExeUserId());
bean.setStatus(WorkFlowStatusEnum.getMessage(taskCode).getPass());
executeOneStep(bean, taskName1, nextUserIds, op);
bean.setNextExecuteUserIds(nextUserIds);
setNewUnitInfo(reginParams, bean);
JgChangeRegistrationUnitMapper.updateById(bean);
commonServiceImpl.saveExecuteFlowData2Redis(bean.getInstanceId(), buildInstanceRuntimeData(bean));
}
} else {
JgChangeRegistrationUnit bean = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(noticeDto, bean);
setNewUnitInfo(reginParams, bean);
JgChangeRegistrationUnitMapper.updateById(bean);
}
List<JgChangeRegistrationUnitEq> jgRelationEquipList = new ArrayList<>();
deviceList.forEach(device -> {
JgChangeRegistrationUnitEq unitEq = new JgChangeRegistrationUnitEq();
if (device.containsKey("USE_ORG_CODE")) {
unitEq.setRegistrationCertificate(device.getString("USE_ORG_CODE"));//使用登记证主键
}
if (device.containsKey("SEQUENCE_NBR")) {
unitEq.setEquId(device.getString("SEQUENCE_NBR"));//设备主键
}
unitEq.setUnitChangeRegistrationId(noticeDto.getSequenceNbr().toString());//单位变更业务主键
unitEq.setDeviceInfo(JSONObject.toJSONString(device));//设备信息json
jgRelationEquipList.add(unitEq);
});
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
//登记类别
jgRegistrationHistory.setRegistrationClass("单位变更登记");
jgRegistrationHistory.setCurrentDocumentId(noticeDto.getApplyNo());
//使用登记证历史数据
jgRegistrationHistory.setChangeData(JSONObject.toJSONString(registrationList));
//先删除之前设备关系数据,在插入最新设备关系数据
registrationUnitEqService.getBaseMapper().delete(new LambdaQueryWrapper<JgChangeRegistrationUnitEq>()
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, noticeDto.getSequenceNbr()));
registrationUnitEqService.saveBatch(jgRelationEquipList);
//先删除之前未提交的历史使用登记证信息,在插入最新的使用登记证信息
registrationHistoryService.getBaseMapper().delete(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, noticeDto.getApplyNo()));
registrationHistoryService.save(jgRegistrationHistory);
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
CompanyBo company = reginParams.getCompany();
deviceList.forEach(jsonObject -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.equipRepeatUsedCheck(String.valueOf(jsonObject.get("SEQUENCE_NBR")),
CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
company.getCompanyCode().split("_")[1] :
company.getCompanyCode()));
}
}
return noticeDto;
}
/**
* 更新装置的单位变更
* @param submitType
* @param noticeDto
* @param op
* @param reginParams
*/
private void dealProjectContraptionToUpdate(String submitType, JgChangeRegistrationUnitDto noticeDto, String op, ReginParams reginParams) {
// 字段转换
this.convertField(noticeDto);
// 获取单位变更使用登记证列表
List<Map<String, Object>> registrationList = noticeDto.getRegistrationList();
if (CollectionUtils.isEmpty(registrationList)) {
throw new BadRequest("使用登记证不能为空");
// 获取单位变更装置列表
List<Map<String, Object>> projectContraptionList = noticeDto.getProjectContraptionList();
if (CollectionUtils.isEmpty(projectContraptionList)) {
throw new BadRequest("工程/装置列表不能为空");
}
//根据使用登记证查询设备
List<Long> registrationIdList = registrationList.stream().filter(v -> v.containsKey("sequenceNbr") &&
ObjectUtils.isNotEmpty(v.get("sequenceNbr")) && canConvertToLong(v.get("sequenceNbr").toString()))
.map(v -> Long.parseLong(v.get("sequenceNbr").toString())).collect(Collectors.toList());
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(registrationIdList)) {
throw new BadRequest("使用登记证不能为空");
List<String> registrationNoList = new ArrayList<>(); //使用登记证编号
Map<String,String> useRegistrationCodeMap = new HashMap<>();
for (Map<String, Object> objectMap : projectContraptionList) {
if (objectMap.containsKey("useRegistrationCode") && ObjectUtils.isNotEmpty(objectMap.get("useRegistrationCode"))) {
registrationNoList.add(objectMap.get("useRegistrationCode").toString());
useRegistrationCodeMap.put(objectMap.get("sequenceNbr").toString(),objectMap.get("useRegistrationCode").toString());
}
}
List<JSONObject> deviceList = registrationManageService.queryEquByCertificateSeqList(registrationIdList);
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(deviceList)) {
throw new BadRequest("使用登记证下无设备");
//查询装置下的管道信息
List<Map<String, Object>> deviceList = this.queryPipelineList(projectContraptionList);
if(CollUtil.isEmpty(deviceList)){
throw new BadRequest("工程/装置下没有管道信息");
}
if (SUBMIT_TYPE_FLOW.equals(submitType)) { //放在最后面防止前面有异常
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
CompanyBo company = reginParams.getCompany();
deviceList.forEach(jsonObject -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.equipRepeatUsedCheck(String.valueOf(jsonObject.get("record")),
CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
company.getCompanyCode().split("_")[
1
] :
company.getCompanyCode()));
}
ArrayList<String> roleListAll = new ArrayList<>();
ArrayList<String> roleListNext = new ArrayList<>();
......@@ -407,14 +607,16 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
List<JgChangeRegistrationUnitEq> jgRelationEquipList = new ArrayList<>();
deviceList.forEach(device -> {
JgChangeRegistrationUnitEq unitEq = new JgChangeRegistrationUnitEq();
if (device.containsKey("USE_ORG_CODE")) {
unitEq.setRegistrationCertificate(device.getString("USE_ORG_CODE"));//使用登记证主键
if (device.containsKey("projectContraptionId")) {
String projectContraptionId = (String)device.get("projectContraptionId");
unitEq.setRegistrationCertificate(useRegistrationCodeMap.get(projectContraptionId));
unitEq.setProjectContraptionId(projectContraptionId);
}
if (device.containsKey("SEQUENCE_NBR")) {
unitEq.setEquId(device.getString("SEQUENCE_NBR"));//设备主键
if (device.containsKey("record")) {
unitEq.setEquId((String) device.get("record")); //设备主键
}
unitEq.setUnitChangeRegistrationId(noticeDto.getSequenceNbr().toString());//单位变更业务主键
unitEq.setDeviceInfo(JSONObject.toJSONString(device));//设备信息json
unitEq.setDeviceInfo(JSON.toJSONString(device));//设备信息json
jgRelationEquipList.add(unitEq);
});
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
......@@ -422,7 +624,7 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
jgRegistrationHistory.setRegistrationClass("单位变更登记");
jgRegistrationHistory.setCurrentDocumentId(noticeDto.getApplyNo());
//使用登记证历史数据
jgRegistrationHistory.setChangeData(JSONObject.toJSONString(registrationList));
jgRegistrationHistory.setChangeData(JSON.toJSONString(projectContraptionList));
//先删除之前设备关系数据,在插入最新设备关系数据
registrationUnitEqService.getBaseMapper().delete(new LambdaQueryWrapper<JgChangeRegistrationUnitEq>()
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, noticeDto.getSequenceNbr()));
......@@ -431,17 +633,6 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
registrationHistoryService.getBaseMapper().delete(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, noticeDto.getApplyNo()));
registrationHistoryService.save(jgRegistrationHistory);
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
CompanyBo company = reginParams.getCompany();
deviceList.forEach(jsonObject -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.equipRepeatUsedCheck(String.valueOf(jsonObject.get("SEQUENCE_NBR")),
CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
company.getCompanyCode().split("_")[1] :
company.getCompanyCode()));
}
return noticeDto;
}
private void setNewUnitInfo(ReginParams reginParams, JgChangeRegistrationUnit notice) {
......@@ -973,65 +1164,70 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
if (roleList.isEmpty()) {
registration.setStatus(taskName[0]);
registration.setAuditPassDate(new Date());
// 生成新的使用登记编号,使用登记证 修改设备的使用登记信息表,使用单位名称,使用单位统一信用代码,使用登记证编号,更新ES
LambdaQueryWrapper<JgChangeRegistrationUnitEq> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, dto.getSequenceNbr());
List<JgChangeRegistrationUnitEq> jgChangeRegistrationUnitEqs = JgChangeRegistrationUnitEqMapper.selectList(queryWrapper);
for (JgChangeRegistrationUnitEq jgChangeRegistrationUnitEq : jgChangeRegistrationUnitEqs) {
String equipId = jgChangeRegistrationUnitEq.getEquId();
LambdaQueryWrapper<OtherInfo> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(OtherInfo::getRecord, equipId);
OtherInfo tzsJgOtherInfo = tzsJgOtherInfoMapper.selectOne(queryWrapper1);
if (ObjectUtils.isNotEmpty(tzsJgOtherInfo)) {
LambdaQueryWrapper<UseInfo> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(UseInfo::getRecord, equipId);
UseInfo useInfo = useInfoMapper.selectOne(queryWrapper2);
if (ObjectUtils.isNotEmpty(useInfo)) {
useInfo.setUseUnitName(registration.getNewUseUnitName());
useInfo.setUseUnitCreditCode(registration.getNewUseUnitCreditCode());
useInfoMapper.updateById(useInfo);
//如果是工业管道 如果工程装置对应一个证就直接变更给新单位;如果工程装置对应证下还有其他装置就变更后直接给新单位再重新生成一个登记证号;如果两个工程装置对应同一个使用登记证变更后生成两个新的登记证
if (PipelineEnum.PRESSURE_PIPELINE.getCode().equals(dto.getEquListCode())){
dealProjectContraption(dto,nextTaskId,registration,op);
}else {
// 生成新的使用登记编号,使用登记证 修改设备的使用登记信息表,使用单位名称,使用单位统一信用代码,使用登记证编号,更新ES
LambdaQueryWrapper<JgChangeRegistrationUnitEq> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, dto.getSequenceNbr());
List<JgChangeRegistrationUnitEq> jgChangeRegistrationUnitEqs = JgChangeRegistrationUnitEqMapper.selectList(queryWrapper);
for (JgChangeRegistrationUnitEq jgChangeRegistrationUnitEq : jgChangeRegistrationUnitEqs) {
String equipId = jgChangeRegistrationUnitEq.getEquId();
LambdaQueryWrapper<OtherInfo> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(OtherInfo::getRecord, equipId);
OtherInfo tzsJgOtherInfo = tzsJgOtherInfoMapper.selectOne(queryWrapper1);
if (ObjectUtils.isNotEmpty(tzsJgOtherInfo)) {
LambdaQueryWrapper<UseInfo> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(UseInfo::getRecord, equipId);
UseInfo useInfo = useInfoMapper.selectOne(queryWrapper2);
if (ObjectUtils.isNotEmpty(useInfo)) {
useInfo.setUseUnitName(registration.getNewUseUnitName());
useInfo.setUseUnitCreditCode(registration.getNewUseUnitCreditCode());
useInfoMapper.updateById(useInfo);
}
//修改ES中使用单位信息和使用单位代码
Map<String, Map<String, Object>> resultMap = new HashMap<>();
Map<String, Object> map1 = new HashMap<>();
String[] companyCode = registration.getNewUseUnitCreditCode().split("_");
map1.put("USE_UNIT_CREDIT_CODE", companyCode.length > 1 ? companyCode[1] : registration.getNewUseUnitCreditCode());
map1.put("USE_UNIT_NAME", registration.getNewUseUnitName());
map1.put("REC_DATE", new Date());// 更新时间,设备筛选时排在前面 bug-21476
resultMap.put(equipId, map1);
tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap);
//修改各类告知列表,置为废弃
this.updataInvalidStatusByHistory(equipId, registration.getApplyNo());
}
//修改ES中使用单位信息和使用单位代码
Map<String, Map<String, Object>> resultMap = new HashMap<>();
Map<String, Object> map1 = new HashMap<>();
String[] companyCode = registration.getNewUseUnitCreditCode().split("_");
map1.put("USE_UNIT_CREDIT_CODE", companyCode.length > 1 ? companyCode[1] : registration.getNewUseUnitCreditCode());
map1.put("USE_UNIT_NAME", registration.getNewUseUnitName());
map1.put("REC_DATE", new Date());// 更新时间,设备筛选时排在前面 bug-21476
resultMap.put(equipId, map1);
tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap);
//修改各类告知列表,置为废弃
this.updataInvalidStatusByHistory(equipId, registration.getApplyNo());
}
}
registration.setNextTaskId(nextTaskId);
updateTaskModel(registration, op);
//新增使用登记证和设备变更记录
this.saveRecord(registration);
JgRegistrationHistory history = registrationHistoryService.lambdaQuery()
.eq(JgRegistrationHistory::getCurrentDocumentId, registration.getApplyNo())
.eq(JgRegistrationHistory::getIsDelete, false)
.one();
JSONArray historyJson = JSON.parseArray(history.getChangeData());
List<String> ids = historyJson.stream().map(v -> JSON.parseObject(v.toString()).getString("sequenceNbr")).collect(Collectors.toList());
List<JgUseRegistrationManage> list = useRegistrationManageService.lambdaQuery().in(BaseEntity::getSequenceNbr, ids).list();
for (JgUseRegistrationManage registrationManage : list) {
//修改使用登记证管理使用单位地址、使用单位代码、接收机构、接收机构公司代码、办理日期、使用单位地址
registrationManage.setUseUnitName(registration.getNewUseUnitName());
registrationManage.setUseUnitCreditCode(registration.getNewUseUnitCreditCode());
registrationManage.setReceiveOrgName(registration.getReceiveOrgName());
registrationManage.setReceiveCompanyCode(registration.getReceiveOrgCode());
registrationManage.setAuditPassDate(registration.getAuditPassDate());
registrationManage.setVersion(registrationManage.getVersion() + 1);
registrationManage.setChangeReason(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getName());
if (!ObjectUtils.isEmpty(registration.getNewUseUnitCreditCode())) {//回填新单位地址
TzBaseEnterpriseInfo useCodeResult = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_unit_code", registration.getNewUseUnitCreditCode()));
if (useCodeResult != null) {
registrationManage.setUseUnitAddress(useCodeResult.getAddress());
registration.setNextTaskId(nextTaskId);
updateTaskModel(registration, op);
//新增使用登记证和设备变更记录
this.saveRecord(registration);
JgRegistrationHistory history = registrationHistoryService.lambdaQuery()
.eq(JgRegistrationHistory::getCurrentDocumentId, registration.getApplyNo())
.eq(JgRegistrationHistory::getIsDelete, false)
.one();
JSONArray historyJson = JSON.parseArray(history.getChangeData());
List<String> ids = historyJson.stream().map(v -> JSON.parseObject(v.toString()).getString("sequenceNbr")).collect(Collectors.toList());
List<JgUseRegistrationManage> list = useRegistrationManageService.lambdaQuery().in(BaseEntity::getSequenceNbr, ids).list();
for (JgUseRegistrationManage registrationManage : list) {
//修改使用登记证管理使用单位地址、使用单位代码、接收机构、接收机构公司代码、办理日期、使用单位地址
registrationManage.setUseUnitName(registration.getNewUseUnitName());
registrationManage.setUseUnitCreditCode(registration.getNewUseUnitCreditCode());
registrationManage.setReceiveOrgName(registration.getReceiveOrgName());
registrationManage.setReceiveCompanyCode(registration.getReceiveOrgCode());
registrationManage.setAuditPassDate(registration.getAuditPassDate());
registrationManage.setVersion(registrationManage.getVersion() + 1);
registrationManage.setChangeReason(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getName());
if (!ObjectUtils.isEmpty(registration.getNewUseUnitCreditCode())) {//回填新单位地址
TzBaseEnterpriseInfo useCodeResult = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_unit_code", registration.getNewUseUnitCreditCode()));
if (useCodeResult != null) {
registrationManage.setUseUnitAddress(useCodeResult.getAddress());
}
}
}
useRegistrationManageService.updateBatchById(list);
}
useRegistrationManageService.updateBatchById(list);
} else {
registration.setNextExecutorIds(String.join(",", roleList));
if (!ObjectUtils.isEmpty(registration.getInstanceStatus())) {
......@@ -1069,6 +1265,203 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
}
/**
* 处理工业管道
* @param dto
* @param nextTaskId
* @param registration
*/
private void dealProjectContraption(JgChangeRegistrationUnitDto dto, String nextTaskId, JgChangeRegistrationUnit registration,String op) {
List<Map<String, Object>> projectContraptionList = dto.getProjectContraptionList();
if(CollUtil.isEmpty(projectContraptionList)){
throw new BadRequest("工程/装置列表为空");
}
registration.setNextTaskId(nextTaskId);
updateTaskModel(registration, op);
for (Map<String, Object> map : projectContraptionList) {
String useRegistrationCode = (String)map.get("useRegistrationCode");
String sequenceNbr = (String) map.get("sequenceNbr");
LambdaQueryWrapper<IdxBizJgProjectContraption> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IdxBizJgProjectContraption::getUseRegistrationCode,useRegistrationCode)
.isNotNull(IdxBizJgProjectContraption::getUseRegistrationCode)
.eq(BaseEntity::getIsDelete,false);
List<IdxBizJgProjectContraption> jgProjectContraptions = projectContraptionService.list(wrapper);
if(CollectionUtils.isEmpty(jgProjectContraptions)){
throw new BadRequest("使用登记证编号:"+useRegistrationCode+"对应的工程/装置列表不存在");
}
//如果工程装置对应一个证就直接变更给新单位 否则重新生成一个登记证
if(jgProjectContraptions.size() == 1){
IdxBizJgProjectContraption idxBizJgProjectContraption = jgProjectContraptions.get(0);
idxBizJgProjectContraption.setUseUnitName(registration.getNewUseUnitName());
idxBizJgProjectContraption.setUseUnitCreditCode(registration.getNewUseUnitCreditCode());
projectContraptionService.updateById(idxBizJgProjectContraption);
//获取使用登记证
LambdaQueryWrapper<JgUseRegistrationManage> useRegistrationManageWrapper = new LambdaQueryWrapper<>();
useRegistrationManageWrapper.eq(JgUseRegistrationManage::getUseRegistrationCode,useRegistrationCode)
.isNotNull(JgUseRegistrationManage::getUseRegistrationCode)
.eq(JgUseRegistrationManage::getCertificateStatus,"已登记")
.eq(BaseEntity::getIsDelete,false);
JgUseRegistrationManage registrationManage = useRegistrationManageService.getBaseMapper().selectOne(useRegistrationManageWrapper);
//修改使用登记证管理使用单位地址、使用单位代码、接收机构、接收机构公司代码、办理日期、使用单位地址
registrationManage.setUseUnitName(registration.getNewUseUnitName());
registrationManage.setUseUnitCreditCode(registration.getNewUseUnitCreditCode());
registrationManage.setReceiveOrgName(registration.getReceiveOrgName());
registrationManage.setReceiveCompanyCode(registration.getReceiveOrgCode());
registrationManage.setAuditPassDate(registration.getAuditPassDate());
registrationManage.setVersion(registrationManage.getVersion() + 1);
registrationManage.setChangeReason(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getName());
if (!ObjectUtils.isEmpty(registration.getNewUseUnitCreditCode())) {//回填新单位地址
TzBaseEnterpriseInfo useCodeResult = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_unit_code", registration.getNewUseUnitCreditCode()));
if (useCodeResult != null) {
registrationManage.setUseUnitAddress(useCodeResult.getAddress());
}
}
useRegistrationManageService.updateById(registrationManage);
//新增使用登记证和设备变更记录
this.saveRecordByProjectContraption(registrationManage,registration);
//通过装置Id查询出设备进行更新 更新其他关联表
this.updateRelationTable(idxBizJgProjectContraption.getSequenceNbr(),registration,Boolean.FALSE,null);
} else {
IdxBizJgProjectContraption idxBizJgProjectContraption = projectContraptionService.getBaseMapper().selectById(Long.valueOf(sequenceNbr));
//查询使用登记表eq 查询和装置关联的管道,取第一个用于生成登记编号
LambdaQueryWrapper<JgChangeRegistrationUnitEq> registrationUnitEqWrapper = new LambdaQueryWrapper<>();
registrationUnitEqWrapper.eq(JgChangeRegistrationUnitEq::getProjectContraptionId,idxBizJgProjectContraption.getSequenceNbr())
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId,registration.getSequenceNbr())
.eq(JgChangeRegistrationUnitEq::getIsDelete,false);
List<JgChangeRegistrationUnitEq> changeRegistrationUnitEqs = registrationUnitEqService.list(registrationUnitEqWrapper);
if(CollUtil.isEmpty(changeRegistrationUnitEqs)){
throw new BadRequest("使用登记表没有找到工程/装置对应的信息");
}
//重新生成使用登记证
LambdaQueryWrapper<JgUseRegistrationManage> useRegistrationManageWrapper = new LambdaQueryWrapper<>();
useRegistrationManageWrapper.eq(JgUseRegistrationManage::getUseRegistrationCode,useRegistrationCode)
.isNotNull(JgUseRegistrationManage::getUseRegistrationCode)
.eq(JgUseRegistrationManage::getCertificateStatus,"已登记")
.eq(BaseEntity::getIsDelete,false);
List<JgUseRegistrationManage> registrationManages = useRegistrationManageService.getBaseMapper().selectList(useRegistrationManageWrapper);
if(CollUtil.isEmpty(registrationManages)){
throw new BadRequest("使用登记编号为:"+useRegistrationCode+"不存在");
}
if(registrationManages.size()!=1){
throw new BadRequest("使用登记编号为:"+useRegistrationCode+"有重复数据,请排查");
}
JgUseRegistrationManage registrationManage=registrationManages.get(0);
registrationManage.setSequenceNbr(sequence.nextId());
String code = commonServiceImpl.generateRegistrationCode(changeRegistrationUnitEqs.get(0).getEquId(), idxBizJgProjectContraption.getSupervisoryCode(),
registrationManage.getReceiveCompanyCode(), true);
registrationManage.setUseRegistrationCode(code);
//修改使用登记证管理使用单位地址、使用单位代码、接收机构、接收机构公司代码、办理日期、使用单位地址
registrationManage.setUseUnitName(registration.getNewUseUnitName());
registrationManage.setUseUnitCreditCode(registration.getNewUseUnitCreditCode());
registrationManage.setReceiveOrgName(registration.getReceiveOrgName());
registrationManage.setReceiveCompanyCode(registration.getReceiveOrgCode());
registrationManage.setAuditPassDate(registration.getAuditPassDate());
registrationManage.setVersion(1);
registrationManage.setChangeReason(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getName());
if (!ObjectUtils.isEmpty(registration.getNewUseUnitCreditCode())) {//回填新单位地址
TzBaseEnterpriseInfo useCodeResult = tzBaseEnterpriseInfoMapper.selectOne(new QueryWrapper<TzBaseEnterpriseInfo>().eq("use_unit_code", registration.getNewUseUnitCreditCode()));
if (useCodeResult != null) {
registrationManage.setUseUnitAddress(useCodeResult.getAddress());
}
}
useRegistrationManageService.save(registrationManage);
//更新装置表
idxBizJgProjectContraption.setUseRegistrationCode(code);
idxBizJgProjectContraption.setUseUnitName(registration.getNewUseUnitName());
idxBizJgProjectContraption.setUseUnitCreditCode(registration.getNewUseUnitCreditCode());
projectContraptionService.updateById(idxBizJgProjectContraption);
//新增使用登记证和设备变更记录
this.saveRecordByProjectContraption(registrationManage,registration);
//通过装置Id查询出设备进行更新 更新其他关联表
this.updateRelationTable(idxBizJgProjectContraption.getSequenceNbr(),registration,Boolean.TRUE,code);
}
}
}
/**
* 更新关系表
* @param sequenceNbr
* @param registration
* @param isNewUseOrgCode
* @param useOrgCode
*/
private void updateRelationTable(Long sequenceNbr, JgChangeRegistrationUnit registration, Boolean isNewUseOrgCode,String useOrgCode) {
LambdaQueryWrapper<JgChangeRegistrationUnitEq> unitEqWrapper = new LambdaQueryWrapper<>();
unitEqWrapper.eq(JgChangeRegistrationUnitEq::getProjectContraptionId,sequenceNbr)
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId,registration.getSequenceNbr())
.eq(JgChangeRegistrationUnitEq::getIsDelete,false);
List<JgChangeRegistrationUnitEq> changeRegistrationUnitEqs = registrationUnitEqService.list();
if(!CollectionUtils.isEmpty(changeRegistrationUnitEqs)){
for (JgChangeRegistrationUnitEq jgChangeRegistrationUnitEq : changeRegistrationUnitEqs) {
String equipId = jgChangeRegistrationUnitEq.getEquId();
LambdaQueryWrapper<OtherInfo> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(OtherInfo::getRecord, equipId);
OtherInfo tzsJgOtherInfo = tzsJgOtherInfoMapper.selectOne(queryWrapper1);
if (ObjectUtils.isNotEmpty(tzsJgOtherInfo)) {
LambdaQueryWrapper<UseInfo> queryWrapper2 = new LambdaQueryWrapper<>();
queryWrapper2.eq(UseInfo::getRecord, equipId);
UseInfo useInfo = useInfoMapper.selectOne(queryWrapper2);
if (ObjectUtils.isNotEmpty(useInfo)) {
useInfo.setUseUnitName(registration.getNewUseUnitName());
useInfo.setUseUnitCreditCode(registration.getNewUseUnitCreditCode());
useInfoMapper.updateById(useInfo);
}
//修改ES中使用单位信息和使用单位代码
Map<String, Map<String, Object>> resultMap = new HashMap<>();
Map<String, Object> map1 = new HashMap<>();
String[] companyCode = registration.getNewUseUnitCreditCode().split("_");
map1.put("USE_UNIT_CREDIT_CODE", companyCode.length > 1 ? companyCode[1] : registration.getNewUseUnitCreditCode());
map1.put("USE_UNIT_NAME", registration.getNewUseUnitName());
map1.put("REC_DATE", new Date());// 更新时间
if(Boolean.TRUE.equals(isNewUseOrgCode)){
map1.put("USE_ORG_CODE", useOrgCode);
}
resultMap.put(equipId, map1);
tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap);
//修改各类告知列表,置为废弃
this.updataInvalidStatusByHistory(equipId, registration.getApplyNo());
}
}
}
}
/**
* 保存装置单位变更记录
* @param registrationManage
*/
private void saveRecordByProjectContraption(JgUseRegistrationManage registrationManage,JgChangeRegistrationUnit registrationUnit) {
List<JgChangeRegistrationUnitEq> eqList = registrationUnitEqService.lambdaQuery().eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, registrationManage.getSequenceNbr()).list();
List<JgCertificateChangeRecordEq> changeRecordEqList = new ArrayList<>();
JgCertificateChangeRecord changeRecord = new JgCertificateChangeRecord();
long nextId = sequence.nextId();
changeRecord.setApplyNo(registrationManage.getApplyNo());//申请编号
changeRecord.setReceiveOrgName(registrationManage.getReceiveOrgName());//接收机构/登记机关
changeRecord.setAuditPassDate(registrationUnit.getApplyDate());//办理日期
changeRecord.setRegType("单位变更登记");//登记类别
changeRecord.setRegDate(registrationUnit.getCreateDate());//申请日期
changeRecord.setChangeContent(this.buildRecordContent(registrationUnit));//变更内容
changeRecord.setUseRegistrationCode(registrationManage.getUseRegistrationCode());//使用登记编号
changeRecord.setReceiveCompanyCode(registrationUnit.getReceiveCompanyCode());//接收机构公司代码
changeRecord.setCertificateNo(registrationManage.getCertificateNo());//登记证书唯一码
changeRecord.setUseUnitCreditCode(registrationUnit.getNewUseUnitCreditCode());//使用单位统一信用代码
changeRecord.setUseUnitName(registrationUnit.getNewUseUnitName());//使用单位名称
changeRecord.setEquCategory(registrationManage.getEquCategory());//设备类别编码
changeRecord.setCreateDate(new Date());
changeRecord.setSequenceNbr(nextId);
for (JgChangeRegistrationUnitEq unitEq : eqList) {
JgCertificateChangeRecordEq changeRecordEq = new JgCertificateChangeRecordEq();
changeRecordEq.setChangeRecordId(String.valueOf(nextId));//登记证记录主键
changeRecordEq.setEquId(unitEq.getEquId());//设备主键
changeRecordEqList.add(changeRecordEq);
}
certificateChangeRecordService.save(changeRecord);
if (!changeRecordEqList.isEmpty()) {
certificateChangeRecordEqService.saveBatch(changeRecordEqList);
}
}
/**
* 删除 redis校验重复引用设备的数据
*/
private void delRepeatUseEquipData(String applyNo, String status, String companyCode) {
......@@ -1082,25 +1475,45 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
return;
}
List<Long> registrationIdList = new ArrayList<>();
List<String> projectContraptionIdList = new ArrayList<>();
//根据使用登记证查询设备
for (Object o : registrationList) {
JSONObject parseObject = JSON.parseObject(o.toString());
if (parseObject.containsKey("sequenceNbr") && ObjectUtils.isNotEmpty(parseObject.get("sequenceNbr")) &&
canConvertToLong(parseObject.get("sequenceNbr").toString())) {
registrationIdList.add(Long.parseLong(parseObject.get("sequenceNbr").toString()));
projectContraptionIdList.add(parseObject.get("sequenceNbr").toString());
}
}
if (CollectionUtils.isEmpty(registrationIdList)) {
return;
}
List<JSONObject> equList = registrationManageService.queryEquByCertificateSeqList(registrationIdList);
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(equList)) {
return;
}
List<String> records = new ArrayList<>();
for (JSONObject jsonObject : equList) {
records.add(jsonObject.getString("SEQUENCE_NBR"));
String equListCode = JSON.parseObject(registrationList.get(0).toString()).getString("equList");
if (PipelineEnum.PRESSURE_PIPELINE.getCode().equals(equListCode)) {
JgChangeRegistrationUnit registrationUnit = this.lambdaQuery().eq(JgChangeRegistrationUnit::getApplyNo, applyNo)
.eq(JgChangeRegistrationUnit::getIsDelete, false)
.one();
if(Objects.nonNull(registrationUnit)){
LambdaQueryWrapper<JgChangeRegistrationUnitEq> wrapper = new LambdaQueryWrapper<>();
wrapper.in(JgChangeRegistrationUnitEq::getProjectContraptionId,projectContraptionIdList)
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId,registrationUnit.getSequenceNbr())
.eq(JgChangeRegistrationUnitEq::getIsDelete,false);
List<JgChangeRegistrationUnitEq> changeRegistrationUnitEqs = registrationUnitEqService.list(wrapper);
if(CollUtil.isNotEmpty(changeRegistrationUnitEqs)){
changeRegistrationUnitEqs.forEach(item->records.add(item.getEquId()));
}
}
}else {
List<JSONObject> equList = registrationManageService.queryEquByCertificateSeqList(registrationIdList);
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(equList)) {
return;
}
for (JSONObject jsonObject : equList) {
records.add(jsonObject.getString("SEQUENCE_NBR"));
}
}
if (NOT_FLOWING_STATE.contains(status)) {
EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
......@@ -1590,4 +2003,272 @@ public class JgChangeRegistrationUnitServiceImpl extends BaseService<JgChangeReg
}
});
}
/**
* 保存工业管道的单位变更
* @param submitType
* @param map
* @param reginParams
* @return
*/
public List<JgChangeRegistrationUnitDto> saveUnitByProjectContraption(String submitType, JSONObject map, ReginParams reginParams) {
JgChangeRegistrationUnitDto model = BeanUtil.toBeanIgnoreError(map.get("changeRegisInfo"), JgChangeRegistrationUnitDto.class);
String[] taskName = new String[]{"流程结束"};
// 字段转换
convertField(model);
// 获取单位变更装置列表
List<Map<String, Object>> projectContraptionList = model.getProjectContraptionList();
if (CollectionUtils.isEmpty(projectContraptionList)) {
throw new BadRequest("工程/装置列表不能为空");
}
//根据使用登记证查询设备
List<String> registrationNoList = new ArrayList<>();//使用登记证编号
Map<String,String> useRegistrationCodeMap = new HashMap<>();
for (Map<String, Object> objectMap : projectContraptionList) {
if (objectMap.containsKey("useRegistrationCode") && ObjectUtils.isNotEmpty(objectMap.get("useRegistrationCode"))) {
registrationNoList.add(objectMap.get("useRegistrationCode").toString());
useRegistrationCodeMap.put(objectMap.get("sequenceNbr").toString(),objectMap.get("useRegistrationCode").toString());
}
}
//查询装置下的管道信息
List<Map<String, Object>> deviceList = this.queryPipelineList(projectContraptionList);
if(CollUtil.isEmpty(deviceList)){
throw new BadRequest("工程/装置下没有管道信息");
}
if (SUBMIT_TYPE_FLOW.equals(submitType)) {//放在最后面防止前面有异常
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
CompanyBo company = reginParams.getCompany();
deviceList.forEach(jsonObject -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.equipRepeatUsedCheck(String.valueOf(jsonObject.get("record")),
CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
company.getCompanyCode().split("_")[1] :
company.getCompanyCode()));
}
// 获取单位变更单号
ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.DWBG.getCode(), 1);
List<String> applyNoList = listResponseModel.getResult();
if (CollectionUtils.isEmpty(applyNoList)) {
log.error("生成申请变更单位编码失败");
return new ArrayList<>();
}
ArrayList<String> roleListFirst = new ArrayList<>();
List<String> instanceIdList = new ArrayList<>();
List<String> nextExecutorUserIds = new ArrayList<>();
List<String> taskIds = new ArrayList<>();
List<WorkflowResultDto> workflowResultDtos = new ArrayList<>();
String nextExecutorRoleIds = "";
// 判断当前是否为提交
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
//发起流程
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(String.valueOf(new Date().getTime()));
dto.setNextExecuteUserCompanyCode(model.getReceiveCompanyCode());
dto.setCompleteFirstTask(true);
list.add(dto);
actWorkflowBatchDTO.setProcess(list);
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
workflowResultDtos = commonServiceImpl.buildWorkFlowInfo(processTaskDTOS);
nextExecutorRoleIds = workflowResultDtos.get(0).getNextExecutorRoleIds();
nextExecutorUserIds.add(workflowResultDtos.get(0).getNextExecutorUserIds());
for (WorkflowResultDto processTaskDTO : workflowResultDtos) {
instanceIdList.add(processTaskDTO.getInstanceId());
taskIds.add(processTaskDTO.getNextTaskId());
}
}
String finalNextExecutorRoleIds = nextExecutorRoleIds;
CompanyBo companyBo = commonServiceImpl.getOneCompany(model.getReceiveCompanyCode());
model.setApplyNo(applyNoList.get(0));
model.setReceiveCompanyOrgCode(companyBo.getOrgCode());
model.setCreateUserId(RequestContext.getExeUserId());
model.setApplyDate(new Date());
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
model.setNextExecutorIds(finalNextExecutorRoleIds);
model.setInstanceStatus(String.join(",", roleListFirst));
model.setPromoter(reginParams.getUserModel().getUserId());
model.setStatus(taskName[0]);
}
if (!CollectionUtils.isEmpty(nextExecutorUserIds)) {
model.setNextExecuteUserIds(nextExecutorUserIds.get(0));
}
if (!CollectionUtils.isEmpty(instanceIdList)) {
model.setInstanceId(instanceIdList.get(0));
model.setStatus(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass());
} else {
model.setStatus(WorkFlowStatusEnum.UNITCHANGE_SUBMIT.getPass());
}
if (!CollectionUtils.isEmpty(taskIds)) {
model.setNextTaskId(taskIds.get(0));
}
model.setSequenceNbr(sequence.nextId());
model.setCreateDate(new Date());
model.setCreateUserName(reginParams.getUserModel().getRealName());
model.setUseRegistCode(String.join(",", registrationNoList));
model.setEquList(projectContraptionList.get(0).get("equListName").toString());
JgChangeRegistrationUnit registrationUnit = new JgChangeRegistrationUnit();
BeanUtils.copyProperties(model, registrationUnit);
setNewUnitInfo(reginParams, registrationUnit);
JgChangeRegistrationUnitMapper.insert(registrationUnit);
List<TaskModelDto> modelDtos = new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
TaskModelDto taskModelDto = new TaskModelDto();
TaskMessageDto ta = new TaskMessageDto();
ta.setInstanceId(registrationUnit.getInstanceId());
ta.setStatus(registrationUnit.getStatus());
ta.setPromoter(registrationUnit.getPromoter());
ta.setNextExecuteUserIds(registrationUnit.getNextExecuteUserIds());
ta.setSequenceNbr(registrationUnit.getSequenceNbr());
ta.setNextTaskId(registrationUnit.getNextTaskId());
taskModelDto.setModel(ta);
taskModelDto.setFlowCreateDate(new Date());
taskModelDto.setTaskName(workflowResultDtos.get(0).getNextTaskName());
taskModelDto.setFlowCode(registrationUnit.getNextTaskId());
taskModelDto.setTaskContent(this.buildTaskContent(registrationUnit));
taskModelDto.setTaskCode(registrationUnit.getApplyNo());
taskModelDto.setTaskType(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getCode());
taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getName());
taskModelDto.setRelationId(registrationUnit.getInstanceId());
taskModelDto.setExecuteUserIds(workflowResultDtos.get(0).getNextExecutorUserIds());
taskModelDto.setTaskStatusLabel("未处理");
taskModelDto.setFlowStatus(commonServiceImpl.getDictionaryCodeByName(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass()));
taskModelDto.setFlowStatusLabel(WorkFlowStatusEnum.UNITCHANGE_RECEIVE.getPass());
taskModelDto.setStartUserId(RequestContext.getExeUserId());
taskModelDto.setStartUser(workflowResultDtos.get(0).getStartUserName());
taskModelDto.setStartUserCompanyName(reginParams.getCompany().getCompanyName());
taskModelDto.setStartDate(new Date());
taskModelDto.setNextExecuteUser(workflowResultDtos.get(0).getNextExecutorRoleIds());
modelDtos.add(taskModelDto);
} else {
TaskModelDto taskModelDto = new TaskModelDto();
//行数据
taskModelDto.setModel(registrationUnit);
//摘要 按原有规则组装
taskModelDto.setTaskContent(this.buildTaskContent(registrationUnit));
//申请单号
taskModelDto.setTaskCode(registrationUnit.getApplyNo());
//业务类型枚举code值
taskModelDto.setTaskType(BusinessTypeEnum.JG_COMPANY_CHANGE_REGISTRATION.getCode());
////业务主键
taskModelDto.setRelationId(registrationUnit.getSequenceNbr() + "");
modelDtos.add(taskModelDto);
// }
}
commonServiceImpl.saveExecuteFlowData2Redis(registrationUnit.getInstanceId(), buildInstanceRuntimeData(registrationUnit));
commonServiceImpl.buildTaskModel(modelDtos);
List<JgChangeRegistrationUnitEq> jgRelationEquipList = new ArrayList<>();
deviceList.forEach(device -> {
JgChangeRegistrationUnitEq unitEq = new JgChangeRegistrationUnitEq();
if (device.containsKey("projectContraptionId")) {
String projectContraptionId = (String)device.get("projectContraptionId");
unitEq.setRegistrationCertificate(useRegistrationCodeMap.get(projectContraptionId));
unitEq.setProjectContraptionId(projectContraptionId);
}
if (device.containsKey("record")) {
unitEq.setEquId((String) device.get("record"));//设备主键
}
unitEq.setUnitChangeRegistrationId(registrationUnit.getSequenceNbr().toString());//单位变更业务主键
unitEq.setDeviceInfo(JSON.toJSONString(device));//设备信息json
jgRelationEquipList.add(unitEq);
});
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
//登记类别
jgRegistrationHistory.setRegistrationClass("单位变更登记");
jgRegistrationHistory.setCurrentDocumentId(registrationUnit.getApplyNo());
//使用登记证历史数据
jgRegistrationHistory.setChangeData(JSON.toJSONString(projectContraptionList));
//先删除之前设备关系数据,在插入最新设备关系数据
registrationUnitEqService.getBaseMapper().delete(new LambdaQueryWrapper<JgChangeRegistrationUnitEq>()
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId, registrationUnit.getSequenceNbr()));
registrationUnitEqService.saveBatch(jgRelationEquipList);
//先删除之前未提交的历史使用登记证信息,在插入最新的使用登记证信息
registrationHistoryService.getBaseMapper().delete(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, registrationUnit.getApplyNo()));
registrationHistoryService.save(jgRegistrationHistory);
return Collections.singletonList(model);
}
/**
* 获取装置下的管道信息
* @param projectContraptionList
* @return
*/
public List<Map<String, Object>> queryPipelineList(List<Map<String, Object>> projectContraptionList) {
List<Map<String, Object>> result = new ArrayList<>();
projectContraptionList.forEach(item-> result.addAll(projectContraptionService.getBaseMapper().selectEquipList((String) item.get("sequenceNbr"))));
return result;
}
public Map<String, Map<String, Object>> detailsByProjectContraption(String sequenceNbr,String applyNo) {
String[] jsonFields = {"productPhoto", "otherAccessories", "productQualificationCertificate", "startLatitudeLongitude",
"endLatitudeLongitude"};
Map<String, Map<String, Object>> resultMap = new HashMap<>();
if (StringUtils.isEmpty(sequenceNbr)) {
resultMap.put("equipInfo", Collections.emptyMap());
return resultMap;
}
JgChangeRegistrationUnit registrationUnit = this.lambdaQuery().eq(JgChangeRegistrationUnit::getApplyNo, applyNo)
.eq(JgChangeRegistrationUnit::getIsDelete, false)
.one();
if(Objects.isNull(registrationUnit)){
resultMap.put("equipInfo", Collections.emptyMap());
return resultMap;
}
//如果单位变更关系表没有管道数据返回空
LambdaQueryWrapper<JgChangeRegistrationUnitEq> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(JgChangeRegistrationUnitEq::getProjectContraptionId,sequenceNbr)
.eq(JgChangeRegistrationUnitEq::getUnitChangeRegistrationId,registrationUnit.getSequenceNbr())
.eq(JgChangeRegistrationUnitEq::getIsDelete,false);
List<JgChangeRegistrationUnitEq> changeRegistrationUnitEqs = registrationUnitEqService.list(wrapper);
if(CollUtil.isEmpty(changeRegistrationUnitEqs)){
resultMap.put("equipInfo", Collections.emptyMap());
return resultMap;
}
JgChangeRegistrationUnit jgChangeRegistrationUnit = this.baseMapper.selectById(changeRegistrationUnitEqs.get(0).getUnitChangeRegistrationId());
//如果历史表没有数据返回空
Map<String, Object> projectContraptionDetail = new HashMap<>();
JgRegistrationHistory history = registrationHistoryService.lambdaQuery()
.eq(JgRegistrationHistory::getCurrentDocumentId, jgChangeRegistrationUnit.getApplyNo())
.eq(JgRegistrationHistory::getIsDelete, false)
.one();
JSONArray historyJson = JSON.parseArray(history.getChangeData());
if(CollUtil.isEmpty(historyJson)){
resultMap.put("equipInfo", Collections.emptyMap());
return resultMap;
}
historyJson.forEach(item->{
JSONObject jsonObject = JSON.parseObject(item.toString());
if(sequenceNbr.equals(jsonObject.getString("sequenceNbr"))){
projectContraptionDetail.putAll(jsonObject);
}
});
Map<String, Object> projectContraptionMap = Optional.of(projectContraptionDetail)
.map(map -> {
commonServiceImpl.convertStringToJsonobject(map, jsonFields);
List<JSONObject> pipelineList= new ArrayList<>();
changeRegistrationUnitEqs.forEach(item-> {
JSONObject jsonObject = JSON.parseObject(item.getDeviceInfo());
if(jsonObject.containsKey("uscDate")&&!StringUtils.isEmpty(jsonObject.get("uscDate"))){
// 转换为 Instant 并指定时区(默认系统时区)
Instant instant = Instant.ofEpochMilli( Long.parseLong(jsonObject.getString("uscDate")));
ZoneId zoneId = ZoneId.systemDefault();
// 定义日期格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
.withZone(zoneId);
jsonObject.put("uscDate",formatter.format(instant));
}
pipelineList.add(jsonObject);
});
map.put("pipelineList", pipelineList);
return map;
}).orElse(Collections.emptyMap());
resultMap.put("equipInfo", projectContraptionMap);
return resultMap;
}
}
\ No newline at end of file
......@@ -4,12 +4,15 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapBuilder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.util.StringUtil;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
......@@ -30,8 +33,11 @@ import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICompensateFlowDataOfRedis;
import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService;
import com.yeejoin.amos.boot.module.ymt.api.common.BaseException;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
......@@ -62,6 +68,8 @@ import java.util.stream.Collectors;
import java.util.stream.IntStream;
import java.util.stream.Stream;
import static java.util.stream.Collectors.toSet;
/**
* 设备移交服务实现类
*
......@@ -73,18 +81,24 @@ import java.util.stream.Stream;
@RequiredArgsConstructor(onConstructor_ = @Autowired)
public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto, JgEquipTransfer, JgEquipTransferMapper> implements IJgEquipTransferService, ICompensateFlowDataOfRedis<JgEquipTransfer> {
private static final String EQUIP_TRANSFER_PROCESS_KEY = "equipmentHandover";
private static final String record = "record";
private static final String sequenceNbr = "sequenceNbr";
private final List<String> NOT_FLOWING_STATE = Arrays.asList("6610", "6614", "6615", "6617", "6616");
private static final String SUBMIT_TYPE_FLOW = "1";
private final JgEquipTransferEqMapper jgEquipTransferEqMapper;
private final EquipmentCategoryMapper equipmentCategoryMapper;
;
private final JgEquipTransferEqServiceImpl equipTransferEqService;
private final RedisUtils redisUtils;
private final TzsServiceFeignClient tzsServiceFeignClient;
private final IdxBizJgOtherInfoServiceImpl idxBizJgOtherInfoServiceImpl;
private final IdxBizJgRegisterInfoServiceImpl idxBizJgRegisterInfoServiceImpl;
private final IdxBizJgUseInfoServiceImpl idxBizJgUseInfoServiceImpl;
private final CmWorkflowServiceImpl cmWorkflowService;
private final IJgInstallationNoticeService jrmInstallationNoticeService;
private final IIdxBizJgRegisterInfoService idxBizJgRegisterInfoService;
private final IdxBizJgProjectContraptionServiceImpl jgProjectContraptionService;
@Lazy
private final CommonServiceImpl commonService;
......@@ -107,20 +121,31 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
JgEquipTransferDto model = JSON.parseObject(JSONObject.toJSONString(jsonObjectMap), JgEquipTransferDto.class);
convertField(model);
String equListCode = model.getEquList();
List<Map<String, Object>> deviceList = model.getDeviceList();
if (CollectionUtils.isEmpty(deviceList)) {
throw new BadRequest("请选择设备!");
}
if (SUBMIT_TYPE_FLOW.equals(submitType)) {//放在最后面防止前面有异常
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
if (SUBMIT_TYPE_FLOW.equals(submitType)) {// 放在最后面防止前面有异常
// 如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
CompanyBo company = reginParams.getCompany();
deviceList.forEach(device -> EquipUsedCheckStrategyContext.getUsedStrategy(EQUIP_TRANSFER_PROCESS_KEY)
.equipRepeatUsedCheck(String.valueOf(device.get("SEQUENCE_NBR")), CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
company.getCompanyCode().split("_")[1] :
company.getCompanyCode()));
if (EquipmentClassifityEnum.YLGD.getCode().equals(equListCode)) {
deviceList.forEach(proCon -> {
String proConSeq = String.valueOf(proCon.get(sequenceNbr));
List<Map<String, Object>> equipList = jgProjectContraptionService.getBaseMapper().selectEquipList(proConSeq);
equipList.forEach(equip -> EquipUsedCheckStrategyContext.getUsedStrategy(EQUIP_TRANSFER_PROCESS_KEY)
.equipRepeatUsedCheck(String.valueOf(equip.get(record)), CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
company.getCompanyCode().split("_")[1] :
company.getCompanyCode()));
});
} else {
deviceList.forEach(device -> EquipUsedCheckStrategyContext.getUsedStrategy(EQUIP_TRANSFER_PROCESS_KEY)
.equipRepeatUsedCheck(String.valueOf(device.get("SEQUENCE_NBR")), CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
company.getCompanyCode().split("_")[1] :
company.getCompanyCode()));
}
}
//获取申请单编号
ResponseModel<List<String>> listResponseModel = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.getCode.get(String.valueOf(jsonObjectMap.get("businessCode"))), deviceList.size());
this.handleResponseModel(listResponseModel, "告知单获取失败: ");
......@@ -135,22 +160,47 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
IntStream.range(0, deviceList.size()).forEach(i -> {
Map<String, Object> obj = deviceList.get(i);
String applyNo = applyNoList.get(i);
JgEquipTransferEq jgEquipTransferEq = buildJgEquipTransferEq(obj, applyNo);
JgEquipTransfer transfer = buildJgEquipTransfer(model, applyNo, reginParams, submitType, workflowResultList, i);
transfer.setSupervisoryCode(String.valueOf(obj.get("SUPERVISORY_CODE")));
transfer.setEquList(Objects.toString(obj.get("EQU_LIST"), ""));
transfer.setEquListCode(Objects.toString(obj.get("EQU_LIST_CODE"), ""));
transfer.setEquDefine(Objects.toString(obj.get("EQU_DEFINE"), ""));
transfer.setEquCategory(Objects.toString(obj.get("EQU_CATEGORY"), ""));
transfer.setProductName(Objects.toString(obj.get("PRODUCT_NAME"), ""));
transfer.setUseRegistCode(Objects.toString(obj.get("USE_ORG_CODE"), ""));
transfer.setUseRegistCode(Objects.toString(obj.get("USE_ORG_CODE"), ""));
transfer.setUseInnerCode(Objects.toString(obj.get("USE_INNER_CODE"), ""));
transfer.setEquAddress(Objects.toString(obj.get("ADDRESS"), ""));
transfer.setEquCode(Objects.toString(obj.get("EQU_CODE"), ""));
transferList.add(transfer);
equipTransferEqList.add(jgEquipTransferEq);
if (EquipmentClassifityEnum.YLGD.getCode().equals(equListCode)) {
String proConSeq = String.valueOf(obj.get(sequenceNbr));
IdxBizJgProjectContraption projectContraption = jgProjectContraptionService.lambdaQuery().eq(IdxBizJgProjectContraption::getSequenceNbr, proConSeq).one();
List<Map<String, Object>> equipList = jgProjectContraptionService.getBaseMapper().selectEquipList(proConSeq);
equipList.forEach(equip -> {
JgEquipTransferEq jgEquipTransferEq = new JgEquipTransferEq()
.setEquId(String.valueOf(equip.get(record)))
.setEquipTransferId(applyNo);
equipTransferEqList.add(jgEquipTransferEq);
});
List<String> records = equipList.stream().map(equ -> String.valueOf(equ.get(record))).collect(Collectors.toList());
JgEquipTransfer transfer = buildJgEquipTransfer(model, applyNo, reginParams, submitType, workflowResultList, i);
transfer.setProjectContraptionSeq(proConSeq);
transfer.setEquList(EquipmentClassifityEnum.YLGD.getName());
transfer.setEquListCode(equListCode);
transfer.setEquCategory(equipmentCategoryMapper.selectOne(new LambdaQueryWrapper<EquipmentCategory>().eq(EquipmentCategory::getCode, idxBizJgRegisterInfoServiceImpl.lambdaQuery().eq(IdxBizJgRegisterInfo::getRecord, equipList.get(0).get(record)).one().getEquCategory())).getName());
transfer.setEquDefine(equipmentCategoryMapper.selectOne(new LambdaQueryWrapper<EquipmentCategory>().eq(EquipmentCategory::getCode, idxBizJgRegisterInfoServiceImpl.lambdaQuery().eq(IdxBizJgRegisterInfo::getRecord, equipList.get(0).get(record)).one().getEquDefine())).getName());
transfer.setSupervisoryCode(org.apache.commons.lang3.StringUtils.join(idxBizJgOtherInfoServiceImpl.lambdaQuery().in(IdxBizJgOtherInfo::getRecord, records).list().stream().filter(Objects::nonNull).map(IdxBizJgOtherInfo::getSupervisoryCode).collect(Collectors.toList()), ","));
transfer.setProductName(org.apache.commons.lang3.StringUtils.join(idxBizJgRegisterInfoServiceImpl.lambdaQuery().in(IdxBizJgRegisterInfo::getRecord, records).list().stream().filter(Objects::nonNull).map(IdxBizJgRegisterInfo::getProductName).collect(Collectors.toList()), ","));
transfer.setUseRegistCode(projectContraption.getUseRegistrationCode());
transfer.setUseInnerCode(org.apache.commons.lang3.StringUtils.join(idxBizJgUseInfoServiceImpl.lambdaQuery().in(IdxBizJgUseInfo::getRecord, records).list().stream().filter(Objects::nonNull).map(IdxBizJgUseInfo::getUseInnerCode).collect(Collectors.toList()), ","));
transfer.setEquAddress(projectContraption.getAddress());
transfer.setEquCode(org.apache.commons.lang3.StringUtils.join(idxBizJgRegisterInfoServiceImpl.lambdaQuery().in(IdxBizJgRegisterInfo::getRecord, records).list().stream().filter(Objects::nonNull).map(IdxBizJgRegisterInfo::getEquCode).collect(Collectors.toList()), ","));
transferList.add(transfer);
} else {
JgEquipTransferEq jgEquipTransferEq = buildJgEquipTransferEq(obj, applyNo);
JgEquipTransfer transfer = buildJgEquipTransfer(model, applyNo, reginParams, submitType, workflowResultList, i);
transfer.setSupervisoryCode(String.valueOf(obj.get("SUPERVISORY_CODE")));
transfer.setEquList(Objects.toString(obj.get("EQU_LIST"), ""));
transfer.setEquListCode(Objects.toString(obj.get("EQU_LIST_CODE"), ""));
transfer.setEquDefine(Objects.toString(obj.get("EQU_DEFINE"), ""));
transfer.setEquCategory(Objects.toString(obj.get("EQU_CATEGORY"), ""));
transfer.setProductName(Objects.toString(obj.get("PRODUCT_NAME"), ""));
transfer.setUseRegistCode(Objects.toString(obj.get("USE_ORG_CODE"), ""));
transfer.setUseRegistCode(Objects.toString(obj.get("USE_ORG_CODE"), ""));
transfer.setUseInnerCode(Objects.toString(obj.get("USE_INNER_CODE"), ""));
transfer.setEquAddress(Objects.toString(obj.get("ADDRESS"), ""));
transfer.setEquCode(Objects.toString(obj.get("EQU_CODE"), ""));
transferList.add(transfer);
equipTransferEqList.add(jgEquipTransferEq);
}
});
baseMapper.insertBatchSomeColumn(transferList);
......@@ -165,7 +215,7 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
jgEquipTransferEqMapper.insertBatchSomeColumn(jgEquipTransferEqList);
this.updateRedisBatch(transferList);
// 创建历史数据
this.saveOrUpdateHisDataBatch(jgEquipTransferEqList);
this.saveOrUpdateHisDataBatch(equListCode, transferList, jgEquipTransferEqList);
return transferList;
}
......@@ -185,15 +235,21 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
}
}
private void saveOrUpdateHisDataBatch(List<JgEquipTransferEq> jgEquipTransferEqList) {
jgEquipTransferEqList.forEach(j -> {
commonService.saveOrUpdateHistory(BusinessTypeEnum.JG_EQUIPMENT_HANDOVER.getName(), getEquipInfoJson(j.getEquId()), j.getEquId(), j.getEquipTransferId());
});
private void saveOrUpdateHisDataBatch(String equListCode, List<JgEquipTransfer> transferList, List<JgEquipTransferEq> jgEquipTransferEqList) {
if (EquipmentClassifityEnum.YLGD.getCode().equals(equListCode)) {
transferList.forEach(transfer -> {
Map<String, Object> stringObjectMap = jgProjectContraptionService.details(transfer.getProjectContraptionSeq()).get("equipInfo");
commonService.saveOrUpdateHistory(BusinessTypeEnum.JG_EQUIPMENT_HANDOVER.getName(), new JSONObject(stringObjectMap), null, transfer.getSequenceNbr().toString());
});
} else {
jgEquipTransferEqList.forEach(j -> {
commonService.saveOrUpdateHistory(BusinessTypeEnum.JG_EQUIPMENT_HANDOVER.getName(), getEquipInfoJson(j.getEquId()), j.getEquId(), j.getEquipTransferId());
});
}
}
private JSON getEquipInfoJson(String record) {
Map<String, Object> equipMap = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(record);
;
equipMap.remove("useUnitCreditCode");
return new JSONObject(equipMap);
}
......@@ -413,7 +469,7 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
updateById(equipTransfer);
}
List<JgEquipTransferEq> jgEquipTransferEqList = jgEquipTransferEqMapper.selectList(new LambdaQueryWrapper<JgEquipTransferEq>().eq(JgEquipTransferEq::getEquipTransferId, equipTransferDto.getSequenceNbr()));
this.saveOrUpdateHisDataBatch(jgEquipTransferEqList);
this.saveOrUpdateHisDataBatch(equipTransferDto.getEquList(), Collections.singletonList(this.baseMapper.selectOne(new LambdaQueryWrapper<JgEquipTransfer>().eq(JgEquipTransfer::getSequenceNbr, equipTransferDto.getSequenceNbr()))), jgEquipTransferEqList);
if (SUBMIT_TYPE_FLOW.equals(submitType)) {//放在最后面防止前面有异常
//如果是提交,用于校验设备是否已经在流程中,如果不在标记设备已经在流程中
CompanyBo company = reginParams.getCompany();
......@@ -467,8 +523,8 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
jgEquipTransfer.setPromoter(reginParams.getUserModel().getUserId());
jgEquipTransfer.setProcessAdvice(jgEquipTransferDto.getProcessAdvice());
JgEquipTransferEq jgEquipTransferEq = jgEquipTransferEqMapper.selectOne(Wrappers.<JgEquipTransferEq>lambdaQuery().select(JgEquipTransferEq::getEquId)
.eq(JgEquipTransferEq::getEquipTransferId, jgEquipTransferDto.getSequenceNbr()));
List<JgEquipTransferEq> jgEquipTransferEqs = jgEquipTransferEqMapper.selectList(Wrappers.<JgEquipTransferEq>lambdaQuery().select(JgEquipTransferEq::getEquId)
.eq(JgEquipTransferEq::getEquipTransferId, jgEquipTransferDto.getSequenceNbr()));
TaskV2Model taskV2Model;
if ("0".equals(op)) {
......@@ -477,15 +533,24 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
jgEquipTransfer.setPromoter("");
jgEquipTransfer.setNextTaskId(null);
jgEquipTransfer.setAcceptDate(new Date());
if (jgEquipTransferEq != null) {
Map<String, Map<String, Object>> resultMap = MapBuilder.<String, Map<String, Object>>create()
.put(jgEquipTransferEq.getEquId(), MapBuilder.<String, Object>create()
.put("USC_UNIT_NAME", jgEquipTransfer.getInstallUnitName())
.put("USC_UNIT_CREDIT_CODE", jgEquipTransfer.getInstallUnitCreditCode())
.build())
.build();
tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap);
if (EquipmentClassifityEnum.YLGD.getCode().equals(jgEquipTransferDto.getEquList())) {
JgEquipTransfer transfer = this.baseMapper.selectById(jgEquipTransferDto.getSequenceNbr());
jgProjectContraptionService.lambdaUpdate()
.eq(IdxBizJgProjectContraption::getSequenceNbr, transfer.getProjectContraptionSeq())
.set(IdxBizJgProjectContraption::getUscUnitCreditCode, jgEquipTransfer.getInstallUnitCreditCode())
.set(IdxBizJgProjectContraption::getUscUnitName, jgEquipTransfer.getInstallUnitName())
.update();
}
if (jgEquipTransferEqs != null) {
jgEquipTransferEqs.forEach(equipTransferEq -> {
Map<String, Map<String, Object>> resultMap = MapBuilder.<String, Map<String, Object>>create()
.put(equipTransferEq.getEquId(), MapBuilder.<String, Object>create()
.put("USC_UNIT_NAME", jgEquipTransfer.getInstallUnitName())
.put("USC_UNIT_CREDIT_CODE", jgEquipTransfer.getInstallUnitCreditCode())
.build())
.build();
tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap);
});
}
// 上个代办改为已办
this.updateLastTodo(jgEquipTransfer, FlowStatusEnum.TO_BE_FINISHED);
......@@ -509,7 +574,7 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
//驳回
jgEquipTransfer.setPromoter("");
jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
jgEquipTransfer.setSupervisoryCode(jgEquipTransferDto.getSupervisoryCode());
// jgEquipTransfer.setSupervisoryCode(jgEquipTransferDto.getSupervisoryCode());
jgEquipTransfer.setEquList(jgEquipTransferDto.getEquList());
jgEquipTransfer.setNextTaskId(workflowResultDto.getNextTaskId());
jgEquipTransfer.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
......@@ -645,7 +710,7 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
// 兼容老数据
if (his == null) {
// 1.设备信息
Map<String, Object> equipMap = getEquipInfonNew(sequenceNbr);
Map<String, Object> equipMap = (Map<String, Object>) getEquipInfonNew(sequenceNbr);
// 2.移交业务字段信息
equipMap.putAll(equipTransferInfo);
return equipMap;
......@@ -656,7 +721,7 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
return his;
}
} else {
Map<String, Object> equipMap = getEquipInfonNew(sequenceNbr);
Map<String, Object> equipMap = (Map<String, Object>) getEquipInfonNew(sequenceNbr);
return Stream.concat(equipTransferInfo.entrySet().stream(),
equipMap.entrySet().stream())
.filter(entry -> entry.getValue() != null)
......@@ -665,16 +730,22 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
}
private Map<String, Object> getEquipInfonNew(Long sequenceNbr) {
private Object getEquipInfonNew(Long sequenceNbr) {
List<Map<String, Object>> equipmentInfos = this.baseMapper.queryEquipInformation(sequenceNbr);
Map<String, Object> equipMap = null;
if (equipmentInfos != null && !equipmentInfos.isEmpty()) {
String equId = (String) equipmentInfos.get(0).get("equId");
if (equId != null) {
equipMap = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(equId);
String equList = String.valueOf(equipmentInfos.get(0).get("equList"));
if (EquipmentClassifityEnum.YLGD.getName().equals(equList)) {
String projectContraptionSeq = String.valueOf(equipmentInfos.get(0).get("projectContraptionSeq"));
return jgProjectContraptionService.details(projectContraptionSeq).get("equipInfo");
} else {
String equId = (String) equipmentInfos.get(0).get("equId");
if (equId != null) {
return idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(equId);
}
}
}
return equipMap;
return null;
}
/**
......@@ -708,7 +779,7 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
.map(item -> {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(EQUIP_TRANSFER_PROCESS_KEY);
dto.setBusinessKey(item.get("SEQUENCE_NBR").toString());
// dto.setBusinessKey(item.get("SEQUENCE_NBR").toString());
dto.setCompleteFirstTask(Boolean.TRUE);
dto.setNextExecuteUserCompanyCode(receiveOrgCode);
return dto;
......@@ -830,7 +901,7 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
@Override
public boolean beforeCheck(JgEquipTransfer jgEquipTransfer) {
return jgEquipTransfer.getInstanceId() != null && !jgEquipTransfer.getApplyStatus().equals(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode())) &&!jgEquipTransfer.getApplyStatus().equals(String.valueOf(FlowStatusEnum.TO_BE_DISCARD.getCode()));
return jgEquipTransfer.getInstanceId() != null && !jgEquipTransfer.getApplyStatus().equals(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode())) && !jgEquipTransfer.getApplyStatus().equals(String.valueOf(FlowStatusEnum.TO_BE_DISCARD.getCode()));
}
@Override
......@@ -838,4 +909,22 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,
commonService.saveExecuteFlowData2Redis(jgEquipTransfer.getInstanceId(), this.buildInstanceRuntimeData(jgEquipTransfer));
}
public IPage<IdxBizJgProjectContraption> getJgProjectContraptionPage(String useUnitCreditCode, Page<IdxBizJgProjectContraption> page) {
if (useUnitCreditCode.contains("_")) {
useUnitCreditCode = useUnitCreditCode.split("_")[1];
}
LambdaQueryWrapper<IdxBizJgProjectContraption> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IdxBizJgProjectContraption::getUseUnitCreditCode, useUnitCreditCode)
.eq(IdxBizJgProjectContraption::getIsIntoManagement, true)
.eq(IdxBizJgProjectContraption::getEquList, "8000")
.and(w -> w
.isNull(IdxBizJgProjectContraption::getProjectContraptionParentId)
.or()
.eq(IdxBizJgProjectContraption::getProjectContraptionParentId, "")
)
.isNotNull(IdxBizJgProjectContraption::getUseRegistrationCode)
.ne(IdxBizJgProjectContraption::getUseRegistrationCode, "");
return jgProjectContraptionService.page(page, wrapper);
}
}
\ No newline at end of file
......@@ -306,12 +306,14 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
// 兼容老数据
if (hisData == null) {
Map<String, Object> detail = setNewEquipData(companyLevel, installationInfo);
this.fillingEquCategoryNameForHisData(detail, notice);
return new HashMap<String, Map<String, Object>>() {{
this.put("installationInfo", detail);
}};
} else {
hisData.putAll(installationInfo);
CommonServiceImpl.formatTime2StrDateForEquip(hisData);
this.fillingEquCategoryNameForHisData(hisData, notice);
return new HashMap<String, Map<String, Object>>() {{
this.put("installationInfo", hisData);
}};
......@@ -327,6 +329,25 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
}
}
/**
* 历史数据填充设备种类、设备类别、设备品种
* @param detail 返回json
* @param notice 当前单据
*/
private void fillingEquCategoryNameForHisData(Map<String, Object> detail, JgInstallationNotice notice) {
if(!StringUtils.isEmpty(notice.getProjectContraptionId())){
LambdaQueryWrapper<IdxBizJgProjectContraption> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BaseEntity::getSequenceNbr, notice.getProjectContraptionId());
queryWrapper.select(IdxBizJgProjectContraption::getEquListName,IdxBizJgProjectContraption::getEquCategoryName,IdxBizJgProjectContraption::getEquDefineName,BaseEntity::getSequenceNbr);
IdxBizJgProjectContraption projectContraption = projectContraptionService.getBaseMapper().selectOne(queryWrapper);
if(projectContraption != null){
detail.put("equListName", projectContraption.getEquListName());
detail.put("equCategoryName", projectContraption.getEquCategoryName());
detail.put("equDefineName", projectContraption.getEquDefineName());
}
}
}
private List<Map<String, Object>> getEquipListMaps(Iterable<ESEquipmentCategoryDto> equips) {
List<Map<String, Object>> arrayList = new ArrayList<>();
equips.forEach(equip -> {
......@@ -362,6 +383,9 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
installationInfo.put("pipelineLength", projectContraption.getPipelineLength());
installationInfo.put("projectContraptionNo", projectContraption.getProjectContraptionNo());
installationInfo.put("projectContraption", projectContraption.getProjectContraption());
installationInfo.put("equListName", projectContraption.getEquListName());
installationInfo.put("equCategoryName", projectContraption.getEquCategoryName());
installationInfo.put("equDefineName", projectContraption.getEquDefineName());
equipListMaps = projectContraptionService.getBaseMapper().selectEquipList(projectContraptionId);
equipListMaps.forEach(item ->
item.put("deviceLevel", Optional.ofNullable(dataDictionaryMapper.selectById(String.valueOf(item.get("deviceLevel"))))
......@@ -1941,6 +1965,9 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
if (!ValidationUtil.isEmpty(projectContraption.getAddress())) {
result.fluentPut("address", projectContraption.getAddress());
}
result.put("equListName", projectContraption.getEquListName());
result.put("equCategoryName", projectContraption.getEquCategoryName());
result.put("equDefineName", projectContraption.getEquDefineName());
return result;
}
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapBuilder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.util.StringUtil;
......@@ -33,24 +37,20 @@ import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.event.CancellationEvent;
import com.yeejoin.amos.boot.module.jg.biz.event.publisher.EventPublisher;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.boot.module.jg.biz.service.ICompensateFlowDataOfRedis;
import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgRegisterInfoService;
import com.yeejoin.amos.boot.module.jg.biz.service.*;
import com.yeejoin.amos.boot.module.jg.biz.utils.WordTemplateUtils;
import com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory;
import com.yeejoin.amos.boot.module.ymt.api.entity.RegistrationInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.OtherInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.SupervisoryCodeInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.*;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import io.seata.spring.annotation.GlobalTransactional;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
......@@ -75,6 +75,8 @@ import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import static com.alibaba.fastjson.JSON.toJSONString;
/**
* 改造告知服务实现类
*
......@@ -83,56 +85,59 @@ import java.util.stream.Collectors;
*/
@Service
@Slf4j
@RequiredArgsConstructor
public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, JgReformNotice, JgReformNoticeMapper> implements IJgReformNoticeService, ICompensateFlowDataOfRedis<JgReformNotice> {
private static final String SUBMIT_TYPE_FLOW = "1";
private static final String PROCESS_DEFINITION_KEY = "renovationNoticeNew";
private static final String TABLE_PAGE_ID = "reformNoticeAdd";
public static final String DEVICE_LIST = "deviceList";
public static final String PIPE_LENGTH = "pipeLength";
public static final String RECORD = "record";
public static final String SEQUENCE_NBR = "SEQUENCE_NBR";
public static final String PROJECT_CONTRAPTION = "projectContraption";
public static final String EQU_LIST_CODE = "EQU_LIST_CODE";
public static final String EQU_CATEGORY_CODE = "EQU_CATEGORY_CODE";
public static final String EQUIP_INFO = "equipInfo";
public static final String PROJECT_CONTRAPTION_ID = "projectContraptionId";
public static final String PRODUCT_PHOTO = "PRODUCT_PHOTO";
public static final String PRODUCT_QUALIFICATION_CERTIFICATE = "PRODUCT_QUALIFICATION_CERTIFICATE";
public static final String OTHER_ACCESSORIES = "OTHER_ACCESSORIES";
public static final String DEL_DEVICE_LIST = "delDeviceList";
private final List<String> NOT_FLOWING_STATE = Arrays.asList("6610", "6614", "6615", "6617", "6616");
// 西安行政区划code
private static final String XIAN = "610100";
// 咸阳行政区划code
private static final String XIAN_YANG = "610400";
@Autowired
EquipmentCategoryMapper equipmentCategoryMapper;
@Autowired
JgReformNoticeEqMapper jgReformNoticeEqMapper;
@Autowired
RegistrationInfoMapper tzsJgRegistrationInfoMapper;
@Autowired
OtherInfoMapper tzsJgOtherInfoMapper;
@Autowired
TzsServiceFeignClient tzsServiceFeignClient;
@Autowired
SupervisoryCodeInfoMapper supervisoryCodeInfoMapper;
@Autowired
RedisUtils redisUtils;
@Autowired
private SnowflakeIdUtil sequence;
@Autowired
IIdxBizJgRegisterInfoService idxBizJgRegisterInfoService;
@Autowired
JgInstallationNoticeServiceImpl jgInstallationNoticeService;
@Autowired
private JgReformNoticeMapper jgReformNoticeMapper;
@Autowired
private CommonServiceImpl commonService;
@Autowired
private CmWorkflowServiceImpl cmWorkflowService;
@Autowired
private RedissonClient redissonClient;
@Autowired
private JgRegistrationHistoryMapper jgRegistrationHistoryMapper;
@Autowired
ESEquipmentCategory esEquipmentCategory;
@Autowired
private EventPublisher eventPublisher;
@Autowired
private ICmWorkflowService iCmWorkflowService;
private final EquipmentCategoryMapper equipmentCategoryMapper;
private final JgReformNoticeEqMapper jgReformNoticeEqMapper;
private final RegistrationInfoMapper tzsJgRegistrationInfoMapper;
private final OtherInfoMapper otherInfoMapper;
private final TzsServiceFeignClient tzsServiceFeignClient;
private final IdxBizJgProjectContraptionMapper idxBizJgProjectContraptionMapper;
private final RedisUtils redisUtils;
private final SnowflakeIdUtil sequence;
private final JgRegistrationHistoryServiceImpl jgRegistrationHistoryService;
private final JgInstallationNoticeServiceImpl jgInstallationNoticeService;
private final JgReformNoticeMapper jgReformNoticeMapper;
private final CommonServiceImpl commonService;
private final CmWorkflowServiceImpl cmWorkflowService;
private final RedissonClient redissonClient;
private final JgRegistrationHistoryMapper jgRegistrationHistoryMapper;
private final SuperviseInfoMapper superviseInfoMapper;
private final ESEquipmentCategory esEquipmentCategory;
private final EventPublisher eventPublisher;
private final ICmWorkflowService iCmWorkflowService;
private final IIdxBizJgUseInfoService idxBizJgUseInfoService;
private final IdxBizJgDesignInfoServiceImpl idxBizJgDesignInfoService;
private final IIdxBizJgConstructionInfoService iIdxBizJgConstructionInfoService;
private final IdxBizJgFactoryInfoServiceImpl idxBizJgFactoryInfoService;
private final IdxBizJgRegisterInfoServiceImpl idxBizJgRegisterInfoServiceImpl;
private final IIdxBizJgOtherInfoService iIdxBizJgOtherInfoService;
private final IIdxBizJgSupervisionInfoService iIdxBizJgSupervisionInfoService;
private final IdxBizJgInspectionDetectionInfoServiceImpl idxBizJgInspectionDetectionInfoService;
private final IIdxBizJgTechParamsPipelineService iIdxBizJgTechParamsPipelineService;
private final JgUseRegistrationServiceImpl useRegistrationService;
/**
* 根据sequenceNbr查询
......@@ -156,8 +161,10 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
reformNoticeMap.put("street", notice.getStreet() + "_" + notice.getStreetName());
}
reformNoticeMap.put("constructionManagerId", notice.getConstructionManagerId() + "_" + notice.getConstructionManager());
if ((Integer.parseInt(notice.getNoticeStatus()) == FlowStatusEnum.TO_BE_FINISHED.getCode()) || (Integer.parseInt(notice.getNoticeStatus()) == FlowStatusEnum.TO_BE_DISCARD.getCode())) {
// 完成 或 作废时显示历史数据
if ((Integer.parseInt(notice.getNoticeStatus()) == FlowStatusEnum.TO_BE_FINISHED.getCode())
|| (Integer.parseInt(notice.getNoticeStatus()) == FlowStatusEnum.TO_BE_DISCARD.getCode())
|| EquipmentClassifityEnum.YLGD.getCode().equals(notice.getEquListCode())) {
// 完成 或 作废时显示历史数据(压力管道也显示历史数据)
JSONObject hisData = commonService.queryHistoryData(notice.getSequenceNbr());
if (!ValidationUtil.isEmpty(hisData)) {
// 格式化基本通用信息的时间类型字段
......@@ -171,7 +178,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
List<String> ids = noticeEqs.stream().map(JgReformNoticeEq::getEquId).collect(Collectors.toList());
Iterable<ESEquipmentCategoryDto> equips = esEquipmentCategory.findAllById(ids);
List<Map<String, Object>> equipListMaps = getEquipListMaps(equips);
reformNoticeMap.put("deviceList", equipListMaps);
reformNoticeMap.put(DEVICE_LIST, equipListMaps);
reformNoticeMap.put("EQU_LIST_CODE", notice.getEquListCode());
reformNoticeMap.put("EQU_CATEGORY_CODE", notice.getEquCategoryCode());
reformNoticeMap.put("QUERY_TYPE", "GZ_GZ");
......@@ -203,20 +210,24 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
/**
* 更新改造告知
*
* @param noticeDto 改造告知
*/
@SuppressWarnings({"rawtypes", "Duplicates"})
public JgReformNoticeDto updateInstallationNotice(String submitType, JgReformNoticeDto noticeDto, String op) {
public JgReformNoticeDto updateNotice(String submitType, Map<String, Object> noticeMap, String op) {
try {
String noticeJsonStr = JSON.toJSONString(noticeMap);
JgReformNoticeDto noticeDto = JSON.parseObject(noticeJsonStr, JgReformNoticeDto.class);
if (Objects.isNull(noticeDto) || StringUtils.isEmpty(submitType)) {
throw new IllegalArgumentException("参数不能为空");
}
// 压力管道使用
JSONObject oldPipJsonData = new JSONObject();
// 字段转换
this.convertField(noticeDto);
JgReformNotice notice = this.getById(noticeDto.getSequenceNbr());
// 业务单据中的设备主键 管道的为record 其他设备为SEQUENCE_NBR
String equSeq = !EquipmentClassifityEnum.YLGD.getCode().equals(notice.getEquListCode()) ? SEQUENCE_NBR : RECORD;
List<Map<String, Object>> deviceList = noticeDto.getDeviceList();
List<String> records = deviceList.stream().map(equ -> String.valueOf(equ.get("SEQUENCE_NBR"))).collect(Collectors.toList());
List<String> records = deviceList.stream().filter(item -> !Objects.isNull(item.get(RECORD))).map(equ -> String.valueOf(equ.get(RECORD))).collect(Collectors.toList());
this.checkRepeatUsed(submitType, records, notice);
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
// 发起流程
......@@ -245,7 +256,12 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
notice.setInstanceId(workflowResultDto.getInstanceId());
notice.setNextTaskId(workflowResultDto.getNextTaskId());
notice.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
// 压力管道情况处理
if (EquipmentClassifityEnum.YLGD.getCode().equals(notice.getEquListCode())) {
oldPipJsonData = this.getNowPipJsonData(noticeDto.getProjectContraptionId());
notice.setPipeLengthChanged(this.calculatePipeLengthChange(JSONArray.parseArray(JSON.toJSONString(oldPipJsonData.get(DEVICE_LIST))),
JSONArray.parseArray(JSON.toJSONString(noticeDto.getDeviceList()))));
}
jgReformNoticeMapper.updateById(notice);
// 删除暂存
commonService.deleteTasksByRelationId(notice.getSequenceNbr() + "");
......@@ -291,18 +307,19 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
BeanUtils.copyProperties(noticeDto, bean);
jgReformNoticeMapper.updateById(bean);
}
jgReformNoticeEqMapper.delete(new QueryWrapper<JgReformNoticeEq>()
.eq("equip_transfer_id", notice.getSequenceNbr()));
this.saveOrUpdateHisData(String.valueOf(noticeDto.getSequenceNbr()), JSONObject.parseObject(noticeJsonStr), oldPipJsonData);
jgReformNoticeEqMapper.delete(new LambdaQueryWrapper<JgReformNoticeEq>()
.eq(JgReformNoticeEq::getEquipTransferId, notice.getSequenceNbr()));
// eq关系表
List<JgReformNoticeEq> noticeEqs = new ArrayList<>();
// 更新设备关系表
deviceList.forEach(obj -> {
JgReformNoticeEq jgRelationEquip = new JgReformNoticeEq();
jgRelationEquip.setEquId(String.valueOf(obj.get("SEQUENCE_NBR")));
jgRelationEquip.setEquipTransferId(String.valueOf(notice.getSequenceNbr()));
noticeEqs.add(jgRelationEquip);
});
deviceList.stream().filter(obj -> !Objects.isNull(obj.get(equSeq)))
.forEach(obj -> {
JgReformNoticeEq jgRelationEquip = new JgReformNoticeEq();
jgRelationEquip.setEquId(String.valueOf(obj.get(equSeq)));
jgRelationEquip.setEquipTransferId(String.valueOf(notice.getSequenceNbr()));
noticeEqs.add(jgRelationEquip);
});
jgReformNoticeEqMapper.insertBatchSomeColumn(noticeEqs);
return noticeDto;
} catch (BadRequest | LocalBadRequest e) {
......@@ -340,6 +357,10 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
String noticeStatusDesc = FlowStatusEnum.getNameByType(Long.valueOf((String) notice.get("noticeStatus")));
notice.put("noticeStatusDesc", noticeStatusDesc);
});
// 压力管道添加作废标识:不在流程中即可作废
if (EquipmentClassifityEnum.YLGD.getCode().equals(notice.get("equListCode")) && !ValidationUtil.isEmpty(notice.get("projectContraptionId"))) {
notice.put("canVoided", idxBizJgProjectContraptionMapper.countContraptionInUseTimesForDeleteByIntoManagement(Long.parseLong(String.valueOf(notice.get("projectContraptionId")))) == 0);
}
}).collect(Collectors.toList());
noticePage.setRecords(mappedRecords);
......@@ -425,8 +446,15 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
JSONObject jsonObject = JSONObject.parseObject(jsonString);
JgReformNoticeDto model = JSON.parseObject(jsonString, JgReformNoticeDto.class);
convertField(model);
String equListCode = String.valueOf(jsonObject.get(EQU_LIST_CODE));
String equCategoryCode = String.valueOf(jsonObject.get(EQU_CATEGORY_CODE));
// 压力管道使用
JSONObject oldPipJsonData = new JSONObject();
List<JgReformNoticeEq> noticeEqs = new ArrayList<>();
// 获取告知设备列表
List<Map<String, Object>> deviceList = model.getDeviceList();
// 业务单据中的设备主键 管道的为record 其他设备为SEQUENCE_NBR
String equSeq = !EquipmentClassifityEnum.YLGD.getCode().equals(equListCode) ? SEQUENCE_NBR : RECORD;
if (CollectionUtils.isEmpty(deviceList)) {
throw new BadRequest("请选择设备!");
}
......@@ -458,9 +486,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
notice.setCreateUserName(reginParams.getUserModel().getRealName());
notice.setCreateUserId(reginParams.getUserModel().getUserId());
notice.setCreateUserCompanyName(reginParams.getCompany().getCompanyName());
notice.setProjectContraption(ValidationUtil.isEmpty(jsonObject.get("projectContraption")) ? "" : String.valueOf(jsonObject.get("projectContraption")));
String equListCode = String.valueOf(jsonObject.get("EQU_LIST_CODE"));
String equCategoryCode = String.valueOf(jsonObject.get("EQU_CATEGORY_CODE"));
notice.setProjectContraption(ValidationUtil.isEmpty(jsonObject.get(PROJECT_CONTRAPTION)) ? "" : String.valueOf(jsonObject.get(PROJECT_CONTRAPTION)));
notice.setEquListCode(equListCode);
EquipmentCategory equipmentCategory1 = equipmentCategoryMapper.selectOne(new LambdaQueryWrapper<EquipmentCategory>().eq(EquipmentCategory::getCode, equListCode));
notice.setEquListName(ValidationUtil.isEmpty(equipmentCategory1) ? null : equipmentCategory1.getName());
......@@ -491,27 +517,27 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
} else {
notice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
}
// notice.setCreateUserId(reginParams.getUserModel().getUserId());
// 插入业务单
jgReformNoticeMapper.insert(notice);
List<JgReformNoticeEq> noticeEqs = new ArrayList<>();
// 更新设备关系表
deviceList.forEach(obj -> {
JgReformNoticeEq jgRelationEquip = new JgReformNoticeEq();
jgRelationEquip.setEquId(String.valueOf(obj.get("SEQUENCE_NBR")));
jgRelationEquip.setEquipTransferId(String.valueOf(sequenceNbr));
noticeEqs.add(jgRelationEquip);
});
jgReformNoticeEqMapper.insertBatchSomeColumn(noticeEqs);
// 压力管道情况处理
if (EquipmentClassifityEnum.YLGD.getCode().equals(equListCode)) {
oldPipJsonData = this.getNowPipJsonData(String.valueOf(jsonObject.get(PROJECT_CONTRAPTION_ID)));
notice.setPipeLengthChanged(this.calculatePipeLengthChange(JSONArray.parseArray(JSON.toJSONString(oldPipJsonData.get(DEVICE_LIST))),
JSONArray.parseArray(JSON.toJSONString(jsonObject.get(DEVICE_LIST)))));
}
this.saveOrUpdateHisData(String.valueOf(sequenceNbr), jsonObject, oldPipJsonData);
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
this.buildTask(notice, workflowResultList);
} else {
this.saveTempReformNotice(notice);
}
// 插入业务单
jgReformNoticeMapper.insert(notice);
// 更新设备关系表
deviceList.stream().filter(obj -> !Objects.isNull(obj.get(equSeq)))
.map(obj -> new JgReformNoticeEq()
.setEquId(obj.get(equSeq).toString())
.setEquipTransferId(String.valueOf(sequenceNbr)))
.forEach(noticeEqs::add);
jgReformNoticeEqMapper.insertBatchSomeColumn(noticeEqs);
this.updateRedisBatch(Collections.singletonList(notice));
return Collections.singletonList(notice);
} catch (BadRequest | LocalBadRequest e) {
......@@ -527,14 +553,38 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
}
}
/**
* 计算管道长度变化 正值为增长,负值为减少
*
* @param oldPipData 旧管道数据
* @param newPipData 新管道数据
* @return 管道长度变化,正值为增长,负值为减少
*/
private String calculatePipeLengthChange(JSONArray oldPipData, JSONArray newPipData) {
double oldPipLen = oldPipData.stream().mapToDouble(item -> JSONObject.parseObject(item.toString()).getDoubleValue(PIPE_LENGTH)).sum();
double newPipLen = newPipData.stream().mapToDouble(item -> JSONObject.parseObject(item.toString()).getDoubleValue(PIPE_LENGTH)).sum();
double change = newPipLen - oldPipLen;
return change == 0 ? "0" : String.format("%+.2f", change);
}
private JSONObject getNowPipJsonData(String projectContraptionId) {
return new JSONObject(Optional.ofNullable(idxBizJgProjectContraptionMapper.getDetail(projectContraptionId))
.map(map -> {
commonService.convertStringToJsonobject(map, IdxBizJgProjectContraptionServiceImpl.jsonFields);
map.put(DEVICE_LIST, idxBizJgProjectContraptionMapper.selectEquipList((String) map.get(SEQUENCE_NBR)));
return map;
})
.orElse(Collections.emptyMap()));
}
private void repeatUsedEquipCheck(List<Map<String, Object>> equipList, String companyCode) {
equipList.forEach(equipMap -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY).equipRepeatUsedCheck(String.valueOf(equipMap.get("SEQUENCE_NBR")), companyCode));
equipList.stream().filter(item -> !Objects.isNull(item.get(RECORD))).forEach(equipMap -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY).equipRepeatUsedCheck(String.valueOf(equipMap.get(RECORD)), companyCode));
}
private void checkRepeatUsed(String submitType, List<String> records, JgReformNotice jgReformNotice) {
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
// 流程中校验
records.forEach(record -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
records.stream().filter(item -> !Objects.isNull(item)).forEach(record -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.equipRepeatUsedCheck(record, jgReformNotice.getInstallUnitCreditCode()));
}
}
......@@ -785,7 +835,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
* @param dto 改造信息
* @param op 通过或驳回
*/
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public void accept(Map<String, Object> map, String op) {
LinkedHashMap model1 = (LinkedHashMap) map.get("model");
String opinion = (String) map.get("opinion");
......@@ -826,7 +876,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
jgReformNotice.setPromoter(reginParams.getUserModel().getUserId());
jgReformNotice.setRemark(jgReformNoticeDto.getRemark());
TaskV2Model taskV2Model;
if ("0".equals(op)) {
if ("0".equals(op)) {// 通过
if (StringUtils.isEmpty(workflowResultDto.getNextExecutorRoleIds())) {
LambdaQueryWrapper<JgReformNoticeEq> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgReformNoticeEq::getEquipTransferId, jgReformNoticeDto.getSequenceNbr());
......@@ -850,11 +900,11 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
noticeEq.setInformNumber(deviceRegistrationCode);
jgReformNoticeEqMapper.updateById(noticeEq);
});
// 通过时记录历史数据
this.saveHisDataBeforeUpdate(String.valueOf(jgReformNotice.getSequenceNbr()), jsonObject);
jgReformNotice.setAcceptDate(new Date());
jgReformNotice.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
jgReformNotice.setPromoter("");
// 压力管道情况处理
this.YLGDDataPassHandler(jgReformNotice);
this.updateLastTodo(jgReformNotice, FlowStatusEnum.TO_BE_FINISHED);
this.updateById(jgReformNotice);
} else {
......@@ -895,9 +945,260 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
}
}
/**
* redis获取用户信息
**/
protected ReginParams getSelectedOrgInfo() {
return JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
}
private void YLGDDataPassHandler(JgReformNotice notice) {
if (!EquipmentClassifityEnum.YLGD.getCode().equals(notice.getEquListCode())) {
return;
}
// 1.更新工程装置数据
JgRegistrationHistory registrationHistory = jgRegistrationHistoryMapper.selectOne(new LambdaQueryWrapper<JgRegistrationHistory>().eq(JgRegistrationHistory::getCurrentDocumentId, notice.getSequenceNbr()));
JSONObject newData = JSONObject.parseObject(registrationHistory.getChangeData());
JSONArray newPipData = JSONArray.parseArray(newData.getString(DEVICE_LIST));
JSONArray delPipData = JSONArray.parseArray(newData.getString(DEL_DEVICE_LIST));
JSONObject oldData = JSONObject.parseObject(registrationHistory.getOldData());
JSONArray oldPipData = JSONArray.parseArray(oldData.getString(DEVICE_LIST));
// 1.1更新工程装置中的【管道信息】增加减少或修改管道信息
List<JSONObject> toUpdatePipData = newPipData.stream().filter(item -> !StringUtils.isEmpty(JSON.parseObject(item.toString()).getString(RECORD))).map(item -> JSON.parseObject(item.toString())).collect(Collectors.toList());
List<JSONObject> toAddPipData = newPipData.stream().filter(item -> StringUtils.isEmpty(JSON.parseObject(item.toString()).getString(RECORD))).map(item -> JSON.parseObject(item.toString())).collect(Collectors.toList());
List<String> toDeletePipRecords = delPipData.stream().map(item -> JSON.parseObject(item.toString()).getString(RECORD)).collect(Collectors.toList());
this.addPipDataWithFlowPass(toAddPipData, notice);
this.updatePipDataWithFlowPass(toUpdatePipData);
this.delPipDataWithFlowPass(toDeletePipRecords);
// 1.2更新工程装置中的【基本信息】 + 【使用信息】 + 管道长度等
// List<String> lastAllRecords = new ArrayList<>();
// lastAllRecords.addAll(toUpdatePipRecords);
// lastAllRecords.addAll(toAddPipDataRecords);
// lastAllRecords.forEach(record -> {
// 产品照片 PRODUCT_PHOTO
// String productPhoto = JSON.toJSONString(newData.get(PRODUCT_PHOTO));
// idxBizJgRegisterInfoService.update(new LambdaUpdateWrapper<IdxBizJgRegisterInfo>().set(IdxBizJgRegisterInfo::getProductPhoto, productPhoto).eq(IdxBizJgRegisterInfo::getRecord, record));
// });
// 产品质量合格证明 PRODUCT_QUALIFICATION_CERTIFICATE 其他附件 OTHER_ACCESSORIES 管道总长度
// String productQualificationCertificate = JSON.toJSONString(newData.get(PRODUCT_QUALIFICATION_CERTIFICATE));
// String otherAccessories = JSON.toJSONString(newData.get(OTHER_ACCESSORIES));
double pipLengthLastSum = newPipData.stream().mapToDouble(item -> JSONObject.parseObject(item.toString()).getDoubleValue(PIPE_LENGTH)).sum();
LambdaUpdateWrapper<IdxBizJgProjectContraption> updateWrapper = new LambdaUpdateWrapper<IdxBizJgProjectContraption>()
.eq(IdxBizJgProjectContraption::getSequenceNbr, notice.getProjectContraptionId())
// .set(IdxBizJgProjectContraption::getProductQualificationCertificate, productQualificationCertificate)
// .set(IdxBizJgProjectContraption::getOtherAccessories, otherAccessories)
.set(IdxBizJgProjectContraption::getPipelineLength, pipLengthLastSum)
.set(IdxBizJgProjectContraption::getPipeLengthChanged, notice.getPipeLengthChanged());
idxBizJgProjectContraptionMapper.update(null, updateWrapper);
}
private void delPipDataWithFlowPass(List<String> toDeletePipRecords) {
List<ESEquipmentCategoryDto> esEquipmentCategoryDtoList = toDeletePipRecords.stream().map(
record -> new ESEquipmentCategoryDto().setSEQUENCE_NBR(record)
).collect(Collectors.toList());
// 删除涉及的19张表的数据
superviseInfoMapper.deleteDataAll(toDeletePipRecords);
// 删除es中的数据
esEquipmentCategory.deleteAll(esEquipmentCategoryDtoList);
}
private void updatePipDataWithFlowPass(List<JSONObject> toUpdatePipData) {
toUpdatePipData.forEach(pipData -> {
String record = pipData.getString(RECORD);
String pipeName = pipData.getString("pipeName");
String pipelineNumber = pipData.getString("pipelineNumber");
String deviceLevel = pipData.getString("deviceLevel");
String nominalDiameter = pipData.getString("nominalDiameter");
String wallThickness = pipData.getString("wallThickness");
String pipeLength = pipData.getString("pipeLength");
String pressure = pipData.getString("pressure");
String temperature = pipData.getString("temperature");
String medium = pipData.getString("medium");
String workPressure = pipData.getString("workPressure");
String workTemperature = pipData.getString("workTemperature");
String workMedium = pipData.getString("workMedium");
String remarks = pipData.getString("remarks");
LambdaUpdateWrapper<IdxBizJgTechParamsPipeline> pipelineLambdaUpdateWrapper = new LambdaUpdateWrapper<IdxBizJgTechParamsPipeline>().eq(IdxBizJgTechParamsPipeline::getRecord, record)
.set(IdxBizJgTechParamsPipeline::getPipeName, pipeName)
.set(IdxBizJgTechParamsPipeline::getPipelineNumber, pipelineNumber)
.set(IdxBizJgTechParamsPipeline::getDeviceLevel, deviceLevel)
.set(IdxBizJgTechParamsPipeline::getNominalDiameter, nominalDiameter)
.set(IdxBizJgTechParamsPipeline::getWallThickness, wallThickness)
.set(IdxBizJgTechParamsPipeline::getPipeLength, pipeLength)
.set(IdxBizJgTechParamsPipeline::getPressure, pressure)
.set(IdxBizJgTechParamsPipeline::getTemperature, temperature)
.set(IdxBizJgTechParamsPipeline::getMedium, medium)
.set(IdxBizJgTechParamsPipeline::getWorkPressure, workPressure)
.set(IdxBizJgTechParamsPipeline::getWorkTemperature, workTemperature)
.set(IdxBizJgTechParamsPipeline::getWorkMedium, workMedium)
.set(IdxBizJgTechParamsPipeline::getRemarks, remarks);
iIdxBizJgTechParamsPipelineService.update(pipelineLambdaUpdateWrapper);
});
}
private void addPipDataWithFlowPass(List<JSONObject> toAddPipData, JgReformNotice notice) {
IdxBizJgProjectContraption projectContraption = idxBizJgProjectContraptionMapper.selectById(notice.getProjectContraptionId());
List<IdxBizJgUseInfo> useInfoList = new ArrayList<>(15);
List<IdxBizJgDesignInfo> designInfoList = new ArrayList<>(15);
List<IdxBizJgFactoryInfo> factoryInfoList = new ArrayList<>(15);
List<IdxBizJgConstructionInfo> constructionInfoList = new ArrayList<>(15);
List<IdxBizJgRegisterInfo> registerInfoList = new ArrayList<>(15);
List<IdxBizJgSupervisionInfo> supervisionInfoList = new ArrayList<>(15);
List<IdxBizJgOtherInfo> otherInfoList = new ArrayList<>(15);
List<IdxBizJgInspectionDetectionInfo> inspectionDetectionInfoList = new ArrayList<>(15);
List<IdxBizJgTechParamsPipeline> paramsPipelineList = new ArrayList<>(15);
List<ESEquipmentCategoryDto> esEquipmentCategoryList = new ArrayList<>(15);
// 设备信息
toAddPipData.forEach(pipData -> {
String record = UUID.randomUUID().toString();
Date date = new Date();
// 使用信息
IdxBizJgUseInfo useInfo = JSON.parseObject(toJSONString(pipData), IdxBizJgUseInfo.class);
// 使用信息
useInfo.setRecord(record);
useInfo.setSequenceNbr(null);
useInfo.setRecDate(date);
useInfo.setDataSource("jg");
useInfo.setIsIntoManagement(Boolean.TRUE);
useInfo.setUseUnitCreditCode(notice.getUseUnitCreditCode());
useInfo.setUseUnitName(notice.getUseUnitName());
useInfo.setEquState("1");
useInfo.setProjectContraption(notice.getProjectContraption());
useInfo.setProjectContraptionId(notice.getProjectContraptionId());
useInfoList.add(useInfo);
// 设计信息
IdxBizJgDesignInfo designInfo = JSON.parseObject(toJSONString(pipData), IdxBizJgDesignInfo.class);
designInfo.setRecord(record);
designInfo.setRecDate(date);
designInfo.setSequenceNbr(null);
designInfoList.add(designInfo);
// 制造信息
IdxBizJgFactoryInfo factoryInfo = JSON.parseObject(toJSONString(pipData), IdxBizJgFactoryInfo.class);
factoryInfo.setRecord(record);
factoryInfo.setRecDate(date);
factoryInfo.setSequenceNbr(null);
factoryInfoList.add(factoryInfo);
// 施工信息
IdxBizJgConstructionInfo constructionInfo = JSON.parseObject(toJSONString(pipData), IdxBizJgConstructionInfo.class);
CompanyBo company = this.getSelectedOrgInfo().getCompany();
constructionInfo.setRecord(record);
constructionInfo.setRecDate(date);
constructionInfo.setUscUnitCreditCode(company.getCompanyCode());
constructionInfo.setUscUnitName(company.getCompanyName());
constructionInfo.setSequenceNbr(null);
constructionInfoList.add(constructionInfo);
// 注册登记信息
IdxBizJgRegisterInfo registerInfo = JSON.parseObject(toJSONString(pipData), IdxBizJgRegisterInfo.class);
registerInfo.setRecord(record);
registerInfo.setRecDate(date);
registerInfo.setSequenceNbr(null);
registerInfo.setEquCodeType("2");
registerInfo.setRegisterState("6045");
registerInfo.setEquCode(useRegistrationService.generateEquCode(projectContraption.getEquList(), projectContraption.getEquCategory(), projectContraption.getEquDefine(), date, notice.getReceiveCompanyCode()));
registerInfo.setProductName(pipData.getString("pipeName"));
registerInfoList.add(registerInfo);
// 监督管理
IdxBizJgSupervisionInfo supervisionInfo = JSON.parseObject(toJSONString(pipData), IdxBizJgSupervisionInfo.class);
supervisionInfo.setRecord(record);
supervisionInfo.setRecDate(date);
supervisionInfo.setSequenceNbr(null);
supervisionInfoList.add(supervisionInfo);
// 其他信息
IdxBizJgOtherInfo otherInfo = JSON.parseObject(toJSONString(pipData), IdxBizJgOtherInfo.class);
otherInfo.setRecord(record);
otherInfo.setSequenceNbr(null);
otherInfo.setClaimStatus("已认领");
otherInfo.setRecDate(date);
otherInfo.setSupervisoryCode(projectContraption.getSupervisoryCode());
otherInfo.setCylinderStampAttachment("");
otherInfo.setInformationSituation("");
otherInfo.setInformationManageCode("");
otherInfoList.add(otherInfo);
// 检验检测
IdxBizJgInspectionDetectionInfo inspectionDetectionInfo = JSON.parseObject(toJSONString(pipData), IdxBizJgInspectionDetectionInfo.class);
inspectionDetectionInfo.setRecord(record);
inspectionDetectionInfo.setRecDate(date);
Optional.ofNullable(inspectionDetectionInfo.getNextInspectDate()).ifPresent(x -> inspectionDetectionInfo.setNextInspectDate(DateUtil.parse(DateUtil.format(inspectionDetectionInfo.getNextInspectDate(), DatePattern.NORM_DATE_PATTERN))));
inspectionDetectionInfo.setSequenceNbr(null);
idxBizJgInspectionDetectionInfoService.saveOrUpdateData(inspectionDetectionInfo);
// 管道技术参数
IdxBizJgTechParamsPipeline pipelineInfo = JSON.parseObject(toJSONString(pipData), IdxBizJgTechParamsPipeline.class);
if (!ValidationUtil.isEmpty(pipelineInfo)) {
pipelineInfo.setRecord(record);
pipelineInfo.setRecDate(date);
pipelineInfo.setSequenceNbr(null);
paramsPipelineList.add(pipelineInfo);
}
ESEquipmentCategoryDto esEquipmentDto = JSON.parseObject(toJSONString(pipData), ESEquipmentCategoryDto.class);
esEquipmentDto.setDATA_SOURCE(useInfo.getDataSource());
esEquipmentDto.setREC_DATE(System.currentTimeMillis());
esEquipmentDto.setSEQUENCE_NBR(record);
esEquipmentDto.setIS_INTO_MANAGEMENT(false);
esEquipmentDto.setEQU_CATEGORY_CODE(projectContraption.getEquCategory());
esEquipmentDto.setEQU_CATEGORY(projectContraption.getEquCategoryName());
esEquipmentDto.setEQU_LIST_CODE(projectContraption.getEquList());
esEquipmentDto.setEQU_LIST(projectContraption.getEquListName());
esEquipmentDto.setEQU_DEFINE_CODE(projectContraption.getEquDefine());
esEquipmentDto.setEQU_DEFINE(projectContraption.getEquDefineName());
esEquipmentDto.setSTATUS("已认领");
esEquipmentDto.setUSC_UNIT_CREDIT_CODE(projectContraption.getUscUnitCreditCode());
esEquipmentDto.setUSC_UNIT_NAME(projectContraption.getUscUnitName());
esEquipmentDto.setUSE_UNIT_CREDIT_CODE(projectContraption.getUseUnitCreditCode());
esEquipmentDto.setUSE_UNIT_NAME(projectContraption.getUseUnitName());
esEquipmentDto.setPROJECT_CONTRAPTION(projectContraption.getProjectContraption());
esEquipmentDto.setPRODUCT_NAME(pipelineInfo.getPipeName());
esEquipmentDto.setProjectContraptionId(notice.getProjectContraptionId());
esEquipmentCategoryList.add(esEquipmentDto);
});
idxBizJgUseInfoService.saveBatch(useInfoList);
idxBizJgDesignInfoService.saveBatch(designInfoList);
iIdxBizJgConstructionInfoService.saveBatch(constructionInfoList);
idxBizJgFactoryInfoService.saveBatch(factoryInfoList);
idxBizJgRegisterInfoServiceImpl.saveBatch(registerInfoList);
iIdxBizJgOtherInfoService.saveBatch(otherInfoList);
iIdxBizJgSupervisionInfoService.saveBatch(supervisionInfoList);
idxBizJgInspectionDetectionInfoService.saveBatch(inspectionDetectionInfoList);
iIdxBizJgTechParamsPipelineService.saveBatch(paramsPipelineList);
esEquipmentCategory.saveAll(esEquipmentCategoryList);
}
private void saveHisDataBeforeUpdate(String sequenceNbr, JSONObject jsonObject) {
commonService.saveOrUpdateHistory(BusinessTypeEnum.JG_MODIFICATION_NOTIFICATION.getName(), new JSONObject(jsonObject), null, sequenceNbr);
private void saveOrUpdateHisData(String sequenceNbr, JSONObject changeData, JSONObject oldData) {
this.saveOrUpdateHistory(BusinessTypeEnum.JG_MODIFICATION_NOTIFICATION.getName(), changeData, oldData, sequenceNbr);
}
public void saveOrUpdateHistory(String registrationClass, JSON changeData, JSON oldData, String currentDocumentId) {
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
LambdaQueryWrapper<JgRegistrationHistory> lambda = new QueryWrapper<JgRegistrationHistory>().lambda();
lambda.eq(JgRegistrationHistory::getCurrentDocumentId, currentDocumentId);
lambda.eq(JgRegistrationHistory::getIsDelete, false);
Integer integer = jgRegistrationHistoryService.getBaseMapper().selectCount(lambda);
if (integer > 0) {
jgRegistrationHistory.setChangeData(JSON.toJSONString(changeData));
jgRegistrationHistory.setOldData(JSON.toJSONString(oldData));
jgRegistrationHistoryService.update(jgRegistrationHistory, lambda);
} else {
jgRegistrationHistory.setChangeData(JSON.toJSONString(changeData));
jgRegistrationHistory.setOldData(JSON.toJSONString(oldData));
jgRegistrationHistory.setStatus("new");
jgRegistrationHistory.setRegistrationClass(registrationClass);
jgRegistrationHistory.setEquId(null);
jgRegistrationHistory.setCurrentDocumentId(currentDocumentId);
jgRegistrationHistoryService.save(jgRegistrationHistory);
}
}
public InstanceRuntimeData buildInstanceRuntimeData(JgReformNotice jgReformNotice) {
......@@ -965,12 +1266,14 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
case TO_BE_SUBMITTED: // 待提交
// 1.删除暂存时生成的待办
commonService.deleteTasksByRelationId(reformNotice.getSequenceNbr() + "");
// 4.记录到历史表
// 4.记录到历史表 目前保存历史表的操作已经在保存业务/更新业务时,后续此处不在需要,当前保留为了确保本次上线前的已经提交的数据作废能留痕
this.recordHistoryWhenVoided(reformNotice);
break;
case TO_BE_FINISHED: // 已完成
// 1.清空redis 缓存的流程中及已完成安装告知的设备
this.delRepeatUseEquipData(reformNotice);
// 2.压力管道回退到改造前的设备数据
this.fallbackDataWithFlowPass(reformNotice);
break;
default:
// 流程中(驳回、撤回等)
......@@ -985,6 +1288,34 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
}
}
/**
* 压力管道回退到改造前的设备数据
*
* @param notice
*/
private void fallbackDataWithFlowPass(JgReformNotice notice) {
if (!EquipmentClassifityEnum.YLGD.getCode().equals(notice.getEquListCode())) {
return;
}
JgRegistrationHistory registrationHistory = jgRegistrationHistoryMapper.selectOne(new LambdaQueryWrapper<JgRegistrationHistory>().eq(JgRegistrationHistory::getCurrentDocumentId, notice.getSequenceNbr()));
JSONObject newData = JSONObject.parseObject(registrationHistory.getChangeData());
JSONArray alreadyDelPipData = JSONArray.parseArray(newData.getString(DEL_DEVICE_LIST));
JSONObject oldData = JSONObject.parseObject(registrationHistory.getOldData());
JSONArray oldPipData = JSONArray.parseArray(oldData.getString(DEVICE_LIST));
double oldPipLength = oldPipData.stream().mapToDouble(item -> JSON.parseObject(item.toString()).getDoubleValue(PIPE_LENGTH)).sum();
List<String> oldPipDataRecords = oldPipData.stream().map(item -> JSON.parseObject(item.toString()).getString(RECORD)).collect(Collectors.toList());
List<String> nowPipDataRecords = idxBizJgProjectContraptionMapper.selectEquipList(notice.getProjectContraptionId()).stream().map(item -> String.valueOf(item.get("record"))).collect(Collectors.toList());
List<JSONObject> toAddPipData = alreadyDelPipData.stream().map(item -> JSON.parseObject(item.toString())).collect(Collectors.toList());
List<String> toDeletePipRecords = nowPipDataRecords.stream().filter(item -> !oldPipDataRecords.contains(item)).collect(Collectors.toList());
this.addPipDataWithFlowPass(toAddPipData, notice);
this.delPipDataWithFlowPass(toDeletePipRecords);
LambdaUpdateWrapper<IdxBizJgProjectContraption> updateWrapper = new LambdaUpdateWrapper<IdxBizJgProjectContraption>()
.eq(IdxBizJgProjectContraption::getSequenceNbr, notice.getProjectContraptionId())
.set(IdxBizJgProjectContraption::getPipelineLength, oldPipLength)
.set(IdxBizJgProjectContraption::getPipeLengthChanged, 0);
idxBizJgProjectContraptionMapper.update(null, updateWrapper);
}
private void finishedTask(JgReformNotice reformNotice) {
HashMap<String, Object> taskMap = new HashMap<>();
taskMap.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
......@@ -1000,20 +1331,21 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
/**
* 作废时记录数据到历史表
*
* @param reformNotice
*/
private void recordHistoryWhenVoided(JgReformNotice reformNotice) {
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(reformNotice));
List<String> equList = getEquList(reformNotice);
Iterable<ESEquipmentCategoryDto> esEquipmentCategoryDtos = esEquipmentCategory.findAllById(equList);
List<Map<String, Object>> deviceList = getEquipListMaps(esEquipmentCategoryDtos);
jsonObject.put("deviceList", deviceList);
this.saveHisDataBeforeUpdate(String.valueOf(reformNotice.getSequenceNbr()), jsonObject);
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(this.queryBySequenceNbr(reformNotice.getSequenceNbr())));
// List<String> equList = getEquList(reformNotice);
// Iterable<ESEquipmentCategoryDto> esEquipmentCategoryDtos = esEquipmentCategory.findAllById(equList);
// List<Map<String, Object>> deviceList = getEquipListMaps(esEquipmentCategoryDtos);
// jsonObject.put("deviceList", deviceList);
this.saveOrUpdateHisData(String.valueOf(reformNotice.getSequenceNbr()), jsonObject, null);
}
@Override
public boolean beforeCheck(JgReformNotice jgReformNotice) {
return jgReformNotice.getInstanceId() != null && !jgReformNotice.getNoticeStatus().equals(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode())) &&!jgReformNotice.getNoticeStatus().equals(String.valueOf(FlowStatusEnum.TO_BE_DISCARD.getCode()));
return jgReformNotice.getInstanceId() != null && !jgReformNotice.getNoticeStatus().equals(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode())) && !jgReformNotice.getNoticeStatus().equals(String.valueOf(FlowStatusEnum.TO_BE_DISCARD.getCode()));
}
@Override
......
......@@ -14,6 +14,7 @@ import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.CertificateStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.CylinderTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.EquipSourceEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationTransferService;
import com.yeejoin.amos.boot.module.jg.api.service.IJgUseRegistrationManageService;
......@@ -21,6 +22,7 @@ import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.ymt.api.common.StringUtil;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgMaintenanceRecordInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum;
......@@ -59,6 +61,8 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.text.SimpleDateFormat;
......@@ -68,6 +72,7 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static com.alibaba.fastjson.JSON.parseArray;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.CommonServiceImpl.isValidCreditCode;
......@@ -858,4 +863,32 @@ public class JgUseRegistrationManageServiceImpl extends BaseService<JgUseRegistr
}
return "修复成功!";
}
/**
* 工程/装置分页查询
* @param page
* @param params
* @param sort
* @return
*/
public Page<IdxBizJgProjectContraption> queryForUnitByProjectContraptionPage(Page<IdxBizJgProjectContraption> page, Map<String, String> params, String sort) {
SortVo sortMap = commonServiceImpl.sortFieldConversion(sort);
Page<IdxBizJgProjectContraption> projectContraptionPage = this.baseMapper.queryForUnitByProjectContraptionPage(page, params, sortMap);
List<IdxBizJgProjectContraption> records = projectContraptionPage.getRecords();
if (!ValidationUtil.isEmpty(records)) {
records.forEach(item -> {
BigDecimal pipelineLength = BigDecimal.valueOf(item.getPipelineLength());
BigDecimal roundedValue = pipelineLength.setScale(3, RoundingMode.HALF_UP);
BigDecimal strippedValue = roundedValue.stripTrailingZeros();
item.setPipelineLength(Double.valueOf(strippedValue.toPlainString()));
item.setDataSourceName(EquipSourceEnum.getDataSourceName(item.getDataSource()));
item.setFullAddress(
Stream.of(item.getProvinceName(), item.getCityName(), item.getCountyName(), item.getStreetName(), item.getAddress())
.map(value -> value == null ? "" : value)
.collect(Collectors.joining())
);
});
}
return projectContraptionPage;
}
}
\ No newline at end of file
......@@ -413,8 +413,9 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
if("unit".equals(jgUseRegistration.getManageType())){
if (registerInfo.getEquList().equals(EquipmentClassifityEnum.YLGD.getCode())){
// 压力管道逻辑,根据设备record + 检验报告编号判定唯一一条检验流水,有进行更新,无则进行插入
String record = equipment.get("record").toString();
String record = (String) equipment.get("record");
inspectionDetectionInfo.setInspectConclusion((String) equipment.get("inspectConclusionCode"));
inspectionDetectionInfo.setSequenceNbr((String) equipment.get("jySeq"));
saveEquipOfPieLineInspectData(record, inspectionDetectionInfo);
}
} else {
......@@ -441,22 +442,18 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
private void saveEquipOfPieLineInspectData(String record, InspectionDetectionInfo inspectionDetectionInfo) {
// 检验机构 + 设备+ 检验报告编号时 , 是唯一的为了防止老数据有重复的,程序健壮,故使用list进行处理
LambdaQueryWrapper<InspectionDetectionInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(AbstractEquipBaseEntity::getRecord, record)
.eq(!StringUtils.isEmpty(inspectionDetectionInfo.getInspectReportNo()), InspectionDetectionInfo::getInspectReportNo, inspectionDetectionInfo.getInspectReportNo())
.eq(InspectionDetectionInfo::getInspectOrgCode, inspectionDetectionInfo.getInspectOrgCode());
List<InspectionDetectionInfo> inspectionDetectionInfos = inspectionDetectionInfoMapper.selectList(wrapper);
if(inspectionDetectionInfos.isEmpty()){
inspectionDetectionInfo.setRecord(record);
inspectionDetectionInfo.setRecDate(new Date());
// LambdaQueryWrapper<InspectionDetectionInfo> wrapper = new LambdaQueryWrapper<>();
// wrapper.eq(AbstractEquipBaseEntity::getRecord, record)
// .eq(!StringUtils.isEmpty(inspectionDetectionInfo.getInspectReportNo()), InspectionDetectionInfo::getInspectReportNo, inspectionDetectionInfo.getInspectReportNo())
// .eq(InspectionDetectionInfo::getInspectOrgCode, inspectionDetectionInfo.getInspectOrgCode());
// List<InspectionDetectionInfo> inspectionDetectionInfos = inspectionDetectionInfoMapper.selectList(wrapper);
inspectionDetectionInfo.setRecDate(new Date());
if (Objects.isNull(inspectionDetectionInfo.getSequenceNbr())) {
inspectionDetectionInfo.setSequenceNbr(sequence.nextId() + "");
inspectionDetectionInfo.setRecord(record);
inspectionDetectionInfoMapper.insert(inspectionDetectionInfo);
} else {
for (InspectionDetectionInfo inspectionDetectionInfo1 : inspectionDetectionInfos) {
Bean.copyExistPropertis(inspectionDetectionInfo, inspectionDetectionInfo1);
inspectionDetectionInfo1.setRecDate(new Date());
inspectionDetectionInfoMapper.updateById(inspectionDetectionInfo1);
}
inspectionDetectionInfoMapper.updateById(inspectionDetectionInfo);
}
}
......@@ -925,6 +922,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
useRegistration.setApplyNo(listResponseModel.getResult().get(0));
useRegistration.setAuditStatus("待提交");
useRegistration.setStatus(WorkFlowStatusEnum.USE_SUBMIT.getPass());
useRegistration.setRegType("2".equals(map.get("regType")) ? "2" : "0");
this.save(useRegistration);
} else {
this.updateById(useRegistration);
......@@ -1370,7 +1368,8 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
LambdaQueryWrapper<JgUseRegistrationManage> queryWrapper = new LambdaQueryWrapper<JgUseRegistrationManage>()
.eq(JgUseRegistrationManage::getUseRegistrationCode, jgUseRegistration.getUseRegistrationCode())
.eq(JgUseRegistrationManage::getIsDelete, 0);
.eq(JgUseRegistrationManage::getIsDelete, 0)
.ne(JgUseRegistrationManage::getCertificateStatus, CertificateStatusEnum.YIZHUXIAO.getName());
JgUseRegistrationManage jgUseRegistrationManage = jgUseRegistrationManageService.getBaseMapper().selectOne(queryWrapper);
if (!ValidationUtil.isEmpty(jgUseRegistrationManage)) {
......@@ -2104,6 +2103,25 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
});
}
/**
* 历史数据填充 设备种类、设备类别、设备品种名称
* @param detail 返回数据
* @param jgUseRegistration 当前单据
*/
private void fillingEquCategoryNameForHisData(Map<String, Object> detail, JgUseRegistration jgUseRegistration) {
if(!StringUtils.isEmpty(jgUseRegistration.getProjectContraptionId())){
LambdaQueryWrapper<IdxBizJgProjectContraption> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(BaseEntity::getSequenceNbr, jgUseRegistration.getProjectContraptionId());
queryWrapper.select(IdxBizJgProjectContraption::getEquListName,IdxBizJgProjectContraption::getEquCategoryName,IdxBizJgProjectContraption::getEquDefineName,BaseEntity::getSequenceNbr);
IdxBizJgProjectContraption projectContraption = jgProjectContraptionService.getBaseMapper().selectOne(queryWrapper);
if(projectContraption != null){
detail.put("equListName", projectContraption.getEquListName());
detail.put("equCategoryName", projectContraption.getEquCategoryName());
detail.put("equDefineName", projectContraption.getEquDefineName());
}
}
}
public Map<String, Object> getDetail(String record, Long sequenceNbr) {
if (!ObjectUtils.isEmpty(sequenceNbr)) {
JgUseRegistration jgUseRegistration = this.getBaseMapper().selectById(sequenceNbr);
......@@ -2168,6 +2186,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
jsonObject.put("useRegistrationCode", jgUseRegistration.getUseRegistrationCode());
jsonObject.put("useRegistrationFormUrl", jgUseRegistration.getUseRegistrationFormUrl());
jsonObject.put("useRegistrationFormFile", JSONArray.parseArray(jgUseRegistration.getUseRegistrationFormFile()));
this.fillingEquCategoryNameForHisData(jsonObject, jgUseRegistration);
// 转化 附件 字段
commonServiceImpl.convertStringToJsonobject(jsonObject, jsonFields);
// 结果增强,填充单据是否可变更设备状态,用来控制前端按钮的显示隐藏。
......@@ -4221,7 +4240,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
this.applicationContext = applicationContext;
}
public IPage<IdxBizJgProjectContraption> getJgProjectContraptionPage(String useUnitCreditCode, Page<IdxBizJgProjectContraption> page) {
public IPage<IdxBizJgProjectContraption> getJgProjectContraptionPage(String useUnitCreditCode, String dataSource, Page<IdxBizJgProjectContraption> page) {
// 兼容个人业务
if(useUnitCreditCode.contains("_")){
useUnitCreditCode = useUnitCreditCode.split("_")[1];
......@@ -4234,7 +4253,11 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
// 查询已纳管且使用登记证编号不为空且非流程中的装置
LambdaQueryWrapper<IdxBizJgProjectContraption> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IdxBizJgProjectContraption::getUseUnitCreditCode,useUnitCreditCode);
wrapper.eq(IdxBizJgProjectContraption::getIsIntoManagement, true);
if (Optional.ofNullable(dataSource).map(ds -> ds.contains("black")).orElse(false)) {
wrapper.eq(IdxBizJgProjectContraption::getDataSource, dataSource);
} else {
wrapper.eq(IdxBizJgProjectContraption::getIsIntoManagement, true);
}
wrapper.eq(IdxBizJgProjectContraption::getEquCategory, "8300");
wrapper.eq(IdxBizJgProjectContraption::getIsFirstMerge, false);
wrapper.notIn(!proIds.isEmpty(), BaseEntity::getSequenceNbr, proIds);
......@@ -4288,7 +4311,10 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
.put("projectContraptionId", projectContraptionSeq)
.put("projectContraptionNo", projectContraption.getProjectContraptionNo())
.put("isFirstMerge", projectContraption.getIsFirstMerge())
.put("pipelineLength", totalPipelineLength);
.put("pipelineLength", totalPipelineLength)
.put("equListName", projectContraption.getEquListName())
.put("equCategoryName", projectContraption.getEquCategoryName())
.put("equDefineName", projectContraption.getEquDefineName());
setProjectContraptionInfo(projectContraption, resultBuilder);
return resultBuilder.build();
}
......
......@@ -15,7 +15,6 @@ import com.yeejoin.amos.boot.module.jg.api.enums.SafetyProblemTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgOtherInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzsUserInfoMapper;
import net.javacrumbs.shedlock.spring.annotation.SchedulerLock;
import org.eclipse.paho.client.mqttv3.MqttException;
......@@ -58,15 +57,12 @@ public class SafetyProblemTracingGenServiceImpl{
private SafetyProblemTracingServiceImpl safetyProblemTracingService;
@Autowired
TzBaseEnterpriseInfoMapper baseEnterpriseInfoMapper;
@Autowired
TzsUserInfoMapper tzsUserInfoMapper;
@Scheduled(cron = "0 0 1 * * ?")
@SchedulerLock(name = "executeSafetyProblemCheck", lockAtMostFor = "PT5H", lockAtLeastFor = "PT10M")
public void executeSafetyProblemCheck() {
executeMaintenanceCheck();
executeInspectionCheck();
executeEnterpriseQualificationCheck();
}
......
localhost=${spring.cloud.client.ip-address}
#DB properties:
spring.datasource.url=jdbc:postgresql://172.16.10.243:5432/tzs_amos_tzs_biz_init?currentSchema=amos_tzs_biz&allowMultiQueries=true
spring.datasource.username=admin
......@@ -6,11 +7,11 @@ eureka.client.service-url.defaultZone=http://172.16.10.243:10001/eureka/
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url=http://172.16.3.6:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.health-check-url=http://${localhost}:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator
eureka.instance.status-page-url=http://172.16.3.6:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs=http://172.16.3.6:${server.port}${server.servlet.context-path}/doc.html
eureka.instance.ip-address=172.16.3.6
eureka.instance.status-page-url=http://${localhost}:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs=http://${localhost}:${server.port}${server.servlet.context-path}/doc.html
eureka.instance.ip-address=${localhost}
## ES properties:
elasticsearch.username=elastic
elasticsearch.password=a123456
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?mso-application progid="Word.Document"?>
<w:wordDocument
xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml"
xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:w10="urn:schemas-microsoft-com:office:word"
xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core"
xmlns:aml="http://schemas.microsoft.com/aml/2001/core"
xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve"
xmlns:wpsCustomData="http://www.wps.cn/officeDocument/2013/wpsCustomData">
<o:DocumentProperties>
<w:wordDocument xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:w10="urn:schemas-microsoft-com:office:word"
xmlns:sl="http://schemas.microsoft.com/schemaLibrary/2003/core"
xmlns:aml="http://schemas.microsoft.com/aml/2001/core"
xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint"
xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882"
w:macrosPresent="no" w:embeddedObjPresent="no" w:ocxPresent="no" xml:space="preserve"
xmlns:wpsCustomData="http://www.wps.cn/officeDocument/2013/wpsCustomData"><o:DocumentProperties>
<o:Author>Admin</o:Author>
<o:LastAuthor>Ac</o:LastAuthor>
<o:LastAuthor>mly</o:LastAuthor>
<o:Created>2025-02-11T02:12:00Z</o:Created>
<o:LastSaved>2025-02-18T08:02:56Z</o:LastSaved>
<o:LastSaved>2025-03-03T10:02:32Z</o:LastSaved>
<o:TotalTime>2880</o:TotalTime>
<o:Pages>1</o:Pages>
<o:Words>264</o:Words>
<o:Characters>479</o:Characters>
<o:Words>284</o:Words>
<o:Characters>579</o:Characters>
<o:Lines>0</o:Lines>
<o:Paragraphs>0</o:Paragraphs>
<o:CharactersWithSpaces>561</o:CharactersWithSpaces>
<o:CharactersWithSpaces>641</o:CharactersWithSpaces>
<o:Version>14</o:Version>
</o:DocumentProperties>
<o:CustomDocumentProperties>
<o:KSOTemplateDocerSaveRecord dt:dt="string">eyJoZGlkIjoiNTRkYjJiYWQwMzVkYWEwZGNmODdlMzhmYWExNTZhZjEiLCJ1c2VySWQiOiI5MjI2NjY0ODIifQ==</o:KSOTemplateDocerSaveRecord>
<o:KSOProductBuildVer dt:dt="string">2052-12.1.0.19770</o:KSOProductBuildVer>
<o:ICV dt:dt="string">ABD7B8E3D9BF4ECEBA5B26F5C7E6D88A_12</o:ICV>
<o:KSOTemplateDocerSaveRecord dt:dt="string">
eyJoZGlkIjoiNTRkYjJiYWQwMzVkYWEwZGNmODdlMzhmYWExNTZhZjEiLCJ1c2VySWQiOiI5MjI2NjY0ODIifQ==
</o:KSOTemplateDocerSaveRecord>
<o:KSOProductBuildVer dt:dt="string">2052-12.1.0.18543</o:KSOProductBuildVer>
<o:ICV dt:dt="string">C97ACE8DD1724BBA88F0940962A6C6D0_12</o:ICV>
</o:CustomDocumentProperties>
<w:fonts>
<w:defaultFonts w:ascii="Calibri" w:fareast="宋体" w:h-ansi="Calibri" w:cs="Times New Roman"/>
......@@ -36,84 +35,96 @@
<w:charset w:val="00"/>
<w:family w:val="Auto"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF" w:csb-1="FFFF0000"/>
<w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF"
w:csb-1="FFFF0000"/>
</w:font>
<w:font w:name="宋体">
<w:panose-1 w:val="02010600030101010101"/>
<w:charset w:val="86"/>
<w:family w:val="Auto"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="00000003" w:usb-1="288F0000" w:usb-2="00000006" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/>
<w:sig w:usb-0="00000203" w:usb-1="288F0000" w:usb-2="00000006" w:usb-3="00000000" w:csb-0="00040001"
w:csb-1="00000000"/>
</w:font>
<w:font w:name="Wingdings">
<w:panose-1 w:val="05000000000000000000"/>
<w:charset w:val="02"/>
<w:family w:val="Auto"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000" w:csb-1="00000000"/>
<w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000"
w:csb-1="00000000"/>
</w:font>
<w:font w:name="Arial">
<w:panose-1 w:val="020B0604020202020204"/>
<w:charset w:val="01"/>
<w:family w:val="SWiss"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF" w:csb-1="FFFF0000"/>
<w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF"
w:csb-1="FFFF0000"/>
</w:font>
<w:font w:name="黑体">
<w:panose-1 w:val="02010609060101010101"/>
<w:charset w:val="86"/>
<w:family w:val="Auto"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="800002BF" w:usb-1="38CF7CFA" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001" w:csb-1="00000000"/>
<w:sig w:usb-0="800002BF" w:usb-1="38CF7CFA" w:usb-2="00000016" w:usb-3="00000000" w:csb-0="00040001"
w:csb-1="00000000"/>
</w:font>
<w:font w:name="Courier New">
<w:panose-1 w:val="02070309020205020404"/>
<w:charset w:val="01"/>
<w:family w:val="Modern"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="E0002EFF" w:usb-1="C0007843" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF" w:csb-1="FFFF0000"/>
<w:sig w:usb-0="E0002EFF" w:usb-1="C0007843" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF"
w:csb-1="FFFF0000"/>
</w:font>
<w:font w:name="Symbol">
<w:panose-1 w:val="05050102010706020507"/>
<w:charset w:val="02"/>
<w:family w:val="Roman"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000" w:csb-1="00000000"/>
<w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000"
w:csb-1="00000000"/>
</w:font>
<w:font w:name="Calibri">
<w:panose-1 w:val="020F0502020204030204"/>
<w:charset w:val="00"/>
<w:family w:val="SWiss"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="E4002EFF" w:usb-1="C000247B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="200001FF" w:csb-1="00000000"/>
<w:sig w:usb-0="E4002EFF" w:usb-1="C000247B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="200001FF"
w:csb-1="00000000"/>
</w:font>
<w:font w:name="Wingdings">
<w:panose-1 w:val="05000000000000000000"/>
<w:charset w:val="00"/>
<w:family w:val="Auto"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000" w:csb-1="00000000"/>
<w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000"
w:csb-1="00000000"/>
</w:font>
<w:font w:name="Arial">
<w:panose-1 w:val="020B0604020202020204"/>
<w:charset w:val="00"/>
<w:family w:val="Auto"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF" w:csb-1="FFFF0000"/>
<w:sig w:usb-0="E0002EFF" w:usb-1="C000785B" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF"
w:csb-1="FFFF0000"/>
</w:font>
<w:font w:name="Courier New">
<w:panose-1 w:val="02070309020205020404"/>
<w:charset w:val="00"/>
<w:family w:val="Auto"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="E0002EFF" w:usb-1="C0007843" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF" w:csb-1="FFFF0000"/>
<w:sig w:usb-0="E0002EFF" w:usb-1="C0007843" w:usb-2="00000009" w:usb-3="00000000" w:csb-0="400001FF"
w:csb-1="FFFF0000"/>
</w:font>
<w:font w:name="Symbol">
<w:panose-1 w:val="05050102010706020507"/>
<w:charset w:val="00"/>
<w:family w:val="Auto"/>
<w:pitch w:val="Default"/>
<w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000" w:csb-1="00000000"/>
<w:sig w:usb-0="00000000" w:usb-1="00000000" w:usb-2="00000000" w:usb-3="00000000" w:csb-0="80000000"
w:csb-1="00000000"/>
</w:font>
</w:fonts>
<w:styles>
......@@ -445,7 +456,7 @@
</w:bgPict>
<w:docPr>
<w:view w:val="print"/>
<w:zoom w:percent="110"/>
<w:zoom w:percent="100"/>
<w:characterSpacingControl w:val="CompressPunctuation"/>
<w:documentProtection w:enforcement="off"/>
<w:punctuationKerning/>
......@@ -558,8 +569,8 @@
<w:tbl>
<w:tblPr>
<w:tblStyle w:val="a5"/>
<w:tblW w:w="9076" w:type="dxa"/>
<w:tblInd w:w="1420" w:type="dxa"/>
<w:tblW w:w="9230" w:type="dxa"/>
<w:tblInd w:w="1265" w:type="dxa"/>
<w:tblBorders>
<w:top w:val="single" w:sz="2" wx:bdrwidth="5" w:space="0" w:color="000000"/>
<w:left w:val="single" w:sz="2" wx:bdrwidth="5" w:space="0" w:color="000000"/>
......@@ -577,11 +588,11 @@
</w:tblCellMar>
</w:tblPr>
<w:tblGrid>
<w:gridCol w:w="847"/>
<w:gridCol w:w="2383"/>
<w:gridCol w:w="1690"/>
<w:gridCol w:w="2198"/>
<w:gridCol w:w="1958"/>
<w:gridCol w:w="900"/>
<w:gridCol w:w="2205"/>
<w:gridCol w:w="2115"/>
<w:gridCol w:w="1770"/>
<w:gridCol w:w="2240"/>
</w:tblGrid>
<w:tr>
<w:tblPrEx>
......@@ -605,7 +616,7 @@
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="847" w:type="dxa"/>
<w:tcW w:w="900" w:type="dxa"/>
<w:vmerge w:val="restart"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
......@@ -651,7 +662,8 @@
<w:pPr>
<w:pStyle w:val="a6"/>
<w:spacing w:before="78" w:line="247" w:line-rule="auto"/>
<w:ind w:left="176" w:right="184" w:right-chars="0" w:hanging="1" w:first-line-chars="0"/>
<w:ind w:left="176" w:right="184" w:right-chars="0" w:hanging="1"
w:first-line-chars="0"/>
<w:jc w:val="left"/>
</w:pPr>
<w:r>
......@@ -661,28 +673,16 @@
<w:t>设备</w:t>
</w:r>
<w:r>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="-2"/>
</w:rPr>
<w:t>基本</w:t>
</w:r>
<w:r>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="-2"/>
</w:rPr>
<w:t>情况</w:t>
<w:t>基本情况</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2383" w:type="dxa"/>
<w:tcW w:w="2205" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
</w:tcBorders>
......@@ -721,7 +721,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1690" w:type="dxa"/>
<w:tcW w:w="2115" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
</w:tcBorders>
......@@ -750,7 +750,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2198" w:type="dxa"/>
<w:tcW w:w="1770" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
</w:tcBorders>
......@@ -786,7 +786,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1958" w:type="dxa"/>
<w:tcW w:w="2240" w:type="dxa"/>
<w:tcBorders>
<w:top w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
<w:right w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
......@@ -838,7 +838,7 @@
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="847" w:type="dxa"/>
<w:tcW w:w="900" w:type="dxa"/>
<w:vmerge w:val="continue"/>
<w:tcBorders>
<w:top w:val="nil"/>
......@@ -866,7 +866,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2383" w:type="dxa"/>
<w:tcW w:w="2205" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="top"/>
</w:tcPr>
......@@ -902,7 +902,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1690" w:type="dxa"/>
<w:tcW w:w="2115" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="center"/>
</w:tcPr>
......@@ -927,7 +927,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2198" w:type="dxa"/>
<w:tcW w:w="1770" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="top"/>
</w:tcPr>
......@@ -960,7 +960,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1958" w:type="dxa"/>
<w:tcW w:w="2240" w:type="dxa"/>
<w:tcBorders>
<w:right w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
</w:tcBorders>
......@@ -1009,7 +1009,7 @@
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="847" w:type="dxa"/>
<w:tcW w:w="900" w:type="dxa"/>
<w:vmerge w:val="restart"/>
<w:tcBorders>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
......@@ -1075,28 +1075,16 @@
<w:t>设备</w:t>
</w:r>
<w:r>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="-2"/>
</w:rPr>
<w:t>使用</w:t>
</w:r>
<w:r>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="-2"/>
</w:rPr>
<w:t>情况</w:t>
<w:t>使用情况</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2383" w:type="dxa"/>
<w:tcW w:w="2205" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="top"/>
</w:tcPr>
......@@ -1117,7 +1105,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="5846" w:type="dxa"/>
<w:tcW w:w="6125" w:type="dxa"/>
<w:gridSpan w:val="3"/>
<w:tcBorders>
<w:right w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
......@@ -1168,7 +1156,7 @@
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="847" w:type="dxa"/>
<w:tcW w:w="900" w:type="dxa"/>
<w:vmerge w:val="continue"/>
<w:tcBorders>
<w:top w:val="nil"/>
......@@ -1197,7 +1185,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2383" w:type="dxa"/>
<w:tcW w:w="2205" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="top"/>
</w:tcPr>
......@@ -1219,7 +1207,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="5846" w:type="dxa"/>
<w:tcW w:w="6125" w:type="dxa"/>
<w:gridSpan w:val="3"/>
<w:tcBorders>
<w:right w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
......@@ -1271,7 +1259,7 @@
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="847" w:type="dxa"/>
<w:tcW w:w="900" w:type="dxa"/>
<w:vmerge w:val="continue"/>
<w:tcBorders>
<w:top w:val="nil"/>
......@@ -1300,7 +1288,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2383" w:type="dxa"/>
<w:tcW w:w="2205" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="top"/>
</w:tcPr>
......@@ -1321,7 +1309,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1690" w:type="dxa"/>
<w:tcW w:w="2115" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="center"/>
</w:tcPr>
......@@ -1348,7 +1336,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2198" w:type="dxa"/>
<w:tcW w:w="1770" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="top"/>
</w:tcPr>
......@@ -1371,7 +1359,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1958" w:type="dxa"/>
<w:tcW w:w="2240" w:type="dxa"/>
<w:tcBorders>
<w:right w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
</w:tcBorders>
......@@ -1420,7 +1408,7 @@
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="847" w:type="dxa"/>
<w:tcW w:w="900" w:type="dxa"/>
<w:vmerge w:val="continue"/>
<w:tcBorders>
<w:top w:val="nil"/>
......@@ -1449,7 +1437,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2383" w:type="dxa"/>
<w:tcW w:w="2205" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="top"/>
</w:tcPr>
......@@ -1475,7 +1463,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1690" w:type="dxa"/>
<w:tcW w:w="2115" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="center"/>
</w:tcPr>
......@@ -1500,7 +1488,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2198" w:type="dxa"/>
<w:tcW w:w="1770" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="top"/>
</w:tcPr>
......@@ -1523,7 +1511,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1958" w:type="dxa"/>
<w:tcW w:w="2240" w:type="dxa"/>
<w:tcBorders>
<w:right w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
</w:tcBorders>
......@@ -1572,7 +1560,7 @@
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="847" w:type="dxa"/>
<w:tcW w:w="900" w:type="dxa"/>
<w:vmerge w:val="continue"/>
<w:tcBorders>
<w:top w:val="nil"/>
......@@ -1600,7 +1588,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2383" w:type="dxa"/>
<w:tcW w:w="2205" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="top"/>
</w:tcPr>
......@@ -1620,7 +1608,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1690" w:type="dxa"/>
<w:tcW w:w="2115" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="center"/>
</w:tcPr>
......@@ -1645,7 +1633,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2198" w:type="dxa"/>
<w:tcW w:w="1770" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:vAlign w:val="top"/>
</w:tcPr>
......@@ -1668,7 +1656,7 @@
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="1958" w:type="dxa"/>
<w:tcW w:w="2240" w:type="dxa"/>
<w:tcBorders>
<w:right w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
</w:tcBorders>
......@@ -1718,7 +1706,7 @@
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="9076" w:type="dxa"/>
<w:tcW w:w="9230" w:type="dxa"/>
<w:gridSpan w:val="5"/>
<w:tcBorders>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
......@@ -1737,19 +1725,7 @@
<w:rPr>
<w:spacing w:val="4"/>
</w:rPr>
<w:t>在此申明:所申报的内容真实;</w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="-59"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="4"/>
</w:rPr>
<w:t>在使用过程中</w:t>
<w:t>在此申明:所申报的内容真实;在使用过程中</w:t>
</w:r>
<w:r>
<w:rPr>
......@@ -1758,9 +1734,6 @@
<w:t>,将严格执行《中华人民共和国</w:t>
</w:r>
<w:r>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="7"/>
</w:rPr>
......@@ -1863,29 +1836,9 @@
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="4"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="-3"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:hint="fareast"/>
<w:spacing w:val="-3"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="-3"/>
</w:rPr>
<w:t> 日期:</w:t>
<w:t> 日期:</w:t>
</w:r>
<w:r>
<w:rPr>
......@@ -1938,23 +1891,9 @@
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="4"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:hint="fareast"/>
<w:spacing w:val="4"/>
<w:lang w:val="EN-US" w:fareast="ZH-CN"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="-2"/>
</w:rPr>
<w:t> 日期:</w:t>
<w:t> 日期:</w:t>
</w:r>
<w:r>
<w:rPr>
......@@ -1989,7 +1928,7 @@
</w:trPr>
<w:tc>
<w:tcPr>
<w:tcW w:w="9076" w:type="dxa"/>
<w:tcW w:w="9230" w:type="dxa"/>
<w:gridSpan w:val="5"/>
<w:tcBorders>
<w:left w:val="single" w:sz="6" wx:bdrwidth="15" w:space="0" w:color="000000"/>
......@@ -2055,43 +1994,13 @@
<w:rPr>
<w:spacing w:val="-3"/>
</w:rPr>
<w:t>登记机关登记人员: 日期:</w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="2"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="-2"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="14"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="-2"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="29"/>
</w:rPr>
<w:t></w:t>
<w:t>登记机关登记人员: 日期:</w:t>
</w:r>
<w:r>
<w:rPr>
<w:spacing w:val="-2"/>
</w:rPr>
<w:t> </w:t>
<w:t> 年 月</w:t>
</w:r>
</w:p>
<w:p>
......@@ -2144,9 +2053,9 @@
<w:p/>
<w:sectPr>
<w:pgSz w:w="11905" w:h="16840"/>
<w:pgMar w:top="1523" w:right="4" w:bottom="1323" w:left="0" w:header="1208" w:footer="1135" w:gutter="0"/>
<w:pgMar w:top="1523" w:right="4" w:bottom="1323" w:left="0" w:header="1208" w:footer="1135"
w:gutter="0"/>
<w:cols w:space="720"/>
</w:sectPr>
</wx:sect>
</w:body>
</w:wordDocument>
\ No newline at end of file
</w:body></w:wordDocument>
\ No newline at end of file
......@@ -32,7 +32,7 @@ public class MonthCylinderBusinessStatisticsJob {
this.businessStatisticsMapper = businessStatisticsMapper;
}
@Scheduled(cron = "0 */5 * * * ?")
@Scheduled(cron = "0 0 2 * * ?")
@SchedulerLock(name = "cylinderBusinessStatisticsJob", lockAtMostFor = "PT1H")
public void cylinderBusinessStatisticsJob() {
List<Map<String, Object>> useRegisterCountList = useRegistrationMapper.getUseRegisterCountTotal();
......
......@@ -29,16 +29,18 @@ spring.datasource.dynamic.datasource.cyl.hikari.max-lifetime=120000
spring.datasource.dynamic.datasource.cyl.hikari.connection-timeout=30000
spring.datasource.dynamic.datasource.cyl.hikari.connection-test-query=SELECT 1
localhost=${spring.cloud.client.ip-address}
## eureka properties:
eureka.client.service-url.defaultZone=http://172.16.10.243:10001/eureka/
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url=http://172.16.3.20:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.health-check-url=http://${localhost}:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator
eureka.instance.status-page-url=http://172.16.3.20:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs=http://172.16.3.20:${server.port}${server.servlet.context-path}/doc.html
eureka.instance.ip-address=172.16.3.20
eureka.instance.status-page-url=http://${localhost}:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs=http://${localhost}:${server.port}${server.servlet.context-path}/doc.html
eureka.instance.ip-address=${localhost}
#redis properties:
spring.redis.database=1
......@@ -72,4 +74,6 @@ eureka.instance.metadata-map.user.name=admin
eureka.instance.metadata-map.user.password=a1234560
spring.security.user.name=admin
spring.security.user.password=a1234560
management.security.enabled=true
\ No newline at end of file
management.security.enabled=true
regulatory_code_prefix=https://sxtzsb.sxsei.com:19435/tzs?code=
\ No newline at end of file
......@@ -203,13 +203,13 @@ public class TzBaseEnterpriseInfoServiceImpl
List<BaseUnitLicence> unitLicences = baseUnitLicenceService.list(new LambdaQueryWrapper<BaseUnitLicence>()
.eq(BaseUnitLicence::getUnitCode, tzBaseEnterpriseInfo.getUseCode()));
List<BaseUnitLicenceDto> unitLicenceDtos = new ArrayList<>();
List<BaseUnitLicence> unitLicencesCollect;
if ("监管机构".equals(companyType)) {
unitLicencesCollect = unitLicences;
} else {
// 解决脏数据问题,脏数据不再显示
unitLicencesCollect = unitLicences.stream()
.filter(baseUnitLicence -> baseUnitLicence.getCertTypeCode() != null && COMPANY_TYPE_CERT_TYPE_MAP.get(companyType).contains((baseUnitLicence.getCertTypeCode())))
List<BaseUnitLicence> unitLicencesCollect = Optional.ofNullable(unitLicences).orElse(Collections.emptyList());
if (!"监管机构".equals(companyType)) {
List<String> certTypeList = Arrays.asList(Optional.ofNullable(COMPANY_TYPE_CERT_TYPE_MAP.get(companyType))
.orElse("")
.split(","));
unitLicencesCollect = unitLicencesCollect.stream()
.filter(unit -> unit.getCertTypeCode() != null && certTypeList.contains(unit.getCertTypeCode()))
.collect(Collectors.toList());
}
if (!ValidationUtil.isEmpty(unitLicencesCollect)) {
......
localhost=${spring.cloud.client.ip-address}
#DB properties:
spring.datasource.url=jdbc:vastbase://172.16.10.243:5432/tzs_amos_tzs_biz_init?currentSchema=amos_tzs_biz&allowMultiQueries=true
spring.datasource.username=admin
......@@ -6,11 +8,11 @@ eureka.client.service-url.defaultZone=http://172.16.10.243:10001/eureka/
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url=http://172.16.3.20:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.health-check-url=http://${localhost}:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator
eureka.instance.status-page-url=http://172.16.3.20:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs=http://172.16.3.20:${server.port}${server.servlet.context-path}/doc.html
eureka.instance.ip-address=172.16.3.20
eureka.instance.status-page-url=http://${localhost}:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs=http://${localhost}:${server.port}${server.servlet.context-path}/doc.html
eureka.instance.ip-address=${localhost}
## ES properties:
elasticsearch.username=elastic
elasticsearch.password=a123456
......
package com.yeejoin.amos.boot.module.ymt.api.dto;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
......@@ -133,4 +134,7 @@ public class IdxBizJgProjectContraptionDto extends BaseDto {
@ApiModelProperty("是否首次合并新增")
private Boolean isFirstMerge;
@ApiModelProperty("最新一次管道改造的长度变化值(正值为增加,负值为减少)")
private String pipeLengthChanged;
}
......@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.ymt.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;
......@@ -276,8 +277,15 @@ public class IdxBizJgProjectContraption extends BaseEntity {
private Boolean isFirstMerge;
/**
* 最新一次管道改造的长度变化值(正值为增加,负值为减少)
*/
@TableField("pipe_length_changed")
private String pipeLengthChanged;
/**
* 是否禁用打印汇总表按钮
*/
@TableField(exist = false)
private Boolean disableBasicButton;
}
......@@ -23,7 +23,7 @@ public interface IdxBizJgRegisterInfoMapper extends BaseMapper<IdxBizJgRegisterI
@Select("update idx_biz_jg_register_info set \"USE_ORG_CODE\" = #{useOrgCode} where \"RECORD\" = #{equipCode}")
Boolean updateUseOrgCodeByEquip(@Param("equipCode") String equipCode,@Param("useOrgCode") String useOrgCode);
@Select("select code as dictDataKey,name as dictDataValue from tz_equipment_category where parent_id = ( SELECT sub.id from tz_equipment_category as sub where sub.code = #{equipCode})")
@Select("select code as dictDataKey,name as dictDataValue from tz_equipment_category where parent_id = ( SELECT sub.id from tz_equipment_category as sub where sub.code = #{equipCode}) order by dictDataKey desc")
List<DictionarieValueModel> queryAllEquCategoriesUnderTheEquList(@Param("equipCode") String equipCode);
@MapKey("uscUnitCreditCode")
......
......@@ -5,6 +5,7 @@
<select id="getDetail" resultType="java.util.Map">
SELECT
SEQUENCE_NBR,
SEQUENCE_NBR as projectContraptionId,
USE_UNIT_CREDIT_CODE,
EQU_LIST,
EQU_CATEGORY,
......@@ -73,7 +74,8 @@
(select USC_DATE from idx_biz_jg_construction_info jci where ibjui.RECORD = jci.RECORD ORDER BY jci."USC_DATE" DESC limit 1) as uscDate,
ibjdi."DESIGN_UNIT_NAME" AS designUnitName,
ibjui."USE_DATE" AS useDate,
ibjui."RECORD" AS record
ibjui."RECORD" AS record,
ibjui.project_contraption_id AS projectContraptionId
FROM idx_biz_jg_use_info ibjui
LEFT JOIN idx_biz_jg_tech_params_pipeline ibjtpp ON ibjui.RECORD = ibjtpp.RECORD
LEFT JOIN idx_biz_jg_design_info ibjdi ON ibjui.RECORD = ibjdi.RECORD
......@@ -313,48 +315,96 @@
</select>
<select id="countContraptionInUseTimesForDeleteByIntoManagement" resultType="java.lang.Integer">
SELECT SUM(inUseNumber) FROM (
SELECT COUNT(DISTINCT A.sequence_nbr) AS inUseNumber FROM tzs_jg_equip_transfer A
LEFT JOIN tzs_jg_equip_transfer_eq b ON b.equip_transfer_id = A.sequence_nbr
LEFT JOIN idx_biz_jg_use_info C ON b.equ_id = C.record
WHERE C.project_contraption_id = #{projectContraptionId}
AND A.is_delete = 0
AND A.apply_status != '6617'
UNION
SELECT COUNT(1) AS inUseNumber FROM tzs_jg_use_registration A
WHERE A.project_contraption_id = #{projectContraptionId}
AND A.is_delete = 0
AND A.status != '已作废'
UNION
SELECT COUNT(DISTINCT A.sequence_nbr) AS inUseNumber FROM tzs_jg_change_registration_unit A
LEFT JOIN tzs_jg_change_registration_unit_eq b ON b.unit_change_registration_id = A.sequence_nbr
LEFT JOIN idx_biz_jg_use_info C ON b.equ_id = C.record
WHERE C.project_contraption_id = #{projectContraptionId}
AND A.is_delete = 0
AND A.status != '已作废'
UNION
SELECT COUNT(DISTINCT A.sequence_nbr) AS inUseNumber FROM tzs_jg_enable_disable A
LEFT JOIN tzs_jg_enable_disable_eq b ON b.enable_disable_apply_id = A.sequence_nbr
LEFT JOIN idx_biz_jg_use_info C ON b.equ_id = C.record
WHERE C.project_contraption_id = #{projectContraptionId}
AND A.is_delete = 0
AND A.audit_status != '已作废'
UNION
SELECT COUNT(DISTINCT A.sequence_nbr) AS inUseNumber FROM tzs_jg_scrap_cancel A
LEFT JOIN tzs_jg_scrap_cancel_eq b ON b.equip_transfer_id = A.sequence_nbr
LEFT JOIN idx_biz_jg_use_info C ON b.equ_id = C.record
WHERE C.project_contraption_id = #{projectContraptionId}
AND A.is_delete = 0
AND A.audit_status != '使用单位已撤回'
UNION
SELECT COUNT(1) AS inUseNumber FROM tzs_jg_installation_notice A
WHERE A.project_contraption_id = #{projectContraptionId}
AND A.notice_status != '6617'
UNION
SELECT COUNT(1) AS inUseNumber FROM tz_jyjc_inspection_application A
WHERE A.project_contraption_id = #{projectContraptionId}
AND A.status != '6617'
) AS result
SELECT SUM(inUseNumber)
FROM (
SELECT COUNT(*) AS inUseNumber
FROM tzs_jg_equip_transfer a
JOIN tzs_jg_equip_transfer_eq b ON b.equip_transfer_id = a.sequence_nbr
JOIN idx_biz_jg_use_info c ON b.equ_id = c.record
WHERE c.project_contraption_id = #{projectContraptionId}
AND a.is_delete = 0
AND a.apply_status != '6617'
UNION ALL
SELECT COUNT(*) AS inUseNumber
FROM tzs_jg_use_registration a
WHERE a.project_contraption_id = #{projectContraptionId}
AND a.is_delete = 0
AND a.status != '已作废'
UNION ALL
SELECT COUNT(*) AS inUseNumber
FROM tzs_jg_change_registration_unit a
JOIN tzs_jg_change_registration_unit_eq b ON b.unit_change_registration_id = a.sequence_nbr
JOIN idx_biz_jg_use_info c ON b.equ_id = c.record
WHERE c.project_contraption_id = #{projectContraptionId}
AND a.is_delete = 0
AND a.status != '已作废'
UNION ALL
SELECT COUNT(*) AS inUseNumber
FROM tzs_jg_enable_disable a
JOIN tzs_jg_enable_disable_eq b ON b.enable_disable_apply_id = a.sequence_nbr
JOIN idx_biz_jg_use_info c ON b.equ_id = c.record
WHERE c.project_contraption_id = #{projectContraptionId}
AND a.is_delete = 0
AND a.audit_status != '已作废'
UNION ALL
SELECT COUNT(*) AS inUseNumber
FROM tzs_jg_scrap_cancel a
JOIN tzs_jg_scrap_cancel_eq b ON b.equip_transfer_id = a.sequence_nbr
JOIN idx_biz_jg_use_info c ON b.equ_id = c.record
WHERE c.project_contraption_id = #{projectContraptionId}
AND a.is_delete = 0
AND a.audit_status != '使用单位已撤回'
UNION ALL
SELECT COUNT(*) AS inUseNumber
FROM tzs_jg_change_registration_transfer a
JOIN tzs_jg_change_registration_transfer_eq b ON b.equip_transfer_id = a.sequence_nbr
JOIN idx_biz_jg_use_info c ON b.equ_id = c.record
WHERE c.project_contraption_id = #{projectContraptionId}
AND a.is_delete = 0
AND a.audit_status != '使用单位已撤回'
UNION ALL
SELECT COUNT(*) AS inUseNumber
FROM tzs_jg_change_registration_name a
JOIN tzs_jg_change_registration_name_eq b ON b.name_change_registration_id = a.sequence_nbr
JOIN idx_biz_jg_use_info c ON b.equ_id = c.record
WHERE c.project_contraption_id = #{projectContraptionId}
AND a.is_delete = 0
AND a.audit_status != '使用单位已撤回'
UNION ALL
SELECT COUNT(*) AS inUseNumber
FROM tzs_jg_installation_notice a
WHERE a.project_contraption_id = #{projectContraptionId}
AND a.notice_status != '6617'
UNION ALL
SELECT COUNT(*) AS inUseNumber
FROM tzs_jg_maintain_notice a
JOIN tzs_jg_maintain_notice_eq b ON b.equip_transfer_id = a.sequence_nbr
JOIN idx_biz_jg_use_info c ON b.equ_id = c.record
WHERE c.project_contraption_id = #{projectContraptionId}
AND a.is_delete = 0
AND a.notice_status != '6617'
UNION ALL
SELECT COUNT(*) AS inUseNumber
FROM tzs_jg_reform_notice a
JOIN tzs_jg_reform_notice_eq b ON b.equip_transfer_id = a.sequence_nbr
JOIN idx_biz_jg_use_info c ON b.equ_id = c.record
WHERE c.project_contraption_id = #{projectContraptionId}
AND a.is_delete = 0
AND a.notice_status != '6617'
UNION ALL
SELECT COUNT(*) AS inUseNumber
FROM tzs_jg_transfer_notice a
JOIN tzs_jg_transfer_notice_eq b ON b.equip_transfer_id = a.sequence_nbr
JOIN idx_biz_jg_use_info c ON b.equ_id = c.record
WHERE c.project_contraption_id = #{projectContraptionId}
AND a.is_delete = 0
AND a.notice_status != '6617'
UNION ALL
SELECT COUNT(*) AS inUseNumber
FROM tz_jyjc_inspection_application a
WHERE a.project_contraption_id = #{projectContraptionId}
AND a.status != '6617'
) AS subquery
</select>
<select id="countContraptionInUseTimesForDeleteByIntoManagementBatch" resultMap="projectContraptionResultMap">
......
......@@ -154,7 +154,7 @@ public class EquipmentCategoryController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET", value = "装备分类列表全部数据查询", notes = "装备分类列表全部数据查询")
@GetMapping(value = "/tree")
public ResponseModel<Object> tree(@RequestParam(value = "code", required = false) String code) throws Exception {
public ResponseModel<Object> tree(@RequestParam(value = "code", required = false) String code,@RequestParam(value = "dataSource", required = false) String dataSource) throws Exception {
if (ObjectUtils.isEmpty(code)) {
return ResponseHelper.buildResponse(new ArrayList<>());
}
......@@ -165,6 +165,13 @@ public class EquipmentCategoryController extends BaseController {
Menu menu = new Menu(root.getId(), root.getName(), 0L, 0);
List<Menu> menus = TreeParser.getTree(root.getId(), list, EquipmentCategory.class.getName(), "getId", 0, "getName",
"getParentId", null, "getCode");
if (Objects.nonNull(dataSource)&&"jg_his_black".equals(dataSource)){
for (Menu menu1 : menus) {
if (menu1.getName().equals("特种气瓶")){
menu1.setName("特种气瓶"+"(非车用气瓶)");
}
}
}
menu.setChildren(menus);
List<Menu> tree = new ArrayList<>();
tree.add(menu);
......
localhost=${spring.cloud.client.ip-address}
#DB properties:
spring.datasource.url=jdbc:vastbase://172.16.10.243:5432/tzs_amos_tzs_biz_init?currentSchema=amos_tzs_biz&allowMultiQueries=true
spring.datasource.username=admin
......@@ -6,11 +8,11 @@ eureka.client.service-url.defaultZone=http://172.16.10.243:10001/eureka/
eureka.instance.prefer-ip-address=true
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
eureka.instance.health-check-url=http://172.16.3.68:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.health-check-url=http://${localhost}:${server.port}${server.servlet.context-path}/actuator/health
eureka.instance.metadata-map.management.context-path=${server.servlet.context-path}/actuator
eureka.instance.status-page-url=http://172.16.3.68:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs=http://172.16.3.68:${server.port}${server.servlet.context-path}/doc.html
eureka.instance.ip-address=172.16.3.68
eureka.instance.status-page-url=http://${localhost}:${server.port}${server.servlet.context-path}/actuator/info
eureka.instance.metadata-map.management.api-docs=http://${localhost}:${server.port}${server.servlet.context-path}/doc.html
eureka.instance.ip-address=${localhost}
## ES properties:
elasticsearch.username=elastic
elasticsearch.password=a123456
......
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