Commit 39498c1a authored by suhuiguang's avatar suhuiguang

1.压力管道改造变更登记开发

parent 678c93d5
package com.yeejoin.amos.boot.module.jg.api.mapper; package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; 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.CompanyEquipCountDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgChangeRegistrationReformDto; 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.entity.JgChangeRegistrationReform;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo; 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.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.Param;
import org.apache.ibatis.annotations.Select; import org.apache.ibatis.annotations.Select;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
/** /**
* 改造变更登记 Mapper 接口 * 改造变更登记 Mapper 接口
...@@ -44,4 +47,13 @@ public interface JgChangeRegistrationReformMapper extends BaseMapper<JgChangeReg ...@@ -44,4 +47,13 @@ public interface JgChangeRegistrationReformMapper extends BaseMapper<JgChangeReg
List<Map<String, Object>> getDetailById(@Param("id") Long id); List<Map<String, Object>> getDetailById(@Param("id") Long id);
List<CompanyEquipCountDto> queryForFlowingEquipList(); 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);
} }
...@@ -20,8 +20,7 @@ ...@@ -20,8 +20,7 @@
jri.PRODUCT_NAME as productName, jri.PRODUCT_NAME as productName,
jri.EQU_CODE as equCode, jri.EQU_CODE as equCode,
use.USE_INNER_CODE as innerCode, use.USE_INNER_CODE as innerCode,
concat(use.PROVINCE_NAME,use.CITY_NAME,use.COUNTY_NAME,use.STREET_NAME) as place, concat_ws('', use.PROVINCE_NAME,use.CITY_NAME,use.COUNTY_NAME,use.STREET_NAME, use."ADDRESS") as place,
use."ADDRESS" as detailedAddress,
ifnull(ur.instance_id, '') as instanceId, ifnull(ur.instance_id, '') as instanceId,
re.equ_id as equipId, re.equ_id as equipId,
ur.apply_no as applyNo, ur.apply_no as applyNo,
...@@ -34,72 +33,113 @@ ...@@ -34,72 +33,113 @@
oi.CODE96333 as code96333, oi.CODE96333 as code96333,
ur.cancel_reason as cancelReason, 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_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 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 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_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_use_info use on use.RECORD = re.equ_id
LEFT JOIN idx_biz_jg_other_info oi ON oi.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> </sql>
<select id="getListPage" resultType="java.util.Map"> <select id="getListPage" resultType="java.util.Map">
<include refid="page_list"/>
select * from
(
<include refid="page_list"/>
) as ur
<where> <where>
and ur.is_delete = 0
<if test="dto.auditStatus != null and dto.auditStatus != ''"> <if test="dto.auditStatus != null and dto.auditStatus != ''">
and ur.audit_status = #{dto.auditStatus} and ur.auditStatus = #{dto.auditStatus}
</if> </if>
<if test="dto.supervisoryCode != null and dto.supervisoryCode != ''"> <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>
<if test="dto.applyNo != null and dto.applyNo != ''"> <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>
<if test="dto.useRegistrationCode != null and dto.useRegistrationCode != ''"> <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>
<if test="dto.receiveCompanyCode != null and dto.receiveCompanyCode != ''"> <if test="dto.receiveCompanyCode != null and dto.receiveCompanyCode != ''">
and ur.receive_company_code = #{dto.receiveCompanyCode} and ur.receive_company_code = #{dto.receiveCompanyCode}
</if> </if>
<if test="dto.useUnitName != null and dto.useUnitName != ''"> <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>
<if test="dto.applicationDate != null and dto.applicationDate != ''"> <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>
<if test="dto.equList != null and dto.equList != ''"> <if test="dto.equList != null and dto.equList != ''">
AND jri."EQU_LIST" = #{dto.equList} AND ur."EQU_LIST" = #{dto.equList}
</if> </if>
<if test="dto.equCategory != null and dto.equCategory != ''"> <if test="dto.equCategory != null and dto.equCategory != ''">
AND jri."equ_category" = #{dto.equCategory} AND ur."equ_category" = #{dto.equCategory}
</if> </if>
<if test="dto.equDefine != null and dto.equDefine != ''"> <if test="dto.equDefine != null and dto.equDefine != ''">
AND jri."EQU_DEFINE" = #{dto.equDefine} AND jri."EQU_DEFINE" = #{dto.equDefine}
</if> </if>
<if test="dto.equCode != null and dto.equCode != ''"> <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>
<if test="dto.code96333 != null and dto.code96333 != ''"> <if test="dto.code96333 != null and dto.code96333 != ''">
AND oi.CODE96333 like concat('%',#{dto.code96333},'%') AND ur.CODE96333 like concat('%',#{dto.code96333},'%')
</if> </if>
<if test="dto.createDate != null"> <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>
<if test="dto.equAddress != null and dto.equAddress != ''"> <if test="dto.equAddress != null and dto.equAddress != ''">
AND ( AND ur."place" LIKE CONCAT('%', #{dto.equAddress}, '%')
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>
</if> </if>
<if test="dto.dataType != null and dto.dataType == 'supervision' "> <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[<>]]> '' AND ur.instance_id <![CDATA[<>]]> ''
</if> </if>
<if test="dto.dataType != null and dto.dataType == 'company' "> <if test="dto.dataType != null and dto.dataType == 'company' ">
...@@ -110,7 +150,7 @@ ...@@ -110,7 +150,7 @@
<if test="sort != null"> <if test="sort != null">
ur.${sort.field} ${sort.sortType}, ur.${sort.field} ${sort.sortType},
</if> </if>
ur.create_date DESC, ur.apply_no DESC ur.createDate DESC, ur.applyNo DESC
</select> </select>
<select id="queryChangeRegistrationReformInIds" resultType="com.yeejoin.amos.boot.module.jg.api.vo.tableDataExportVo.ChangeRegistrationReformVo"> <select id="queryChangeRegistrationReformInIds" resultType="com.yeejoin.amos.boot.module.jg.api.vo.tableDataExportVo.ChangeRegistrationReformVo">
...@@ -239,4 +279,87 @@ ...@@ -239,4 +279,87 @@
a.sequence_nbr = b.equip_transfer_id a.sequence_nbr = b.equip_transfer_id
and a.status not in('使用单位待提交','一级受理已驳回','使用单位已撤回','已作废','已完成') and a.status not in('使用单位待提交','一级受理已驳回','使用单位已撤回','已作废','已完成')
</select> </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> </mapper>
package com.yeejoin.amos.boot.module.jg.biz.controller; package com.yeejoin.amos.boot.module.jg.biz.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; 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.controller.BaseController;
...@@ -9,6 +10,7 @@ import com.yeejoin.amos.boot.module.jg.api.dto.JgUseRegistrationManageDto; ...@@ -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.entity.JgChangeRegistrationReform;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum; 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.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.AgencyModel;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel; import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -214,4 +216,31 @@ public class JgChangeRegistrationReformController extends BaseController { ...@@ -214,4 +216,31 @@ public class JgChangeRegistrationReformController extends BaseController {
JgChangeRegistrationReform result = jgChangeRegistrationReformServiceImpl.cancelApplication(registrationReformDto.getSequenceNbr(), registrationReformDto.getCancelReason(), user.getRealName()); JgChangeRegistrationReform result = jgChangeRegistrationReformServiceImpl.cancelApplication(registrationReformDto.getSequenceNbr(), registrationReformDto.getCancelReason(), user.getRealName());
return ResponseHelper.buildResponse(result); 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));
}
} }
...@@ -2,10 +2,13 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl; ...@@ -2,10 +2,13 @@ package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapBuilder;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo; import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
...@@ -16,7 +19,6 @@ import com.yeejoin.amos.boot.module.jg.api.dto.*; ...@@ -16,7 +19,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.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum; import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum; 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.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.*; import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationReformService; import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationReformService;
...@@ -58,14 +60,19 @@ import org.typroject.tyboot.core.rdbms.service.BaseService; ...@@ -58,14 +60,19 @@ import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl.getAuditPassedDate; 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.toList;
import static java.util.stream.Collectors.toSet;
/** /**
* 改造变更登记服务实现类 * 改造变更登记服务实现类
...@@ -154,6 +161,11 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR ...@@ -154,6 +161,11 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
@Autowired @Autowired
private SnowflakeIdUtil sequence; private SnowflakeIdUtil sequence;
@Resource
IdxBizJgProjectContraptionServiceImpl jgProjectContraptionService;
@Autowired
private JgChangeRegistrationReformEqServiceImpl jgChangeRegistrationReformEqServiceImpl;
/*** /***
* @deprecated 根据查询调教获取分页对象 * @deprecated 根据查询调教获取分页对象
* @param dto 查询的dto对象 * @param dto 查询的dto对象
...@@ -212,136 +224,211 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR ...@@ -212,136 +224,211 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class); ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String companyCode = CompanyTypeEnum.INDIVIDUAL.getName().equals(reginParams.getCompany().getCompanyType()) ? String companyCode = CompanyTypeEnum.INDIVIDUAL.getName().equals(reginParams.getCompany().getCompanyType()) ?
reginParams.getCompany().getCompanyCode().split("_")[1] : reginParams.getCompany().getCompanyCode(); reginParams.getCompany().getCompanyCode().split("_")[1] : reginParams.getCompany().getCompanyCode();
UseInfo useInfo = new UseInfo(); String equListCode = map.getString("EQU_LIST_CODE");
String equipId = map.get("record").toString(); if(!equListCode.equals(EquipmentClassifityEnum.YLGD.getCode())){
LambdaQueryWrapper<UseInfo> lambda = new QueryWrapper<UseInfo>().lambda(); UseInfo useInfo = new UseInfo();
lambda.eq(UseInfo::getRecord, equipId); String equipId = map.get("record").toString();
// 提交时进行校验设备是否在流程中使用(并发及同时打开多个相同的页面时才会出现此种情况) LambdaQueryWrapper<UseInfo> lambda = new QueryWrapper<UseInfo>().lambda();
this.checkForRepeatUsedEquip(map, equipId, reginParams); lambda.eq(UseInfo::getRecord, equipId);
// 使用登记信息 // 提交时进行校验设备是否在流程中使用(并发及同时打开多个相同的页面时才会出现此种情况)
JgChangeRegistrationReform jgChangeRegistrationReform = new JgChangeRegistrationReform(); this.checkForRepeatUsedEquip(map, equipId, reginParams);
LambdaQueryWrapper<OtherInfo> otherLambda = new QueryWrapper<OtherInfo>().lambda(); // 使用登记信息
otherLambda.eq(OtherInfo::getRecord, equipId); JgChangeRegistrationReform jgChangeRegistrationReform = new JgChangeRegistrationReform();
OtherInfo otherInfo = otherInfoMapper.selectOne(otherLambda); LambdaQueryWrapper<OtherInfo> otherLambda = new QueryWrapper<OtherInfo>().lambda();
String supervisoryCode = otherInfo.getSupervisoryCode(); otherLambda.eq(OtherInfo::getRecord, equipId);
jgChangeRegistrationReform.setSupervisoryCode(supervisoryCode); OtherInfo otherInfo = otherInfoMapper.selectOne(otherLambda);
jgChangeRegistrationReform.setUseUnitName(ObjectUtils.isEmpty(useInfo.getUseUnitName()) ? reginParams.getCompany().getCompanyName() : useInfo.getUseUnitName()); String supervisoryCode = otherInfo.getSupervisoryCode();
jgChangeRegistrationReform.setUseUnitCreditCode(ObjectUtils.isEmpty(useInfo.getUseUnitCreditCode()) ? companyCode : useInfo.getUseUnitCreditCode()); jgChangeRegistrationReform.setSupervisoryCode(supervisoryCode);
if (!ObjectUtils.isEmpty(map.get("otherAccessories"))) { jgChangeRegistrationReform.setUseUnitName(ObjectUtils.isEmpty(useInfo.getUseUnitName()) ? reginParams.getCompany().getCompanyName() : useInfo.getUseUnitName());
jgChangeRegistrationReform.setOtherAccessories(JSONObject.toJSONString(map.get("otherAccessories"))); jgChangeRegistrationReform.setUseUnitCreditCode(ObjectUtils.isEmpty(useInfo.getUseUnitCreditCode()) ? companyCode : useInfo.getUseUnitCreditCode());
} setUploadField(map, jgChangeRegistrationReform);
// 使用单位提交
if (!ObjectUtils.isEmpty(map.get("transformationQualityCertificate"))) { jgChangeRegistrationReform.setUseUnitCreditCode(companyCode);
jgChangeRegistrationReform.setTransformationQualityCertificate(JSONObject.toJSONString(map.get("transformationQualityCertificate"))); if (!ObjectUtils.isEmpty(map.get("inspectUnitCreditCode"))) {
} jgChangeRegistrationReform.setInspectUnitCreditCode(map.get("inspectUnitCreditCode").toString());
if (!ObjectUtils.isEmpty(map.get("renovationSupervisioninspectionCertificate"))) { } else {
jgChangeRegistrationReform.setRenovationSupervisioninspectionCertificate(JSONObject.toJSONString(map.get("renovationSupervisioninspectionCertificate"))); jgChangeRegistrationReform.setInspectUnitCreditCode(companyCode);
} }
// 使用单位提交 if (!ObjectUtils.isEmpty(map.get("inspectOrgName"))) {
jgChangeRegistrationReform.setUseUnitCreditCode(companyCode); jgChangeRegistrationReform.setInspectUnitName(map.get("inspectOrgName").toString());
if (!ObjectUtils.isEmpty(map.get("inspectUnitCreditCode"))) { } else {
jgChangeRegistrationReform.setInspectUnitCreditCode(map.get("inspectUnitCreditCode").toString()); jgChangeRegistrationReform.setInspectUnitName(reginParams.getCompany().getCompanyName());
} else { }
jgChangeRegistrationReform.setInspectUnitCreditCode(companyCode); setReveiveCompanyFields(map, jgChangeRegistrationReform);
} // 统计用
if (!ObjectUtils.isEmpty(map.get("inspectOrgName"))) { CompanyBo companyBo = commonServiceImpl.getOneCompany(jgChangeRegistrationReform.getReceiveCompanyCode());
jgChangeRegistrationReform.setInspectUnitName(map.get("inspectOrgName").toString()); jgChangeRegistrationReform.setReceiveCompanyOrgCode(companyBo.getOrgCode());
} else { JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
jgChangeRegistrationReform.setInspectUnitName(reginParams.getCompany().getCompanyName()); //使用登记编号
} jgRegistrationHistory.setUseRegistrationCode(idxBizJgRegisterInfoMapper.getUseOrgCodeByEquip(equipId));
if (map.containsKey("receiveCompanyCode")) { //登记类别
String receiveCompanyCode = String.valueOf(map.getString("receiveCompanyCode")); jgRegistrationHistory.setRegistrationClass(BUSINESS_TYPE);
String[] receiveCompany = receiveCompanyCode.split("_"); //设备id
if (!ValidationUtil.isEmpty(receiveCompany)) { jgRegistrationHistory.setEquId(equipId);
jgChangeRegistrationReform.setReceiveCompanyCode(receiveCompanyCode.split("_")[0]); //修改数据
jgChangeRegistrationReform.setReceiveOrgCode(receiveCompanyCode.split("_")[0]); jgRegistrationHistory.setChangeData(JSONObject.toJSONString(map));
if (receiveCompany.length > 1) { //设备监管码
jgChangeRegistrationReform.setReceiveOrgName(receiveCompanyCode.split("_")[1]); 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 { } 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);
} }
if (!ObjectUtils.isEmpty(map.get("submit"))) {
} else { String instanceId = "";
jgChangeRegistrationReform.setReceiveCompanyCode("610000"); if (!ObjectUtils.isEmpty(jgChangeRegistrationReform.getSequenceNbr()) && !ObjectUtils.isEmpty(jgChangeRegistrationReform.getInstanceId())) {
} // 如果是旧流程则执行一步
// 统计用 flowExecute(jgChangeRegistrationReform.getSequenceNbr(), jgChangeRegistrationReform.getInstanceId(), "0", "", jgChangeRegistrationReform.getNextTaskId());
CompanyBo companyBo = commonServiceImpl.getOneCompany(jgChangeRegistrationReform.getReceiveCompanyCode()); } else {
jgChangeRegistrationReform.setReceiveCompanyOrgCode(companyBo.getOrgCode()); // 如果是新启动的流程开启自动访问
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory(); jgChangeRegistrationReform.setAuditStatus(WorkFlowStatusEnum.CHANGE_RECEIVE.getPass());
//使用登记编号 jgChangeRegistrationReform.setStatus(WorkFlowStatusEnum.CHANGE_RECEIVE.getPass());
jgRegistrationHistory.setUseRegistrationCode(idxBizJgRegisterInfoMapper.getUseOrgCodeByEquip(equipId)); ProcessTaskDTO processTaskDTO = startByVariable(jgChangeRegistrationReform);
//登记类别 updateExecuteIds(instanceId, jgChangeRegistrationReform, "startWorkfow", processTaskDTO);
jgRegistrationHistory.setRegistrationClass(BUSINESS_TYPE); List<TaskModelDto> taskModelDtoList = Arrays.asList(getTaskModelDtoList(jgChangeRegistrationReform, processTaskDTO));
//设备id //启动之前删除暂存生成的待办
jgRegistrationHistory.setEquId(equipId); commonServiceImpl.deleteTasksByRelationId(String.valueOf(jgChangeRegistrationReform.getSequenceNbr()));
//修改数据 //重新生成新的待办数据
jgRegistrationHistory.setChangeData(JSONObject.toJSONString(map)); commonServiceImpl.buildTaskModel(taskModelDtoList);
//设备监管码 }
jgRegistrationHistory.setSupervisoryCode(supervisoryCode); }
// 原始的技术参数,在作废时,需要用来恢复之前的数据使用 return this.getBaseMapper().getDetailById(jgChangeRegistrationReform.getSequenceNbr());
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 { } else {
//暂存处理 List<Map<String, Object>> equipmentLists = (List<Map<String, Object>>) map.get("equipmentLists");
// 业务管理设备信息保存 if (CollectionUtils.isEmpty(equipmentLists)) {
JgChangeRegistrationReformEq jgChangeRegistrationReformEq = new JgChangeRegistrationReformEq(); throw new BadRequest("请选择设备信息!");
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("申请单编号生成失败,请稍后重试!");
} }
jgChangeRegistrationReform.setRegDate(new Date()); // 压力管道变更登记逻辑
jgChangeRegistrationReform.setCreateDate(new Date()); for (Map<String, Object> equip : equipmentLists) {
jgChangeRegistrationReform.setStatus(WorkFlowStatusEnum.CHANGE_SUBMIT.getPass()); // 提交时进行校验设备是否在流程中使用(并发及同时打开多个相同的页面时才会出现此种情况)
jgChangeRegistrationReform.setAuditStatus(WorkFlowStatusEnum.CHANGE_SUBMIT.getPass()); checkForRepeatUsedEquip(map, equip.get("record").toString(), reginParams);
this.save(jgChangeRegistrationReform); }
jgChangeRegistrationReformEq.setEquipTransferId(jgChangeRegistrationReform.getSequenceNbr().toString()); String projectContraptionId = map.getString("projectContraptionId");
jgChangeRegistrationReformEqMapper.insert(jgChangeRegistrationReformEq); IdxBizJgProjectContraption jgProjectContraption = jgProjectContraptionService.getById(projectContraptionId);
//当前单据id // 使用登记信息
jgRegistrationHistory.setCurrentDocumentId(jgChangeRegistrationReform.getApplyNo()); JgChangeRegistrationReform jgChangeRegistrationReform = new JgChangeRegistrationReform();
jgRegistrationHistoryMapper.insert(jgRegistrationHistory); jgChangeRegistrationReform.setSupervisoryCode(jgProjectContraption.getSupervisoryCode());
//暂存时生成待办数据 jgChangeRegistrationReform.setUseUnitName(reginParams.getCompany().getCompanyName());
List<TaskModelDto> taskModelDtoList = Arrays.asList(getTaskModelDtoList(jgChangeRegistrationReform, null)); jgChangeRegistrationReform.setUseUnitCreditCode(companyCode);
commonServiceImpl.buildTaskModel(taskModelDtoList); jgChangeRegistrationReform.setProjectContraptionId(projectContraptionId);
} jgChangeRegistrationReform.setProjectContraption(map.getString("projectContraption"));
if (!ObjectUtils.isEmpty(map.get("submit"))) { setUploadField(map, jgChangeRegistrationReform);
String instanceId = ""; // 使用单位提交
if (!ObjectUtils.isEmpty(jgChangeRegistrationReform.getSequenceNbr()) && !ObjectUtils.isEmpty(jgChangeRegistrationReform.getInstanceId())) { jgChangeRegistrationReform.setUseUnitCreditCode(companyCode);
// 如果是旧流程则执行一步 setReveiveCompanyFields(map, jgChangeRegistrationReform);
flowExecute(jgChangeRegistrationReform.getSequenceNbr(), jgChangeRegistrationReform.getInstanceId(), "0", "", jgChangeRegistrationReform.getNextTaskId()); // 统计用
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 { } else {
// 如果是新启动的流程开启自动访问 // 新增逻辑
jgChangeRegistrationReform.setAuditStatus(WorkFlowStatusEnum.CHANGE_RECEIVE.getPass()); // 1.主表保存
jgChangeRegistrationReform.setStatus(WorkFlowStatusEnum.CHANGE_RECEIVE.getPass()); ResponseModel<List<String>> result = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.GZBG.getCode(), 1);
ProcessTaskDTO processTaskDTO = startByVariable(jgChangeRegistrationReform); if (!result.getResult().isEmpty()) {
updateExecuteIds(instanceId, jgChangeRegistrationReform, "startWorkfow", processTaskDTO); jgChangeRegistrationReform.setApplyNo(result.getResult().get(0));
List<TaskModelDto> taskModelDtoList = Arrays.asList(getTaskModelDtoList(jgChangeRegistrationReform, processTaskDTO)); } else {
//启动之前删除暂存生成的待办 throw new BadRequest("申请单编号生成失败,请稍后重试!");
commonServiceImpl.deleteTasksByRelationId(String.valueOf(jgChangeRegistrationReform.getSequenceNbr())); }
//重新生成新的待办数据 jgChangeRegistrationReform.setRegDate(new Date());
commonServiceImpl.buildTaskModel(taskModelDtoList); 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());
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());
} }
return this.getBaseMapper().getDetailById(jgChangeRegistrationReform.getSequenceNbr());
} catch (BadRequest | } catch (BadRequest |
LocalBadRequest e) { LocalBadRequest e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
...@@ -356,6 +443,52 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR ...@@ -356,6 +443,52 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
} }
} }
private static void setReveiveCompanyFields(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) { public ProcessTaskDTO startByVariable(JgChangeRegistrationReform jgChangeRegistrationReform) {
ProcessTaskDTO processTaskDTO = new ProcessTaskDTO(); ProcessTaskDTO processTaskDTO = new ProcessTaskDTO();
//启动流程 //启动流程
...@@ -638,9 +771,9 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR ...@@ -638,9 +771,9 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
@Override @Override
public Map<String, Object> getDetail(String currentDocumentId, String equipId) { public Map<String, Object> getDetail(String currentDocumentId, String equipId) {
JgChangeRegistrationReform jgChangeRegistrationReform = this.getBaseMapper().selectById(currentDocumentId); JgChangeRegistrationReform jgChangeRegistrationReform = this.getBaseMapper().selectById(currentDocumentId);
if (ObjectUtils.isEmpty(equipId)) { // if (ObjectUtils.isEmpty(equipId)) {
equipId = jgChangeRegistrationReformEqMapper.selectEquipId(currentDocumentId); // equipId = jgChangeRegistrationReformEqMapper.selectEquipId(currentDocumentId);
} // }
this.doCompensate(jgChangeRegistrationReform); this.doCompensate(jgChangeRegistrationReform);
Map<String, Object> detail = new HashMap<>(); Map<String, Object> detail = new HashMap<>();
Map<String, Object> originalData = new HashMap<>(); Map<String, Object> originalData = new HashMap<>();
...@@ -649,7 +782,7 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR ...@@ -649,7 +782,7 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
// if (!("已完成".equals(jgChangeRegistrationReform.getStatus()) || !"流程结束".equals(jgChangeRegistrationReform.getStatus()))) { // if (!("已完成".equals(jgChangeRegistrationReform.getStatus()) || !"流程结束".equals(jgChangeRegistrationReform.getStatus()))) {
// 完成时显示历史数据 // 完成时显示历史数据
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryMapper.selectOne(new QueryWrapper<JgRegistrationHistory>() JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryMapper.selectOne(new QueryWrapper<JgRegistrationHistory>()
.eq("equ_id", equipId) // .eq("equ_id", equipId)
.eq("current_document_id", jgChangeRegistrationReform.getApplyNo()) .eq("current_document_id", jgChangeRegistrationReform.getApplyNo())
.eq("registration_class", BUSINESS_TYPE)); .eq("registration_class", BUSINESS_TYPE));
originalData = JSONObject.parseObject(jgRegistrationHistory.getChangeData(), Map.class); originalData = JSONObject.parseObject(jgRegistrationHistory.getChangeData(), Map.class);
...@@ -1339,4 +1472,61 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR ...@@ -1339,4 +1472,61 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
commonServiceImpl.saveExecuteFlowData2Redis(jgChangeRegistrationReform.getInstanceId(), this.buildInstanceRuntimeData(jgChangeRegistrationReform)); 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;
}
/**
* 使用地点-使用登记完成后回把使用登记的地点信息写到装置表。定期检验时显示
* @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
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