Commit 6994eaad authored by tianbo's avatar tianbo

Merge remote-tracking branch 'origin/develop_tzs_register' into develop_tzs_register

parents 094f690f 61e30180
......@@ -65,7 +65,7 @@ public class ChangeRegistrationReformDataChangeHandler extends DefaultBizDataCha
public List<FieldChangeMeta> postSave(String bizId, String applyNo, ModelType model, Map<String, Object> changeData, List<FieldChangeMeta> allChangeColumns, Map<String, List<PipelineChangeItemDto>> pipelineChangeItemMap) {
List<FieldChangeMeta> bizEditColumns = new ArrayList<>();
// 更新eq表、管道纳管状态、使用登记证;改更新本次新增、编辑的管道record集合到流水表
changeRegistrationReformEditUpdateService.updateBizInfo(allChangeColumns, applyNo, model);
changeRegistrationReformEditUpdateService.updateBizInfo(bizId, allChangeColumns, applyNo, model, pipelineChangeItemMap);
return bizEditColumns;
}
......@@ -87,4 +87,28 @@ public class ChangeRegistrationReformDataChangeHandler extends DefaultBizDataCha
return projectContraptionIds;
}
/**
* 管道专用-判断数据是实时落库,还是先存到json
*
* @param applyNo 单据号
* @return 是否需要临时存储
*/
@Override
public Boolean requiresTemporarySave(String applyNo) {
return !bizIsFinished(applyNo);
}
/**
* 管道专用
* 临时存储的json 管道
*
* @param applyNo 申请单号
* @return 暂存的管道列表
*/
@Override
public List<PipelineChangeItemDto> getsTemporaryData(String applyNo) {
return changeRegistrationReformEditUpdateService.getsTemporaryData(applyNo);
}
}
package com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.changeRegistrationReform;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.entity.TzsBaseEntity;
import com.yeejoin.amos.boot.module.jg.api.dto.FieldChangeMeta;
import com.yeejoin.amos.boot.module.jg.api.dto.PipelineChangeItemDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgChangeRegistrationReform;
import com.yeejoin.amos.boot.module.jg.api.entity.JgChangeRegistrationReformEq;
import com.yeejoin.amos.boot.module.jg.biz.edit.constant.EditConstant;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.CommonEquipDataProcessService;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.PieLineDataChangeServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.ICommonService;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgChangeRegistrationReformEqServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgChangeRegistrationReformServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import java.util.Date;
import java.util.List;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service
@RequiredArgsConstructor
......@@ -35,6 +41,10 @@ public class ChangeRegistrationReformEditUpdateService {
private final CommonEquipDataProcessService commonEquipDataProcessService;
private final ICommonService commonServiceBiz;
private final PieLineDataChangeServiceImpl pieLineDataChangeService;
public Set<String> getEqsByApplyNo(String applyNo) {
JgChangeRegistrationReform jgChangeRegistrationReform = mainService.getOne(new LambdaQueryWrapper<JgChangeRegistrationReform>().eq(JgChangeRegistrationReform::getApplyNo, applyNo).select(BaseEntity::getSequenceNbr));
List<JgChangeRegistrationReformEq> eqs = eqService.list(new LambdaQueryWrapper<JgChangeRegistrationReformEq>().eq(JgChangeRegistrationReformEq::getEquipTransferId, jgChangeRegistrationReform.getSequenceNbr()).select(JgChangeRegistrationReformEq::getEquId, BaseEntity::getSequenceNbr));
......@@ -60,17 +70,22 @@ public class ChangeRegistrationReformEditUpdateService {
}
}
public void updateBizInfo(List<FieldChangeMeta> allChangeColumns, String applyNo, IBizDataChangeHandleStrategy.ModelType model) {
public void updateBizInfo(String bizId, List<FieldChangeMeta> allChangeColumns, String applyNo, IBizDataChangeHandleStrategy.ModelType model, Map<String, List<PipelineChangeItemDto>> pipelineChangeItemMap) {
// 压力管道在使用登记页面进行管道增减后,更新eq表、修改管道的状态
if (model.equals(IBizDataChangeHandleStrategy.ModelType.singleProject)) {
JgChangeRegistrationReform jgChangeRegistrationReform = mainService.getOne(new LambdaQueryWrapper<JgChangeRegistrationReform>().select(BaseEntity::getSequenceNbr, JgChangeRegistrationReform::getAuditStatus, JgChangeRegistrationReform::getProjectContraptionId, JgChangeRegistrationReform::getUseRegistrationCode).eq(JgChangeRegistrationReform::getApplyNo, applyNo));
if (!jgChangeRegistrationReform.getStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName())) { // 非完成状态更新eq表
// 1.按照装置id查询管道
List<JgChangeRegistrationReformEq> eqOfOnePid = this.getPieLines(jgChangeRegistrationReform);
// 2.eq表删除
if (!jgChangeRegistrationReform.getAuditStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName())) { // 非完成状态更新eq表
// 1.eq表删除
this.deleteRelationEq(jgChangeRegistrationReform.getSequenceNbr());
// 3.插入eq表
this.insertRelationEq(jgChangeRegistrationReform.getSequenceNbr(), eqOfOnePid);
// 2.插入eq表
List<JgChangeRegistrationReformEq> registrationEqs = this.buildPipelineEqs(pipelineChangeItemMap);
this.insertRelationEq(jgChangeRegistrationReform.getSequenceNbr(), registrationEqs);
// 3.json history插入
JSONObject jsonObject = mainService.getHisData(applyNo);
jsonObject.remove("equipmentLists");
jsonObject.put("equipmentLists", pieLineDataChangeService.buildEquipmentLists(pipelineChangeItemMap));
commonServiceBiz.saveOrUpdateHistory("", jsonObject, bizId, applyNo);
} else { // 完成时,把管道更新为已纳管状态
// 按照装置id查询装置下管道,更新为已纳管状态
List<IdxBizJgUseInfo> useInfos = commonEquipDataProcessService.getIdxBizJgUseInfoService().list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, jgChangeRegistrationReform.getProjectContraptionId()).eq(IdxBizJgUseInfo::getIsIntoManagement, false).select(TzsBaseEntity::getSequenceNbr, IdxBizJgUseInfo::getRecord));
......@@ -85,6 +100,17 @@ public class ChangeRegistrationReformEditUpdateService {
}
private List<JgChangeRegistrationReformEq> buildPipelineEqs(Map<String, List<PipelineChangeItemDto>> pipelineChangeItemMap) {
List<PipelineChangeItemDto> newPipelines = pipelineChangeItemMap.get(EditConstant.NEW_PIPELINES);
List<PipelineChangeItemDto> updPipelines = pipelineChangeItemMap.get(EditConstant.UPDATE_PIPELINES);
return Stream.concat(newPipelines.stream(), updPipelines.stream()).map(item -> {
JgChangeRegistrationReformEq useRegistrationEq = new JgChangeRegistrationReformEq();
useRegistrationEq.setEquId(item.getRecord());
return useRegistrationEq;
}).collect(Collectors.toList());
}
/**
* 更新删除、新增的管道
*
......@@ -114,17 +140,15 @@ public class ChangeRegistrationReformEditUpdateService {
eqService.remove(new LambdaQueryWrapper<JgChangeRegistrationReformEq>().eq(JgChangeRegistrationReformEq::getEquipTransferId, sequenceNbr));
}
private List<JgChangeRegistrationReformEq> getPieLines(JgChangeRegistrationReform jgChangeRegistrationReform) {
List<IdxBizJgUseInfo> useInfos = commonEquipDataProcessService.getIdxBizJgUseInfoService().list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, jgChangeRegistrationReform.getProjectContraptionId()).select(IdxBizJgUseInfo::getRecord, TzsBaseEntity::getSequenceNbr));
return buildEqs(jgChangeRegistrationReform, useInfos);
}
private List<JgChangeRegistrationReformEq> buildEqs(JgChangeRegistrationReform jgChangeRegistrationReform, List<IdxBizJgUseInfo> useInfos) {
return useInfos.stream().map(u -> {
JgChangeRegistrationReformEq useEq = new JgChangeRegistrationReformEq();
useEq.setEquId(u.getRecord());
useEq.setEquipTransferId(jgChangeRegistrationReform.getSequenceNbr() + "");
return useEq;
}).collect(Collectors.toList());
public List<PipelineChangeItemDto> getsTemporaryData(String applyNo) {
JgChangeRegistrationReform jgChangeRegistrationReform = mainService.getOne(new LambdaQueryWrapper<JgChangeRegistrationReform>().select(BaseEntity::getSequenceNbr, JgChangeRegistrationReform::getProjectContraptionId).eq(JgChangeRegistrationReform::getApplyNo, applyNo));
JSONObject jsonObject = mainService.getHisData(applyNo);
if (StringUtils.isNotEmpty(jgChangeRegistrationReform.getProjectContraptionId())) {
List<Map<String, Object>> equipmentLists = (List<Map<String, Object>>) jsonObject.get("equipmentLists");
return BeanUtil.copyToList(equipmentLists, PipelineChangeItemDto.class);
} else {
return Collections.emptyList();
}
}
}
\ No newline at end of file
......@@ -51,6 +51,17 @@ public class ChangeRegistrationTransferDataChangeHandler extends DefaultBizDataC
return changeRegistrationTransferEditUpdateService.getEqsByApplyNo(applyNo);
}
/**
* 管道专用
* @param applyNo 单据号
* 判断数据是实时落库,还是先存到json
* @return 是否需要临时存储
*/
@Override
public Boolean requiresTemporarySave(String applyNo) {
return false;
}
@Override
public Boolean bizIsFinished(String applyNo) {
......
......@@ -41,6 +41,17 @@ public class ChangeRegistrationUnitDataChangeHandler extends DefaultBizDataChang
return Collections.emptyList();
}
/**
* 管道专用
* @param applyNo 单据号
* 判断数据是实时落库,还是先存到json
* @return 是否需要临时存储
*/
@Override
public Boolean requiresTemporarySave(String applyNo) {
return false;
}
@Override
public Boolean beforeCheck(String bizId, String applyNo, ModelType model, Map<String, Object> changeData) {
return Boolean.TRUE;
......
......@@ -51,6 +51,17 @@ public class ChangeVehicleRegistrationUnitDataChangeHandler extends DefaultBizDa
return changeVehicleRegistrationUnitEditUpdateService.getEqsByApplyNo(applyNo);
}
/**
* 管道专用
* @param applyNo 单据号
* 判断数据是实时落库,还是先存到json
* @return 是否需要临时存储
*/
@Override
public Boolean requiresTemporarySave(String applyNo) {
return false;
}
@Override
public Boolean bizIsFinished(String applyNo) {
......
......@@ -51,6 +51,16 @@ public class EnableDisableDataChangeHandler extends DefaultBizDataChangeHandler<
return enableDisableEditUpdateService.getEqsByApplyNo(applyNo);
}
/**
* 管道专用
* @param applyNo 单据号
* 判断数据是实时落库,还是先存到json
* @return 是否需要临时存储
*/
@Override
public Boolean requiresTemporarySave(String applyNo) {
return false;
}
@Override
public Boolean bizIsFinished(String applyNo) {
......
......@@ -46,6 +46,17 @@ public class EquipTransferDataChangeHandler extends DefaultBizDataChangeHandler<
return Boolean.TRUE;
}
/**
* 管道专用
* @param applyNo 单据号
* 判断数据是实时落库,还是先存到json
* @return 是否需要临时存储
*/
@Override
public Boolean requiresTemporarySave(String applyNo) {
return false;
}
@Override
public Set<String> getEqs(String applyNo) {
return equipTransferEditUpdateService.getEqsByApplyNo(applyNo);
......
......@@ -43,6 +43,17 @@ public class InstallNoticeDataChangeHandler extends DefaultBizDataChangeHandler<
return true;
}
/**
* 管道专用
* @param applyNo 单据号
* 判断数据是实时落库,还是先存到json
* @return 是否需要临时存储
*/
@Override
public Boolean requiresTemporarySave(String applyNo) {
return false;
}
@Override
public Set<String> getEqs(String applyNo) {
return installNoticeEditUpdateService.getEqsByApplyNo(applyNo);
......
......@@ -46,6 +46,17 @@ public class MaintainNoticeDataChangeHandler extends DefaultBizDataChangeHandler
return Boolean.TRUE;
}
/**
* 管道专用
* @param applyNo 单据号
* 判断数据是实时落库,还是先存到json
* @return 是否需要临时存储
*/
@Override
public Boolean requiresTemporarySave(String applyNo) {
return false;
}
@Override
public Set<String> getEqs(String applyNo) {
return maintainNoticeEditUpdateService.getEqsByApplyNo(applyNo);
......
......@@ -41,6 +41,17 @@ public class MaintenanceContractDataChangeHandler extends DefaultBizDataChangeHa
return Collections.emptyList();
}
/**
* 管道专用
* @param applyNo 单据号
* 判断数据是实时落库,还是先存到json
* @return 是否需要临时存储
*/
@Override
public Boolean requiresTemporarySave(String applyNo) {
return false;
}
@Override
public Boolean beforeCheck(String bizId, String applyNo, ModelType model, Map<String, Object> changeData) {
return Boolean.TRUE;
......
......@@ -42,6 +42,17 @@ public class NewProjectDataChangeHandler extends DefaultBizDataChangeHandler<Bas
return true;
}
/**
* 管道专用
* @param applyNo 单据号
* 判断数据是实时落库,还是先存到json
* @return 是否需要临时存储
*/
@Override
public Boolean requiresTemporarySave(String applyNo) {
return false;
}
@Override
public Set<String> getEqs(String projectContraptionId) {
return newProjectEditUpdateService.getEqsByProjectContraptionId(projectContraptionId);
......
......@@ -55,6 +55,17 @@ public class ReformNoticeDataChangeHandler extends DefaultBizDataChangeHandler<B
return jgReformNotice.getNoticeStatus().equals(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
}
/**
* 管道专用
* @param applyNo 单据号
* 判断数据是实时落库,还是先存到json
* @return 是否需要临时存储
*/
@Override
public Boolean requiresTemporarySave(String applyNo) {
return false;
}
@Override
public Set<String> getProjectContraptionIds(String applyNo) {
JgReformNotice jgReformNotice = reformNoticeEditUpdateService.getJgReformNoticeService().getOne(new LambdaQueryWrapper<JgReformNotice>().eq(JgReformNotice::getApplyNo, applyNo).select(BaseEntity::getSequenceNbr, JgReformNotice::getProjectContraptionId));
......
......@@ -46,6 +46,17 @@ public class ScrapCancelDataChangeHandler extends DefaultBizDataChangeHandler<Ba
return Boolean.TRUE;
}
/**
* 管道专用
* @param applyNo 单据号
* 判断数据是实时落库,还是先存到json
* @return 是否需要临时存储
*/
@Override
public Boolean requiresTemporarySave(String applyNo) {
return false;
}
@Override
public Set<String> getEqs(String applyNo) {
return scrapCancelEditUpdateService.getEqsByApplyNo(applyNo);
......
......@@ -51,6 +51,16 @@ public class TransferNoticeDataChangeHandler extends DefaultBizDataChangeHandler
return transferNoticeEditUpdateService.getEqsByApplyNo(applyNo);
}
/**
* 管道专用
* @param applyNo 单据号
* 判断数据是实时落库,还是先存到json
* @return 是否需要临时存储
*/
@Override
public Boolean requiresTemporarySave(String applyNo) {
return false;
}
@Override
public Boolean bizIsFinished(String applyNo) {
......
......@@ -14,6 +14,8 @@ import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistrationEq;
import com.yeejoin.amos.boot.module.jg.biz.edit.constant.EditConstant;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.strategy.IBizDataChangeHandleStrategy;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.CommonEquipDataProcessService;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.PieLineDataChangeServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler.CbDataDictTypeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler.PieLineLevelTypeHandler;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationEqServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl;
......@@ -47,7 +49,7 @@ public class UseRegisterUpdateService {
private final UseRegisterBackupManager useRegisterBackupManager;
private final PieLineLevelTypeHandler pieLineLevelTypeHandler;
private final PieLineDataChangeServiceImpl pieLineDataChangeService;
public void updateBizInfo(List<FieldChangeMeta> allChangeColumns, String bizId, String applyNo, IBizDataChangeHandleStrategy.ModelType model, Map<String, List<PipelineChangeItemDto>> pipelineChangeItemMap) {
if (model.equals(IBizDataChangeHandleStrategy.ModelType.singleEquip)) {
......@@ -73,7 +75,7 @@ public class UseRegisterUpdateService {
// 3.json history插入
JSONObject jsonObject = jgUseRegistrationService.getHisData(useRegistration);
jsonObject.remove("equipmentLists");
jsonObject.put("equipmentLists", this.buildEquipmentLists(pipelineChangeItemMap));
jsonObject.put("equipmentLists", pieLineDataChangeService.buildEquipmentLists(pipelineChangeItemMap));
jgUseRegistrationService.updateHistory(jsonObject, bizId, useRegistration.getSequenceNbr() + "", null);
} else { // 完成时,把管道更新为已纳管状态
// 按照装置id查询装置下管道,更新为已纳管状态
......@@ -88,26 +90,6 @@ public class UseRegisterUpdateService {
}
}
private List<Map<String, Object>> buildEquipmentLists(Map<String, List<PipelineChangeItemDto>> pipelineChangeItemMap) {
List<PipelineChangeItemDto> newPipelines = pipelineChangeItemMap.get(EditConstant.NEW_PIPELINES);
List<PipelineChangeItemDto> updPipelines = pipelineChangeItemMap.get(EditConstant.UPDATE_PIPELINES);
// 兼容处理使用登记,管道级别存的为name,标准编辑为code,管道名称(登记单元)key为productName,而非为标准的pipeName
return Stream.concat(newPipelines.stream(), updPipelines.stream()).map(item -> {
Map<String, Object> one = BeanUtil.beanToMap(item);
// 管道级别存的为name,标准编辑为code,进行转换,code时返回name, name时返回还是name
one.put("deviceLevel", pieLineLevelTypeHandler.handle(item.getDeviceLevel()));
one.put("productName", item.getPipeName());
// 日期字段处理
one.put("inspectDate", DateUtil.formatDate(item.getInspectDate()));
one.put("nextInspectDate", DateUtil.formatDate(item.getNextInspectDate()));
// 检验结论
one.put("inspectC", DateUtil.formatDate(item.getNextInspectDate()));
// json需要处理 否则JSON.toJSONString 回转义
one.put("inspectReport", JSON.parse(item.getInspectReport()));
return one;
}).collect(Collectors.toList());
}
private List<JgUseRegistrationEq> buildPipelineEqs(Map<String, List<PipelineChangeItemDto>> pipelineChangeItemMap) {
List<PipelineChangeItemDto> newPipelines = pipelineChangeItemMap.get(EditConstant.NEW_PIPELINES);
List<PipelineChangeItemDto> updPipelines = pipelineChangeItemMap.get(EditConstant.UPDATE_PIPELINES);
......@@ -164,17 +146,6 @@ public class UseRegisterUpdateService {
}
private List<JgUseRegistrationEq> buildEqs(JgUseRegistration useRegistration, List<IdxBizJgUseInfo> useInfos) {
return useInfos.stream().map(u -> {
JgUseRegistrationEq useEq = new JgUseRegistrationEq();
useEq.setEquId(u.getRecord());
useEq.setEquipTransferId(useRegistration.getSequenceNbr() + "");
useEq.setOriginProjectContraptionId(useRegistration.getProjectContraptionId());
return useEq;
}).collect(Collectors.toList());
}
public List<PipelineChangeItemDto> getsTemporaryData(String applyNo) {
JgUseRegistration useRegistration = jgUseRegistrationService.getOne(new LambdaQueryWrapper<JgUseRegistration>().select(BaseEntity::getSequenceNbr, JgUseRegistration::getStatus, JgUseRegistration::getProjectContraptionId, JgUseRegistration::getOriginProjectContraptionIds).eq(JgUseRegistration::getApplyNo, applyNo));
JSONObject jsonObject = jgUseRegistrationService.getHisData(useRegistration);
......
......@@ -51,6 +51,16 @@ public class VehicleInformationDataChangeHandler extends DefaultBizDataChangeHan
return vehicleInformationEditUpdateService.getEqsByApplyNo(applyNo);
}
/**
* 管道专用
* @param applyNo 单据号
* 判断数据是实时落库,还是先存到json
* @return 是否需要临时存储
*/
@Override
public Boolean requiresTemporarySave(String applyNo) {
return false;
}
@Override
public Boolean bizIsFinished(String applyNo) {
......
......@@ -1040,8 +1040,7 @@ public class CommonEquipDataProcessService {
Map<String, Object> item = BeanUtil.beanToMap(r);
// 检验报告数据格式化 转json
item.put("inspectReport", JSON.parse(r.getInspectReport()));
// 兼容存量数据
// 1.管道级别 原业务存的name,编辑存的code,进行转换
// 兼容逻辑,管道级别 原业务存的name,编辑存的code,进行转换name/code->code
item.put("deviceLevel", pieLineLevelTypeHandler.getCodeByName(r.getDeviceLevel()));
item.put("isEdit", true);
return item;
......
......@@ -3,12 +3,16 @@ package com.yeejoin.amos.boot.module.jg.biz.edit.process.equip;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
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.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.biz.edit.constant.EditConstant;
import com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler.CbDataDictTypeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler.PieLineLevelTypeHandler;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgProjectContraptionServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgSupervisionInfoServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgTechParamsPipelineServiceImpl;
......@@ -21,6 +25,7 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Component
@RequiredArgsConstructor
......@@ -48,6 +53,10 @@ public class PieLineDataChangeServiceImpl {
private final SnowflakeIdUtil idUtil;
private final PieLineLevelTypeHandler pieLineLevelTypeHandler;
private final CbDataDictTypeHandler cbDataDictTypeHandler;
public void update(ProjectContraptionChangeDataDto projectContraptionChangeDataDtoNew, List<FieldChangeMeta> allChangeColumns) {
// 原有对象行转列
......@@ -279,4 +288,24 @@ public class PieLineDataChangeServiceImpl {
return commonEquipDataProcessService.getJgRegisterInfoService().getRegCode();
}
public List<Map<String, Object>> buildEquipmentLists(Map<String, List<PipelineChangeItemDto>> pipelineChangeItemMap) {
List<PipelineChangeItemDto> newPipelines = pipelineChangeItemMap.get(EditConstant.NEW_PIPELINES);
List<PipelineChangeItemDto> updPipelines = pipelineChangeItemMap.get(EditConstant.UPDATE_PIPELINES);
// 兼容处理使用登记,管道级别存的为name,标准编辑为code,管道名称(登记单元)key为productName,而非为标准的pipeName
return Stream.concat(newPipelines.stream(), updPipelines.stream()).map(item -> {
Map<String, Object> one = BeanUtil.beanToMap(item);
// 管道级别存的为name,标准编辑为code,进行转换,code时返回name, name时返回还是name
one.put("deviceLevel", pieLineLevelTypeHandler.handle(item.getDeviceLevel()));
one.put("productName", item.getPipeName());
// 日期字段处理
one.put("inspectDate", DateUtil.formatDate(item.getInspectDate()));
one.put("nextInspectDate", DateUtil.formatDate(item.getNextInspectDate()));
// 检验结论名称
one.put("inspectConclusion", cbDataDictTypeHandler.handle("JYJL", item.getInspectConclusionCode()));
// json需要处理 否则JSON.toJSONString 回转义
one.put("inspectReport", JSON.parse(item.getInspectReport()));
return one;
}).collect(Collectors.toList());
}
}
......@@ -706,6 +706,10 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
jgCertificateChangeRecordEqService.saveBatch(changeRecordEqs);
}
public JSONObject getHisData(String applyNo){
return commonServiceImpl.queryHistoryData(applyNo);
}
/**
* 管道的技术参数及检验信息更新
* @param jgChangeRegistrationReform 改造变更登记单据
......@@ -1602,52 +1606,59 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
// 压力管道
case YLGD:
JSONObject jsonObject = JSONObject.parseObject(oldTechInfo);
JSONArray piePines = jsonObject.getJSONArray("equipmentLists");
// 装置和设备es中的安改维单位信息恢复
String uscUnitCreditCode = jsonObject.getString(USC_UNIT_CREDIT_CODE);
String uscUnitName = jsonObject.getString(USC_UNIT_NAME);
jgProjectContraptionService.lambdaUpdate()
.eq(IdxBizJgProjectContraption::getSequenceNbr, jgChangeRegistrationReform.getProjectContraptionId())
.set(IdxBizJgProjectContraption::getUscUnitCreditCode, uscUnitCreditCode)
.set(IdxBizJgProjectContraption::getUscUnitName, uscUnitName)
.update();
for(int i = 0; i < piePines.size(); i++){
JSONObject item = piePines.getJSONObject(i);
String rcd = item.getString("record");
// 删除
iIdxBizJgTechParamsPipelineService.remove(new LambdaQueryWrapper<IdxBizJgTechParamsPipeline>().eq(IdxBizJgTechParamsPipeline::getRecord, rcd));
// 插入
IdxBizJgTechParamsPipeline pipeline = BeanUtil.copyProperties(item, IdxBizJgTechParamsPipeline.class);
pipeline.setSequenceNbr(sequence.nextId() + "");
iIdxBizJgTechParamsPipelineService.save(pipeline);
// es
Map<String, Map<String, Object>> resultMap = MapBuilder.<String, Map<String, Object>>create()
.put(rcd, MapBuilder.<String, Object>create()
.put(USC_UNIT_NAME, uscUnitName)
.put(USC_UNIT_CREDIT_CODE, uscUnitCreditCode)
.build())
.build();
tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap);
}
// 检验信息恢复
JSONObject inspectData = jsonObject.getJSONObject("inspectData");
if(inspectData != null){
// 被更新前的检验信息
JSONArray oData = Optional.ofNullable(inspectData.getJSONArray("oData")).orElse(new JSONArray());
// 改造登记本次插入的检验信息主键sequenceNbr数组
JSONArray insertIds = Optional.ofNullable(inspectData.getJSONArray("insertIds")).orElse(new JSONArray());
// 更新的检验信息换成原来的
for(int i = 0; i < oData.size(); i++){
JSONObject item = oData.getJSONObject(i);
InspectionDetectionInfo inspectionDetectionInfo = BeanUtil.copyProperties(item, InspectionDetectionInfo.class);
inspectionDetectionInfoMapper.deleteById(inspectionDetectionInfo.getSequenceNbr());
inspectionDetectionInfoMapper.insert(inspectionDetectionInfo);
// 编辑过则按照编辑的数据进行恢复管道信息
Boolean isRollBack = backupManager.restore(jgChangeRegistrationReform.getSequenceNbr() + "");
if(isRollBack){ // 进行过编辑逻辑
// 1.原装置、新装置重新计算管道长度
this.updateTotalPieLineLength(jgChangeRegistrationReform.getProjectContraptionId());
} else { //未编辑过,走原有逻辑
JSONObject jsonObject = JSONObject.parseObject(oldTechInfo);
JSONArray piePines = jsonObject.getJSONArray("equipmentLists");
// 装置和设备es中的安改维单位信息恢复
String uscUnitCreditCode = jsonObject.getString(USC_UNIT_CREDIT_CODE);
String uscUnitName = jsonObject.getString(USC_UNIT_NAME);
jgProjectContraptionService.lambdaUpdate()
.eq(IdxBizJgProjectContraption::getSequenceNbr, jgChangeRegistrationReform.getProjectContraptionId())
.set(IdxBizJgProjectContraption::getUscUnitCreditCode, uscUnitCreditCode)
.set(IdxBizJgProjectContraption::getUscUnitName, uscUnitName)
.update();
for(int i = 0; i < piePines.size(); i++){
JSONObject item = piePines.getJSONObject(i);
String rcd = item.getString("record");
// 删除
iIdxBizJgTechParamsPipelineService.remove(new LambdaQueryWrapper<IdxBizJgTechParamsPipeline>().eq(IdxBizJgTechParamsPipeline::getRecord, rcd));
// 插入
IdxBizJgTechParamsPipeline pipeline = BeanUtil.copyProperties(item, IdxBizJgTechParamsPipeline.class);
pipeline.setSequenceNbr(sequence.nextId() + "");
iIdxBizJgTechParamsPipelineService.save(pipeline);
// es
Map<String, Map<String, Object>> resultMap = MapBuilder.<String, Map<String, Object>>create()
.put(rcd, MapBuilder.<String, Object>create()
.put(USC_UNIT_NAME, uscUnitName)
.put(USC_UNIT_CREDIT_CODE, uscUnitCreditCode)
.build())
.build();
tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap);
}
// 新插入的删除
if(!insertIds.isEmpty()){
List<String> ids = insertIds.toJavaList(String.class);
inspectionDetectionInfoMapper.deleteBatchIds(ids);
// 检验信息恢复
JSONObject inspectData = jsonObject.getJSONObject("inspectData");
if(inspectData != null){
// 被更新前的检验信息
JSONArray oData = Optional.ofNullable(inspectData.getJSONArray("oData")).orElse(new JSONArray());
// 改造登记本次插入的检验信息主键sequenceNbr数组
JSONArray insertIds = Optional.ofNullable(inspectData.getJSONArray("insertIds")).orElse(new JSONArray());
// 更新的检验信息换成原来的
for(int i = 0; i < oData.size(); i++){
JSONObject item = oData.getJSONObject(i);
InspectionDetectionInfo inspectionDetectionInfo = BeanUtil.copyProperties(item, InspectionDetectionInfo.class);
inspectionDetectionInfoMapper.deleteById(inspectionDetectionInfo.getSequenceNbr());
inspectionDetectionInfoMapper.insert(inspectionDetectionInfo);
}
// 新插入的删除
if(!insertIds.isEmpty()){
List<String> ids = insertIds.toJavaList(String.class);
inspectionDetectionInfoMapper.deleteBatchIds(ids);
}
}
}
break;
......
......@@ -1146,6 +1146,8 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
factoryInfoList.add(factoryInfo);
// 施工信息
String uscDate = pipData.getString("uscDate");
pipData.put("uscDate", uscDate != null ? DateUtil.parse(uscDate, DatePattern.NORM_MONTH_FORMAT) : null);
IdxBizJgConstructionInfo constructionInfo = JSON.parseObject(toJSONString(pipData), IdxBizJgConstructionInfo.class);
constructionInfo.setRecord(record);
constructionInfo.setRecDate(date);
......
......@@ -3180,7 +3180,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
);
// 2.原装置、新装置重新计算管道长度
this.updateTotalPieLineLength(jgUseRegistration.getOriginProjectContraptionIds(), jgUseRegistration.getProjectContraptionId());
} else { // 进行过编辑逻辑,走原来逻辑
} else { // 进行过编辑逻辑,走原来逻辑
eqList.stream()
.filter(v -> jgUseRegistration.getOriginProjectContraptionIds().contains(v.getOriginProjectContraptionId()))
.forEach(v -> esEquipmentCategory.findById(v.getEquId()).ifPresent(equInfoEs -> {
......@@ -3300,7 +3300,10 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
private void updateTotalPieLineLength(String originProjectContraptionIds, String projectContraptionId) {
String[] oPids = originProjectContraptionIds != null ? originProjectContraptionIds.split(",") : null;
Set<String> pIds = new HashSet<>(Arrays.asList(oPids));
Set<String> pIds = null;
if (oPids != null) {
pIds = new HashSet<>(Arrays.asList(oPids));
}
pIds.add(projectContraptionId);
pIds.parallelStream().forEach(pid->{
List<String> records = idxBizJgUseInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>().in(IdxBizJgUseInfo::getProjectContraptionId, pid)).stream().map(IdxBizJgUseInfo::getRecord).collect(toList());
......
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