Commit 1beaf2dc authored by tianbo's avatar tianbo

feat(jg):优化设备数据处理与ES更新逻辑

- 调整公司代码查找逻辑,确保正确匹配;增加名称为空时的处理,避免空指针异常 - 为JgUseRegistrationService添加@Lazy注解,解决循环依赖 - 修改类型处理器中的公司编码转换逻辑 - 更新历史数据时保留并传递监管代码 - 引入旧注册信息以支持更准确的历史数据更新 - 在更新登记管理信息时使用正确的使用登记证号 - 新增other info ES数据更新策略实现;支持根据record更新ESEquipmentCategoryDto中的CODE9633字段 - 处理使用单位代码变更时的相关数据同步问题
parent c2e10f87
...@@ -8,6 +8,7 @@ import com.alibaba.excel.metadata.property.ExcelContentProperty; ...@@ -8,6 +8,7 @@ import com.alibaba.excel.metadata.property.ExcelContentProperty;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -78,7 +79,7 @@ public class CommonCustomConverter { ...@@ -78,7 +79,7 @@ public class CommonCustomConverter {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private static LinkedHashMap<String, Object> findCompanyByCode(List<LinkedHashMap<String, Object>> tree, String companyCode) { private static LinkedHashMap<String, Object> findCompanyByCode(List<LinkedHashMap<String, Object>> tree, String companyCode) {
for (LinkedHashMap<String, Object> node : tree) { for (LinkedHashMap<String, Object> node : tree) {
if (companyCode.equals(node.get("companyCode"))) { if (node.get("companyCode").equals(companyCode)) {
return node; return node;
} }
if (node.containsKey("children") && node.get("children") instanceof List) { if (node.containsKey("children") && node.get("children") instanceof List) {
...@@ -152,6 +153,9 @@ public class CommonCustomConverter { ...@@ -152,6 +153,9 @@ public class CommonCustomConverter {
} }
public static String getCompanyCodeByName(String name) { public static String getCompanyCodeByName(String name) {
if (ValidationUtil.isEmpty(name)) {
return "";
}
LinkedHashMap<String, Object> company = findAllCompaniesByPartialPath(name); LinkedHashMap<String, Object> company = findAllCompaniesByPartialPath(name);
if (company == null) { if (company == null) {
return ""; return "";
......
package com.yeejoin.amos.boot.module.jg.biz.edit.esUpdate.service.impl;
import com.yeejoin.amos.boot.module.jg.biz.edit.esUpdate.strategy.EsUpdateStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.EquipChangeDataUpdateServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgOtherInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
public class OtherInfoEsUpdateStrategy implements EsUpdateStrategy<IdxBizJgOtherInfo> {
private final EquipChangeDataUpdateServiceImpl equipChangeDataUpdateServiceImpl;
@Override
public Class<IdxBizJgOtherInfo> getSupportType() {
return IdxBizJgOtherInfo.class;
}
@Override
public void updateEsData(String record, IdxBizJgOtherInfo data) {
equipChangeDataUpdateServiceImpl.updateOtherInfoEsData(record, data);
}
}
...@@ -123,6 +123,7 @@ public class CommonEquipDataProcessService { ...@@ -123,6 +123,7 @@ public class CommonEquipDataProcessService {
private final RestHighLevelClient restHighLevelClient; private final RestHighLevelClient restHighLevelClient;
@Lazy
private final JgUseRegistrationServiceImpl jgUseRegistrationService; private final JgUseRegistrationServiceImpl jgUseRegistrationService;
private final CommonServiceImpl commonService; private final CommonServiceImpl commonService;
......
...@@ -328,6 +328,16 @@ public class EquipChangeDataUpdateServiceImpl { ...@@ -328,6 +328,16 @@ public class EquipChangeDataUpdateServiceImpl {
} }
} }
public void updateOtherInfoEsData(String record, IdxBizJgOtherInfo equipOtherInfoChangeDataDto) {
// es 数据更新
Optional<ESEquipmentCategoryDto> optional = esEquipmentCategory.findById(record);
if (optional.isPresent()) {
ESEquipmentCategoryDto esEquipmentCategoryDto = optional.get();
esEquipmentCategoryDto.setCODE96333(equipOtherInfoChangeDataDto.getCode96333());
esEquipmentCategory.save(esEquipmentCategoryDto);
}
}
private void updateUseInfoEsData(String record, EquipUseInfoChangeDataDto equipUseInfoChangeDataDto) { private void updateUseInfoEsData(String record, EquipUseInfoChangeDataDto equipUseInfoChangeDataDto) {
// es 数据更新 // es 数据更新
Optional<ESEquipmentCategoryDto> optional = esEquipmentCategory.findById(record); Optional<ESEquipmentCategoryDto> optional = esEquipmentCategory.findById(record);
......
...@@ -11,6 +11,7 @@ import com.yeejoin.amos.boot.module.common.api.entity.ESEquipmentInfo; ...@@ -11,6 +11,7 @@ import com.yeejoin.amos.boot.module.common.api.entity.ESEquipmentInfo;
import com.yeejoin.amos.boot.module.common.api.enums.CylinderTypeEnum; import com.yeejoin.amos.boot.module.common.api.enums.CylinderTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.common.BizCommonConstant; import com.yeejoin.amos.boot.module.jg.api.common.BizCommonConstant;
import com.yeejoin.amos.boot.module.jg.api.dto.FieldChangeMeta; import com.yeejoin.amos.boot.module.jg.api.dto.FieldChangeMeta;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationManage;
import com.yeejoin.amos.boot.module.jg.biz.edit.esUpdate.service.EsUpdateService; import com.yeejoin.amos.boot.module.jg.biz.edit.esUpdate.service.EsUpdateService;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler; import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler;
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;
...@@ -73,6 +74,13 @@ public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy ...@@ -73,6 +74,13 @@ public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy
CommonEquipDataProcessService.castMap2Bean(changeJson, registerInfoNew); CommonEquipDataProcessService.castMap2Bean(changeJson, registerInfoNew);
registerInfoNew.setSequenceNbr(registerInfoOld.getSequenceNbr()); registerInfoNew.setSequenceNbr(registerInfoOld.getSequenceNbr());
if (registerInfoOld.getUseOrgCode() != null) {
JgUseRegistrationManage jgUseRegistrationManage = commonEquipDataProcessService.getJgUseRegistrationManageService().lambdaQuery()
.eq(JgUseRegistrationManage::getUseRegistrationCode, registerInfoOld.getUseOrgCode())
.select(JgUseRegistrationManage::getSequenceNbr, JgUseRegistrationManage::getReceiveCompanyCode).one();
useInfoOld.setReceiveCompanyCode(jgUseRegistrationManage.getReceiveCompanyCode());
}
// 历史有证设备检验(台套类设备+气瓶) // 历史有证设备检验(台套类设备+气瓶)
beforeCheckForUseOrgCode(useInfoOld, registerInfoNew); beforeCheckForUseOrgCode(useInfoOld, registerInfoNew);
......
...@@ -11,6 +11,6 @@ import org.springframework.stereotype.Component; ...@@ -11,6 +11,6 @@ import org.springframework.stereotype.Component;
public class CompanyCodeTypeHandler implements TypeHandler<String> { public class CompanyCodeTypeHandler implements TypeHandler<String> {
@Override @Override
public String handle(String value) { public String handle(String value) {
return CommonCustomConverter.CompanyCodeConverter.getCompanyCodeByName(value); return CommonCustomConverter.CompanyCodeConverter.getNameByCode(value);
} }
} }
...@@ -602,6 +602,7 @@ public class DataDockServiceImpl { ...@@ -602,6 +602,7 @@ public class DataDockServiceImpl {
if (!ValidationUtil.isEmpty(otherInfo)) { if (!ValidationUtil.isEmpty(otherInfo)) {
if (!ValidationUtil.isEmpty(oldOtherInfo)) { if (!ValidationUtil.isEmpty(oldOtherInfo)) {
otherInfo.setSequenceNbr(oldOtherInfo.getSequenceNbr()); otherInfo.setSequenceNbr(oldOtherInfo.getSequenceNbr());
otherInfo.setSupervisoryCode(oldOtherInfo.getSupervisoryCode());
} }
otherInfo.setRecord(record); otherInfo.setRecord(record);
otherInfo.setClaimStatus("已认领"); otherInfo.setClaimStatus("已认领");
...@@ -2660,6 +2661,7 @@ public class DataDockServiceImpl { ...@@ -2660,6 +2661,7 @@ public class DataDockServiceImpl {
return inUseError; return inUseError;
} }
IdxBizJgUseInfo oldUseInfo = idxBizJgUseInfoService.getOne(new QueryWrapper<IdxBizJgUseInfo>().eq("record", record)); IdxBizJgUseInfo oldUseInfo = idxBizJgUseInfoService.getOne(new QueryWrapper<IdxBizJgUseInfo>().eq("record", record));
IdxBizJgRegisterInfo oldRegisterInfo = idxBizJgRegisterInfoService.getOne(new QueryWrapper<IdxBizJgRegisterInfo>().eq("record", record));
saveUseInfo(equ, record, dataSource, remark, null); saveUseInfo(equ, record, dataSource, remark, null);
saveDesignInfo(equ, record); saveDesignInfo(equ, record);
saveFactoryInfo(equ, record); saveFactoryInfo(equ, record);
...@@ -2679,7 +2681,7 @@ public class DataDockServiceImpl { ...@@ -2679,7 +2681,7 @@ public class DataDockServiceImpl {
} }
// oldUseInfo不为空表示是平台已有设备,已有历史设备则更新历史单据信息。 // oldUseInfo不为空表示是平台已有设备,已有历史设备则更新历史单据信息。
if (!ValidationUtil.isEmpty(oldUseInfo)) { if (!ValidationUtil.isEmpty(oldUseInfo)) {
updateHistoryInfo(equ, registerInfo, otherInfo); updateHistoryInfo(equ, registerInfo, otherInfo, oldRegisterInfo);
} }
} else if (!businessId.isEmpty()) { } else if (!businessId.isEmpty()) {
this.saveResumeInfo(equ); this.saveResumeInfo(equ);
...@@ -2705,14 +2707,16 @@ public class DataDockServiceImpl { ...@@ -2705,14 +2707,16 @@ public class DataDockServiceImpl {
} }
} }
private void updateHistoryInfo(Map<String, Object> equ, IdxBizJgRegisterInfo registerInfo, IdxBizJgOtherInfo otherInfo) { private void updateHistoryInfo(Map<String, Object> equ, IdxBizJgRegisterInfo registerInfo, IdxBizJgOtherInfo otherInfo, IdxBizJgRegisterInfo oldRegisterInfo) {
String oldUseRegistrationCode = oldRegisterInfo.getUseOrgCode();
// 更新历史登记单数据、登记单对应历史表数据 // 更新历史登记单数据、登记单对应历史表数据
// 安全管理员 // 安全管理员
if (equ.containsKey("safetyManager")) { if (equ.containsKey("safetyManager")) {
equ.put("safetyManagerName", equ.get("safetyManager")); equ.put("safetyManagerName", equ.get("safetyManager"));
} }
equ.put("equCode", registerInfo.getEquCode()); equ.put("equCode", registerInfo.getEquCode());
JgUseRegistration jgUseRegistration = jgUseRegistrationServiceImpl.lambdaQuery().eq(JgUseRegistration::getUseRegistrationCode, equ.get("useOrgCode")).eq(JgUseRegistration::getIsDelete, Boolean.FALSE).one(); // 使用旧使用登记证号查询
JgUseRegistration jgUseRegistration = jgUseRegistrationServiceImpl.lambdaQuery().eq(JgUseRegistration::getUseRegistrationCode, oldUseRegistrationCode).eq(JgUseRegistration::getIsDelete, Boolean.FALSE).one();
if (!ObjectUtils.isEmpty(equ.get("inspectOrgCode"))) { if (!ObjectUtils.isEmpty(equ.get("inspectOrgCode"))) {
jgUseRegistration.setInspectUnitCreditCode(equ.get("inspectOrgCode").toString()); jgUseRegistration.setInspectUnitCreditCode(equ.get("inspectOrgCode").toString());
} }
...@@ -2724,6 +2728,7 @@ public class DataDockServiceImpl { ...@@ -2724,6 +2728,7 @@ public class DataDockServiceImpl {
.map(key -> Objects.toString(equ.get(key), "")) .map(key -> Objects.toString(equ.get(key), ""))
.collect(Collectors.joining()) .collect(Collectors.joining())
); );
jgUseRegistration.setUseRegistrationCode(equ.get("useOrgCode").toString());
jgUseRegistration.setRegDate(DateUtil.parse((String) equ.get("oRegDate"), DatePattern.NORM_DATE_PATTERN)); jgUseRegistration.setRegDate(DateUtil.parse((String) equ.get("oRegDate"), DatePattern.NORM_DATE_PATTERN));
jgUseRegistration.setSupervisionOrgCode(equ.get("orgBranchCode").toString()); jgUseRegistration.setSupervisionOrgCode(equ.get("orgBranchCode").toString());
jgUseRegistration.setReceiveCompanyCode(equ.get("oRegUnit").toString()); jgUseRegistration.setReceiveCompanyCode(equ.get("oRegUnit").toString());
...@@ -2732,13 +2737,13 @@ public class DataDockServiceImpl { ...@@ -2732,13 +2737,13 @@ public class DataDockServiceImpl {
equ.put("receiveOrgName", receiveCompanyName); equ.put("receiveOrgName", receiveCompanyName);
jgUseRegistrationServiceImpl.saveOrUpdate(jgUseRegistration); jgUseRegistrationServiceImpl.saveOrUpdate(jgUseRegistration);
this.updateEsData2(equ, otherInfo); this.updateEsData2(equ, otherInfo);
this.updateRegistrationManagementInfo(equ, jgUseRegistration.getUseRegistrationCode()); this.updateRegistrationManagementInfo(equ, oldUseRegistrationCode);
this.updateHistory(equ, equ.get("record").toString(), String.valueOf(jgUseRegistration.getSequenceNbr()), jgUseRegistration.getSupervisoryCode()); this.updateHistory(equ, equ.get("record").toString(), String.valueOf(jgUseRegistration.getSequenceNbr()), jgUseRegistration.getSupervisoryCode());
} }
private void updateRegistrationManagementInfo(Map<String, Object> equ, String supervisoryCode) { private void updateRegistrationManagementInfo(Map<String, Object> equ, String useRegistrationCode) {
JgUseRegistrationManage jgUseRegistrationManagement = jgUseRegistrationManageService.lambdaQuery(). JgUseRegistrationManage jgUseRegistrationManagement = jgUseRegistrationManageService.lambdaQuery().
eq(JgUseRegistrationManage::getUseRegistrationCode, supervisoryCode). eq(JgUseRegistrationManage::getUseRegistrationCode, useRegistrationCode).
eq(JgUseRegistrationManage::getIsDelete, Boolean.FALSE).one(); eq(JgUseRegistrationManage::getIsDelete, Boolean.FALSE).one();
if (!ValidationUtil.isEmpty(jgUseRegistrationManagement)) { if (!ValidationUtil.isEmpty(jgUseRegistrationManagement)) {
// 更新证表使用信息 // 更新证表使用信息
...@@ -2749,11 +2754,12 @@ public class DataDockServiceImpl { ...@@ -2749,11 +2754,12 @@ public class DataDockServiceImpl {
jgUseRegistrationManagement.setSuperviseOrgCode(equ.get("orgBranchCode").toString()); jgUseRegistrationManagement.setSuperviseOrgCode(equ.get("orgBranchCode").toString());
jgUseRegistrationManagement.setSuperviseOrgName(equ.get("orgBranchCode").toString().split("_", 2)[1]); jgUseRegistrationManagement.setSuperviseOrgName(equ.get("orgBranchCode").toString().split("_", 2)[1]);
jgUseRegistrationManagement.setIsDoBusiness("1"); jgUseRegistrationManagement.setIsDoBusiness("1");
jgUseRegistrationManagement.setUseRegistrationCode(equ.get("useOrgCode").toString());
jgUseRegistrationManageService.saveOrUpdate(jgUseRegistrationManagement); jgUseRegistrationManageService.saveOrUpdate(jgUseRegistrationManagement);
// 更新证表记录信息 // 更新证表记录信息
JgCertificateChangeRecord jgUseRegistrationRecord = certificateChangeRecordService.lambdaQuery(). JgCertificateChangeRecord jgUseRegistrationRecord = certificateChangeRecordService.lambdaQuery().
eq(JgCertificateChangeRecord::getUseRegistrationCode, supervisoryCode). eq(JgCertificateChangeRecord::getUseRegistrationCode, useRegistrationCode).
eq(JgCertificateChangeRecord::getRegType, "使用登记"). eq(JgCertificateChangeRecord::getRegType, "使用登记").
eq(JgCertificateChangeRecord::getIsDelete, Boolean.FALSE).one(); eq(JgCertificateChangeRecord::getIsDelete, Boolean.FALSE).one();
if (!ValidationUtil.isEmpty(jgUseRegistrationRecord)) { if (!ValidationUtil.isEmpty(jgUseRegistrationRecord)) {
...@@ -2761,6 +2767,7 @@ public class DataDockServiceImpl { ...@@ -2761,6 +2767,7 @@ public class DataDockServiceImpl {
jgUseRegistrationRecord.setReceiveCompanyCode(equ.get("oRegUnit").toString()); jgUseRegistrationRecord.setReceiveCompanyCode(equ.get("oRegUnit").toString());
jgUseRegistrationRecord.setUseUnitName(equ.get("useUnitName").toString()); jgUseRegistrationRecord.setUseUnitName(equ.get("useUnitName").toString());
jgUseRegistrationRecord.setUseUnitCreditCode(equ.get("useUnitCode").toString()); jgUseRegistrationRecord.setUseUnitCreditCode(equ.get("useUnitCode").toString());
jgUseRegistrationRecord.setUseRegistrationCode(equ.get("useOrgCode").toString());
certificateChangeRecordService.saveOrUpdate(jgUseRegistrationRecord); certificateChangeRecordService.saveOrUpdate(jgUseRegistrationRecord);
} }
...@@ -3111,6 +3118,7 @@ public class DataDockServiceImpl { ...@@ -3111,6 +3118,7 @@ public class DataDockServiceImpl {
param.put("EQU_STATE", 1); param.put("EQU_STATE", 1);
param.put("IS_INTO_MANAGEMENT", true); param.put("IS_INTO_MANAGEMENT", true);
param.put("EQU_CODE", dataMap.get("equCode")); param.put("EQU_CODE", dataMap.get("equCode"));
param.put("USE_ORG_CODE", dataMap.get("useOrgCode"));
objMap.put((String) dataMap.get("record"), param); objMap.put((String) dataMap.get("record"), param);
tzsServiceFeignClient.commonUpdateEsDataByIds(objMap); tzsServiceFeignClient.commonUpdateEsDataByIds(objMap);
} }
......
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