Commit fc30dc91 authored by suhuiguang's avatar suhuiguang

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

1.检验信息录入联调
parent 1ada0292
...@@ -897,7 +897,7 @@ ...@@ -897,7 +897,7 @@
(select INSPECT_REPORT from idx_biz_jg_inspection_detection_info where "RECORD" = ibjui."RECORD" ORDER BY INSPECT_DATE DESC limit 1) inspectReport, (select INSPECT_REPORT from idx_biz_jg_inspection_detection_info where "RECORD" = ibjui."RECORD" ORDER BY INSPECT_DATE DESC limit 1) inspectReport,
(select INSPECT_TYPE from idx_biz_jg_inspection_detection_info where "RECORD" = ibjui."RECORD" ORDER BY INSPECT_DATE DESC limit 1) inspectType, (select INSPECT_TYPE from idx_biz_jg_inspection_detection_info where "RECORD" = ibjui."RECORD" ORDER BY INSPECT_DATE DESC limit 1) inspectType,
(select INSPECT_STAFF from idx_biz_jg_inspection_detection_info where "RECORD" = ibjui."RECORD" ORDER BY INSPECT_DATE DESC limit 1) inspectStaff, (select INSPECT_STAFF from idx_biz_jg_inspection_detection_info where "RECORD" = ibjui."RECORD" ORDER BY INSPECT_DATE DESC limit 1) inspectStaff,
(select (INSPECT_DATE, 'YYYY-MM-DD') from idx_biz_jg_inspection_detection_info where "RECORD" = ibjui."RECORD" ORDER BY INSPECT_DATE DESC limit 1) inspectDate, (select to_char(INSPECT_DATE, 'YYYY-MM-DD') from idx_biz_jg_inspection_detection_info where "RECORD" = ibjui."RECORD" ORDER BY INSPECT_DATE DESC limit 1) inspectDate,
(select INSPECT_REPORT_NO from idx_biz_jg_inspection_detection_info where "RECORD" = ibjui."RECORD" ORDER BY INSPECT_DATE DESC limit 1) inspectReportNo, (select INSPECT_REPORT_NO from idx_biz_jg_inspection_detection_info where "RECORD" = ibjui."RECORD" ORDER BY INSPECT_DATE DESC limit 1) inspectReportNo,
(SELECT USC_UNIT_NAME from idx_biz_jg_construction_info where "RECORD" = ibjui."RECORD" ORDER BY USC_DATE DESC limit 1) uscUnitName, (SELECT USC_UNIT_NAME from idx_biz_jg_construction_info where "RECORD" = ibjui."RECORD" ORDER BY USC_DATE DESC limit 1) uscUnitName,
(SELECT to_char(USC_DATE, 'YYYY-MM-DD') from idx_biz_jg_construction_info where "RECORD" = ibjui."RECORD" ORDER BY USC_DATE DESC limit 1) uscDate, (SELECT to_char(USC_DATE, 'YYYY-MM-DD') from idx_biz_jg_construction_info where "RECORD" = ibjui."RECORD" ORDER BY USC_DATE DESC limit 1) uscDate,
......
...@@ -57,7 +57,7 @@ public abstract class DefaultBizDataChangeHandler<U extends BaseBizDataChangeEve ...@@ -57,7 +57,7 @@ public abstract class DefaultBizDataChangeHandler<U extends BaseBizDataChangeEve
private void publish2OtherBiz(List<FieldChangeMeta> allChangeColumns, String applyNo, JSONObject oData, ReginParams selectedOrgInfo) { private void publish2OtherBiz(List<FieldChangeMeta> allChangeColumns, String applyNo, JSONObject oData, ReginParams selectedOrgInfo) {
// 重复行数据不记录日志(如行政区划编码、行政区划名称,只记录一个字段即可) // 重复行数据不记录日志(如行政区划编码、行政区划名称,只记录一个字段即可)
List<FieldChangeMeta> noPeatChangeFields = allChangeColumns.stream().filter(f-> !f.getIsRepeatColumn()).collect(Collectors.toList()); List<FieldChangeMeta> noPeatChangeFields = allChangeColumns.stream().filter(f -> !f.getIsRepeatColumn()).collect(Collectors.toList());
if (!noPeatChangeFields.isEmpty()) { if (!noPeatChangeFields.isEmpty()) {
BizRelationDataDto bizRelationDataDto = new BizRelationDataDto(); BizRelationDataDto bizRelationDataDto = new BizRelationDataDto();
bizRelationDataDto.setBizId(applyNo); bizRelationDataDto.setBizId(applyNo);
......
package com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.changeRegistrationReform;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.module.jg.api.entity.JgChangeRegistrationReformEq;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.biz.edit.backup.DefaultEquipBackupManager;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgChangeRegistrationReformEqServiceImpl;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.stream.Collectors;
@Component
public class ChangeRegisterReformBackupManager extends DefaultEquipBackupManager {
private final JgChangeRegistrationReformEqServiceImpl changeRegistrationReformEqService;
public ChangeRegisterReformBackupManager(ApplicationContext applicationContext, JgChangeRegistrationReformEqServiceImpl changeRegistrationReformEqService) {
super(applicationContext);
this.changeRegistrationReformEqService = changeRegistrationReformEqService;
}
@Override
public List<String> getRecords(String bizId) {
List<JgChangeRegistrationReformEq> eqDtoList = changeRegistrationReformEqService.list(new LambdaQueryWrapper<JgChangeRegistrationReformEq>().eq(JgChangeRegistrationReformEq::getEquipTransferId, bizId));
return eqDtoList.stream().map(JgChangeRegistrationReformEq::getEquId).collect(Collectors.toList());
}
@Override
public String getBizType() {
return BusinessTypeEnum.JG_RENOVATION_REGISTRATION.name();
}
}
...@@ -9,10 +9,13 @@ import com.yeejoin.amos.boot.module.jg.biz.edit.core.RouterEventPublisher; ...@@ -9,10 +9,13 @@ import com.yeejoin.amos.boot.module.jg.biz.edit.core.RouterEventPublisher;
import com.yeejoin.amos.boot.module.jg.biz.edit.event.BaseBizDataChangeEvent; import com.yeejoin.amos.boot.module.jg.biz.edit.event.BaseBizDataChangeEvent;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler; import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* 改造变更登记编辑处理器 * 改造变更登记编辑处理器
...@@ -33,8 +36,17 @@ public class ChangeRegistrationReformDataChangeHandler extends DefaultBizDataCha ...@@ -33,8 +36,17 @@ public class ChangeRegistrationReformDataChangeHandler extends DefaultBizDataCha
} }
@Override @Override
public List<FieldChangeMeta> postSave(String bizId, String applyNo, ModelType model, Map<String, Object> changeData, List<FieldChangeMeta> allChangeColumns) { public Set<String> getEqs(String applyNo) {
return Collections.emptyList(); JgChangeRegistrationReform jgChangeRegistrationReform = changeRegistrationReformEditUpdateService.getMainService().getOne(new LambdaQueryWrapper<JgChangeRegistrationReform>().eq(JgChangeRegistrationReform::getApplyNo, applyNo).select(BaseEntity::getSequenceNbr, JgChangeRegistrationReform::getAuditStatus, JgChangeRegistrationReform::getProjectContraptionId));
Set<String> eqs = changeRegistrationReformEditUpdateService.getEqsByApplyNo(applyNo);
// 已完成是查询eq表+本业务增减的管道
if (jgChangeRegistrationReform.getAuditStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName()) && StringUtils.isNotEmpty(jgChangeRegistrationReform.getProjectContraptionId())) {
List<String> newRecords = changeRegistrationReformEditUpdateService.getCommonEquipDataProcessService().getNewPipelineRecordsOfOneBiz(jgChangeRegistrationReform.getSequenceNbr() + "", changeRegistrationReformEditUpdateService.getRegisterReformBackupManager());
List<String> exists = new ArrayList<>(eqs);
return Stream.concat(newRecords.stream(), exists.stream()).collect(Collectors.toSet());
}
// 管道时根据不同的状态进行查询records
return eqs;
} }
@Override @Override
...@@ -43,8 +55,17 @@ public class ChangeRegistrationReformDataChangeHandler extends DefaultBizDataCha ...@@ -43,8 +55,17 @@ public class ChangeRegistrationReformDataChangeHandler extends DefaultBizDataCha
} }
@Override @Override
public Set<String> getEqs(String applyNo) { public void preSave(String bizId, String applyNo, ModelType model, Map<String, Object> changeData) {
return changeRegistrationReformEditUpdateService.getEqsByApplyNo(applyNo); // 记录增减日志
changeRegistrationReformEditUpdateService.backupOPipelineData(applyNo, model);
}
@Override
public List<FieldChangeMeta> postSave(String bizId, String applyNo, ModelType model, Map<String, Object> changeData, List<FieldChangeMeta> allChangeColumns) {
List<FieldChangeMeta> bizEditColumns = new ArrayList<>();
// 更新eq表、管道纳管状态、使用登记证;改更新本次新增、编辑的管道record集合到流水表
changeRegistrationReformEditUpdateService.updateBizInfo(allChangeColumns, applyNo, model);
return bizEditColumns;
} }
...@@ -54,6 +75,7 @@ public class ChangeRegistrationReformDataChangeHandler extends DefaultBizDataCha ...@@ -54,6 +75,7 @@ public class ChangeRegistrationReformDataChangeHandler extends DefaultBizDataCha
return jgChangeRegistrationReform.getAuditStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName()); return jgChangeRegistrationReform.getAuditStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName());
} }
@Override @Override
public Set<String> getProjectContraptionIds(String applyNo) { public Set<String> getProjectContraptionIds(String applyNo) {
Set<String> projectContraptionIds = new HashSet<>(); Set<String> projectContraptionIds = new HashSet<>();
...@@ -64,8 +86,4 @@ public class ChangeRegistrationReformDataChangeHandler extends DefaultBizDataCha ...@@ -64,8 +86,4 @@ public class ChangeRegistrationReformDataChangeHandler extends DefaultBizDataCha
return projectContraptionIds; return projectContraptionIds;
} }
@Override
public void preSave(String bizId, String applyNo, ModelType model, Map<String, Object> changeData) {
}
} }
...@@ -2,16 +2,22 @@ package com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.changeRegistrationR ...@@ -2,16 +2,22 @@ package com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.changeRegistrationR
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.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.entity.JgChangeRegistrationReform; 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.api.entity.JgChangeRegistrationReformEq;
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.service.impl.JgChangeRegistrationReformEqServiceImpl; 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.jg.biz.service.impl.JgChangeRegistrationReformServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgChangeRegistrationReformEqServiceImpl; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgChangeRegistrationReformServiceImpl; import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -25,6 +31,10 @@ public class ChangeRegistrationReformEditUpdateService { ...@@ -25,6 +31,10 @@ public class ChangeRegistrationReformEditUpdateService {
private final JgChangeRegistrationReformEqServiceImpl eqService; private final JgChangeRegistrationReformEqServiceImpl eqService;
private final ChangeRegisterReformBackupManager registerReformBackupManager;
private final CommonEquipDataProcessService commonEquipDataProcessService;
public Set<String> getEqsByApplyNo(String applyNo) { public Set<String> getEqsByApplyNo(String applyNo) {
JgChangeRegistrationReform jgChangeRegistrationReform = mainService.getOne(new LambdaQueryWrapper<JgChangeRegistrationReform>().eq(JgChangeRegistrationReform::getApplyNo, applyNo).select(BaseEntity::getSequenceNbr)); 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)); List<JgChangeRegistrationReformEq> eqs = eqService.list(new LambdaQueryWrapper<JgChangeRegistrationReformEq>().eq(JgChangeRegistrationReformEq::getEquipTransferId, jgChangeRegistrationReform.getSequenceNbr()).select(JgChangeRegistrationReformEq::getEquId, BaseEntity::getSequenceNbr));
...@@ -35,4 +45,86 @@ public class ChangeRegistrationReformEditUpdateService { ...@@ -35,4 +45,86 @@ public class ChangeRegistrationReformEditUpdateService {
return mainService.getOne(new LambdaQueryWrapper<JgChangeRegistrationReform>().eq(JgChangeRegistrationReform::getApplyNo, applyNo)); return mainService.getOne(new LambdaQueryWrapper<JgChangeRegistrationReform>().eq(JgChangeRegistrationReform::getApplyNo, applyNo));
} }
/**
* 备份原始数据
*
* @param applyNo 单据号
* @param model 类型
*/
public void backupOPipelineData(String applyNo, IBizDataChangeHandleStrategy.ModelType model) {
if (model.equals(IBizDataChangeHandleStrategy.ModelType.singleProject)) {
JgChangeRegistrationReform jgChangeRegistrationReform = mainService.getOne(new LambdaQueryWrapper<JgChangeRegistrationReform>().eq(JgChangeRegistrationReform::getApplyNo, applyNo).select(BaseEntity::getSequenceNbr, JgChangeRegistrationReform::getAuditStatus, JgChangeRegistrationReform::getProjectContraptionId));
// 记录json,用于作废时数据的恢复
registerReformBackupManager.backup(jgChangeRegistrationReform.getSequenceNbr() + "");
}
}
public void updateBizInfo(List<FieldChangeMeta> allChangeColumns, String applyNo, IBizDataChangeHandleStrategy.ModelType model) {
// 压力管道在使用登记页面进行管道增减后,更新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表删除
this.deleteRelationEq(jgChangeRegistrationReform.getSequenceNbr());
// 3.插入eq表
this.insertRelationEq(jgChangeRegistrationReform.getSequenceNbr(), eqOfOnePid);
} 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));
useInfos.parallelStream().forEach(e -> {
commonEquipDataProcessService.setNewPipeline2IntoManage(e);
commonEquipDataProcessService.updateUseOrgCode2NewPipeline(e, jgChangeRegistrationReform.getUseRegistrationCode());
});
}
// 记录本次维护管道的日志
this.updatePipelineData(allChangeColumns, applyNo, model);
}
}
/**
* 更新删除、新增的管道
*
* @param changeMetas 记录
* @param applyNo 单据号
* @param model 类型
*/
public void updatePipelineData(List<FieldChangeMeta> changeMetas, String applyNo, IBizDataChangeHandleStrategy.ModelType model) {
// 压力管道的使用登记,在页面进行管道增减后,更新eq表
if (model.equals(IBizDataChangeHandleStrategy.ModelType.singleProject)) {
JgChangeRegistrationReform jgChangeRegistrationReform = mainService.getOne(new LambdaQueryWrapper<JgChangeRegistrationReform>().select(BaseEntity::getSequenceNbr).eq(JgChangeRegistrationReform::getApplyNo, applyNo));
// 更新本次新增或者编辑的管道record
registerReformBackupManager.updateLastOne(jgChangeRegistrationReform.getSequenceNbr() + "", changeMetas);
}
}
private void insertRelationEq(Long sequenceNbr, List<JgChangeRegistrationReformEq> registrationEqs) {
registrationEqs.forEach(e -> {
e.setRecDate(new Date());
e.setRecUserId(RequestContext.getExeUserId());
e.setEquipTransferId(sequenceNbr + "");
});
eqService.saveBatch(registrationEqs);
}
private void deleteRelationEq(Long sequenceNbr) {
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());
}
} }
\ No newline at end of file
...@@ -30,7 +30,10 @@ public class NewProjectDataChangeHandler extends DefaultBizDataChangeHandler<Bas ...@@ -30,7 +30,10 @@ public class NewProjectDataChangeHandler extends DefaultBizDataChangeHandler<Bas
@Override @Override
public List<FieldChangeMeta> postSave(String bizId, String applyNo, ModelType model, Map<String, Object> changeData, List<FieldChangeMeta> allChangeColumns) { public List<FieldChangeMeta> postSave(String bizId, String applyNo, ModelType model, Map<String, Object> changeData, List<FieldChangeMeta> allChangeColumns) {
return Collections.emptyList(); List<FieldChangeMeta> bizEditColumns = new ArrayList<>();
// 更新管道纳管状态、使用登记证编号业务信息
newProjectEditUpdateService.updateBizInfo(bizId);
return bizEditColumns;
} }
@Override @Override
......
package com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.newProject; package com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.newProject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.equip.CommonEquipDataProcessService;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgUseInfoServiceImpl; import com.yeejoin.amos.boot.module.jg.biz.service.impl.IdxBizJgUseInfoServiceImpl;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo; import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -17,8 +20,20 @@ import java.util.stream.Collectors; ...@@ -17,8 +20,20 @@ import java.util.stream.Collectors;
public class NewProjectEditUpdateService { public class NewProjectEditUpdateService {
private final IdxBizJgUseInfoServiceImpl useInfoService; private final IdxBizJgUseInfoServiceImpl useInfoService;
private final CommonEquipDataProcessService commonEquipDataProcessService;
public Set<String> getEqsByProjectContraptionId(String projectContraptionId) { public Set<String> getEqsByProjectContraptionId(String projectContraptionId) {
List<IdxBizJgUseInfo> useInfos = useInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, projectContraptionId).select(IdxBizJgUseInfo::getRecord)); List<IdxBizJgUseInfo> useInfos = useInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, projectContraptionId).select(IdxBizJgUseInfo::getRecord));
return useInfos.stream().map(IdxBizJgUseInfo::getRecord).collect(Collectors.toSet()); return useInfos.stream().map(IdxBizJgUseInfo::getRecord).collect(Collectors.toSet());
} }
public void updateBizInfo(String projectContraptionId) {
IdxBizJgProjectContraption projectContraption = commonEquipDataProcessService.getIdxBizJgProjectContraptionServiceImpl().getOne(new LambdaQueryWrapper<IdxBizJgProjectContraption>().eq(BaseEntity::getSequenceNbr, projectContraptionId).select(BaseEntity::getSequenceNbr, IdxBizJgProjectContraption::getUseRegistrationCode));
// 按照装置id查询装置下管道,更新为已纳管状态写入使用登记证编号
List<IdxBizJgUseInfo> useInfos = useInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, projectContraptionId).eq(IdxBizJgUseInfo::getIsIntoManagement, false).select(IdxBizJgUseInfo::getRecord));
useInfos.parallelStream().forEach(e -> {
commonEquipDataProcessService.setNewPipeline2IntoManage(e);
commonEquipDataProcessService.updateUseOrgCode2NewPipeline(e, projectContraption.getUseRegistrationCode());
});
}
} }
...@@ -3,7 +3,6 @@ package com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.useRegister; ...@@ -3,7 +3,6 @@ package com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.useRegister;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.BaseEntity;
import com.yeejoin.amos.boot.module.jg.api.dto.FieldChangeMeta; import com.yeejoin.amos.boot.module.jg.api.dto.FieldChangeMeta;
import com.yeejoin.amos.boot.module.jg.api.entity.IdxBizJgPipelineOperationHist;
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.enums.BusinessTypeEnum; import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
...@@ -12,6 +11,7 @@ import com.yeejoin.amos.boot.module.jg.biz.edit.event.BaseBizDataChangeEvent; ...@@ -12,6 +11,7 @@ import com.yeejoin.amos.boot.module.jg.biz.edit.event.BaseBizDataChangeEvent;
import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler; import com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.DefaultBizDataChangeHandler;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -34,12 +34,36 @@ public class UseRegisterDataChangeHandler extends DefaultBizDataChangeHandler<Ba ...@@ -34,12 +34,36 @@ public class UseRegisterDataChangeHandler extends DefaultBizDataChangeHandler<Ba
this.useRegisterUpdateService = useRegisterUpdateService; this.useRegisterUpdateService = useRegisterUpdateService;
} }
@Override @Override
public String canHandleBizType() { public String canHandleBizType() {
return BusinessTypeEnum.JG_USAGE_REGISTRATION.name(); return BusinessTypeEnum.JG_USAGE_REGISTRATION.name();
} }
@Override
public Boolean beforeCheck(String bizId, String applyNo, ModelType model, Map<String, Object> changeData) {
return true;
}
@Override
public Set<String> getEqs(String applyNo) {
JgUseRegistration useRegistration = useRegisterUpdateService.getJgUseRegistrationService().getOne(new LambdaQueryWrapper<JgUseRegistration>().select(BaseEntity::getSequenceNbr, JgUseRegistration::getStatus, JgUseRegistration::getProjectContraptionId).eq(JgUseRegistration::getApplyNo, applyNo));
List<JgUseRegistrationEq> eqs = useRegisterUpdateService.getUseRegistrationEqService().list(new LambdaQueryWrapper<JgUseRegistrationEq>().select(JgUseRegistrationEq::getEquId).eq(JgUseRegistrationEq::getEquipTransferId, useRegistration.getSequenceNbr()));
if (useRegistration.getStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName()) && StringUtils.isNotEmpty(useRegistration.getProjectContraptionId())) {
// todo 已完成时查询eq + 流水表记录的通过该业务增加的管道+删除的管道查缉,新增的管道不在eq表,导致管道查询数量少
List<String> newRecords = useRegisterUpdateService.getCommonEquipDataProcessService().getNewPipelineRecordsOfOneBiz(useRegistration.getSequenceNbr() + "", useRegisterUpdateService.getUseRegisterBackupManager());
List<String> exists = eqs.stream().map(JgUseRegistrationEq::getEquId).collect(Collectors.toList());
return Stream.concat(newRecords.stream(), exists.stream()).collect(Collectors.toSet());
} else {
// todo 流水中时回同步更新eq表 索引无需取流水数据
return eqs.stream().map(JgUseRegistrationEq::getEquId).collect(Collectors.toSet());
}
}
@Override
public void preSave(String bizId, String applyNo, ModelType model, Map<String, Object> changeData) {
useRegisterUpdateService.backupOPipelineData(applyNo, model);
}
/** /**
* 保存 * 保存
...@@ -53,35 +77,8 @@ public class UseRegisterDataChangeHandler extends DefaultBizDataChangeHandler<Ba ...@@ -53,35 +77,8 @@ public class UseRegisterDataChangeHandler extends DefaultBizDataChangeHandler<Ba
public List<FieldChangeMeta> postSave(String bizId, String applyNo, ModelType model, Map<String, Object> changeData, List<FieldChangeMeta> allChangeColumns) { public List<FieldChangeMeta> postSave(String bizId, String applyNo, ModelType model, Map<String, Object> changeData, List<FieldChangeMeta> allChangeColumns) {
List<FieldChangeMeta> bizEditColumns = new ArrayList<>(); List<FieldChangeMeta> bizEditColumns = new ArrayList<>();
// 流程中时-更新单据-业务冗余的字段、eq表、管道状态,记录本次新增、编辑的管道record集合 // 流程中时-更新单据-业务冗余的字段、eq表、管道状态,记录本次新增、编辑的管道record集合
this.updateBizInfo(allChangeColumns, bizId, applyNo, model);
return bizEditColumns;
}
private void updateBizInfo(List<FieldChangeMeta> allChangeColumns, String bizId, String applyNo, ModelType model) {
useRegisterUpdateService.updateBizInfo(allChangeColumns, bizId, applyNo, model); useRegisterUpdateService.updateBizInfo(allChangeColumns, bizId, applyNo, model);
} return bizEditColumns;
@Override
public Boolean beforeCheck(String bizId, String applyNo, ModelType model, Map<String, Object> changeData) {
return true;
}
@Override
public Set<String> getEqs(String applyNo) {
JgUseRegistration useRegistration = useRegisterUpdateService.getJgUseRegistrationService().getOne(new LambdaQueryWrapper<JgUseRegistration>().select(BaseEntity::getSequenceNbr, JgUseRegistration::getStatus).eq(JgUseRegistration::getApplyNo, applyNo));
List<JgUseRegistrationEq> eqs = useRegisterUpdateService.getUseRegistrationEqService().list(new LambdaQueryWrapper<JgUseRegistrationEq>().select(JgUseRegistrationEq::getEquId).eq(JgUseRegistrationEq::getEquipTransferId, useRegistration.getSequenceNbr()));
if (useRegistration.getStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName())) { // todo 已完成时查询eq + 流水表记录的通过该业务增加的管道+删除的管道查缉,新增的管道不在eq表,导致管道查询数量少
List<IdxBizJgPipelineOperationHist> backups = useRegisterUpdateService.getUseRegisterBackupManager().listAll(useRegistration.getSequenceNbr() + "");
List<String> insertRecords = backups.stream().flatMap(e -> e.getInsertPipelines().stream()).collect(Collectors.toList());
List<String> deleteRecords = backups.stream().flatMap(e -> e.getDeletedPipelines().stream()).collect(Collectors.toList());
List<String> result = insertRecords.stream()
.filter(record -> !deleteRecords.contains(record))
.collect(Collectors.toList());
List<String> exists = eqs.stream().map(JgUseRegistrationEq::getEquId).collect(Collectors.toList());
return Stream.concat(result.stream(), exists.stream()).collect(Collectors.toSet());
} else { // todo 流水中时回同步更新eq表 索引无需取流水数据
return eqs.stream().map(JgUseRegistrationEq::getEquId).collect(Collectors.toSet());
}
} }
...@@ -100,10 +97,4 @@ public class UseRegisterDataChangeHandler extends DefaultBizDataChangeHandler<Ba ...@@ -100,10 +97,4 @@ public class UseRegisterDataChangeHandler extends DefaultBizDataChangeHandler<Ba
projectContraptionIds.remove(""); projectContraptionIds.remove("");
return projectContraptionIds; return projectContraptionIds;
} }
@Override
public void preSave(String bizId, String applyNo, ModelType model, Map<String, Object> changeData) {
useRegisterUpdateService.backupOPipelineData(bizId, applyNo, model);
}
} }
...@@ -62,7 +62,7 @@ public class UseRegisterUpdateService { ...@@ -62,7 +62,7 @@ public class UseRegisterUpdateService {
List<JgUseRegistrationEq> eqsNew = this.getNewPieLines(useRegistration); List<JgUseRegistrationEq> eqsNew = this.getNewPieLines(useRegistration);
// 2.按照原装置id,查询剩余的管道 // 2.按照原装置id,查询剩余的管道
List<JgUseRegistrationEq> eqsRemained = this.getRemainedPieLines(useRegistration); List<JgUseRegistrationEq> eqsRemained = this.getRemainedPieLines(useRegistration);
// 3.eq表删除按照equip_transfer_id = useRegistration.id // 3.eq表删除
this.deleteRelationEq(useRegistration.getSequenceNbr()); this.deleteRelationEq(useRegistration.getSequenceNbr());
// 4.插入eq表 // 4.插入eq表
List<JgUseRegistrationEq> registrationEqs = ListUtils.union(eqsNew, eqsRemained); List<JgUseRegistrationEq> registrationEqs = ListUtils.union(eqsNew, eqsRemained);
...@@ -71,8 +71,8 @@ public class UseRegisterUpdateService { ...@@ -71,8 +71,8 @@ public class UseRegisterUpdateService {
// 按照装置id查询装置下管道,更新为已纳管状态 // 按照装置id查询装置下管道,更新为已纳管状态
List<IdxBizJgUseInfo> useInfos = jgUseRegistrationService.getIdxBizJgUseInfoService().list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, useRegistration.getProjectContraptionId()).eq(IdxBizJgUseInfo::getIsIntoManagement, false).select(TzsBaseEntity::getSequenceNbr, IdxBizJgUseInfo::getRecord)); List<IdxBizJgUseInfo> useInfos = jgUseRegistrationService.getIdxBizJgUseInfoService().list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, useRegistration.getProjectContraptionId()).eq(IdxBizJgUseInfo::getIsIntoManagement, false).select(TzsBaseEntity::getSequenceNbr, IdxBizJgUseInfo::getRecord));
useInfos.parallelStream().forEach(e -> { useInfos.parallelStream().forEach(e -> {
setNewPipeline2IntoManage(e); commonEquipDataProcessService.setNewPipeline2IntoManage(e);
updateUseOrgCode2NewPipeline(e, useRegistration); commonEquipDataProcessService.updateUseOrgCode2NewPipeline(e, useRegistration.getUseRegistrationCode());
}); });
} }
// 记录本次维护管道的日志 // 记录本次维护管道的日志
...@@ -80,28 +80,13 @@ public class UseRegisterUpdateService { ...@@ -80,28 +80,13 @@ public class UseRegisterUpdateService {
} }
} }
private void setNewPipeline2IntoManage(IdxBizJgUseInfo e) {
LambdaUpdateWrapper<IdxBizJgUseInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(TzsBaseEntity::getSequenceNbr, e.getSequenceNbr());
updateWrapper.set(IdxBizJgUseInfo::getIsIntoManagement, true);
jgUseRegistrationService.getIdxBizJgUseInfoService().update(updateWrapper);
}
private void updateUseOrgCode2NewPipeline(IdxBizJgUseInfo e, JgUseRegistration useRegistration) {
LambdaUpdateWrapper<IdxBizJgRegisterInfo> updateWrapper2 = new LambdaUpdateWrapper<>();
updateWrapper2.eq(IdxBizJgRegisterInfo::getRecord, e.getRecord());
updateWrapper2.set(IdxBizJgRegisterInfo::getUseOrgCode, useRegistration.getUseRegistrationCode());
jgUseRegistrationService.getIdxBizJgRegisterInfoService().update(updateWrapper2);
}
/** /**
* 备份原始数据 * 备份原始数据
*
* @param bizId 装置id
* @param applyNo 单据号 * @param applyNo 单据号
* @param model 类型 * @param model 类型
*/ */
public void backupOPipelineData(String bizId, String applyNo, IBizDataChangeHandleStrategy.ModelType model) { public void backupOPipelineData(String applyNo, IBizDataChangeHandleStrategy.ModelType model) {
if (model.equals(IBizDataChangeHandleStrategy.ModelType.singleProject)) { if (model.equals(IBizDataChangeHandleStrategy.ModelType.singleProject)) {
JgUseRegistration useRegistration = jgUseRegistrationService.getOne(new LambdaQueryWrapper<JgUseRegistration>().select(BaseEntity::getSequenceNbr, JgUseRegistration::getStatus, JgUseRegistration::getProjectContraptionId, JgUseRegistration::getOriginProjectContraptionIds).eq(JgUseRegistration::getApplyNo, applyNo)); JgUseRegistration useRegistration = jgUseRegistrationService.getOne(new LambdaQueryWrapper<JgUseRegistration>().select(BaseEntity::getSequenceNbr, JgUseRegistration::getStatus, JgUseRegistration::getProjectContraptionId, JgUseRegistration::getOriginProjectContraptionIds).eq(JgUseRegistration::getApplyNo, applyNo));
// 记录json,用于作废时数据的恢复 // 记录json,用于作废时数据的恢复
...@@ -122,7 +107,6 @@ public class UseRegisterUpdateService { ...@@ -122,7 +107,6 @@ public class UseRegisterUpdateService {
JgUseRegistration useRegistration = jgUseRegistrationService.getOne(new LambdaQueryWrapper<JgUseRegistration>().select(BaseEntity::getSequenceNbr, JgUseRegistration::getStatus, JgUseRegistration::getProjectContraptionId, JgUseRegistration::getOriginProjectContraptionIds).eq(JgUseRegistration::getApplyNo, applyNo)); JgUseRegistration useRegistration = jgUseRegistrationService.getOne(new LambdaQueryWrapper<JgUseRegistration>().select(BaseEntity::getSequenceNbr, JgUseRegistration::getStatus, JgUseRegistration::getProjectContraptionId, JgUseRegistration::getOriginProjectContraptionIds).eq(JgUseRegistration::getApplyNo, applyNo));
// 更新本次新增或者编辑的管道record // 更新本次新增或者编辑的管道record
useRegisterBackupManager.updateLastOne(useRegistration.getSequenceNbr() + "", changeMetas); useRegisterBackupManager.updateLastOne(useRegistration.getSequenceNbr() + "", changeMetas);
} }
} }
......
...@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSON; ...@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
...@@ -16,11 +17,14 @@ import com.yeejoin.amos.boot.biz.common.annotation.FieldDisplayDefine; ...@@ -16,11 +17,14 @@ 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 com.yeejoin.amos.boot.biz.common.bo.CompanyBo; import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.entity.TzsBaseEntity;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.api.dto.IBaseChangeData; import com.yeejoin.amos.boot.module.common.api.dto.IBaseChangeData;
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.IdxBizJgPipelineOperationHist;
import com.yeejoin.amos.boot.module.jg.api.enums.EquipSourceEnum; import com.yeejoin.amos.boot.module.jg.api.enums.EquipSourceEnum;
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.biz.edit.backup.DefaultEquipBackupManager;
import com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler.FormatService; import com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler.FormatService;
import com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler.RegionCodeTypeHandler; import com.yeejoin.amos.boot.module.jg.biz.edit.typeHandler.RegionCodeTypeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.utils.JsonDiffUtil; import com.yeejoin.amos.boot.module.jg.biz.edit.utils.JsonDiffUtil;
...@@ -736,7 +740,7 @@ public class CommonEquipDataProcessService { ...@@ -736,7 +740,7 @@ public class CommonEquipDataProcessService {
fieldChangeMeta.setColumnOldValue(Boolean.toString((Boolean) oldVal)); fieldChangeMeta.setColumnOldValue(Boolean.toString((Boolean) oldVal));
fieldChangeMeta.setColumnNewValue(Boolean.toString((Boolean) newVal)); fieldChangeMeta.setColumnNewValue(Boolean.toString((Boolean) newVal));
} else { } else {
fieldChangeMeta.setColumnOldValue(Objects.toString(oldVal , null)); fieldChangeMeta.setColumnOldValue(Objects.toString(oldVal, null));
fieldChangeMeta.setColumnNewValue(Objects.toString(newVal, null)); fieldChangeMeta.setColumnNewValue(Objects.toString(newVal, null));
} }
fieldChangeMeta.setDisplayOldValue(formatService.format(displayDefine, fieldChangeMeta.getColumnOldValue())); fieldChangeMeta.setDisplayOldValue(formatService.format(displayDefine, fieldChangeMeta.getColumnOldValue()));
...@@ -1091,4 +1095,27 @@ public class CommonEquipDataProcessService { ...@@ -1091,4 +1095,27 @@ public class CommonEquipDataProcessService {
Optional.ofNullable(companyBo).ifPresent(item -> useInfoNew.setEstateUnitName(companyBo.getCompanyName())); Optional.ofNullable(companyBo).ifPresent(item -> useInfoNew.setEstateUnitName(companyBo.getCompanyName()));
} }
} }
public List<String> getNewPipelineRecordsOfOneBiz(String bizId, DefaultEquipBackupManager useRegisterBackupManager) {
List<IdxBizJgPipelineOperationHist> backups = useRegisterBackupManager.listAll(bizId);
List<String> insertRecords = backups.stream().flatMap(e -> e.getInsertPipelines().stream()).collect(Collectors.toList());
List<String> deleteRecords = backups.stream().flatMap(e -> e.getDeletedPipelines().stream()).collect(Collectors.toList());
return insertRecords.stream()
.filter(record -> !deleteRecords.contains(record))
.collect(Collectors.toList());
}
public void setNewPipeline2IntoManage(IdxBizJgUseInfo useInfo) {
LambdaUpdateWrapper<IdxBizJgUseInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(TzsBaseEntity::getSequenceNbr, useInfo.getSequenceNbr());
updateWrapper.set(IdxBizJgUseInfo::getIsIntoManagement, true);
jgUseRegistrationService.getIdxBizJgUseInfoService().update(updateWrapper);
}
public void updateUseOrgCode2NewPipeline(IdxBizJgUseInfo e, String useOrgCode) {
LambdaUpdateWrapper<IdxBizJgRegisterInfo> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(IdxBizJgRegisterInfo::getRecord, e.getRecord());
updateWrapper.set(IdxBizJgRegisterInfo::getUseOrgCode, useOrgCode);
jgUseRegistrationService.getIdxBizJgRegisterInfoService().update(updateWrapper);
}
} }
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