Commit cd53de75 authored by tianbo's avatar tianbo

feat(jg): 优化设备使用信息更新逻辑并完善数据查询条件

- 在 CommonMapper.xml 中为单位类型查询增加 is_delete = '0' 过滤条件,并限制返回一条记录 - 重构维护记录与检验检测信息的子查询结构,提升查询性能和准确性 - 新增对未处理检验超期问题的排除逻辑,避免重复提醒 - 在 EquipChangeDataUpdateServiceImpl 中增加设备状态字段更新逻辑 - 为 IdxBizJgUseInfo 实体类的 equState 字段添加字典编码配置 - 引入 JgUseRegistrationManage 相关服务,实现登记证登记机关信息同步更新
parent 76b819f7
...@@ -1058,7 +1058,7 @@ ...@@ -1058,7 +1058,7 @@
tt."INFORM_END" as problemTime, tt."INFORM_END" as problemTime,
ui."USE_UNIT_NAME", ui."USE_UNIT_NAME",
ui."USE_UNIT_CREDIT_CODE", ui."USE_UNIT_CREDIT_CODE",
(select unit_type from tz_base_enterprise_info where use_unit_code = ui."USE_UNIT_CREDIT_CODE") unitType, (select unit_type from tz_base_enterprise_info where use_unit_code = ui."USE_UNIT_CREDIT_CODE" and is_delete = '0' limit 1) unitType,
ri."EQU_LIST", ri."EQU_LIST",
(SELECT name FROM tz_equipment_category WHERE code = ri."EQU_LIST") equList, (SELECT name FROM tz_equipment_category WHERE code = ri."EQU_LIST") equList,
(SELECT name FROM tz_equipment_category WHERE code = ri."EQU_CATEGORY") equCategory, (SELECT name FROM tz_equipment_category WHERE code = ri."EQU_CATEGORY") equCategory,
...@@ -1069,22 +1069,22 @@ ...@@ -1069,22 +1069,22 @@
si."ORG_BRANCH_CODE", si."ORG_BRANCH_CODE",
si."COMPANY_ORG_BRANCH_CODE" si."COMPANY_ORG_BRANCH_CODE"
FROM FROM
idx_biz_jg_use_info ui (
SELECT
"RECORD","INFORM_END","ROWNUM1"
FROM
(
SELECT "RECORD","INFORM_END",ROW_NUMBER() OVER (PARTITION BY "RECORD" ORDER BY "REC_DATE" DESC) AS ROWNUM1
FROM
idx_biz_jg_maintenance_record_info where "INFORM_END" is not null
) d
WHERE d."ROWNUM1" = 1 and d."INFORM_END" <![CDATA[<]]> to_char(now(), 'YYYY-MM-DD')
) tt
LEFT JOIN idx_biz_jg_use_info ui ON ui."RECORD" = tt."RECORD"
LEFT JOIN idx_biz_jg_other_info oi ON oi."RECORD" = ui."RECORD" LEFT JOIN idx_biz_jg_other_info oi ON oi."RECORD" = ui."RECORD"
LEFT JOIN idx_biz_jg_supervision_info si on si."RECORD" = ui."RECORD" LEFT JOIN idx_biz_jg_supervision_info si on si."RECORD" = ui."RECORD"
LEFT JOIN idx_biz_jg_register_info ri on ri."RECORD" = ui."RECORD" LEFT JOIN idx_biz_jg_register_info ri on ri."RECORD" = ui."RECORD"
LEFT JOIN tz_base_enterprise_info e on e.use_unit_code = ui."USE_UNIT_CREDIT_CODE" LEFT JOIN tz_base_enterprise_info e on e.use_unit_code = ui."USE_UNIT_CREDIT_CODE"
LEFT JOIN (
SELECT
"RECORD","INFORM_END","ROWNUM1"
FROM
(
SELECT "RECORD","INFORM_END",ROW_NUMBER() OVER (PARTITION BY "RECORD" ORDER BY "REC_DATE" DESC) AS ROWNUM1
FROM
idx_biz_jg_maintenance_record_info where "INFORM_END" is not null
) d
WHERE d."ROWNUM1" = 1 and d."INFORM_END" <![CDATA[<]]> to_char(now(), 'YYYY-MM-DD')
) tt on tt."RECORD" = ui."RECORD"
WHERE si."ORG_BRANCH_CODE" like '50%' WHERE si."ORG_BRANCH_CODE" like '50%'
and oi."CLAIM_STATUS" not in ('草稿','已拒领','待认领') and oi."CLAIM_STATUS" not in ('草稿','已拒领','待认领')
and tt."INFORM_END" is not null and tt."INFORM_END" is not null
...@@ -1098,7 +1098,7 @@ ...@@ -1098,7 +1098,7 @@
tt."NEXT_INSPECT_DATE" as problemTime, tt."NEXT_INSPECT_DATE" as problemTime,
ui."USE_UNIT_NAME", ui."USE_UNIT_NAME",
ui."USE_UNIT_CREDIT_CODE", ui."USE_UNIT_CREDIT_CODE",
(select unit_type from tz_base_enterprise_info where use_unit_code = ui."USE_UNIT_CREDIT_CODE") unitType, (select unit_type from tz_base_enterprise_info where use_unit_code = ui."USE_UNIT_CREDIT_CODE" and is_delete = '0' limit 1) unitType,
ri."EQU_LIST", ri."EQU_LIST",
(SELECT name FROM tz_equipment_category WHERE code = ri."EQU_LIST") equList, (SELECT name FROM tz_equipment_category WHERE code = ri."EQU_LIST") equList,
(SELECT name FROM tz_equipment_category WHERE code = ri."EQU_CATEGORY") equCategory, (SELECT name FROM tz_equipment_category WHERE code = ri."EQU_CATEGORY") equCategory,
...@@ -1109,25 +1109,32 @@ ...@@ -1109,25 +1109,32 @@
si."ORG_BRANCH_CODE", si."ORG_BRANCH_CODE",
si."COMPANY_ORG_BRANCH_CODE" si."COMPANY_ORG_BRANCH_CODE"
FROM FROM
idx_biz_jg_use_info ui (
LEFT JOIN idx_biz_jg_other_info oi ON oi."RECORD" = ui."RECORD"
LEFT JOIN idx_biz_jg_supervision_info si on si."RECORD" = ui."RECORD"
LEFT JOIN idx_biz_jg_register_info ri on ri."RECORD" = ui."RECORD"
LEFT JOIN tz_base_enterprise_info e on e.use_unit_code = ui."USE_UNIT_CREDIT_CODE"
LEFT JOIN (
SELECT "RECORD","NEXT_INSPECT_DATE",rowNum1 SELECT "RECORD","NEXT_INSPECT_DATE",rowNum1
FROM FROM
( (
SELECT ROW_NUMBER () OVER ( PARTITION BY "RECORD" ORDER BY "INSPECT_DATE" DESC, REC_DATE DESC) AS rowNum1,"RECORD", "NEXT_INSPECT_DATE" SELECT ROW_NUMBER () OVER ( PARTITION BY "RECORD" ORDER BY "INSPECT_DATE" DESC, "REC_DATE" DESC) AS rowNum1,"RECORD", "NEXT_INSPECT_DATE"
FROM FROM
idx_biz_jg_inspection_detection_info where "NEXT_INSPECT_DATE" is not null idx_biz_jg_inspection_detection_info where "NEXT_INSPECT_DATE" is not null
AND NOT EXISTS (
SELECT 1
FROM tzs_safety_problem_tracing s
WHERE s.source_id = "RECORD"
AND s.problem_status = '未处理'
AND s.problem_type = '检验超期'
)
) d ) d
WHERE d.rowNum1 =1 and d."NEXT_INSPECT_DATE" <![CDATA[<]]> to_char(now(), 'YYYY-MM-DD') WHERE d.rowNum1 =1 and d."NEXT_INSPECT_DATE" <![CDATA[<]]> to_char(now(), 'YYYY-MM-DD')
) tt on tt."RECORD" = ui."RECORD" ) tt
LEFT JOIN idx_biz_jg_use_info ui ON tt."RECORD" = ui."RECORD"
LEFT JOIN idx_biz_jg_other_info oi ON oi."RECORD" = ui."RECORD"
LEFT JOIN idx_biz_jg_supervision_info si ON si."RECORD" = ui."RECORD"
LEFT JOIN idx_biz_jg_register_info ri ON ri."RECORD" = ui."RECORD"
LEFT JOIN tz_base_enterprise_info e ON e.use_unit_code = ui."USE_UNIT_CREDIT_CODE"
WHERE si."ORG_BRANCH_CODE" like '50%' WHERE si."ORG_BRANCH_CODE" like '50%'
AND oi."CLAIM_STATUS" not in ('草稿','已拒领','待认领') AND oi."CLAIM_STATUS" not in ('草稿','已拒领','待认领')
AND tt."NEXT_INSPECT_DATE" is not null AND tt."NEXT_INSPECT_DATE" is not null
and e.is_delete = '0' AND e.is_delete = '0'
</select> </select>
<select id="countBizFinishedNumForDP" resultType="java.lang.Long"> <select id="countBizFinishedNumForDP" resultType="java.lang.Long">
SELECT count(1) FROM "tzs_jg_installation_notice" where receive_company_org_code like CONCAT(#{orgCode}, '%') and notice_status = '6616' SELECT count(1) FROM "tzs_jg_installation_notice" where receive_company_org_code like CONCAT(#{orgCode}, '%') and notice_status = '6616'
......
...@@ -12,12 +12,14 @@ import com.yeejoin.amos.boot.module.jg.api.dto.PipelineChangeItemDto; ...@@ -12,12 +12,14 @@ import com.yeejoin.amos.boot.module.jg.api.dto.PipelineChangeItemDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory; import com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration; import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationEq; import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationEq;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationManage;
import com.yeejoin.amos.boot.module.jg.biz.edit.constant.EditConstant; import com.yeejoin.amos.boot.module.jg.biz.edit.constant.EditConstant;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy.IBizDataChangeHandleStrategy; import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.CommonEquipDataProcessService; import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.CommonEquipDataProcessService;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.PieLineDataChangeServiceImpl; import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.PieLineDataChangeServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgRegistrationHistoryServiceImpl; import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgRegistrationHistoryServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationEqServiceImpl; import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationEqServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationManageServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl; import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
...@@ -34,10 +36,15 @@ import org.typroject.tyboot.core.foundation.context.RequestContext; ...@@ -34,10 +36,15 @@ import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import static com.yeejoin.amos.boot.module.jg.api.enums.CertificateStatusEnum.YIDENGJI;
@Service @Service
@RequiredArgsConstructor @RequiredArgsConstructor
@Getter @Getter
...@@ -56,6 +63,8 @@ public class UseRegisterUpdateService { ...@@ -56,6 +63,8 @@ public class UseRegisterUpdateService {
private final JgRegistrationHistoryServiceImpl jgRegistrationHistoryService; private final JgRegistrationHistoryServiceImpl jgRegistrationHistoryService;
private final JgUseRegistrationManageServiceImpl jgUseRegistrationManageService;
public void updateBizInfo(List<FieldChangeMeta> allChangeColumns, String bizId, String applyNo, IBizDataChangeHandleStrategy.ModelType model, Map<String, List<PipelineChangeItemDto>> pipelineChangeItemMap) { public void updateBizInfo(List<FieldChangeMeta> allChangeColumns, String bizId, String applyNo, IBizDataChangeHandleStrategy.ModelType model, Map<String, List<PipelineChangeItemDto>> pipelineChangeItemMap) {
if (model.equals(IBizDataChangeHandleStrategy.ModelType.singleEquip)) { if (model.equals(IBizDataChangeHandleStrategy.ModelType.singleEquip)) {
JgUseRegistration useRegistration = jgUseRegistrationService.getOne(new LambdaQueryWrapper<JgUseRegistration>().select(BaseEntity::getSequenceNbr, JgUseRegistration::getStatus).eq(JgUseRegistration::getApplyNo, applyNo)); JgUseRegistration useRegistration = jgUseRegistrationService.getOne(new LambdaQueryWrapper<JgUseRegistration>().select(BaseEntity::getSequenceNbr, JgUseRegistration::getStatus).eq(JgUseRegistration::getApplyNo, applyNo));
...@@ -118,9 +127,13 @@ public class UseRegisterUpdateService { ...@@ -118,9 +127,13 @@ public class UseRegisterUpdateService {
if (ValidationUtil.isEmpty(useRegistrationMap)) { if (ValidationUtil.isEmpty(useRegistrationMap)) {
return; return;
} }
String useRegistrationSeq = MapUtils.getString(useRegistrationMap, "UseRegistratSequenceNbr");
JgUseRegistration jgUseRegistration = jgUseRegistrationService.getById(MapUtils.getString(useRegistrationMap, "UseRegistratSequenceNbr")); JgUseRegistration jgUseRegistration = jgUseRegistrationService.getById(useRegistrationSeq);
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryService.getDteailByRecord(bizId, MapUtils.getString(useRegistrationMap, "UseRegistratSequenceNbr")); JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryService.getDteailByRecord(bizId, useRegistrationSeq);
JgUseRegistrationManage jgUseRegistrationManage = jgUseRegistrationManageService.lambdaQuery()
.eq(JgUseRegistrationManage::getUseRegistrationCode, idxBizJgRegisterInfo.getUseOrgCode())
.eq(JgUseRegistrationManage::getIsDelete, 0)
.eq(JgUseRegistrationManage::getCertificateStatus,YIDENGJI.getName()).one();
allChangeColumns.forEach(meta -> { allChangeColumns.forEach(meta -> {
if (!ValidationUtil.isEmpty(jgUseRegistration)) { if (!ValidationUtil.isEmpty(jgUseRegistration)) {
// 更新接收机构 // 更新接收机构
...@@ -156,6 +169,16 @@ public class UseRegisterUpdateService { ...@@ -156,6 +169,16 @@ public class UseRegisterUpdateService {
} }
jgRegistrationHistoryService.updateById(jgRegistrationHistory); jgRegistrationHistoryService.updateById(jgRegistrationHistory);
} }
// 更新登记证登记机关
if (!ValidationUtil.isEmpty(jgUseRegistrationManage)) {
if ("receiveCompanyCode".equals(meta.getColumnKey())) {
String receiveCompanyCode = meta.getColumnNewValue();
if (receiveCompanyCode != null) {
jgUseRegistrationManage.setReceiveCompanyCode(receiveCompanyCode);
jgUseRegistrationManage.setReceiveOrgName(CommonCustomConverter.CompanyCodeConverter.getNameByCode(receiveCompanyCode));
}
}
}
}); });
} }
} }
......
...@@ -20,6 +20,7 @@ import lombok.RequiredArgsConstructor; ...@@ -20,6 +20,7 @@ import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.utils.Bean; import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest; import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.util.Date; import java.util.Date;
...@@ -324,6 +325,9 @@ public class EquipChangeDataUpdateServiceImpl { ...@@ -324,6 +325,9 @@ public class EquipChangeDataUpdateServiceImpl {
esEquipmentCategoryDto.setUSE_PLACE(equipUseInfoChangeDataDto.getProvinceName() + "/" + equipUseInfoChangeDataDto.getCityName() + "/" + equipUseInfoChangeDataDto.getCountyName() + "/" + equipUseInfoChangeDataDto.getStreetName()); esEquipmentCategoryDto.setUSE_PLACE(equipUseInfoChangeDataDto.getProvinceName() + "/" + equipUseInfoChangeDataDto.getCityName() + "/" + equipUseInfoChangeDataDto.getCountyName() + "/" + equipUseInfoChangeDataDto.getStreetName());
esEquipmentCategoryDto.setUSE_PLACE_CODE(equipUseInfoChangeDataDto.getProvince() + "#" + equipUseInfoChangeDataDto.getCity() + "#" + equipUseInfoChangeDataDto.getCounty() + "#" + equipUseInfoChangeDataDto.getFactoryUseSiteStreet()); esEquipmentCategoryDto.setUSE_PLACE_CODE(equipUseInfoChangeDataDto.getProvince() + "#" + equipUseInfoChangeDataDto.getCity() + "#" + equipUseInfoChangeDataDto.getCounty() + "#" + equipUseInfoChangeDataDto.getFactoryUseSiteStreet());
esEquipmentCategoryDto.setADDRESS(equipUseInfoChangeDataDto.getAddress()); esEquipmentCategoryDto.setADDRESS(equipUseInfoChangeDataDto.getAddress());
if (!ValidationUtil.isEmpty(equipUseInfoChangeDataDto.getEquState())) {
esEquipmentCategoryDto.setEQU_STATE(Integer.parseInt(equipUseInfoChangeDataDto.getEquState()));
}
esEquipmentCategory.save(esEquipmentCategoryDto); esEquipmentCategory.save(esEquipmentCategoryDto);
} }
} }
......
...@@ -185,7 +185,7 @@ public class IdxBizJgUseInfo extends TzsBaseEntity implements IBaseChangeData { ...@@ -185,7 +185,7 @@ public class IdxBizJgUseInfo extends TzsBaseEntity implements IBaseChangeData {
* 设备状态 @see com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum * 设备状态 @see com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum
*/ */
@TableField("\"EQU_STATE\"") @TableField("\"EQU_STATE\"")
@FieldDisplayDefine(value = "设备状态") @FieldDisplayDefine(value = "设备状态", dictCode = "SHZT")
private String equState; private String equState;
/** /**
......
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