Commit a1161683 authored by suhuiguang's avatar suhuiguang

1.使用登记单据变更功能,联调自测修改

parent 33c54647
...@@ -19,6 +19,11 @@ public class EquipRegisterChangeDataDto extends BaseChangeDataDto { ...@@ -19,6 +19,11 @@ public class EquipRegisterChangeDataDto extends BaseChangeDataDto {
@FieldDisplayDefine(value = "设备代码") @FieldDisplayDefine(value = "设备代码")
private String equCode; private String equCode;
/**
* 1-手工输入、2-系统自动生成
*/
@FieldDisplayDefine(value = "设备代码类型" ,isExist = false)
private String equCodeType;
@FieldDisplayDefine(value = "设备品种") @FieldDisplayDefine(value = "设备品种")
private String equDefine; private String equDefine;
......
package com.yeejoin.amos.boot.module.jg.api.dto; package com.yeejoin.amos.boot.module.jg.api.dto;
import com.alibaba.fastjson.JSON;
import com.yeejoin.amos.boot.biz.common.annotation.FieldDisplayDefine; import com.yeejoin.amos.boot.biz.common.annotation.FieldDisplayDefine;
import com.yeejoin.amos.boot.biz.common.annotation.Group; import com.yeejoin.amos.boot.biz.common.annotation.Group;
import lombok.Data; import lombok.Data;
...@@ -41,7 +42,7 @@ public class TechParamsPipelineChangeFieldDto extends BaseTechParamsFieldDto { ...@@ -41,7 +42,7 @@ public class TechParamsPipelineChangeFieldDto extends BaseTechParamsFieldDto {
private String pipeLength; private String pipeLength;
@FieldDisplayDefine(value = "起/始位置") @FieldDisplayDefine(value = "起/始位置", type = JSON.class)
private String startePosition; private String startePosition;
......
package com.yeejoin.amos.boot.module.jg.api.service; package com.yeejoin.amos.boot.module.jg.api.service;
import java.util.List;
import java.util.Map; import java.util.Map;
public interface IBizDataChangeHandleStrategy { public interface IBizDataChangeHandleStrategy {
...@@ -20,7 +19,7 @@ public interface IBizDataChangeHandleStrategy { ...@@ -20,7 +19,7 @@ public interface IBizDataChangeHandleStrategy {
* @param bizId 设备record * @param bizId 设备record
* @return 变更信息详情 * @return 变更信息详情
*/ */
Map<String, ?> getChangeDetail(String applyNo, ModelType model, String bizId); Map<String, ?> getDetail(String applyNo, ModelType model, String bizId);
/** /**
* 保存 * 保存
......
...@@ -159,7 +159,7 @@ public class PressureVesselListener extends AnalysisEventListener<EquipInfoCylin ...@@ -159,7 +159,7 @@ public class PressureVesselListener extends AnalysisEventListener<EquipInfoCylin
private void checkEquCodeUniqueness(String equCode) { private void checkEquCodeUniqueness(String equCode) {
// 根据设备代码检查唯一性 // 根据设备代码检查唯一性
Integer count = idxBizJgRegisterInfoMapper.selectByEquCodeAndClaimStatus(equCode,""); Integer count = idxBizJgRegisterInfoMapper.selectByEquCodeAndClaimStatus(equCode,"",null);
if (count > 0) { if (count > 0) {
result.append("设备代码系统中已存在"); result.append("设备代码系统中已存在");
} }
......
...@@ -5,9 +5,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -5,9 +5,7 @@ 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.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.module.jg.api.dto.ChangeDataDto; import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.dto.MultiChangeItemData;
import com.yeejoin.amos.boot.module.jg.api.dto.RequestChangeData;
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.enums.CylinderTypeEnum; import com.yeejoin.amos.boot.module.jg.api.enums.CylinderTypeEnum;
...@@ -38,13 +36,13 @@ public class BatchDataChangeProcessStrategy implements IChangeDataProcessStrateg ...@@ -38,13 +36,13 @@ public class BatchDataChangeProcessStrategy implements IChangeDataProcessStrateg
private final JgUseRegistrationMapper jgUseRegistrationMapper; private final JgUseRegistrationMapper jgUseRegistrationMapper;
private final SingleDataChangeProcessStrategy singleDataChangeProcessStrategy; private final CommonEquipDataProcessService commonEquipDataProcessService;
public BatchDataChangeProcessStrategy(JgUseRegistrationServiceImpl useRegistrationService, JgRegistrationHistoryServiceImpl jgRegistrationHistoryService, JgUseRegistrationMapper jgUseRegistrationMapper, SingleDataChangeProcessStrategy singleDataChangeProcessStrategy) { public BatchDataChangeProcessStrategy(JgUseRegistrationServiceImpl useRegistrationService, JgRegistrationHistoryServiceImpl jgRegistrationHistoryService, JgUseRegistrationMapper jgUseRegistrationMapper, CommonEquipDataProcessService commonEquipDataProcessService) {
this.useRegistrationService = useRegistrationService; this.useRegistrationService = useRegistrationService;
this.jgRegistrationHistoryService = jgRegistrationHistoryService; this.jgRegistrationHistoryService = jgRegistrationHistoryService;
this.jgUseRegistrationMapper = jgUseRegistrationMapper; this.jgUseRegistrationMapper = jgUseRegistrationMapper;
this.singleDataChangeProcessStrategy = singleDataChangeProcessStrategy; this.commonEquipDataProcessService = commonEquipDataProcessService;
} }
@Override @Override
...@@ -53,17 +51,42 @@ public class BatchDataChangeProcessStrategy implements IChangeDataProcessStrateg ...@@ -53,17 +51,42 @@ public class BatchDataChangeProcessStrategy implements IChangeDataProcessStrateg
JSONArray equips = data.getJSONArray(RequestChangeData.multiDataKey); JSONArray equips = data.getJSONArray(RequestChangeData.multiDataKey);
List<MultiChangeItemData> items = equips.toJavaList(MultiChangeItemData.class); List<MultiChangeItemData> items = equips.toJavaList(MultiChangeItemData.class);
List<ChangeDataDto> allChangeColumns = new ArrayList<>(); List<ChangeDataDto> allChangeColumns = new ArrayList<>();
// 校验
items.forEach(item -> { items.forEach(item -> {
String record = item.getRecord(); String record = item.getRecord();
Map<String, Object> itemData = item.getDetail(); Map<String, Object> itemData = item.getDetail();
if(itemData != null){ if (itemData != null) {
List<ChangeDataDto> oneEquipChangeColumns = singleDataChangeProcessStrategy.handleOne(itemData, record); EquipRegisterChangeDataDto registerChangeDataDto = commonEquipDataProcessService.castMap2Bean(itemData, EquipRegisterChangeDataDto.class);
allChangeColumns.addAll(oneEquipChangeColumns); EquipFactoryChangeDataDto factoryChangeDataDto = commonEquipDataProcessService.castMap2Bean(itemData, EquipFactoryChangeDataDto.class);
EquipDesignChangeDataDto designChangeDataDto = commonEquipDataProcessService.castMap2Bean(itemData, EquipDesignChangeDataDto.class);
// 前置检验
commonEquipDataProcessService.checkValidField(record, registerChangeDataDto, null, null, null);
commonEquipDataProcessService.checkValidField(record, factoryChangeDataDto, registerChangeDataDto.getEquList(), registerChangeDataDto.getEquCategory(), registerChangeDataDto.getEquDefine());
commonEquipDataProcessService.checkValidField(record, designChangeDataDto, registerChangeDataDto.getEquList(), registerChangeDataDto.getEquCategory(), registerChangeDataDto.getEquDefine());
} }
}); });
// 入库
items.forEach(item -> {
String record = item.getRecord();
Map<String, Object> itemData = item.getDetail();
if (itemData != null) {
EquipRegisterChangeDataDto registerChangeDataDto = commonEquipDataProcessService.castMap2Bean(itemData, EquipRegisterChangeDataDto.class);
EquipFactoryChangeDataDto factoryChangeDataDto = commonEquipDataProcessService.castMap2Bean(itemData, EquipFactoryChangeDataDto.class);
EquipDesignChangeDataDto designChangeDataDto = commonEquipDataProcessService.castMap2Bean(itemData, EquipDesignChangeDataDto.class);
commonEquipDataProcessService.buildChangeFields(record, designChangeDataDto, factoryChangeDataDto, registerChangeDataDto, allChangeColumns);
// 设备制造、设计、注册信息业务处理落库
commonEquipDataProcessService.dealBizDataForEquip(record, registerChangeDataDto);
commonEquipDataProcessService.dealBizDataForEquip(record, factoryChangeDataDto);
commonEquipDataProcessService.dealBizDataForEquip(record, designChangeDataDto);
// 设备技术参数入库处理
commonEquipDataProcessService.updateTechParamInfo(registerChangeDataDto, record, itemData, allChangeColumns);
}
});
// 单位办理不能修改设备品种,如果修改无法保证单据下的所有设备都一致
return allChangeColumns; return allChangeColumns;
} }
@Override @Override
public Map<String, List<Map<String, Object>>> getDetail(String applyNo, String bizId) { public Map<String, List<Map<String, Object>>> getDetail(String applyNo, String bizId) {
Map<String, List<Map<String, Object>>> result = new HashMap<>(); Map<String, List<Map<String, Object>>> result = new HashMap<>();
......
...@@ -4,8 +4,8 @@ import com.yeejoin.amos.boot.module.jg.api.dto.RequestChangeData; ...@@ -4,8 +4,8 @@ import com.yeejoin.amos.boot.module.jg.api.dto.RequestChangeData;
import com.yeejoin.amos.boot.module.jg.biz.context.BizDataHandleStrategyContext; import com.yeejoin.amos.boot.module.jg.biz.context.BizDataHandleStrategyContext;
import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy; import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map; import java.util.Map;
@Service @Service
...@@ -18,6 +18,7 @@ public class BizDataChangeServiceImpl { ...@@ -18,6 +18,7 @@ public class BizDataChangeServiceImpl {
* @param bizType 业务类型 * @param bizType 业务类型
* @param changeData 变化后的数据 * @param changeData 变化后的数据
*/ */
@Transactional(rollbackFor = Exception.class)
public void save(String applyNo, public void save(String applyNo,
String bizType, String bizType,
RequestChangeData changeData) { RequestChangeData changeData) {
...@@ -28,6 +29,6 @@ public class BizDataChangeServiceImpl { ...@@ -28,6 +29,6 @@ public class BizDataChangeServiceImpl {
public Map<String, ?> queryDetail(String applyNo, String bizType, IBizDataChangeHandleStrategy.ModelType model, String bizId) { public Map<String, ?> queryDetail(String applyNo, String bizType, IBizDataChangeHandleStrategy.ModelType model, String bizId) {
IBizDataChangeHandleStrategy handleStrategy = BizDataHandleStrategyContext.getStrategy(bizType); IBizDataChangeHandleStrategy handleStrategy = BizDataHandleStrategyContext.getStrategy(bizType);
return handleStrategy.getChangeDetail(applyNo, model, bizId); return handleStrategy.getDetail(applyNo, model, bizId);
} }
} }
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.annotation.FieldDisplayDefine;
import com.yeejoin.amos.boot.biz.common.annotation.Group;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.biz.service.*;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgDesignInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgFactoryInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.function.Function;
import java.util.stream.Collectors;
@Component
public class CommonEquipDataProcessService {
private final IdxBizJgDesignInfoMapper idxBizJgDesignInfoMapper;
private final IdxBizJgFactoryInfoMapper jgFactoryInfoMapper;
private final IdxBizJgRegisterInfoMapper idxBizJgRegisterInfoMapper;
private final IIdxBizJgTechParamsElevatorService iIdxBizJgTechParamsElevatorService;
private final IIdxBizJgTechParamsVehicleService iIdxBizJgTechParamsVehicleService;
private final IIdxBizJgTechParamsRopewayService iIdxBizJgTechParamsRopewayService;
private final IIdxBizJgTechParamsRidesService iIdxBizJgTechParamsRidesService;
private final IIdxBizJgTechParamsBoilerService iIdxBizJgTechParamsBoilerService;
private final IIdxBizJgTechParamsVesselService iIdxBizJgTechParamsVesselService;
private final IIdxBizJgTechParamsPipelineService iIdxBizJgTechParamsPipelineService;
private final IIdxBizJgTechParamsLiftingService iIdxBizJgTechParamsLiftingService;
private final EquipChangeDataUpdateService equipChangeDataUpdateService;
public CommonEquipDataProcessService(IdxBizJgDesignInfoMapper idxBizJgDesignInfoMapper, IdxBizJgFactoryInfoMapper jgFactoryInfoMapper, IdxBizJgRegisterInfoMapper idxBizJgRegisterInfoMapper, IIdxBizJgTechParamsElevatorService iIdxBizJgTechParamsElevatorService, IIdxBizJgTechParamsVehicleService iIdxBizJgTechParamsVehicleService, IIdxBizJgTechParamsRopewayService iIdxBizJgTechParamsRopewayService, IIdxBizJgTechParamsRidesService iIdxBizJgTechParamsRidesService, IIdxBizJgTechParamsBoilerService iIdxBizJgTechParamsBoilerService, IIdxBizJgTechParamsVesselService iIdxBizJgTechParamsVesselService, IIdxBizJgTechParamsPipelineService iIdxBizJgTechParamsPipelineService, IIdxBizJgTechParamsLiftingService iIdxBizJgTechParamsLiftingService, EquipChangeDataUpdateService equipChangeDataUpdateService) {
this.idxBizJgDesignInfoMapper = idxBizJgDesignInfoMapper;
this.jgFactoryInfoMapper = jgFactoryInfoMapper;
this.idxBizJgRegisterInfoMapper = idxBizJgRegisterInfoMapper;
this.iIdxBizJgTechParamsElevatorService = iIdxBizJgTechParamsElevatorService;
this.iIdxBizJgTechParamsVehicleService = iIdxBizJgTechParamsVehicleService;
this.iIdxBizJgTechParamsRopewayService = iIdxBizJgTechParamsRopewayService;
this.iIdxBizJgTechParamsRidesService = iIdxBizJgTechParamsRidesService;
this.iIdxBizJgTechParamsBoilerService = iIdxBizJgTechParamsBoilerService;
this.iIdxBizJgTechParamsVesselService = iIdxBizJgTechParamsVesselService;
this.iIdxBizJgTechParamsPipelineService = iIdxBizJgTechParamsPipelineService;
this.iIdxBizJgTechParamsLiftingService = iIdxBizJgTechParamsLiftingService;
this.equipChangeDataUpdateService = equipChangeDataUpdateService;
}
public <T extends BaseChangeDataDto> T castMap2Bean(Map<String, Object> map, Class<T> clazz) {
try {
T t = clazz.newInstance();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(map)), t, true);
return t;
} catch (InstantiationException | IllegalAccessException e) {
throw new RuntimeException(e);
}
}
public void checkValidField(String record, BaseChangeDataDto changeDataDto, String equList, String equCategory, String equDefine) {
// 注册信息
if (changeDataDto instanceof EquipRegisterChangeDataDto) {
EquipRegisterChangeDataDto registerChangeDataDto = (EquipRegisterChangeDataDto) changeDataDto;
equipChangeDataUpdateService.checkRegisterChangeData(record, registerChangeDataDto);
}
// 制造信息
if (changeDataDto instanceof EquipFactoryChangeDataDto) {
EquipFactoryChangeDataDto equipFactoryChangeDataDto = (EquipFactoryChangeDataDto) changeDataDto;
equipChangeDataUpdateService.checkFactoryChangeData(record, equipFactoryChangeDataDto, equList, equCategory, equDefine);
}
// 设计信息
if (changeDataDto instanceof EquipDesignChangeDataDto) {
EquipDesignChangeDataDto equipDesignChangeDataDto = (EquipDesignChangeDataDto) changeDataDto;
equipChangeDataUpdateService.checkDesignChangeData(record, equipDesignChangeDataDto);
}
}
void buildChangeFields(String record, EquipDesignChangeDataDto equipDesignChangeDataDto, EquipFactoryChangeDataDto equipFactoryChangeDataDto, EquipRegisterChangeDataDto registerChangeDataDto, List<ChangeDataDto> allChangeColumns) {
// 构造新对象行转列
List<ChangeDataDto> designInfoNew = this.buildDesignInfoNew(equipDesignChangeDataDto, record);
List<ChangeDataDto> factoryInfoNew = this.buildFactoryInfoNew(equipFactoryChangeDataDto, record);
List<ChangeDataDto> registerInfoNew = this.buildRegisterInfoNew(registerChangeDataDto, record);
// 老数据查询行转列
List<ChangeDataDto> designInfoOld = this.buildDesignInfoOld(record);
List<ChangeDataDto> factoryInfoOld = this.buildFactoryInfoOld(record);
List<ChangeDataDto> registerInfoOld = this.buildRegisterInfoOld(record);
allChangeColumns.addAll(this.mergeChangeFields(designInfoNew, designInfoOld));
allChangeColumns.addAll(this.mergeChangeFields(factoryInfoNew, factoryInfoOld));
allChangeColumns.addAll(this.mergeChangeFields(registerInfoNew, registerInfoOld));
}
/**
* 业务处理-业务对象
*
* @param record 设备主键
* @param changeDataDto 变更后数据
*/
void dealBizDataForEquip(String record, BaseChangeDataDto changeDataDto) {
// 注册信息
if (changeDataDto instanceof EquipRegisterChangeDataDto) {
EquipRegisterChangeDataDto registerChangeDataDto = (EquipRegisterChangeDataDto) changeDataDto;
equipChangeDataUpdateService.updateRegisterChangeData(record, registerChangeDataDto);
}
// 制造信息
if (changeDataDto instanceof EquipFactoryChangeDataDto) {
EquipFactoryChangeDataDto equipFactoryChangeDataDto = (EquipFactoryChangeDataDto) changeDataDto;
equipChangeDataUpdateService.updateFactoryChangeData(record, equipFactoryChangeDataDto);
}
// 设计信息
if (changeDataDto instanceof EquipDesignChangeDataDto) {
EquipDesignChangeDataDto equipDesignChangeDataDto = (EquipDesignChangeDataDto) changeDataDto;
equipChangeDataUpdateService.updateDesignChangeData(record, equipDesignChangeDataDto);
}
}
private String buildTableName(Class<?> clazz) {
Group group = clazz.getAnnotation(Group.class);
return String.format("\"%s_%s\"", "idx_biz_jg", group.value());
}
private List<ChangeDataDto> mergeChangeFields(List<ChangeDataDto> changeDataNew, List<ChangeDataDto> changeDataOld) {
Map<String, ChangeDataDto> oldKv = changeDataOld.stream().collect(Collectors.toMap(ChangeDataDto::getColumnKey, Function.identity()));
changeDataNew.forEach(o -> {
// 正常不会出现此情况,old数据 大于等于 new 数据的key
if (oldKv.get(o.getColumnKey()) != null) {
o.setColumnOldValue(oldKv.get(o.getColumnKey()).getColumnOldValue());
}
});
return changeDataNew.stream().filter(n -> !StringUtils.equals(n.getColumnNewValue(), n.getColumnOldValue())).collect(Collectors.toList());
}
private static TechParamsBoilerChangeFieldDto getTechParamsBoilerChangeField(Map<String, Object> changeData) {
TechParamsBoilerChangeFieldDto newBoiler = new TechParamsBoilerChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newBoiler, true);
return newBoiler;
}
private TechParamsBoilerChangeFieldDto getTechParamsBoilerChangeField(String record) {
IdxBizJgTechParamsBoiler boiler = iIdxBizJgTechParamsBoilerService.getOneData(record);
TechParamsBoilerChangeFieldDto oldBoiler = new TechParamsBoilerChangeFieldDto();
BeanUtil.copyProperties(boiler, oldBoiler);
return oldBoiler;
}
BaseTechParamsFieldDto buildTechParamInfo(EquipRegisterChangeDataDto equipRegisterChangeDataDto, String record) {
EquipmentClassifityEnum equipmentClassifityEnum = EquipmentClassifityEnum.getOne(equipRegisterChangeDataDto.getEquList());
switch (Objects.requireNonNull(equipmentClassifityEnum)) {
case GL:
// 锅炉
IdxBizJgTechParamsBoiler boiler = iIdxBizJgTechParamsBoilerService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(boiler, TechParamsBoilerChangeFieldDto.class);
case YLRQ:
// 压力容器
IdxBizJgTechParamsVessel techParamsVessel = iIdxBizJgTechParamsVesselService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(techParamsVessel, TechParamsVesselChangeFieldDto.class);
case DT:
// 电梯
IdxBizJgTechParamsElevator techParamsElevator = iIdxBizJgTechParamsElevatorService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(techParamsElevator, TechParamsElevatorChangeFieldDto.class);
case QZJX:
// 起重机械
IdxBizJgTechParamsLifting techParamsLifting = iIdxBizJgTechParamsLiftingService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(techParamsLifting, TechParamsLiftingChangeFieldDto.class);
case CC:
// 场(厂)内专用机动车辆
IdxBizJgTechParamsVehicle techParamsVehicle = iIdxBizJgTechParamsVehicleService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(techParamsVehicle, TechParamsVehicleChangeFieldDto.class);
case YLSS:
// 大型游乐设施
IdxBizJgTechParamsRides techParamsRides = iIdxBizJgTechParamsRidesService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(techParamsRides, TechParamsRidesChangeFieldDto.class);
case YLGD:
// 压力管道
IdxBizJgTechParamsPipeline techParamsPipeline = iIdxBizJgTechParamsPipelineService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(techParamsPipeline, TechParamsPipelineChangeFieldDto.class);
case KYSD:
// 客运索道
IdxBizJgTechParamsRopeway techParamsRopeway = iIdxBizJgTechParamsRopewayService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(techParamsRopeway, TechParamsRopewayChangeFieldDto.class);
default:
break;
}
return null;
}
void updateTechParamInfo(EquipRegisterChangeDataDto equipRegisterChangeDataDto, String record, Map<String, Object> changeData, List<ChangeDataDto> allChange) {
EquipmentClassifityEnum equipmentClassifityEnum = EquipmentClassifityEnum.getOne(equipRegisterChangeDataDto.getEquList());
switch (Objects.requireNonNull(equipmentClassifityEnum)) {
case GL:
// 锅炉
TechParamsBoilerChangeFieldDto newBoiler = getTechParamsBoilerChangeField(changeData);
TechParamsBoilerChangeFieldDto oldBoiler = getTechParamsBoilerChangeField(record);
// 字段行转列
List<ChangeDataDto> boilerChangeDataNew = this.convertBeanField2Column2(newBoiler, record);
List<ChangeDataDto> boilerChangeDataOld = this.convertBeanField2Column2(oldBoiler, record);
// 比对
List<ChangeDataDto> boilerChangeFields = this.mergeChangeFields(boilerChangeDataNew, boilerChangeDataOld);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsBoilerChangeFieldDto.class), record, boilerChangeFields);
// 日志数据记录
allChange.addAll(boilerChangeDataNew);
break;
case YLRQ:
// 压力容器
TechParamsVesselChangeFieldDto newVessel = new TechParamsVesselChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newVessel, true);
IdxBizJgTechParamsVessel techParamsVessel = iIdxBizJgTechParamsVesselService.getOneData(record);
TechParamsVesselChangeFieldDto oldVessel = BeanUtil.copyProperties(techParamsVessel, TechParamsVesselChangeFieldDto.class);
// 字段行转列
List<ChangeDataDto> newVesselChangeData = this.convertBeanField2Column2(newVessel, record);
List<ChangeDataDto> oldVesselChangeData = this.convertBeanField2Column2(oldVessel, record);
// 比对
List<ChangeDataDto> vesselChangeFields = this.mergeChangeFields(newVesselChangeData, oldVesselChangeData);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsVesselChangeFieldDto.class), record, vesselChangeFields);
// 日志数据记录
allChange.addAll(vesselChangeFields);
break;
case DT:
// 电梯
TechParamsElevatorChangeFieldDto newElevator = new TechParamsElevatorChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newElevator, true);
IdxBizJgTechParamsElevator techParamsElevator = iIdxBizJgTechParamsElevatorService.getOneData(record);
TechParamsElevatorChangeFieldDto oldElevator = BeanUtil.copyProperties(techParamsElevator, TechParamsElevatorChangeFieldDto.class);
// 字段行转列
List<ChangeDataDto> newElevatorChangeData = this.convertBeanField2Column2(newElevator, record);
List<ChangeDataDto> oldElevatorChangeData = this.convertBeanField2Column2(oldElevator, record);
// 比对
List<ChangeDataDto> elevatorChangeFields = this.mergeChangeFields(newElevatorChangeData, oldElevatorChangeData);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsElevatorChangeFieldDto.class), record, elevatorChangeFields);
// 日志数据记录
allChange.addAll(elevatorChangeFields);
break;
case QZJX:
// 起重机械
TechParamsLiftingChangeFieldDto newLifting = new TechParamsLiftingChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newLifting, true);
IdxBizJgTechParamsLifting techParamsLifting = iIdxBizJgTechParamsLiftingService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
TechParamsLiftingChangeFieldDto oldLifting = BeanUtil.copyProperties(techParamsLifting, TechParamsLiftingChangeFieldDto.class);
// 字段行转列
List<ChangeDataDto> newLiftingChangeData = this.convertBeanField2Column2(newLifting, record);
List<ChangeDataDto> oldLiftingChangeData = this.convertBeanField2Column2(oldLifting, record);
// 比对
List<ChangeDataDto> liftingChangeFields = this.mergeChangeFields(newLiftingChangeData, oldLiftingChangeData);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsLiftingChangeFieldDto.class), record, liftingChangeFields);
// 日志数据记录
allChange.addAll(liftingChangeFields);
break;
case CC:
// 场(厂)内专用机动车辆
TechParamsVehicleChangeFieldDto newVehicle = new TechParamsVehicleChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newVehicle, true);
IdxBizJgTechParamsVehicle techParamsVehicle = iIdxBizJgTechParamsVehicleService.getOneData(record);
TechParamsVehicleChangeFieldDto oldVehicle = BeanUtil.copyProperties(techParamsVehicle, TechParamsVehicleChangeFieldDto.class);
// 字段行转列
List<ChangeDataDto> newVehicleChangeData = this.convertBeanField2Column2(newVehicle, record);
List<ChangeDataDto> oldVehicleChangeData = this.convertBeanField2Column2(oldVehicle, record);
// 比对
List<ChangeDataDto> vehicleChangeFields = this.mergeChangeFields(newVehicleChangeData, oldVehicleChangeData);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsVehicleChangeFieldDto.class), record, vehicleChangeFields);
// 日志数据记录
allChange.addAll(vehicleChangeFields);
break;
case YLSS:
// 大型游乐设施
TechParamsRidesChangeFieldDto newRides = new TechParamsRidesChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newRides, true);
IdxBizJgTechParamsRides techParamsRides = iIdxBizJgTechParamsRidesService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
TechParamsRidesChangeFieldDto oldRides = BeanUtil.copyProperties(techParamsRides, TechParamsRidesChangeFieldDto.class);
// 字段行转列
List<ChangeDataDto> newRidesChangeData = this.convertBeanField2Column2(newRides, record);
List<ChangeDataDto> oldRidesChangeData = this.convertBeanField2Column2(oldRides, record);
// 比对
List<ChangeDataDto> ridesChangeFields = this.mergeChangeFields(newRidesChangeData, oldRidesChangeData);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsRidesChangeFieldDto.class), record, ridesChangeFields);
// 日志数据记录
allChange.addAll(ridesChangeFields);
break;
case YLGD:
// 压力管道
TechParamsPipelineChangeFieldDto newPipeline = new TechParamsPipelineChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newPipeline, true);
IdxBizJgTechParamsPipeline techParamsPipeline = iIdxBizJgTechParamsPipelineService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
TechParamsPipelineChangeFieldDto oldPipeline = BeanUtil.copyProperties(techParamsPipeline, TechParamsPipelineChangeFieldDto.class);
// 字段行转列
List<ChangeDataDto> newPipelineChangeData = this.convertBeanField2Column2(newPipeline, record);
List<ChangeDataDto> oldPipelineChangeData = this.convertBeanField2Column2(oldPipeline, record);
// 比对
List<ChangeDataDto> pipelineChangeFields = this.mergeChangeFields(newPipelineChangeData, oldPipelineChangeData);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsPipelineChangeFieldDto.class), record, pipelineChangeFields);
// 日志数据记录
allChange.addAll(pipelineChangeFields);
break;
case KYSD:
// 客运索道
TechParamsRopewayChangeFieldDto newRopeway = new TechParamsRopewayChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newRopeway, true);
IdxBizJgTechParamsRopeway techParamsRopeway = iIdxBizJgTechParamsRopewayService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
TechParamsRopewayChangeFieldDto oldRopeway = BeanUtil.copyProperties(techParamsRopeway, TechParamsRopewayChangeFieldDto.class);
// 字段行转列
List<ChangeDataDto> newRopewayChangeData = this.convertBeanField2Column2(newRopeway, record);
List<ChangeDataDto> oldRopewayChangeData = this.convertBeanField2Column2(oldRopeway, record);
// 比对
List<ChangeDataDto> ropewayChangeFields = this.mergeChangeFields(newRopewayChangeData, oldRopewayChangeData);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsRopewayChangeFieldDto.class), record, ropewayChangeFields);
// 日志数据记录
allChange.addAll(ropewayChangeFields);
break;
default:
break;
}
}
private List<ChangeDataDto> convertBeanField2Column2(Object beanData, String record) {
List<ChangeDataDto> changeData = new ArrayList<>();
Group group = beanData.getClass().getAnnotation(Group.class);
Field[] fields = beanData.getClass().getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
FieldDisplayDefine displayDefine = field.getAnnotation(FieldDisplayDefine.class);
try {
if (displayDefine != null && displayDefine.isExist()) {
String fieldName = displayDefine.value();
ChangeDataDto changeDataDto = new ChangeDataDto();
changeDataDto.setColumnKey(field.getName());
changeDataDto.setColumnFamily(group.value());
changeDataDto.setColumnLabel(fieldName);
changeDataDto.setChangeId(record);
Object oV = field.get(beanData);
if (oV instanceof String) {
String value = (String) field.get(beanData);
changeDataDto.setColumnNewValue(value);
changeDataDto.setColumnOldValue(value);
} else if (oV instanceof Number) {
String value = String.valueOf(field.get(beanData));
changeDataDto.setColumnNewValue(value);
changeDataDto.setColumnOldValue(value);
}
changeData.add(changeDataDto);
}
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
return changeData;
}
private List<ChangeDataDto> buildDesignInfoNew(EquipDesignChangeDataDto changeDataDto, String record) {
return this.convertBeanField2Column2(changeDataDto, record);
}
private List<ChangeDataDto> buildFactoryInfoNew(EquipFactoryChangeDataDto changeDataDto, String record) {
return this.convertBeanField2Column2(changeDataDto, record);
}
private List<ChangeDataDto> buildRegisterInfoNew(EquipRegisterChangeDataDto changeDataDto, String record) {
return this.convertBeanField2Column2(changeDataDto, record);
}
private List<ChangeDataDto> buildDesignInfoOld(String record) {
EquipDesignChangeDataDto changeDataDto = new EquipDesignChangeDataDto();
IdxBizJgDesignInfo designInfo = idxBizJgDesignInfoMapper.selectOne(new LambdaQueryWrapper<IdxBizJgDesignInfo>().eq(IdxBizJgDesignInfo::getRecord, record));
BeanUtil.copyProperties(designInfo, changeDataDto);
changeDataDto.setDesignDate(DateUtil.formatDate(designInfo.getDesignDate()));
return this.convertBeanField2Column2(changeDataDto, record);
}
private List<ChangeDataDto> buildFactoryInfoOld(String record) {
EquipFactoryChangeDataDto changeDataDto = new EquipFactoryChangeDataDto();
IdxBizJgFactoryInfo factoryInfo = jgFactoryInfoMapper.selectOne(new LambdaQueryWrapper<IdxBizJgFactoryInfo>().eq(IdxBizJgFactoryInfo::getRecord, record));
BeanUtil.copyProperties(factoryInfo, changeDataDto);
changeDataDto.setProduceDate(DateUtil.formatDate(factoryInfo.getProduceDate()));
return this.convertBeanField2Column2(changeDataDto, record);
}
private List<ChangeDataDto> buildRegisterInfoOld(String record) {
EquipRegisterChangeDataDto changeDataDto = new EquipRegisterChangeDataDto();
IdxBizJgRegisterInfo registerInfo = idxBizJgRegisterInfoMapper.selectOne(new LambdaQueryWrapper<IdxBizJgRegisterInfo>().eq(IdxBizJgRegisterInfo::getRecord, record));
BeanUtil.copyProperties(registerInfo, changeDataDto);
return this.convertBeanField2Column2(changeDataDto, record);
}
}
...@@ -7,21 +7,22 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; ...@@ -7,21 +7,22 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory; import com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto; import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto;
import com.yeejoin.amos.boot.module.jg.api.dto.*; import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.enums.CylinderTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory; import com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgDesignInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgDesignInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgFactoryInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgFactoryInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquCodeTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgDesignInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgDesignInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgFactoryInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgFactoryInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper;
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.restful.exception.instance.BadRequest;
import java.util.List; import java.util.List;
import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -52,31 +53,32 @@ public class EquipChangeDataUpdateService { ...@@ -52,31 +53,32 @@ public class EquipChangeDataUpdateService {
public void updateRegisterChangeData(String record, EquipRegisterChangeDataDto registerChangeDataDto) { public void updateRegisterChangeData(String record, EquipRegisterChangeDataDto registerChangeDataDto) {
LambdaUpdateWrapper<IdxBizJgRegisterInfo> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<IdxBizJgRegisterInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(IdxBizJgRegisterInfo::getRecord, record); updateWrapper.eq(IdxBizJgRegisterInfo::getRecord, record);
updateWrapper.set(!Objects.equals(registerChangeDataDto.getEquCode(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgRegisterInfo::getEquCode, registerChangeDataDto.getEquCode()); updateWrapper.set(IdxBizJgRegisterInfo::getEquCode, registerChangeDataDto.getEquCode());
updateWrapper.set(!Objects.equals(registerChangeDataDto.getEquDefine(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgRegisterInfo::getEquDefine, registerChangeDataDto.getEquDefine()); updateWrapper.set(IdxBizJgRegisterInfo::getEquDefine, registerChangeDataDto.getEquDefine());
updateWrapper.set(!Objects.equals(registerChangeDataDto.getProductName(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgRegisterInfo::getProductName, registerChangeDataDto.getProductName()); updateWrapper.set(IdxBizJgRegisterInfo::getProductName, registerChangeDataDto.getProductName());
updateWrapper.set(!Objects.equals(registerChangeDataDto.getEquType(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgRegisterInfo::getEquType, registerChangeDataDto.getEquType()); updateWrapper.set(IdxBizJgRegisterInfo::getEquType, registerChangeDataDto.getEquType());
updateWrapper.set(!Objects.equals(registerChangeDataDto.getEquPrice(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgRegisterInfo::getEquPrice, registerChangeDataDto.getEquPrice()); updateWrapper.set(IdxBizJgRegisterInfo::getEquPrice, registerChangeDataDto.getEquPrice());
updateWrapper.set(!Objects.equals(registerChangeDataDto.getProductPhoto(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgRegisterInfo::getProductPhoto, registerChangeDataDto.getProductPhoto()); updateWrapper.set(IdxBizJgRegisterInfo::getProductPhoto, registerChangeDataDto.getProductPhoto());
updateWrapper.set(!Objects.equals(registerChangeDataDto.getOtherAccessoriesReg(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgRegisterInfo::getOtherAccessoriesReg, registerChangeDataDto.getOtherAccessoriesReg()); updateWrapper.set(IdxBizJgRegisterInfo::getOtherAccessoriesReg, registerChangeDataDto.getOtherAccessoriesReg());
idxBizJgRegisterInfoMapper.update(null, updateWrapper); idxBizJgRegisterInfoMapper.update(null, updateWrapper);
updateRegisterEsData(record, registerChangeDataDto); updateRegisterEsData(record, registerChangeDataDto);
} }
public void updateDesignChangeData(String record, EquipDesignChangeDataDto equipDesignChangeDataDto) { public void updateDesignChangeData(String record, EquipDesignChangeDataDto equipDesignChangeDataDto) {
LambdaUpdateWrapper<IdxBizJgDesignInfo> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<IdxBizJgDesignInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(IdxBizJgDesignInfo::getRecord, record); updateWrapper.eq(IdxBizJgDesignInfo::getRecord, record);
updateWrapper.set(!Objects.equals(equipDesignChangeDataDto.getDesignDate(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgDesignInfo::getDesignDate, DateUtil.parse(equipDesignChangeDataDto.getDesignDate(), "yyyy-MM-dd")); updateWrapper.set(IdxBizJgDesignInfo::getDesignDate, DateUtil.parse(equipDesignChangeDataDto.getDesignDate(), "yyyy-MM-dd"));
updateWrapper.set(!Objects.equals(equipDesignChangeDataDto.getDesignDoc(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgDesignInfo::getDesignDoc, equipDesignChangeDataDto.getDesignDoc()); updateWrapper.set(IdxBizJgDesignInfo::getDesignDoc, equipDesignChangeDataDto.getDesignDoc());
updateWrapper.set(!Objects.equals(equipDesignChangeDataDto.getDesignUnitCreditCode(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgDesignInfo::getDesignUnitCreditCode, equipDesignChangeDataDto.getDesignUnitCreditCode()); updateWrapper.set(IdxBizJgDesignInfo::getDesignUnitCreditCode, equipDesignChangeDataDto.getDesignUnitCreditCode());
updateWrapper.set(!Objects.equals(equipDesignChangeDataDto.getDesignUnitName(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgDesignInfo::getDesignUnitName, equipDesignChangeDataDto.getDesignUnitName()); updateWrapper.set(IdxBizJgDesignInfo::getDesignUnitName, equipDesignChangeDataDto.getDesignUnitName());
updateWrapper.set(!Objects.equals(equipDesignChangeDataDto.getDesignUseDate(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgDesignInfo::getDesignUseDate, equipDesignChangeDataDto.getDesignUseDate()); updateWrapper.set(IdxBizJgDesignInfo::getDesignUseDate, equipDesignChangeDataDto.getDesignUseDate());
updateWrapper.set(!Objects.equals(equipDesignChangeDataDto.getDesignLicenseNum(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgDesignInfo::getDesignLicenseNum, equipDesignChangeDataDto.getDesignLicenseNum()); updateWrapper.set(IdxBizJgDesignInfo::getDesignLicenseNum, equipDesignChangeDataDto.getDesignLicenseNum());
updateWrapper.set(!Objects.equals(equipDesignChangeDataDto.getAppraisalUnit(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgDesignInfo::getAppraisalUnit, equipDesignChangeDataDto.getAppraisalUnit()); updateWrapper.set(IdxBizJgDesignInfo::getAppraisalUnit, equipDesignChangeDataDto.getAppraisalUnit());
updateWrapper.set(!Objects.equals(equipDesignChangeDataDto.getOtherAccessoriesDes(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgDesignInfo::getOtherAccessoriesDes, equipDesignChangeDataDto.getOtherAccessoriesDes()); updateWrapper.set(IdxBizJgDesignInfo::getOtherAccessoriesDes, equipDesignChangeDataDto.getOtherAccessoriesDes());
updateWrapper.set(!Objects.equals(equipDesignChangeDataDto.getAppraisalDate(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgDesignInfo::getAppraisalDate, equipDesignChangeDataDto.getAppraisalDate()); updateWrapper.set(IdxBizJgDesignInfo::getAppraisalDate, equipDesignChangeDataDto.getAppraisalDate());
updateWrapper.set(!Objects.equals(equipDesignChangeDataDto.getDrawingDo(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgDesignInfo::getDrawingDo, equipDesignChangeDataDto.getDrawingDo()); updateWrapper.set(IdxBizJgDesignInfo::getDrawingDo, equipDesignChangeDataDto.getDrawingDo());
updateWrapper.set(!Objects.equals(equipDesignChangeDataDto.getDesignStandard(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgDesignInfo::getDesignStandard, equipDesignChangeDataDto.getDesignStandard()); updateWrapper.set(IdxBizJgDesignInfo::getDesignStandard, equipDesignChangeDataDto.getDesignStandard());
idxBizJgDesignInfoMapper.update(null, updateWrapper); idxBizJgDesignInfoMapper.update(null, updateWrapper);
} }
...@@ -84,19 +86,19 @@ public class EquipChangeDataUpdateService { ...@@ -84,19 +86,19 @@ public class EquipChangeDataUpdateService {
LambdaUpdateWrapper<IdxBizJgFactoryInfo> updateWrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<IdxBizJgFactoryInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(IdxBizJgFactoryInfo::getRecord, record); updateWrapper.eq(IdxBizJgFactoryInfo::getRecord, record);
// 影响设备代码的生成 // 影响设备代码的生成
updateWrapper.set(!Objects.equals(equipFactoryChangeDataDto.getProduceDate(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgFactoryInfo::getProduceDate, DateUtil.parse(equipFactoryChangeDataDto.getProduceDate(), "yyyy-MM-dd")); updateWrapper.set(IdxBizJgFactoryInfo::getProduceDate, DateUtil.parse(equipFactoryChangeDataDto.getProduceDate(), "yyyy-MM-dd"));
updateWrapper.set(!Objects.equals(equipFactoryChangeDataDto.getProduceUnitName(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgFactoryInfo::getProduceUnitName, equipFactoryChangeDataDto.getProduceUnitName()); updateWrapper.set(IdxBizJgFactoryInfo::getProduceUnitName, equipFactoryChangeDataDto.getProduceUnitName());
updateWrapper.set(!Objects.equals(equipFactoryChangeDataDto.getProduceCountry(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgFactoryInfo::getProduceCountry, equipFactoryChangeDataDto.getProduceCountry()); updateWrapper.set(IdxBizJgFactoryInfo::getProduceCountry, equipFactoryChangeDataDto.getProduceCountry());
updateWrapper.set(!Objects.equals(equipFactoryChangeDataDto.getProduceUnitCreditCode(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgFactoryInfo::getProduceUnitCreditCode, equipFactoryChangeDataDto.getProduceUnitCreditCode()); updateWrapper.set(IdxBizJgFactoryInfo::getProduceUnitCreditCode, equipFactoryChangeDataDto.getProduceUnitCreditCode());
updateWrapper.set(!Objects.equals(equipFactoryChangeDataDto.getProduceLicenseNum(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgFactoryInfo::getProduceLicenseNum, equipFactoryChangeDataDto.getProduceLicenseNum()); updateWrapper.set(IdxBizJgFactoryInfo::getProduceLicenseNum, equipFactoryChangeDataDto.getProduceLicenseNum());
updateWrapper.set(!Objects.equals(equipFactoryChangeDataDto.getProductQualityYieldProve(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgFactoryInfo::getProductQualityYieldProve, equipFactoryChangeDataDto.getProductQualityYieldProve()); updateWrapper.set(IdxBizJgFactoryInfo::getProductQualityYieldProve, equipFactoryChangeDataDto.getProductQualityYieldProve());
updateWrapper.set(!Objects.equals(equipFactoryChangeDataDto.getFactoryStandard(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgFactoryInfo::getFactoryStandard, equipFactoryChangeDataDto.getFactoryStandard()); updateWrapper.set(IdxBizJgFactoryInfo::getFactoryStandard, equipFactoryChangeDataDto.getFactoryStandard());
updateWrapper.set(!Objects.equals(equipFactoryChangeDataDto.getFactoryNum(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgFactoryInfo::getFactoryNum, equipFactoryChangeDataDto.getFactoryNum()); updateWrapper.set(IdxBizJgFactoryInfo::getFactoryNum, equipFactoryChangeDataDto.getFactoryNum());
updateWrapper.set(!Objects.equals(equipFactoryChangeDataDto.getFactSupervisionInspectionReport(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgFactoryInfo::getFactSupervisionInspectionReport, equipFactoryChangeDataDto.getFactSupervisionInspectionReport()); updateWrapper.set(IdxBizJgFactoryInfo::getFactSupervisionInspectionReport, equipFactoryChangeDataDto.getFactSupervisionInspectionReport());
updateWrapper.set(!Objects.equals(equipFactoryChangeDataDto.getOtherAccessoriesFact(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgFactoryInfo::getOtherAccessoriesFact, equipFactoryChangeDataDto.getOtherAccessoriesFact()); updateWrapper.set(IdxBizJgFactoryInfo::getOtherAccessoriesFact, equipFactoryChangeDataDto.getOtherAccessoriesFact());
updateWrapper.set(!Objects.equals(equipFactoryChangeDataDto.getImported(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgFactoryInfo::getImported, equipFactoryChangeDataDto.getImported()); updateWrapper.set(IdxBizJgFactoryInfo::getImported, equipFactoryChangeDataDto.getImported());
updateWrapper.set(!Objects.equals(equipFactoryChangeDataDto.getInsUseMaintainExplain(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgFactoryInfo::getInsUseMaintainExplain, equipFactoryChangeDataDto.getInsUseMaintainExplain()); updateWrapper.set(IdxBizJgFactoryInfo::getInsUseMaintainExplain, equipFactoryChangeDataDto.getInsUseMaintainExplain());
updateWrapper.set(!Objects.equals(equipFactoryChangeDataDto.getBoilerEnergyEfficiencyCertificate(), IBizDataChangeHandleStrategy.DEFAULT_VALUE), IdxBizJgFactoryInfo::getBoilerEnergyEfficiencyCertificate, equipFactoryChangeDataDto.getBoilerEnergyEfficiencyCertificate()); updateWrapper.set(IdxBizJgFactoryInfo::getBoilerEnergyEfficiencyCertificate, equipFactoryChangeDataDto.getBoilerEnergyEfficiencyCertificate());
jgFactoryInfoMapper.update(null, updateWrapper); jgFactoryInfoMapper.update(null, updateWrapper);
this.updateFactoryEsData(record, equipFactoryChangeDataDto); this.updateFactoryEsData(record, equipFactoryChangeDataDto);
} }
...@@ -106,15 +108,9 @@ public class EquipChangeDataUpdateService { ...@@ -106,15 +108,9 @@ public class EquipChangeDataUpdateService {
Optional<ESEquipmentCategoryDto> optional = esEquipmentCategory.findById(record); Optional<ESEquipmentCategoryDto> optional = esEquipmentCategory.findById(record);
if (optional.isPresent()) { if (optional.isPresent()) {
ESEquipmentCategoryDto esEquipmentCategoryDto = optional.get(); ESEquipmentCategoryDto esEquipmentCategoryDto = optional.get();
if (!Objects.equals(equipFactoryChangeDataDto.getProduceDate(), IBizDataChangeHandleStrategy.DEFAULT_VALUE)) { esEquipmentCategoryDto.setPRODUCE_DATE(equipFactoryChangeDataDto.getProduceDate());
esEquipmentCategoryDto.setPRODUCE_DATE(equipFactoryChangeDataDto.getProduceDate()); esEquipmentCategoryDto.setFACTORY_NUM(equipFactoryChangeDataDto.getFactoryNum());
} esEquipmentCategoryDto.setPRODUCE_UNIT_NAME(equipFactoryChangeDataDto.getProduceUnitName());
if (!Objects.equals(equipFactoryChangeDataDto.getFactoryNum(), IBizDataChangeHandleStrategy.DEFAULT_VALUE)) {
esEquipmentCategoryDto.setFACTORY_NUM(equipFactoryChangeDataDto.getFactoryNum());
}
if (!Objects.equals(equipFactoryChangeDataDto.getProduceUnitName(), IBizDataChangeHandleStrategy.DEFAULT_VALUE)) {
esEquipmentCategoryDto.setPRODUCE_UNIT_NAME(equipFactoryChangeDataDto.getProduceUnitName());
}
esEquipmentCategory.save(esEquipmentCategoryDto); esEquipmentCategory.save(esEquipmentCategoryDto);
} }
} }
...@@ -131,7 +127,7 @@ public class EquipChangeDataUpdateService { ...@@ -131,7 +127,7 @@ public class EquipChangeDataUpdateService {
if (StringUtils.isEmpty(registerChangeDataDto.getEquDefine())) { if (StringUtils.isEmpty(registerChangeDataDto.getEquDefine())) {
esEquipmentCategoryDto.setEQU_DEFINE(null); esEquipmentCategoryDto.setEQU_DEFINE(null);
} else { } else {
EquipmentCategory category = equipmentCategoryMapper.selectOne(new LambdaQueryWrapper<EquipmentCategory>().eq(EquipmentCategory::getCode, registerChangeDataDto.getEquDefine())); EquipmentCategory category = getEquipmentCategory(registerChangeDataDto);
if (category != null) { if (category != null) {
esEquipmentCategoryDto.setEQU_DEFINE(category.getName()); esEquipmentCategoryDto.setEQU_DEFINE(category.getName());
} }
...@@ -140,6 +136,10 @@ public class EquipChangeDataUpdateService { ...@@ -140,6 +136,10 @@ public class EquipChangeDataUpdateService {
} }
} }
private EquipmentCategory getEquipmentCategory(EquipRegisterChangeDataDto registerChangeDataDto) {
return equipmentCategoryMapper.selectOne(new LambdaQueryWrapper<EquipmentCategory>().eq(EquipmentCategory::getCode, registerChangeDataDto.getEquDefine()));
}
public void updateTechParamByRecord(String tableName, String record, List<ChangeDataDto> changeDataDtos) { public void updateTechParamByRecord(String tableName, String record, List<ChangeDataDto> changeDataDtos) {
List<DynamicColumnDto> columns = changeDataDtos.stream().map(c -> { List<DynamicColumnDto> columns = changeDataDtos.stream().map(c -> {
DynamicColumnDto columnDto = new DynamicColumnDto(); DynamicColumnDto columnDto = new DynamicColumnDto();
...@@ -150,4 +150,45 @@ public class EquipChangeDataUpdateService { ...@@ -150,4 +150,45 @@ public class EquipChangeDataUpdateService {
// sql 动态构建入库 // sql 动态构建入库
commonMapper.updateTechParamDynamic(tableName, record, columns); commonMapper.updateTechParamDynamic(tableName, record, columns);
} }
public void checkFactoryChangeData(String record, EquipFactoryChangeDataDto equipFactoryChangeDataDto, String equList, String equCategory, String equDefine) {
// 气瓶时检验出厂编号-普通气瓶,车用气瓶不再此范围内
if (CylinderTypeEnum.CYLINDER.getCode().equals(equCategory)) {
boolean isUsed = this.checkFactoryNumUnique(equipFactoryChangeDataDto.getFactoryNum(), record, equipFactoryChangeDataDto.getProduceUnitCreditCode());
if (isUsed) {
throw new BadRequest("出厂编号/产品编码在该企业中已存在!");
}
}
}
/**
* 普通气瓶检验-同制造单位下唯一
*
* @param factoryNum 出厂编号
* @param produceUnitCreditCode 制造单位编码
* @return 是否被占用
*/
private boolean checkFactoryNumUnique(String factoryNum, String record, String produceUnitCreditCode) {
return commonMapper.checkFactoryNumUnique(factoryNum, record, produceUnitCreditCode) > 0;
}
public void checkRegisterChangeData(String record, EquipRegisterChangeDataDto registerChangeDataDto) {
// 自行输入时,检验设备代码的全局唯一性
if (registerChangeDataDto.getEquCodeType().equals(EquCodeTypeEnum.INPUT.getCode()) && StringUtils.isNotEmpty(registerChangeDataDto.getEquCode())) {
Boolean isUsed = this.checkEquCodeUniqueness(registerChangeDataDto.getEquCode(), record);
if (isUsed) {
throw new BadRequest("设备代码:" + registerChangeDataDto.getEquCode() + "在系统中已存在!");
}
}
}
private Boolean checkEquCodeUniqueness(String equCode, String record) {
// 根据设备代码检查唯一性
return idxBizJgRegisterInfoMapper.selectByEquCodeAndClaimStatus(equCode, "", record) > 0;
}
public void checkDesignChangeData(String record, EquipDesignChangeDataDto equipDesignChangeDataDto) {
}
} }
...@@ -439,7 +439,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -439,7 +439,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
// 根据设备代码检查唯一性 // 根据设备代码检查唯一性
String equCode = (String) equipmentInfoForm.get(EQU_CODE); String equCode = (String) equipmentInfoForm.get(EQU_CODE);
String sequenceNbr = (String) equipmentInfoForm.get(SEQUENCE_NBR); String sequenceNbr = (String) equipmentInfoForm.get(SEQUENCE_NBR);
List<Integer> results = Stream.of(idxBizJgRegisterInfoMapper.selectByEquCodeAndClaimStatus(equCode, sequenceNbr), List<Integer> results = Stream.of(idxBizJgRegisterInfoMapper.selectByEquCodeAndClaimStatus(equCode, sequenceNbr, null),
idxBizJgRegisterInfoMapper.selectInstallNoticeEqByEquCode(equCode, sequenceNbr) idxBizJgRegisterInfoMapper.selectInstallNoticeEqByEquCode(equCode, sequenceNbr)
).collect(Collectors.toList()); ).collect(Collectors.toList());
...@@ -3464,7 +3464,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste ...@@ -3464,7 +3464,7 @@ public class IdxBizJgRegisterInfoServiceImpl extends BaseService<IdxBizJgRegiste
private void checkEquCodeUniqueness(String equCode, StringBuilder result) { private void checkEquCodeUniqueness(String equCode, StringBuilder result) {
// 根据设备代码检查唯一性 // 根据设备代码检查唯一性
Integer count = idxBizJgRegisterInfoMapper.selectByEquCodeAndClaimStatus(equCode, ""); Integer count = idxBizJgRegisterInfoMapper.selectByEquCodeAndClaimStatus(equCode, "", null);
if (count > 0) { if (count > 0) {
result.append("设备代码系统中已存在;"); result.append("设备代码系统中已存在;");
} }
......
...@@ -4,20 +4,25 @@ import cn.hutool.core.bean.BeanUtil; ...@@ -4,20 +4,25 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
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.conditions.update.LambdaUpdateWrapper;
import com.yeejoin.amos.boot.biz.common.annotation.FieldDisplayDefine; import com.yeejoin.amos.boot.biz.common.annotation.FieldDisplayDefine;
import com.yeejoin.amos.boot.biz.common.annotation.Group;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.module.jg.api.dto.*; import com.yeejoin.amos.boot.module.jg.api.dto.*;
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.api.mapper.JgUseRegistrationEqMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgUseRegistrationManageMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy; import com.yeejoin.amos.boot.module.jg.api.service.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.service.*; import com.yeejoin.amos.boot.module.jg.biz.service.*;
import com.yeejoin.amos.boot.module.ymt.api.entity.*; import com.yeejoin.amos.boot.module.ymt.api.entity.EquipmentCategory;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgDesignInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgFactoryInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgRegisterInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgDesignInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgDesignInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgFactoryInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgFactoryInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper;
...@@ -28,8 +33,6 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest; ...@@ -28,8 +33,6 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.*; import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/** /**
* 单个维护使用登记策略实现类 * 单个维护使用登记策略实现类
...@@ -47,48 +50,24 @@ public class SingleDataChangeProcessStrategy implements IChangeDataProcessStrate ...@@ -47,48 +50,24 @@ public class SingleDataChangeProcessStrategy implements IChangeDataProcessStrate
private final JgUseRegistrationEqMapper jgRelationEquipMapper; private final JgUseRegistrationEqMapper jgRelationEquipMapper;
private final IIdxBizJgTechParamsElevatorService iIdxBizJgTechParamsElevatorService; private final CommonEquipDataProcessService commonEquipDataProcessService;
private final IIdxBizJgTechParamsVehicleService iIdxBizJgTechParamsVehicleService; private final JgUseRegistrationManageMapper registrationManageMapper;
private final IIdxBizJgTechParamsRopewayService iIdxBizJgTechParamsRopewayService; private final EquipmentCategoryMapper equipmentCategoryMapper;
private final IIdxBizJgTechParamsRidesService iIdxBizJgTechParamsRidesService;
private final IIdxBizJgTechParamsBoilerService iIdxBizJgTechParamsBoilerService;
private final IIdxBizJgTechParamsVesselService iIdxBizJgTechParamsVesselService;
private final IIdxBizJgTechParamsPipelineService iIdxBizJgTechParamsPipelineService;
private final IIdxBizJgTechParamsLiftingService iIdxBizJgTechParamsLiftingService;
private final EquipChangeDataUpdateService equipChangeDataUpdateService;
private final List<String> jsonFields = new ArrayList<>(); private final List<String> jsonFields = new ArrayList<>();
public SingleDataChangeProcessStrategy(IdxBizJgDesignInfoMapper idxBizJgDesignInfoMapper, IdxBizJgFactoryInfoMapper jgFactoryInfoMapper, IdxBizJgRegisterInfoMapper idxBizJgRegisterInfoMapper, JgUseRegistrationServiceImpl useRegistrationService, JgUseRegistrationEqMapper jgRelationEquipMapper, IIdxBizJgTechParamsElevatorService iIdxBizJgTechParamsElevatorService, IIdxBizJgTechParamsVehicleService iIdxBizJgTechParamsVehicleService, IIdxBizJgTechParamsRopewayService iIdxBizJgTechParamsRopewayService, IIdxBizJgTechParamsRidesService iIdxBizJgTechParamsRidesService, IIdxBizJgTechParamsBoilerService iIdxBizJgTechParamsBoilerService, IIdxBizJgTechParamsVesselService iIdxBizJgTechParamsVesselService, IIdxBizJgTechParamsPipelineService iIdxBizJgTechParamsPipelineService, IIdxBizJgTechParamsLiftingService iIdxBizJgTechParamsLiftingService, EquipChangeDataUpdateService equipChangeDataUpdateService) { public SingleDataChangeProcessStrategy(IdxBizJgDesignInfoMapper idxBizJgDesignInfoMapper, IdxBizJgFactoryInfoMapper jgFactoryInfoMapper, IdxBizJgRegisterInfoMapper idxBizJgRegisterInfoMapper, JgUseRegistrationServiceImpl useRegistrationService, JgUseRegistrationEqMapper jgRelationEquipMapper, IIdxBizJgTechParamsElevatorService iIdxBizJgTechParamsElevatorService, IIdxBizJgTechParamsVehicleService iIdxBizJgTechParamsVehicleService, IIdxBizJgTechParamsRopewayService iIdxBizJgTechParamsRopewayService, IIdxBizJgTechParamsRidesService iIdxBizJgTechParamsRidesService, IIdxBizJgTechParamsBoilerService iIdxBizJgTechParamsBoilerService, IIdxBizJgTechParamsVesselService iIdxBizJgTechParamsVesselService, IIdxBizJgTechParamsPipelineService iIdxBizJgTechParamsPipelineService, IIdxBizJgTechParamsLiftingService iIdxBizJgTechParamsLiftingService, EquipChangeDataUpdateService equipChangeDataUpdateService, CommonEquipDataProcessService commonEquipDataProcessService, JgUseRegistrationManageMapper registrationManageMapper, EquipmentCategoryMapper equipmentCategoryMapper) {
this.idxBizJgDesignInfoMapper = idxBizJgDesignInfoMapper; this.idxBizJgDesignInfoMapper = idxBizJgDesignInfoMapper;
this.jgFactoryInfoMapper = jgFactoryInfoMapper; this.jgFactoryInfoMapper = jgFactoryInfoMapper;
this.idxBizJgRegisterInfoMapper = idxBizJgRegisterInfoMapper; this.idxBizJgRegisterInfoMapper = idxBizJgRegisterInfoMapper;
this.useRegistrationService = useRegistrationService; this.useRegistrationService = useRegistrationService;
this.jgRelationEquipMapper = jgRelationEquipMapper; this.jgRelationEquipMapper = jgRelationEquipMapper;
this.iIdxBizJgTechParamsElevatorService = iIdxBizJgTechParamsElevatorService; this.commonEquipDataProcessService = commonEquipDataProcessService;
this.iIdxBizJgTechParamsVehicleService = iIdxBizJgTechParamsVehicleService; this.registrationManageMapper = registrationManageMapper;
this.iIdxBizJgTechParamsRopewayService = iIdxBizJgTechParamsRopewayService; this.equipmentCategoryMapper = equipmentCategoryMapper;
this.iIdxBizJgTechParamsRidesService = iIdxBizJgTechParamsRidesService;
this.iIdxBizJgTechParamsBoilerService = iIdxBizJgTechParamsBoilerService;
this.iIdxBizJgTechParamsVesselService = iIdxBizJgTechParamsVesselService;
this.iIdxBizJgTechParamsPipelineService = iIdxBizJgTechParamsPipelineService;
this.iIdxBizJgTechParamsLiftingService = iIdxBizJgTechParamsLiftingService;
this.equipChangeDataUpdateService = equipChangeDataUpdateService;
}
@Override
public List<ChangeDataDto> handle(Map<String, Object> changeData, String defaultChangeId) {
String record = this.getRecord(defaultChangeId);
return handleOne(changeData, record);
} }
@PostConstruct @PostConstruct
...@@ -130,63 +109,62 @@ public class SingleDataChangeProcessStrategy implements IChangeDataProcessStrate ...@@ -130,63 +109,62 @@ public class SingleDataChangeProcessStrategy implements IChangeDataProcessStrate
} }
} }
public List<ChangeDataDto> handleOne(Map<String, Object> changeData, String record) {
@Override
public List<ChangeDataDto> handle(Map<String, Object> changeData, String defaultChangeId) {
String record = this.getRecord(defaultChangeId);
List<ChangeDataDto> allChangeColumns = new ArrayList<>(); List<ChangeDataDto> allChangeColumns = new ArrayList<>();
// 新数据解析 // 新数据解析
EquipRegisterChangeDataDto registerChangeDataDto = new EquipRegisterChangeDataDto(); EquipRegisterChangeDataDto registerChangeDataDto = commonEquipDataProcessService.castMap2Bean(changeData, EquipRegisterChangeDataDto.class);
EquipDesignChangeDataDto equipDesignChangeDataDto = new EquipDesignChangeDataDto(); EquipFactoryChangeDataDto factoryChangeDataDto = commonEquipDataProcessService.castMap2Bean(changeData, EquipFactoryChangeDataDto.class);
EquipFactoryChangeDataDto equipFactoryChangeDataDto = new EquipFactoryChangeDataDto(); EquipDesignChangeDataDto designChangeDataDto = commonEquipDataProcessService.castMap2Bean(changeData, EquipDesignChangeDataDto.class);
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), registerChangeDataDto, true); commonEquipDataProcessService.buildChangeFields(record, designChangeDataDto, factoryChangeDataDto, registerChangeDataDto, allChangeColumns);
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), equipFactoryChangeDataDto, true); // 前置校验
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), equipDesignChangeDataDto, true); commonEquipDataProcessService.checkValidField(record, registerChangeDataDto, null, null, null);
buildChangeFields(record, equipDesignChangeDataDto, equipFactoryChangeDataDto, registerChangeDataDto, allChangeColumns); commonEquipDataProcessService.checkValidField(record, factoryChangeDataDto, registerChangeDataDto.getEquList(), registerChangeDataDto.getEquCategory(), registerChangeDataDto.getEquDefine());
commonEquipDataProcessService.checkValidField(record, designChangeDataDto, registerChangeDataDto.getEquList(), registerChangeDataDto.getEquCategory(), registerChangeDataDto.getEquDefine());
// 设备制造、设计、注册信息业务处理落库 // 设备制造、设计、注册信息业务处理落库
this.dealBizDataForEquip(record, registerChangeDataDto); commonEquipDataProcessService.dealBizDataForEquip(record, registerChangeDataDto);
this.dealBizDataForEquip(record, equipFactoryChangeDataDto); commonEquipDataProcessService.dealBizDataForEquip(record, factoryChangeDataDto);
this.dealBizDataForEquip(record, equipDesignChangeDataDto); commonEquipDataProcessService.dealBizDataForEquip(record, designChangeDataDto);
// 设备技术参数入库处理 // 设备技术参数入库处理
this.updateTechParamInfo(registerChangeDataDto, record, changeData, allChangeColumns); commonEquipDataProcessService.updateTechParamInfo(registerChangeDataDto, record, changeData, allChangeColumns);
// 更新单据对应的证信息
this.updateManagerCertInfo(defaultChangeId, record, registerChangeDataDto);
return allChangeColumns; return allChangeColumns;
} }
private void buildChangeFields(String record, EquipDesignChangeDataDto equipDesignChangeDataDto, EquipFactoryChangeDataDto equipFactoryChangeDataDto, EquipRegisterChangeDataDto registerChangeDataDto, List<ChangeDataDto> allChangeColumns) { private void updateManagerCertInfo(String applyNo, String record, EquipRegisterChangeDataDto registerChangeDataDto) {
// 构造新对象行转列 JgUseRegistration jgUseRegistration = useRegistrationService.getOne(new LambdaQueryWrapper<JgUseRegistration>()
List<ChangeDataDto> designInfoNew = this.buildDesignInfoNew(equipDesignChangeDataDto, record); .eq(JgUseRegistration::getApplyNo, applyNo).select(BaseEntity::getSequenceNbr, JgUseRegistration::getStatus, JgUseRegistration::getUseRegistrationCode));
List<ChangeDataDto> factoryInfoNew = this.buildFactoryInfoNew(equipFactoryChangeDataDto, record); if (FlowStatusEnum.TO_BE_FINISHED.getName().equals(jgUseRegistration.getStatus())) {
List<ChangeDataDto> registerInfoNew = this.buildRegisterInfoNew(registerChangeDataDto, record); LambdaQueryWrapper<JgUseRegistrationManage> queryWrapper = new LambdaQueryWrapper<JgUseRegistrationManage>()
// 老数据查询行转列 .eq(JgUseRegistrationManage::getUseRegistrationCode, jgUseRegistration.getUseRegistrationCode())
List<ChangeDataDto> designInfoOld = this.buildDesignInfoOld(record); .eq(JgUseRegistrationManage::getIsDelete, 0).select(BaseEntity::getSequenceNbr,JgUseRegistrationManage::getVersion);
List<ChangeDataDto> factoryInfoOld = this.buildFactoryInfoOld(record); JgUseRegistrationManage jgUseRegistrationManage = registrationManageMapper.selectOne(queryWrapper);
List<ChangeDataDto> registerInfoOld = this.buildRegisterInfoOld(record); if (jgUseRegistrationManage != null && !StringUtils.equals(jgUseRegistrationManage.getEquDefineCode(), registerChangeDataDto.getEquDefine())) {
allChangeColumns.addAll(this.mergeChangeFields(designInfoNew, designInfoOld)); LambdaUpdateWrapper<JgUseRegistrationManage> updateWrapper = new LambdaUpdateWrapper<>();
allChangeColumns.addAll(this.mergeChangeFields(factoryInfoNew, factoryInfoOld)); updateWrapper.eq(BaseEntity::getSequenceNbr, jgUseRegistrationManage.getSequenceNbr());
allChangeColumns.addAll(this.mergeChangeFields(registerInfoNew, registerInfoOld)); if (StringUtils.isNotEmpty(registerChangeDataDto.getEquDefine())) {
} EquipmentCategory equipmentCategory = getEquipmentCategory(registerChangeDataDto);
updateWrapper.set(JgUseRegistrationManage::getEquDefineCode, registerChangeDataDto.getEquDefine());
/** updateWrapper.set(JgUseRegistrationManage::getEquDefine, equipmentCategory.getName());
* 业务处理-业务对象 } else {
* updateWrapper.set(JgUseRegistrationManage::getEquDefineCode, null);
* @param record 设备主键 updateWrapper.set(JgUseRegistrationManage::getEquDefine, null);
* @param changeDataDto 变更后数据 }
*/ updateWrapper.set(JgUseRegistrationManage::getVersion, jgUseRegistrationManage.getVersion() + 1);
private void dealBizDataForEquip(String record, BaseChangeDataDto changeDataDto) { updateWrapper.set(JgUseRegistrationManage::getRecDate, new Date());
// 制造信息 updateWrapper.set(JgUseRegistrationManage::getChangeReason, "设备信息变更");
if (changeDataDto instanceof EquipFactoryChangeDataDto) { registrationManageMapper.update(null, updateWrapper);
EquipFactoryChangeDataDto equipFactoryChangeDataDto = (EquipFactoryChangeDataDto) changeDataDto; }
equipChangeDataUpdateService.updateFactoryChangeData(record, equipFactoryChangeDataDto);
}
// 设计信息
if (changeDataDto instanceof EquipDesignChangeDataDto) {
EquipDesignChangeDataDto equipDesignChangeDataDto = (EquipDesignChangeDataDto) changeDataDto;
equipChangeDataUpdateService.updateDesignChangeData(record, equipDesignChangeDataDto);
}
// 注册信息
if (changeDataDto instanceof EquipRegisterChangeDataDto) {
EquipRegisterChangeDataDto registerChangeDataDto = (EquipRegisterChangeDataDto) changeDataDto;
equipChangeDataUpdateService.updateRegisterChangeData(record, registerChangeDataDto);
} }
} }
private EquipmentCategory getEquipmentCategory(EquipRegisterChangeDataDto registerChangeDataDto) {
return equipmentCategoryMapper.selectOne(new LambdaQueryWrapper<EquipmentCategory>().eq(EquipmentCategory::getCode, registerChangeDataDto.getEquDefine()));
}
@Override @Override
public Map<String, Object> getDetail(String applyNo, String bizId) { public Map<String, Object> getDetail(String applyNo, String bizId) {
...@@ -209,7 +187,7 @@ public class SingleDataChangeProcessStrategy implements IChangeDataProcessStrate ...@@ -209,7 +187,7 @@ public class SingleDataChangeProcessStrategy implements IChangeDataProcessStrate
// 设计信息构建 // 设计信息构建
EquipDesignChangeDataDto designChangeDataDto = this.buildDesignInfo(record); EquipDesignChangeDataDto designChangeDataDto = this.buildDesignInfo(record);
// 技术参数构建 // 技术参数构建
BaseTechParamsFieldDto techParamsFieldDto = this.buildTechParamInfo(equipRegisterChangeDataDto, record); BaseTechParamsFieldDto techParamsFieldDto = commonEquipDataProcessService.buildTechParamInfo(equipRegisterChangeDataDto, record);
re.putAll(BeanUtil.beanToMap(equipRegisterChangeDataDto)); re.putAll(BeanUtil.beanToMap(equipRegisterChangeDataDto));
re.putAll(BeanUtil.beanToMap(factoryChangeDataDto)); re.putAll(BeanUtil.beanToMap(factoryChangeDataDto));
re.putAll(BeanUtil.beanToMap(designChangeDataDto)); re.putAll(BeanUtil.beanToMap(designChangeDataDto));
...@@ -236,41 +214,6 @@ public class SingleDataChangeProcessStrategy implements IChangeDataProcessStrate ...@@ -236,41 +214,6 @@ public class SingleDataChangeProcessStrategy implements IChangeDataProcessStrate
} }
private List<ChangeDataDto> buildDesignInfoNew(EquipDesignChangeDataDto changeDataDto, String record) {
return this.convertBeanField2Column2(changeDataDto, record);
}
private List<ChangeDataDto> buildFactoryInfoNew(EquipFactoryChangeDataDto changeDataDto, String record) {
return this.convertBeanField2Column2(changeDataDto, record);
}
private List<ChangeDataDto> buildRegisterInfoNew(EquipRegisterChangeDataDto changeDataDto, String record) {
return this.convertBeanField2Column2(changeDataDto, record);
}
private List<ChangeDataDto> buildDesignInfoOld(String record) {
EquipDesignChangeDataDto changeDataDto = new EquipDesignChangeDataDto();
IdxBizJgDesignInfo designInfo = idxBizJgDesignInfoMapper.selectOne(new LambdaQueryWrapper<IdxBizJgDesignInfo>().eq(IdxBizJgDesignInfo::getRecord, record));
BeanUtil.copyProperties(designInfo, changeDataDto);
changeDataDto.setDesignDate(DateUtil.formatDate(designInfo.getDesignDate()));
return this.convertBeanField2Column2(changeDataDto, record);
}
private List<ChangeDataDto> buildFactoryInfoOld(String record) {
EquipFactoryChangeDataDto changeDataDto = new EquipFactoryChangeDataDto();
IdxBizJgFactoryInfo factoryInfo = jgFactoryInfoMapper.selectOne(new LambdaQueryWrapper<IdxBizJgFactoryInfo>().eq(IdxBizJgFactoryInfo::getRecord, record));
BeanUtil.copyProperties(factoryInfo, changeDataDto);
changeDataDto.setProduceDate(DateUtil.formatDate(factoryInfo.getProduceDate()));
return this.convertBeanField2Column2(changeDataDto, record);
}
private List<ChangeDataDto> buildRegisterInfoOld(String record) {
EquipRegisterChangeDataDto changeDataDto = new EquipRegisterChangeDataDto();
IdxBizJgRegisterInfo registerInfo = idxBizJgRegisterInfoMapper.selectOne(new LambdaQueryWrapper<IdxBizJgRegisterInfo>().eq(IdxBizJgRegisterInfo::getRecord, record));
BeanUtil.copyProperties(registerInfo, changeDataDto);
return this.convertBeanField2Column2(changeDataDto, record);
}
private EquipDesignChangeDataDto buildDesignInfo(String record) { private EquipDesignChangeDataDto buildDesignInfo(String record) {
EquipDesignChangeDataDto changeDataDto = new EquipDesignChangeDataDto(); EquipDesignChangeDataDto changeDataDto = new EquipDesignChangeDataDto();
IdxBizJgDesignInfo designInfo = idxBizJgDesignInfoMapper.selectOne(new LambdaQueryWrapper<IdxBizJgDesignInfo>().eq(IdxBizJgDesignInfo::getRecord, record)); IdxBizJgDesignInfo designInfo = idxBizJgDesignInfoMapper.selectOne(new LambdaQueryWrapper<IdxBizJgDesignInfo>().eq(IdxBizJgDesignInfo::getRecord, record));
...@@ -295,263 +238,6 @@ public class SingleDataChangeProcessStrategy implements IChangeDataProcessStrate ...@@ -295,263 +238,6 @@ public class SingleDataChangeProcessStrategy implements IChangeDataProcessStrate
} }
private List<ChangeDataDto> convertBeanField2Column2(Object beanData, String record) {
List<ChangeDataDto> changeData = new ArrayList<>();
Group group = beanData.getClass().getAnnotation(Group.class);
Field[] fields = beanData.getClass().getDeclaredFields();
for (Field field : fields) {
field.setAccessible(true);
FieldDisplayDefine displayDefine = field.getAnnotation(FieldDisplayDefine.class);
try {
if (displayDefine != null && displayDefine.isExist()) {
String fieldName = displayDefine.value();
ChangeDataDto changeDataDto = new ChangeDataDto();
changeDataDto.setColumnKey(field.getName());
changeDataDto.setColumnFamily(group.value());
changeDataDto.setColumnLabel(fieldName);
changeDataDto.setChangeId(record);
Object oV = field.get(beanData);
if (oV instanceof String) {
String value = (String) field.get(beanData);
changeDataDto.setColumnNewValue(value);
changeDataDto.setColumnOldValue(value);
} else if (oV instanceof Number) {
String value = String.valueOf(field.get(beanData));
changeDataDto.setColumnNewValue(value);
changeDataDto.setColumnOldValue(value);
}
changeData.add(changeDataDto);
}
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
return changeData;
}
private BaseTechParamsFieldDto buildTechParamInfo(EquipRegisterChangeDataDto equipRegisterChangeDataDto, String record) {
EquipmentClassifityEnum equipmentClassifityEnum = EquipmentClassifityEnum.getOne(equipRegisterChangeDataDto.getEquList());
switch (Objects.requireNonNull(equipmentClassifityEnum)) {
case GL:
// 锅炉
IdxBizJgTechParamsBoiler boiler = iIdxBizJgTechParamsBoilerService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(boiler, TechParamsBoilerChangeFieldDto.class);
case YLRQ:
// 压力容器
IdxBizJgTechParamsVessel techParamsVessel = iIdxBizJgTechParamsVesselService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(techParamsVessel, TechParamsVesselChangeFieldDto.class);
case DT:
// 电梯
IdxBizJgTechParamsElevator techParamsElevator = iIdxBizJgTechParamsElevatorService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(techParamsElevator, TechParamsElevatorChangeFieldDto.class);
case QZJX:
// 起重机械
IdxBizJgTechParamsLifting techParamsLifting = iIdxBizJgTechParamsLiftingService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(techParamsLifting, TechParamsLiftingChangeFieldDto.class);
case CC:
// 场(厂)内专用机动车辆
IdxBizJgTechParamsVehicle techParamsVehicle = iIdxBizJgTechParamsVehicleService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(techParamsVehicle, TechParamsVehicleChangeFieldDto.class);
case YLSS:
// 大型游乐设施
IdxBizJgTechParamsRides techParamsRides = iIdxBizJgTechParamsRidesService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(techParamsRides, TechParamsRidesChangeFieldDto.class);
case YLGD:
// 压力管道
IdxBizJgTechParamsPipeline techParamsPipeline = iIdxBizJgTechParamsPipelineService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(techParamsPipeline, TechParamsPipelineChangeFieldDto.class);
case KYSD:
// 客运索道
IdxBizJgTechParamsRopeway techParamsRopeway = iIdxBizJgTechParamsRopewayService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
return BeanUtil.copyProperties(techParamsRopeway, TechParamsRopewayChangeFieldDto.class);
default:
break;
}
return null;
}
private String buildTableName(Class<?> clazz) {
Group group = clazz.getAnnotation(Group.class);
return String.format("\"%s_%s\"", "idx_biz_jg", group.value());
}
private void updateTechParamInfo(EquipRegisterChangeDataDto equipRegisterChangeDataDto, String record, Map<String, Object> changeData, List<ChangeDataDto> allChange) {
EquipmentClassifityEnum equipmentClassifityEnum = EquipmentClassifityEnum.getOne(equipRegisterChangeDataDto.getEquList());
switch (Objects.requireNonNull(equipmentClassifityEnum)) {
case GL:
// 锅炉
TechParamsBoilerChangeFieldDto newBoiler = getTechParamsBoilerChangeField(changeData);
TechParamsBoilerChangeFieldDto oldBoiler = getTechParamsBoilerChangeField(record);
// 字段行转列
List<ChangeDataDto> boilerChangeDataNew = this.convertBeanField2Column2(newBoiler, record);
List<ChangeDataDto> boilerChangeDataOld = this.convertBeanField2Column2(oldBoiler, record);
// 比对
List<ChangeDataDto> boilerChangeFields = this.mergeChangeFields(boilerChangeDataNew, boilerChangeDataOld);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsBoilerChangeFieldDto.class), record, boilerChangeFields);
// 日志数据记录
allChange.addAll(boilerChangeDataNew);
break;
case YLRQ:
// 压力容器
TechParamsVesselChangeFieldDto newVessel = new TechParamsVesselChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newVessel, true);
IdxBizJgTechParamsVessel techParamsVessel = iIdxBizJgTechParamsVesselService.getOneData(record);
TechParamsVesselChangeFieldDto oldVessel = BeanUtil.copyProperties(techParamsVessel, TechParamsVesselChangeFieldDto.class);
// 字段行转列
List<ChangeDataDto> newVesselChangeData = this.convertBeanField2Column2(newVessel, record);
List<ChangeDataDto> oldVesselChangeData = this.convertBeanField2Column2(oldVessel, record);
// 比对
List<ChangeDataDto> vesselChangeFields = this.mergeChangeFields(newVesselChangeData, oldVesselChangeData);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsVesselChangeFieldDto.class), record, vesselChangeFields);
// 日志数据记录
allChange.addAll(vesselChangeFields);
break;
case DT:
// 电梯
TechParamsElevatorChangeFieldDto newElevator = new TechParamsElevatorChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newElevator, true);
IdxBizJgTechParamsElevator techParamsElevator = iIdxBizJgTechParamsElevatorService.getOneData(record);
TechParamsElevatorChangeFieldDto oldElevator = BeanUtil.copyProperties(techParamsElevator, TechParamsElevatorChangeFieldDto.class);
// 字段行转列
List<ChangeDataDto> newElevatorChangeData = this.convertBeanField2Column2(newElevator, record);
List<ChangeDataDto> oldElevatorChangeData = this.convertBeanField2Column2(oldElevator, record);
// 比对
List<ChangeDataDto> elevatorChangeFields = this.mergeChangeFields(newElevatorChangeData, oldElevatorChangeData);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsElevatorChangeFieldDto.class), record, elevatorChangeFields);
// 日志数据记录
allChange.addAll(elevatorChangeFields);
break;
case QZJX:
// 起重机械
TechParamsLiftingChangeFieldDto newLifting = new TechParamsLiftingChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newLifting, true);
IdxBizJgTechParamsLifting techParamsLifting = iIdxBizJgTechParamsLiftingService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
TechParamsLiftingChangeFieldDto oldLifting = BeanUtil.copyProperties(techParamsLifting, TechParamsLiftingChangeFieldDto.class);
// 字段行转列
List<ChangeDataDto> newLiftingChangeData = this.convertBeanField2Column2(newLifting, record);
List<ChangeDataDto> oldLiftingChangeData = this.convertBeanField2Column2(oldLifting, record);
// 比对
List<ChangeDataDto> liftingChangeFields = this.mergeChangeFields(newLiftingChangeData, oldLiftingChangeData);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsLiftingChangeFieldDto.class), record, liftingChangeFields);
// 日志数据记录
allChange.addAll(liftingChangeFields);
break;
case CC:
// 场(厂)内专用机动车辆
TechParamsVehicleChangeFieldDto newVehicle = new TechParamsVehicleChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newVehicle, true);
IdxBizJgTechParamsVehicle techParamsVehicle = iIdxBizJgTechParamsVehicleService.getOneData(record);
TechParamsVehicleChangeFieldDto oldVehicle = BeanUtil.copyProperties(techParamsVehicle, TechParamsVehicleChangeFieldDto.class);
// 字段行转列
List<ChangeDataDto> newVehicleChangeData = this.convertBeanField2Column2(newVehicle, record);
List<ChangeDataDto> oldVehicleChangeData = this.convertBeanField2Column2(oldVehicle, record);
// 比对
List<ChangeDataDto> vehicleChangeFields = this.mergeChangeFields(newVehicleChangeData, oldVehicleChangeData);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsVehicleChangeFieldDto.class), record, vehicleChangeFields);
// 日志数据记录
allChange.addAll(vehicleChangeFields);
break;
case YLSS:
// 大型游乐设施
TechParamsRidesChangeFieldDto newRides = new TechParamsRidesChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newRides, true);
IdxBizJgTechParamsRides techParamsRides = iIdxBizJgTechParamsRidesService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
TechParamsRidesChangeFieldDto oldRides = BeanUtil.copyProperties(techParamsRides, TechParamsRidesChangeFieldDto.class);
// 字段行转列
List<ChangeDataDto> newRidesChangeData = this.convertBeanField2Column2(newRides, record);
List<ChangeDataDto> oldRidesChangeData = this.convertBeanField2Column2(oldRides, record);
// 比对
List<ChangeDataDto> ridesChangeFields = this.mergeChangeFields(newRidesChangeData, oldRidesChangeData);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsRidesChangeFieldDto.class), record, ridesChangeFields);
// 日志数据记录
allChange.addAll(ridesChangeFields);
break;
case YLGD:
// 压力管道
TechParamsPipelineChangeFieldDto newPipeline = new TechParamsPipelineChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newPipeline, true);
IdxBizJgTechParamsPipeline techParamsPipeline = iIdxBizJgTechParamsPipelineService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
TechParamsPipelineChangeFieldDto oldPipeline = BeanUtil.copyProperties(techParamsPipeline, TechParamsPipelineChangeFieldDto.class);
// 字段行转列
List<ChangeDataDto> newPipelineChangeData = this.convertBeanField2Column2(newPipeline, record);
List<ChangeDataDto> oldPipelineChangeData = this.convertBeanField2Column2(oldPipeline, record);
// 比对
List<ChangeDataDto> pipelineChangeFields = this.mergeChangeFields(newPipelineChangeData, oldPipelineChangeData);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsPipelineChangeFieldDto.class), record, pipelineChangeFields);
// 日志数据记录
allChange.addAll(pipelineChangeFields);
break;
case KYSD:
// 客运索道
TechParamsRopewayChangeFieldDto newRopeway = new TechParamsRopewayChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newRopeway, true);
IdxBizJgTechParamsRopeway techParamsRopeway = iIdxBizJgTechParamsRopewayService.getOneData(record);
// 技术参数对象转换为全部技术参数 ,其他无用字段去掉
TechParamsRopewayChangeFieldDto oldRopeway = BeanUtil.copyProperties(techParamsRopeway, TechParamsRopewayChangeFieldDto.class);
// 字段行转列
List<ChangeDataDto> newRopewayChangeData = this.convertBeanField2Column2(newRopeway, record);
List<ChangeDataDto> oldRopewayChangeData = this.convertBeanField2Column2(oldRopeway, record);
// 比对
List<ChangeDataDto> ropewayChangeFields = this.mergeChangeFields(newRopewayChangeData, oldRopewayChangeData);
// 业务处理
equipChangeDataUpdateService.updateTechParamByRecord(this.buildTableName(TechParamsRopewayChangeFieldDto.class), record, ropewayChangeFields);
// 日志数据记录
allChange.addAll(ropewayChangeFields);
break;
default:
break;
}
}
private List<ChangeDataDto> mergeChangeFields(List<ChangeDataDto> changeDataNew, List<ChangeDataDto> changeDataOld) {
Map<String, ChangeDataDto> oldKv = changeDataOld.stream().collect(Collectors.toMap(ChangeDataDto::getColumnKey, Function.identity()));
changeDataNew.forEach(o -> {
// 正常不会出现此情况,old数据 大于等于 new 数据的key
if (oldKv.get(o.getColumnKey()) != null) {
o.setColumnOldValue(oldKv.get(o.getColumnKey()).getColumnOldValue());
}
});
return changeDataNew.stream().filter(n -> !StringUtils.equals(n.getColumnNewValue(), n.getColumnOldValue())).collect(Collectors.toList());
}
private static TechParamsBoilerChangeFieldDto getTechParamsBoilerChangeField(Map<String, Object> changeData) {
TechParamsBoilerChangeFieldDto newBoiler = new TechParamsBoilerChangeFieldDto();
BeanUtil.copyProperties(JSON.parse(JSONObject.toJSONString(changeData)), newBoiler, true);
return newBoiler;
}
private TechParamsBoilerChangeFieldDto getTechParamsBoilerChangeField(String record) {
IdxBizJgTechParamsBoiler boiler = iIdxBizJgTechParamsBoilerService.getOneData(record);
TechParamsBoilerChangeFieldDto oldBoiler = new TechParamsBoilerChangeFieldDto();
BeanUtil.copyProperties(boiler, oldBoiler);
return oldBoiler;
}
public Map<String, Object> getDetailByApplyNo(String bizId) { public Map<String, Object> getDetailByApplyNo(String bizId) {
String record = this.getRecord(bizId); String record = this.getRecord(bizId);
return getDetailByBizId(record); return getDetailByBizId(record);
......
...@@ -68,7 +68,7 @@ public class UseRegisterDataChangeHandleImpl implements IBizDataChangeHandleStra ...@@ -68,7 +68,7 @@ public class UseRegisterDataChangeHandleImpl implements IBizDataChangeHandleStra
@Override @Override
public Map<String, ?> getChangeDetail(String applyNo, ModelType model, String bizId) { public Map<String, ?> getDetail(String applyNo, ModelType model, String bizId) {
IChangeDataProcessStrategy dataProcessor = DataProcessStrategyContext.getStrategy(model); IChangeDataProcessStrategy dataProcessor = DataProcessStrategyContext.getStrategy(model);
// 兼容:台套类打开变更详情(使用applyNo) 和 单位办理批量时选择单个设备打开详情(使用record) // 兼容:台套类打开变更详情(使用applyNo) 和 单位办理批量时选择单个设备打开详情(使用record)
return dataProcessor.getDetail(applyNo, bizId); return dataProcessor.getDetail(applyNo, bizId);
......
...@@ -57,7 +57,7 @@ public interface IdxBizJgRegisterInfoMapper extends BaseMapper<IdxBizJgRegisterI ...@@ -57,7 +57,7 @@ public interface IdxBizJgRegisterInfoMapper extends BaseMapper<IdxBizJgRegisterI
*/ */
Boolean updateCylinderCategoryByEquCodeBatch(@Param("cylinderCategory") String cylinderCategory, @Param("equCodeList") List<String> equCodeList); Boolean updateCylinderCategoryByEquCodeBatch(@Param("cylinderCategory") String cylinderCategory, @Param("equCodeList") List<String> equCodeList);
Integer selectByEquCodeAndClaimStatus(@Param("equCode") String equCode, @Param("sequenceNbr") String sequenceNbr); Integer selectByEquCodeAndClaimStatus(@Param("equCode") String equCode, @Param("sequenceNbr") String sequenceNbr, @Param("record") String record);
Integer selectInstallNoticeEqByEquCode(@Param("equCode") String equCode, @Param("sequenceNbr") String sequenceNbr); Integer selectInstallNoticeEqByEquCode(@Param("equCode") String equCode, @Param("sequenceNbr") String sequenceNbr);
} }
...@@ -26,6 +26,9 @@ ...@@ -26,6 +26,9 @@
<if test="sequenceNbr != null and sequenceNbr != ''"> <if test="sequenceNbr != null and sequenceNbr != ''">
AND jri.sequence_nbr != #{sequenceNbr} AND jri.sequence_nbr != #{sequenceNbr}
</if> </if>
<if test="record != null and record != ''">
AND jri.record != #{record}
</if>
AND joi.claim_status = '已认领' AND joi.claim_status = '已认领'
</select> </select>
......
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