Commit be0df028 authored by suhuiguang's avatar suhuiguang

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

1.改造变更登记作废、使用登记作废调整
parent 61e30180
......@@ -129,20 +129,20 @@ public class EquipBackupHandler {
IdxBizJgSupervisionInfo supervisionInfo = JSONObject.parseObject(eq.getString(BACKUP_JSON_KEY_SUPERVISION_INFO), IdxBizJgSupervisionInfo.class);
IdxBizJgFactoryInfo factoryInfo = JSONObject.parseObject(eq.getString(BACKUP_JSON_KEY_FACTORY_INFO), IdxBizJgFactoryInfo.class);
IdxBizJgUseInfo useInfo = JSONObject.parseObject(eq.getString(BACKUP_JSON_KEY_USE_INFO), IdxBizJgUseInfo.class);
otherInfoService.save(otherInfo);
registerInfoService.save(registerInfo);
supervisionInfoService.save(supervisionInfo);
factoryInfoService.save(factoryInfo);
useInfoService.save(useInfo);
otherInfoService.saveOrUpdate(otherInfo);
registerInfoService.saveOrUpdate(registerInfo);
supervisionInfoService.saveOrUpdate(supervisionInfo);
factoryInfoService.saveOrUpdate(factoryInfo);
useInfoService.saveOrUpdate(useInfo);
// 检验流水
List<IdxBizJgInspectionDetectionInfo> inspectionDetectionInfos = JSONObject.parseArray(eq.getString(BACKUP_JSON_KEY_INSPECTION_DETECTION_INFO), IdxBizJgInspectionDetectionInfo.class);
if (!inspectionDetectionInfos.isEmpty()) {
inspectionDetectionInfoService.saveBatch(inspectionDetectionInfos);
inspectionDetectionInfoService.saveOrUpdateBatch(inspectionDetectionInfos);
}
// 施工流水
List<IdxBizJgConstructionInfo> constructionInfoList = JSONObject.parseArray(eq.getString(BACKUP_JSON_KEY_CONSTRUCTION_INFO), IdxBizJgConstructionInfo.class);
if (!constructionInfoList.isEmpty()) {
constructionInfoService.saveBatch(constructionInfoList);
constructionInfoService.saveOrUpdateBatch(constructionInfoList);
}
// 技术参数
techParamsBackupService.save(registerInfo.getEquList(), eq.getString(BACKUP_JSON_KEY_TECH_PARAM_INFO));
......
......@@ -60,35 +60,35 @@ public class TechParamsBackupService {
case GL:
// 锅炉
IdxBizJgTechParamsBoiler bizJgTechParamsBoiler = JSONObject.parseObject(json, IdxBizJgTechParamsBoiler.class);
iIdxBizJgTechParamsBoilerService.save(bizJgTechParamsBoiler);
iIdxBizJgTechParamsBoilerService.saveOrUpdate(bizJgTechParamsBoiler);
case YLRQ:
// 压力容器
IdxBizJgTechParamsVessel techParamsVessel = JSONObject.parseObject(json, IdxBizJgTechParamsVessel.class);
iIdxBizJgTechParamsVesselService.save(techParamsVessel);
iIdxBizJgTechParamsVesselService.saveOrUpdate(techParamsVessel);
case DT:
// 电梯
IdxBizJgTechParamsElevator techParamsElevator = JSONObject.parseObject(json, IdxBizJgTechParamsElevator.class);
iIdxBizJgTechParamsElevatorService.save(techParamsElevator);
iIdxBizJgTechParamsElevatorService.saveOrUpdate(techParamsElevator);
case QZJX:
// 起重机械
IdxBizJgTechParamsLifting jgTechParamsLifting = JSONObject.parseObject(json, IdxBizJgTechParamsLifting.class);
iIdxBizJgTechParamsLiftingService.save(jgTechParamsLifting);
iIdxBizJgTechParamsLiftingService.saveOrUpdate(jgTechParamsLifting);
case CC:
// 场(厂)内专用机动车辆
IdxBizJgTechParamsVehicle techParamsVehicle = JSONObject.parseObject(json, IdxBizJgTechParamsVehicle.class);
iIdxBizJgTechParamsVehicleService.save(techParamsVehicle);
iIdxBizJgTechParamsVehicleService.saveOrUpdate(techParamsVehicle);
case YLSS:
// 大型游乐设施
IdxBizJgTechParamsRides techParamsRides = JSONObject.parseObject(json, IdxBizJgTechParamsRides.class);
iIdxBizJgTechParamsRidesService.save(techParamsRides);
iIdxBizJgTechParamsRidesService.saveOrUpdate(techParamsRides);
case YLGD:
// 压力管道
IdxBizJgTechParamsPipeline techParamsPipeline = JSONObject.parseObject(json, IdxBizJgTechParamsPipeline.class);
iIdxBizJgTechParamsPipelineService.save(techParamsPipeline);
iIdxBizJgTechParamsPipelineService.saveOrUpdate(techParamsPipeline);
case KYSD:
// 客运索道
IdxBizJgTechParamsRopeway techParamsRopeway = JSONObject.parseObject(json, IdxBizJgTechParamsRopeway.class);
iIdxBizJgTechParamsRopewayService.save(techParamsRopeway);
iIdxBizJgTechParamsRopewayService.saveOrUpdate(techParamsRopeway);
default:
break;
}
......
......@@ -739,6 +739,16 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
// 检验信息更新或者插入及记录原始数据用来作废时恢复数据用
updateOrCreateInspectionDetection(item, jgChangeRegistrationReform);
paramsPipelines.add(pipeline);
// 更新注册信息表的使用登记证
LambdaUpdateWrapper<IdxBizJgRegisterInfo> registerInfoLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
registerInfoLambdaUpdateWrapper.eq(IdxBizJgRegisterInfo::getRecord, item.getString("record"));
registerInfoLambdaUpdateWrapper.set(IdxBizJgRegisterInfo::getUseOrgCode, jgChangeRegistrationReform.getUseRegistrationCode());
idxBizJgRegisterInfoService.update(registerInfoLambdaUpdateWrapper);
// 更新使用信息表的纳管状态
LambdaUpdateWrapper<IdxBizJgUseInfo> useInfoLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
useInfoLambdaUpdateWrapper.eq(IdxBizJgUseInfo::getRecord, item.getString("record"));
useInfoLambdaUpdateWrapper.set(IdxBizJgUseInfo::getIsIntoManagement, true);
idxBizJgUseInfoService.update(useInfoLambdaUpdateWrapper);
}
return paramsPipelines;
}
......@@ -1494,7 +1504,7 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
// 编辑过则按照编辑的数据进行恢复管道信息
Boolean isRollBack = backupManager.restore(jgChangeRegistrationReform.getSequenceNbr() + "");
if(isRollBack){ // 进行过编辑逻辑
// 1.原装置、新装置重新计算管道长度
// 1.装置重新计算管道长度
this.updateTotalPieLineLength(jgChangeRegistrationReform.getProjectContraptionId());
}
}
......
......@@ -3122,7 +3122,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
if ("1".equals(jgUseRegistration.getRegType())){
// 管道增减特殊作废逻辑,管道全量数据为装置下的所有管道(已完成时,编辑装置进行增减不会修改eq表,所以eq表不是全量管道)
if(!ValidationUtil.isEmpty(jgUseRegistration.getProjectContraptionId())){
records = idxBizJgUseInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, jgUseRegistration.getProjectContraptionId())).stream().map(IdxBizJgUseInfo::getRecord).collect(toList());
records = idxBizJgUseInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, jgUseRegistration.getProjectContraptionId()).select(IdxBizJgUseInfo::getRecord)).stream().map(IdxBizJgUseInfo::getRecord).collect(toList());
}
// 构建设备删除的 DTO 列表
List<ESEquipmentCategoryDto> esDtoList = records.stream().map(v -> {
......@@ -3166,14 +3166,82 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
if (!jgUseRegistration.getOriginProjectContraptionIds().contains(jgUseRegistration.getProjectContraptionId())){
Boolean isRollBack = useRegisterBackupManager.restore(jgUseRegistration.getSequenceNbr() + "");
if(isRollBack){ // 进行过编辑逻辑
// 1.根据工程装置ID查询工程装置父级,重置子工程装置父级为空
// 1.还原子工程装置的下的管道信息(装置id)
eqList.stream()
.filter(v -> jgUseRegistration.getOriginProjectContraptionIds().contains(v.getOriginProjectContraptionId()))
.forEach(v -> esEquipmentCategory.findById(v.getEquId()).ifPresent(equInfoEs -> {
equInfoEs.setProjectContraptionId(v.getOriginProjectContraptionId());
esEquipmentCategory.save(equInfoEs);
LambdaQueryWrapper<IdxBizJgUseInfo> lambda = new QueryWrapper<IdxBizJgUseInfo>().lambda();
lambda.eq(IdxBizJgUseInfo::getRecord, String.valueOf(v.getEquId()));
IdxBizJgUseInfo useInfo = useInfoMapper.selectOne(lambda);
useInfo.setProjectContraptionId(v.getOriginProjectContraptionId());
useInfoMapper.updateById(useInfo);
IdxBizJgProjectContraption originProjectContraption = jgProjectContraptionService.getById(v.getOriginProjectContraptionId());
//还原 原工程装置下equCode和监管码
LambdaUpdateWrapper<IdxBizJgRegisterInfo> updateWrapper = new UpdateWrapper<IdxBizJgRegisterInfo>().lambda()
.eq(IdxBizJgRegisterInfo::getRecord, v.getEquId());
updateWrapper.set(IdxBizJgRegisterInfo::getEquCode,originProjectContraption.getEquCode());
updateWrapper.set(IdxBizJgRegisterInfo::getUseOrgCode,null);
idxBizJgRegisterInfoMapper.update(null, updateWrapper);
LambdaUpdateWrapper<IdxBizJgOtherInfo> otherInfoLambdaUpdateWrapper = new UpdateWrapper<IdxBizJgOtherInfo>().lambda()
.eq(IdxBizJgOtherInfo::getRecord, v.getEquId());
IdxBizJgOtherInfo idxBizJgOtherInfo = new IdxBizJgOtherInfo();
idxBizJgOtherInfo.setSupervisoryCode(originProjectContraption.getSupervisoryCode());
otherInfoMapper.update(idxBizJgOtherInfo, otherInfoLambdaUpdateWrapper);
}));
// 2.根据工程装置ID查询工程装置父级,重置子工程装置父级为空
jgProjectContraptionService.update(
new LambdaUpdateWrapper<IdxBizJgProjectContraption>()
.in(BaseEntity::getSequenceNbr, Arrays.asList(jgUseRegistration.getOriginProjectContraptionIds().split(",")))
.set(IdxBizJgProjectContraption::getProjectContraptionParentId, null)
);
// 2.原装置、新装置重新计算管道长度
// 3.原装置、新装置重新计算管道长度
this.updateTotalPieLineLength(jgUseRegistration.getOriginProjectContraptionIds(), jgUseRegistration.getProjectContraptionId());
// 4.父工程装置按照是否为有证装置进行更新
JgRegistrationHistory history = jgRegistrationHistoryService.queryLatestRegistrationHistory(Long.valueOf(jgUseRegistration.getProjectContraptionId()));
if (history != null && history.getChangeData() != null) {
JSONObject hisJson = JSON.parseObject(history.getChangeData());
boolean isFirstMerge = Optional.ofNullable(hisJson.get("isFirstMerge"))
.map(Boolean.class::cast)
.orElse(false);
//合并到无证总工程
IdxBizJgProjectContraption projectContraption = jgProjectContraptionService.getById(jgUseRegistration.getProjectContraptionId());
if (isFirstMerge) {
projectContraption.setIsIntoManagement(false);
projectContraption.setIsFirstMerge(true);
projectContraption.setSupervisoryCode(null);
projectContraption.setEquCode(null);
projectContraption.setUseRegistrationCode(null);
projectContraption.setPipelineLength(0.0);
// 处理非批量导入数据,更新关联业务状态
processElseDataByStatus(oldStatus, jgUseRegistration);
// 统一处理设备的纳管状态【注册事务提交后的操作】
registerAfterCommitTask(records);
}else{
// 查询原工程装置及 useInfo 记录
List<String> originProjectContraptionIds = Arrays.asList(jgUseRegistration.getOriginProjectContraptionIds().split(","));
List<IdxBizJgProjectContraption> originProjectContraptionList = jgProjectContraptionService.lambdaQuery()
.in(BaseEntity::getSequenceNbr, originProjectContraptionIds)
.list();
records = idxBizJgUseInfoService.lambdaQuery()
.select(IdxBizJgUseInfo::getRecord)
.in(IdxBizJgUseInfo::getProjectContraptionId, originProjectContraptionIds)
.list()
.stream()
.map(IdxBizJgUseInfo::getRecord)
.collect(Collectors.toList());
// 统一处理设备的纳管状态
registerAfterCommitTask(records);
processElseDataByStatus(oldStatus, jgUseRegistration);
}
jgProjectContraptionService.updateById(projectContraption);
}
} else { // 未进行过编辑逻辑,走原来逻辑
eqList.stream()
.filter(v -> jgUseRegistration.getOriginProjectContraptionIds().contains(v.getOriginProjectContraptionId()))
......@@ -3294,9 +3362,9 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
private void updateTotalPieLineLength(String originProjectContraptionIds, String projectContraptionId) {
String[] oPids = originProjectContraptionIds != null ? originProjectContraptionIds.split(",") : null;
Set<String> pIds = null;
Set<String> pIds = new HashSet<>();
if (oPids != null) {
pIds = new HashSet<>(Arrays.asList(oPids));
pIds.addAll(Arrays.asList(oPids));
}
pIds.add(projectContraptionId);
pIds.parallelStream().forEach(pid->{
......
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