Commit 7f04416b authored by Lambertliu's avatar Lambertliu

fix(jg):使用登记作废功能修改

parent 6613eea8
......@@ -744,6 +744,15 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
// 在使用单位待提交、一级受理已驳回、使用单位已撤回后清除关联的设备,保证可以再次新提单子选择相同的设备进行提交及原有单子的提交校验数据准备
if (NOT_FLOWING_STATE.contains(useRegistrationDb.getStatus())) {
List<String> records = eqList.stream().map(JgUseRegistrationEq::getEquId).collect(toList());
//合并的管道只需要子工程装置管道集合
if (Objects.nonNull(data.getOriginProjectContraptionIds()) &&
!data.getOriginProjectContraptionIds().contains(data.getProjectContraptionId())){
List<IdxBizJgUseInfo> useInfoRecords = idxBizJgUseInfoService.lambdaQuery()
.select(IdxBizJgUseInfo::getRecord)
.in(IdxBizJgUseInfo::getProjectContraptionId, Arrays.asList(data.getOriginProjectContraptionIds().split(",")))
.list();
records = useInfoRecords.stream().map(IdxBizJgUseInfo::getRecord).collect(Collectors.toList());
}
EquipUsedCheckStrategyContext.getUsedStrategy(DEFINITION_KEY)
.delDataForCheckEquipRepeatUsed(records, data.getUseUnitCreditCode());
}
......@@ -2911,7 +2920,6 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
cmWorkflowService.stopProcess(jgUseRegistration.getInstanceId(), jgUseRegistration.getCancelReason());
// 3.清空redis(缓存的流程中及已完成使用登记的设备)
this.clearDataForCheckEquipRepeatUsed(jgUseRegistration);
}
}
......@@ -2925,7 +2933,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public JgUseRegistration cancelApplication(Long sequenceNbr, String cancelReason) {
// 1.更新为已作废
// 1.单据更新为已作废
JgUseRegistration jgUseRegistration = this.getById(sequenceNbr);
String oldStatus = jgUseRegistration.getStatus();
jgUseRegistration.setCancelReason(cancelReason);
......@@ -2933,6 +2941,8 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
jgUseRegistration.setCancelUserId(RequestContext.getExeUserId());
jgUseRegistration.setNextExecuteUserIds("");
jgUseRegistration.setPromoter("");
jgUseRegistration.setStatus(FlowStatusEnum.TO_BE_DISCARD.getName());
List<JgUseRegistrationEq> eqList = getJgUseRegistrationEqs(jgUseRegistration);
List<String> records = eqList.stream().map(JgUseRegistrationEq::getEquId).collect(Collectors.toList());
......@@ -2940,7 +2950,6 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
if ("unit".equals(jgUseRegistration.getManageType())){
//单位办理-历史作废
if ("1".equals(jgUseRegistration.getRegType())){
jgUseRegistration.setStatus(FlowStatusEnum.TO_BE_DISCARD.getName());
// 构建设备删除的 DTO 列表
List<ESEquipmentCategoryDto> esDtoList = records.stream().map(v -> {
ESEquipmentCategoryDto esDto = new ESEquipmentCategoryDto();
......@@ -2962,6 +2971,18 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
}
else{
if (jgUseRegistration.getUseRegistrationCode().startsWith("管")) {
JgUseRegistration lastUseRegistration = jgUseRegistrationMapper.selectOne(new LambdaQueryWrapper<JgUseRegistration>()
.select(JgUseRegistration::getApplyNo)
.eq(JgUseRegistration::getProjectContraptionId, jgUseRegistration.getProjectContraptionId())
.ne(JgUseRegistration::getStatus, "已作废")
.eq(JgUseRegistration::getIsDelete, false)
.orderByDesc(JgUseRegistration::getRecDate)
.last("limit 1"));
if (lastUseRegistration != null && !lastUseRegistration.getApplyNo().equals(jgUseRegistration.getApplyNo())){
throw new BadRequest("作废失败,该使用登记证下有合并工程装置,请先作废最新单据后再作废此单据!");
}
//2.合并后作废
if (!jgUseRegistration.getOriginProjectContraptionIds().contains(jgUseRegistration.getProjectContraptionId())){
eqList.forEach(v->{
......@@ -3011,46 +3032,34 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
projectContraption.setEquCode(null);
projectContraption.setUseRegistrationCode(null);
jgProjectContraptionService.updateById(projectContraption);
jgUseRegistration.setStatus(FlowStatusEnum.TO_BE_DISCARD.getName());
// 处理非批量导入数据,更新关联业务状态
processElseDataByStatus(oldStatus, jgUseRegistration);
// 统一处理设备的纳管状态【注册事务提交后的操作】
registerAfterCommitTask(records);
}else{
List<IdxBizJgUseInfo> useInfoRecords = idxBizJgUseInfoService.lambdaQuery()
.select(IdxBizJgUseInfo::getRecord)
.in(IdxBizJgUseInfo::getProjectContraptionId, Arrays.asList(jgUseRegistration.getOriginProjectContraptionIds().split(",")))
.list();
records = useInfoRecords.stream().map(IdxBizJgUseInfo::getRecord).collect(Collectors.toList());
// 统一处理设备的纳管状态【注册事务提交后的操作】
this.rollBackForPieLine(jgUseRegistration);
registerAfterCommitTask(records);
}
//作废合并到有证
else{
processElseDataByStatus(oldStatus, jgUseRegistration);
}
}
}
//1.子工程装置作废,正常逻辑
else {
jgUseRegistration.setStatus(FlowStatusEnum.TO_BE_DISCARD.getName());
// 统一处理设备的纳管状态【注册事务提交后的操作】
registerAfterCommitTask(records);
processElseDataByStatus(oldStatus, jgUseRegistration);
// 2.已完成压力管道清空装置表的使用登记证编号、删除装置的检验信息
this.rollBackForPieLine(jgUseRegistration);
}
processElseDataByStatus(oldStatus, jgUseRegistration);
}
//气瓶
else {
jgUseRegistration.setStatus(FlowStatusEnum.TO_BE_DISCARD.getName());
// 处理非批量导入数据,更新关联业务状态
processElseDataByStatus(oldStatus, jgUseRegistration);
// 统一处理设备的纳管状态【注册事务提交后的操作】
registerAfterCommitTask(records);
}
}
}
//台套办理
else {
jgUseRegistration.setStatus(FlowStatusEnum.TO_BE_DISCARD.getName());
// 处理非批量导入数据,更新关联业务状态
processElseDataByStatus(oldStatus, jgUseRegistration);
// 统一处理设备的纳管状态【注册事务提交后的操作】
registerAfterCommitTask(records);
}
this.updateById(jgUseRegistration);
......@@ -3072,32 +3081,33 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
private void clearUseInfoOfEquip(JgUseRegistration jgUseRegistration) {
List<JgUseRegistrationEq> eqList = getJgUseRegistrationEqs(jgUseRegistration);
// 0.压力管道 清空装置表的使用登记证编号、删除装置的检验信息
this.rollBackForPieLine(jgUseRegistration);
eqList.forEach(e -> {
String record = e.getEquId();
Boolean flag = Boolean.FALSE;
LambdaQueryWrapper<IdxBizJgRegisterInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(IdxBizJgRegisterInfo::getRecord, record);
IdxBizJgRegisterInfo idxBizJgRegisterInfo = idxBizJgRegisterInfoMapper.selectOne(lambdaQueryWrapper);
if (!ObjectUtils.isEmpty(idxBizJgRegisterInfo)) {
String equCategory = idxBizJgRegisterInfo.getEquCategory();
List<String> codes = UseRegisterCancelEquipEnum.getCodes();
if (codes.contains(equCategory)) {
flag = Boolean.TRUE;
//非管道
if(StringUtils.isEmpty(jgUseRegistration.getProjectContraptionId())){
eqList.forEach(e -> {
String record = e.getEquId();
Boolean flag = Boolean.FALSE;
LambdaQueryWrapper<IdxBizJgRegisterInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(IdxBizJgRegisterInfo::getRecord, record);
IdxBizJgRegisterInfo idxBizJgRegisterInfo = idxBizJgRegisterInfoMapper.selectOne(lambdaQueryWrapper);
if (!ObjectUtils.isEmpty(idxBizJgRegisterInfo)) {
String equCategory = idxBizJgRegisterInfo.getEquCategory();
List<String> codes = UseRegisterCancelEquipEnum.getCodes();
if (codes.contains(equCategory)) {
flag = Boolean.TRUE;
}
}
}
// 1.使用信息表部分字段赋空
this.rollBackUseInfo(record, flag);
// 2.回滚更新idx_biz_jg_register_info表
this.rollBackRegisterInfo(record);
// 3.回滚更新idx_biz_jg_supervision_info表
this.rollBackSupervisionInfo(record);
// 4.es的EQU_STATE, USE_ORG_CODE、ORG_BRANCH_CODE、ORG_BRANCH_NAME、STATUS
this.rollBackForEquipEsInfo(record, flag,jgUseRegistration);
// 5.历史设备处理
this.dealHisRegEquipData(jgUseRegistration, record);
});
// 1.使用信息表部分字段赋空
this.rollBackUseInfo(record, flag);
// 2.回滚更新idx_biz_jg_register_info表
this.rollBackRegisterInfo(record);
// 3.回滚更新idx_biz_jg_supervision_info表
this.rollBackSupervisionInfo(record);
// 4.es的EQU_STATE, USE_ORG_CODE、ORG_BRANCH_CODE、ORG_BRANCH_NAME、STATUS
this.rollBackForEquipEsInfo(record, flag,jgUseRegistration);
// 5.历史设备处理
this.dealHisRegEquipData(jgUseRegistration, record);
});
}
Set<String> equipTransferIds = eqList.stream()
.map(JgUseRegistrationEq::getEquipTransferId)
.filter(Objects::nonNull)
......@@ -3115,7 +3125,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
updateWrapper.set(IdxBizJgProjectContraption::getUseRegistrationCode, null);
idxBizJgProjectContraptionMapper.update(null, updateWrapper);
// 删除改装置的检验信息【只有是在使用登记页面新增的才会删除,使用登记终审通过时,插入的检验信息id为使用登记的主键】
projectInspectionMapper.deleteById(jgUseRegistration.getSequenceNbr());
// projectInspectionMapper.deleteById(jgUseRegistration.getSequenceNbr());
}
}
......
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