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 @@
tt."INFORM_END" as problemTime,
ui."USE_UNIT_NAME",
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",
(SELECT name FROM tz_equipment_category WHERE code = ri."EQU_LIST") equList,
(SELECT name FROM tz_equipment_category WHERE code = ri."EQU_CATEGORY") equCategory,
......@@ -1069,22 +1069,22 @@
si."ORG_BRANCH_CODE",
si."COMPANY_ORG_BRANCH_CODE"
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_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","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%'
and oi."CLAIM_STATUS" not in ('草稿','已拒领','待认领')
and tt."INFORM_END" is not null
......@@ -1098,7 +1098,7 @@
tt."NEXT_INSPECT_DATE" as problemTime,
ui."USE_UNIT_NAME",
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",
(SELECT name FROM tz_equipment_category WHERE code = ri."EQU_LIST") equList,
(SELECT name FROM tz_equipment_category WHERE code = ri."EQU_CATEGORY") equCategory,
......@@ -1109,25 +1109,32 @@
si."ORG_BRANCH_CODE",
si."COMPANY_ORG_BRANCH_CODE"
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
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
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
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%'
AND oi."CLAIM_STATUS" not in ('草稿','已拒领','待认领')
AND tt."NEXT_INSPECT_DATE" is not null
and e.is_delete = '0'
AND e.is_delete = '0'
</select>
<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'
......
......@@ -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.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationEq;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationManage;
import com.yeejoin.amos.boot.module.jg.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.equip.CommonEquipDataProcessService;
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.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.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
......@@ -34,10 +36,15 @@ import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
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.Stream;
import static com.yeejoin.amos.boot.module.jg.api.enums.CertificateStatusEnum.YIDENGJI;
@Service
@RequiredArgsConstructor
@Getter
......@@ -56,6 +63,8 @@ public class UseRegisterUpdateService {
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) {
if (model.equals(IBizDataChangeHandleStrategy.ModelType.singleEquip)) {
JgUseRegistration useRegistration = jgUseRegistrationService.getOne(new LambdaQueryWrapper<JgUseRegistration>().select(BaseEntity::getSequenceNbr, JgUseRegistration::getStatus).eq(JgUseRegistration::getApplyNo, applyNo));
......@@ -118,9 +127,13 @@ public class UseRegisterUpdateService {
if (ValidationUtil.isEmpty(useRegistrationMap)) {
return;
}
JgUseRegistration jgUseRegistration = jgUseRegistrationService.getById(MapUtils.getString(useRegistrationMap, "UseRegistratSequenceNbr"));
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryService.getDteailByRecord(bizId, MapUtils.getString(useRegistrationMap, "UseRegistratSequenceNbr"));
String useRegistrationSeq = MapUtils.getString(useRegistrationMap, "UseRegistratSequenceNbr");
JgUseRegistration jgUseRegistration = jgUseRegistrationService.getById(useRegistrationSeq);
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 -> {
if (!ValidationUtil.isEmpty(jgUseRegistration)) {
// 更新接收机构
......@@ -156,6 +169,16 @@ public class UseRegisterUpdateService {
}
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;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
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 java.util.Date;
......@@ -324,6 +325,9 @@ public class EquipChangeDataUpdateServiceImpl {
esEquipmentCategoryDto.setUSE_PLACE(equipUseInfoChangeDataDto.getProvinceName() + "/" + equipUseInfoChangeDataDto.getCityName() + "/" + equipUseInfoChangeDataDto.getCountyName() + "/" + equipUseInfoChangeDataDto.getStreetName());
esEquipmentCategoryDto.setUSE_PLACE_CODE(equipUseInfoChangeDataDto.getProvince() + "#" + equipUseInfoChangeDataDto.getCity() + "#" + equipUseInfoChangeDataDto.getCounty() + "#" + equipUseInfoChangeDataDto.getFactoryUseSiteStreet());
esEquipmentCategoryDto.setADDRESS(equipUseInfoChangeDataDto.getAddress());
if (!ValidationUtil.isEmpty(equipUseInfoChangeDataDto.getEquState())) {
esEquipmentCategoryDto.setEQU_STATE(Integer.parseInt(equipUseInfoChangeDataDto.getEquState()));
}
esEquipmentCategory.save(esEquipmentCategoryDto);
}
}
......
......@@ -185,7 +185,7 @@ public class IdxBizJgUseInfo extends TzsBaseEntity implements IBaseChangeData {
* 设备状态 @see com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum
*/
@TableField("\"EQU_STATE\"")
@FieldDisplayDefine(value = "设备状态")
@FieldDisplayDefine(value = "设备状态", dictCode = "SHZT")
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