Commit c95cd65e authored by suhuiguang's avatar suhuiguang

refactor(大编辑):管道增减功能开发

1.更新es逻辑优化
parent b38f90b0
package com.yeejoin.amos.boot.module.jg.biz.edit.esUpdate.service;
import com.yeejoin.amos.boot.module.common.api.dto.IBaseChangeData;
import com.yeejoin.amos.boot.module.jg.biz.edit.esUpdate.strategy.EsUpdateStrategy;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Component
@RequiredArgsConstructor
@Slf4j
public class EsUpdateService {
private final List<EsUpdateStrategy<?>> strategies;
// 类型→策略的缓存Map
private Map<Class<?>, EsUpdateStrategy<?>> strategyMap;
@PostConstruct
public void init() {
// 初始化策略映射
strategyMap = strategies.stream()
.collect(Collectors.toMap(
EsUpdateStrategy::getSupportType,
strategy -> strategy
));
}
/**
* 统一入口方法
*/
public void updateEsData(String record, IBaseChangeData data) {
if (data == null) return;
EsUpdateStrategy<?> strategy = strategyMap.get(data.getClass());
if (strategy != null) {
executeStrategy(record, data, strategy);
} else {
log.warn("No strategy found for type: {}", data.getClass());
}
}
public void updateEsDataBatch(String record, List<? extends IBaseChangeData> dataList) {
dataList.forEach(data -> updateEsData(record, data));
}
@SuppressWarnings("unchecked")
private <T extends IBaseChangeData> void executeStrategy(String record, T data, EsUpdateStrategy<?> strategy) {
((EsUpdateStrategy<T>) strategy).updateEsData(record, data);
}
}
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.IdxBizJgDesignInfo;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
@Slf4j
public class DesignEsUpdateStrategy implements EsUpdateStrategy<IdxBizJgDesignInfo> {
private final EquipChangeDataUpdateServiceImpl equipChangeDataUpdateServiceImpl;
@Override
public Class<IdxBizJgDesignInfo> getSupportType() {
return IdxBizJgDesignInfo.class;
}
@Override
public void updateEsData(String record, IdxBizJgDesignInfo data) {
log.warn("do no thing");
}
}
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.IdxBizJgFactoryInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
public class FactoryEsUpdateStrategy implements EsUpdateStrategy<IdxBizJgFactoryInfo> {
private final EquipChangeDataUpdateServiceImpl equipChangeDataUpdateServiceImpl;
@Override
public Class<IdxBizJgFactoryInfo> getSupportType() {
return IdxBizJgFactoryInfo.class;
}
@Override
public void updateEsData(String record, IdxBizJgFactoryInfo data) {
equipChangeDataUpdateServiceImpl.updateFactoryEsData(record, data);
}
}
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.IdxBizJgInspectionDetectionInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
public class InspectionEsUpdateStrategy implements EsUpdateStrategy<IdxBizJgInspectionDetectionInfo> {
private final EquipChangeDataUpdateServiceImpl equipChangeDataUpdateServiceImpl;
@Override
public Class<IdxBizJgInspectionDetectionInfo> getSupportType() {
return IdxBizJgInspectionDetectionInfo.class;
}
@Override
public void updateEsData(String record, IdxBizJgInspectionDetectionInfo data) {
equipChangeDataUpdateServiceImpl.updateInspectInfoEs(record, data);
}
}
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.IdxBizJgRegisterInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
public class RegisterEsUpdateStrategy implements EsUpdateStrategy<IdxBizJgRegisterInfo> {
private final EquipChangeDataUpdateServiceImpl equipChangeDataUpdateServiceImpl;
@Override
public Class<IdxBizJgRegisterInfo> getSupportType() {
return IdxBizJgRegisterInfo.class;
}
@Override
public void updateEsData(String record, IdxBizJgRegisterInfo data) {
equipChangeDataUpdateServiceImpl.updateRegisterEsData(record, data);
}
}
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.IdxBizJgSupervisionInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
public class SupervisionEsUpdateStrategy implements EsUpdateStrategy<IdxBizJgSupervisionInfo> {
private final EquipChangeDataUpdateServiceImpl equipChangeDataUpdateServiceImpl;
@Override
public Class<IdxBizJgSupervisionInfo> getSupportType() {
return IdxBizJgSupervisionInfo.class;
}
@Override
public void updateEsData(String record, IdxBizJgSupervisionInfo data) {
equipChangeDataUpdateServiceImpl.updateSupervisionInfoEs(record, data);
}
}
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.IdxBizJgUseInfo;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
@Component
@RequiredArgsConstructor
public class UseInfoEsUpdateStrategy implements EsUpdateStrategy<IdxBizJgUseInfo> {
private final EquipChangeDataUpdateServiceImpl equipChangeDataUpdateServiceImpl;
@Override
public Class<IdxBizJgUseInfo> getSupportType() {
return IdxBizJgUseInfo.class;
}
@Override
public void updateEsData(String record, IdxBizJgUseInfo data) {
equipChangeDataUpdateServiceImpl.updateUseInfoEsData(record, data);
}
}
package com.yeejoin.amos.boot.module.jg.biz.edit.esUpdate.strategy;
import com.yeejoin.amos.boot.module.common.api.dto.IBaseChangeData;
public interface EsUpdateStrategy<T extends IBaseChangeData> {
Class<T> getSupportType();
void updateEsData(String record, T data);
}
......@@ -17,6 +17,8 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 维修告知编辑处理器
......@@ -48,6 +50,7 @@ public class MaintainNoticeDataChangeHandler extends DefaultBizDataChangeHandler
/**
* 管道专用
*
* @param applyNo 单据号
* 判断数据是实时落库,还是先存到json
* @return 是否需要临时存储
......@@ -71,7 +74,10 @@ public class MaintainNoticeDataChangeHandler extends DefaultBizDataChangeHandler
@Override
public Set<String> getProjectContraptionIds(String applyNo) {
return Collections.emptySet();
JgMaintainNotice jgMaintainNotice = maintainNoticeEditUpdateService.getMaintainNoticeService().getOne(new LambdaQueryWrapper<JgMaintainNotice>().eq(JgMaintainNotice::getApplyNo, applyNo).select(BaseEntity::getSequenceNbr, JgMaintainNotice::getProjectContraptionId));
return Stream.of(jgMaintainNotice.getProjectContraptionId())
.filter(id -> id != null && !id.trim().isEmpty())
.collect(Collectors.toSet());
}
@Override
......
......@@ -1019,41 +1019,6 @@ public class CommonEquipDataProcessService {
return page1;
}
public void updateEsDataOfEquip(String record, IBaseChangeData changeDataDto) {
// 注册信息
if (changeDataDto instanceof IdxBizJgRegisterInfo) {
IdxBizJgRegisterInfo registerChangeDataDto = (IdxBizJgRegisterInfo) changeDataDto;
equipChangeDataUpdateServiceImpl.updateRegisterEsData(record, registerChangeDataDto);
}
// 制造信息
if (changeDataDto instanceof IdxBizJgFactoryInfo) {
IdxBizJgFactoryInfo equipFactoryChangeDataDto = (IdxBizJgFactoryInfo) changeDataDto;
equipChangeDataUpdateServiceImpl.updateFactoryEsData(record, equipFactoryChangeDataDto);
}
// 设计信息
// if (changeDataDto instanceof IdxBizJgDesignInfo) {
// IdxBizJgDesignInfo equipDesignChangeDataDto = (IdxBizJgDesignInfo) changeDataDto;
// equipChangeDataUpdateServiceImpl.checkDesignChangeData(record, equipDesignChangeDataDto);
// }
// 使用信息
if (changeDataDto instanceof IdxBizJgUseInfo) {
IdxBizJgUseInfo equipUseInfoChangeDataDto = (IdxBizJgUseInfo) changeDataDto;
equipChangeDataUpdateServiceImpl.updateUseInfoEsData(record, equipUseInfoChangeDataDto);
}
// 检验信息
if (changeDataDto instanceof IdxBizJgInspectionDetectionInfo) {
IdxBizJgInspectionDetectionInfo equipInspectionInfoChangeDataDto = (IdxBizJgInspectionDetectionInfo) changeDataDto;
equipChangeDataUpdateServiceImpl.updateInspectInfoEs(record, equipInspectionInfoChangeDataDto);
}
// 监督管理信息
if (changeDataDto instanceof IdxBizJgSupervisionInfo) {
IdxBizJgSupervisionInfo equipSupervisionInfoChangeDataDto = (IdxBizJgSupervisionInfo) changeDataDto;
equipChangeDataUpdateServiceImpl.updateSupervisionInfoEs(record, equipSupervisionInfoChangeDataDto);
}
}
/**
* 施工地点name冗余
*
......
......@@ -8,6 +8,7 @@ import com.yeejoin.amos.boot.biz.common.entity.TzsBaseEntity;
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.enums.CylinderTypeEnum;
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.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.strategy.HandleResult;
......@@ -32,6 +33,9 @@ public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy
private final CommonEquipDataProcessService commonEquipDataProcessService;
private final EsUpdateService esUpdateService;
@Override
public HandleResult handle(Map<String, Object> changeData, String record) {
JSONObject changeJson = new JSONObject(changeData);
......@@ -82,7 +86,7 @@ public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy
inspectionDetectionInfoNew.setSequenceNbr(inspectionDetectionInfoOld.getSequenceNbr());
List<FieldChangeMeta> inspectionFieldChangeMetas = commonEquipDataProcessService.simpleTrackAndUpdate(commonEquipDataProcessService.getJgUseRegistrationService().getInspectionDetectionInfoService().getBaseMapper(), inspectionDetectionInfoOld, inspectionDetectionInfoNew, useInfoNew.getRecord(), "SEQUENCE_NBR", inspectionDetectionInfoOld.getSequenceNbr());
allChangeColumns.addAll(inspectionFieldChangeMetas);
commonEquipDataProcessService.updateEsDataOfEquip(record, inspectionDetectionInfoNew);
esUpdateService.updateEsData(record, inspectionDetectionInfoNew);
}
if (maintenanceSeq != null) {
IdxBizJgMaintenanceRecordInfo idxBizJgMaintenanceRecordInfoOld = commonEquipDataProcessService.getJgUseRegistrationService().getIdxBizJgMaintenanceRecordInfoService().getById(maintenanceSeq);
......@@ -125,12 +129,12 @@ public class SingleEquipChangeProcess implements IEquipChangeDataProcessStrategy
List<FieldChangeMeta> idxBizJgSupervisionInfoFieldChangeMetas = commonEquipDataProcessService.simpleTrackAndUpdate(commonEquipDataProcessService.getJgUseRegistrationService().getIdxBizJgSupervisionInfoMapper(), idxBizJgSupervisionInfoOld, idxBizJgSupervisionInfoNew, useInfoNew.getRecord(), "record", useInfoNew.getRecord());
allChangeColumns.addAll(idxBizJgSupervisionInfoFieldChangeMetas);
commonEquipDataProcessService.updateEsDataOfEquip(record, registerInfoNew);
commonEquipDataProcessService.updateEsDataOfEquip(record, useInfoNew);
commonEquipDataProcessService.updateEsDataOfEquip(record, designInfoNew);
commonEquipDataProcessService.updateEsDataOfEquip(record, otherInfoNew);
commonEquipDataProcessService.updateEsDataOfEquip(record, factoryInfoNew);
commonEquipDataProcessService.updateEsDataOfEquip(record, idxBizJgSupervisionInfoNew);
esUpdateService.updateEsData(record, registerInfoNew);
esUpdateService.updateEsData(record, useInfoNew);
esUpdateService.updateEsData(record, designInfoNew);
esUpdateService.updateEsData(record, otherInfoNew);
esUpdateService.updateEsData(record, factoryInfoNew);
esUpdateService.updateEsData(record, idxBizJgSupervisionInfoNew);
// 如果是气瓶则按照证更新其他同证下的气瓶字段
this.updateOtherEquipInSameCert(useInfoNew, registerInfoNew, registerInfoOld, allChangeColumns);
......
......@@ -11,12 +11,12 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.biz.edit.constant.EditConstant;
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.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.strategy.HandleResult;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.strategy.IEquipChangeDataProcessStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler.PieLineLevelTypeHandler;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgUseInfoServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgConstructionInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgInspectionDetectionInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
......@@ -43,7 +43,7 @@ public class SingleProjectEquipChangeProcess implements IEquipChangeDataProcessS
private final PieLineLevelTypeHandler pieLineLevelTypeHandler;
private final IdxBizJgUseInfoServiceImpl idxBizJgUseInfoServiceImpl;
private final EsUpdateService esUpdateService;
@Override
......@@ -187,7 +187,7 @@ public class SingleProjectEquipChangeProcess implements IEquipChangeDataProcessS
inspectionDetectionInfoNew.setSequenceNbr(inspectionDetectionInfoOld.getSequenceNbr());
List<FieldChangeMeta> inspectionFieldChangeMetas = commonEquipDataProcessService.simpleTrackAndUpdate(commonEquipDataProcessService.getJgUseRegistrationService().getInspectionDetectionInfoService().getBaseMapper(), inspectionDetectionInfoOld, inspectionDetectionInfoNew, projectContraptionChangeDataDto.getProjectContraptionId() + "/" + item.getRecord(), "SEQUENCE_NBR", inspectionDetectionInfoOld.getSequenceNbr());
allChangeColumns.addAll(inspectionFieldChangeMetas);
commonEquipDataProcessService.updateEsDataOfEquip(item.getRecord(), inspectionDetectionInfoNew);
esUpdateService.updateEsData(item.getRecord(), inspectionDetectionInfoNew);
}
}
......
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