Commit fc30dc91 authored by suhuiguang's avatar suhuiguang

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

1.检验信息录入联调
parent 1ada0292
......@@ -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_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_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 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,
......
......@@ -57,7 +57,7 @@ public abstract class DefaultBizDataChangeHandler<U extends BaseBizDataChangeEve
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()) {
BizRelationDataDto bizRelationDataDto = new BizRelationDataDto();
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;
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.ymt.api.enums.FlowStatusEnum;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* 改造变更登记编辑处理器
......@@ -33,8 +36,17 @@ public class ChangeRegistrationReformDataChangeHandler extends DefaultBizDataCha
}
@Override
public List<FieldChangeMeta> postSave(String bizId, String applyNo, ModelType model, Map<String, Object> changeData, List<FieldChangeMeta> allChangeColumns) {
return Collections.emptyList();
public Set<String> getEqs(String applyNo) {
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
......@@ -43,8 +55,17 @@ public class ChangeRegistrationReformDataChangeHandler extends DefaultBizDataCha
}
@Override
public Set<String> getEqs(String applyNo) {
return changeRegistrationReformEditUpdateService.getEqsByApplyNo(applyNo);
public void preSave(String bizId, String applyNo, ModelType model, Map<String, Object> changeData) {
// 记录增减日志
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
return jgChangeRegistrationReform.getAuditStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName());
}
@Override
public Set<String> getProjectContraptionIds(String applyNo) {
Set<String> projectContraptionIds = new HashSet<>();
......@@ -64,8 +86,4 @@ public class ChangeRegistrationReformDataChangeHandler extends DefaultBizDataCha
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
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.entity.JgChangeRegistrationReform;
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.JgChangeRegistrationReformServiceImpl;
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.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.stream.Collectors;
......@@ -25,6 +31,10 @@ public class ChangeRegistrationReformEditUpdateService {
private final JgChangeRegistrationReformEqServiceImpl eqService;
private final ChangeRegisterReformBackupManager registerReformBackupManager;
private final CommonEquipDataProcessService commonEquipDataProcessService;
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));
......@@ -35,4 +45,86 @@ public class ChangeRegistrationReformEditUpdateService {
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
@Override
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
......
package com.yeejoin.amos.boot.module.jg.biz.edit.process.biz.newProject;
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.ymt.api.entity.IdxBizJgProjectContraption;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
......@@ -17,8 +20,20 @@ import java.util.stream.Collectors;
public class NewProjectEditUpdateService {
private final IdxBizJgUseInfoServiceImpl useInfoService;
private final CommonEquipDataProcessService commonEquipDataProcessService;
public Set<String> getEqsByProjectContraptionId(String projectContraptionId) {
List<IdxBizJgUseInfo> useInfos = useInfoService.list(new LambdaQueryWrapper<IdxBizJgUseInfo>().eq(IdxBizJgUseInfo::getProjectContraptionId, projectContraptionId).select(IdxBizJgUseInfo::getRecord));
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;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.entity.IdxBizJgPipelineOperationHist;
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.enums.BusinessTypeEnum;
......@@ -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.ymt.api.enums.FlowStatusEnum;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;
......@@ -34,12 +34,36 @@ public class UseRegisterDataChangeHandler extends DefaultBizDataChangeHandler<Ba
this.useRegisterUpdateService = useRegisterUpdateService;
}
@Override
public String canHandleBizType() {
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
public List<FieldChangeMeta> postSave(String bizId, String applyNo, ModelType model, Map<String, Object> changeData, List<FieldChangeMeta> allChangeColumns) {
List<FieldChangeMeta> bizEditColumns = new ArrayList<>();
// 流程中时-更新单据-业务冗余的字段、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);
}
@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());
}
return bizEditColumns;
}
......@@ -100,10 +97,4 @@ public class UseRegisterDataChangeHandler extends DefaultBizDataChangeHandler<Ba
projectContraptionIds.remove("");
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 {
List<JgUseRegistrationEq> eqsNew = this.getNewPieLines(useRegistration);
// 2.按照原装置id,查询剩余的管道
List<JgUseRegistrationEq> eqsRemained = this.getRemainedPieLines(useRegistration);
// 3.eq表删除按照equip_transfer_id = useRegistration.id
// 3.eq表删除
this.deleteRelationEq(useRegistration.getSequenceNbr());
// 4.插入eq表
List<JgUseRegistrationEq> registrationEqs = ListUtils.union(eqsNew, eqsRemained);
......@@ -71,8 +71,8 @@ public class UseRegisterUpdateService {
// 按照装置id查询装置下管道,更新为已纳管状态
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 -> {
setNewPipeline2IntoManage(e);
updateUseOrgCode2NewPipeline(e, useRegistration);
commonEquipDataProcessService.setNewPipeline2IntoManage(e);
commonEquipDataProcessService.updateUseOrgCode2NewPipeline(e, useRegistration.getUseRegistrationCode());
});
}
// 记录本次维护管道的日志
......@@ -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 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)) {
JgUseRegistration useRegistration = jgUseRegistrationService.getOne(new LambdaQueryWrapper<JgUseRegistration>().select(BaseEntity::getSequenceNbr, JgUseRegistration::getStatus, JgUseRegistration::getProjectContraptionId, JgUseRegistration::getOriginProjectContraptionIds).eq(JgUseRegistration::getApplyNo, applyNo));
// 记录json,用于作废时数据的恢复
......@@ -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));
// 更新本次新增或者编辑的管道record
useRegisterBackupManager.updateLastOne(useRegistration.getSequenceNbr() + "", changeMetas);
}
}
......
......@@ -8,6 +8,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
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.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
......@@ -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.bo.CompanyBo;
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.module.common.api.dto.IBaseChangeData;
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.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.RegionCodeTypeHandler;
import com.yeejoin.amos.boot.module.jg.biz.edit.utils.JsonDiffUtil;
......@@ -736,7 +740,7 @@ public class CommonEquipDataProcessService {
fieldChangeMeta.setColumnOldValue(Boolean.toString((Boolean) oldVal));
fieldChangeMeta.setColumnNewValue(Boolean.toString((Boolean) newVal));
} else {
fieldChangeMeta.setColumnOldValue(Objects.toString(oldVal , null));
fieldChangeMeta.setColumnOldValue(Objects.toString(oldVal, null));
fieldChangeMeta.setColumnNewValue(Objects.toString(newVal, null));
}
fieldChangeMeta.setDisplayOldValue(formatService.format(displayDefine, fieldChangeMeta.getColumnOldValue()));
......@@ -1091,4 +1095,27 @@ public class CommonEquipDataProcessService {
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