diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java index e4968e1e..0d01e2d1 100644 --- a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/service/impl/ChangeRecordServiceImpl.java @@ -1,6 +1,7 @@ package cn.axzo.nanopart.visa.server.service.impl; import cn.axzo.apollo.api.req.QueryOrderToBasicReq; +import cn.axzo.apollo.api.res.ConstructionAreaInfo; import cn.axzo.apollo.api.res.TaskOrderToBasicRes; import cn.axzo.apollo.workspace.api.workspace.res.GetDetailRes; import cn.axzo.apollo.workspace.api.workspace.res.ProjectBriefResp; @@ -1443,6 +1444,11 @@ public class ChangeRecordServiceImpl extends ServiceImpl areaByIds = apolloConstructionAreaGateway.getAllConstructionAreaByIds(req.getRelationArea().toJavaList(Long.class)); + AssertUtil.isTrue(CollectionUtils.isNotEmpty(areaByIds) && areaByIds.size() == req.getRelationArea().size(), "存在发生区域已被删除"); + } // 提出时间合法性 Date now = new Date(); AssertUtil.notNull(req.getHappenTime(), "请选择提交日期"); @@ -1496,10 +1502,24 @@ public class ChangeRecordServiceImpl extends ServiceImpl taskNos = value.stream().map(VisaChangeTempCreateReq.OrderSimpleModel::getNo).collect(Collectors.toList()); + // 存在性 + QueryOrderToBasicReq queryOrderToBasicReq = new QueryOrderToBasicReq(); + queryOrderToBasicReq.setWorkspaceId(req.getRelationWorkspaceId()); + queryOrderToBasicReq.setTaskNos(taskNos); + queryOrderToBasicReq.setPage(1); + queryOrderToBasicReq.setPageSize(taskNos.size()); + List taskOrders = taskOrderApiGateway.pageOrderByForBasic(queryOrderToBasicReq).getData(); + AssertUtil.isTrue(taskOrders.size() == taskNos.size(), "关联任务单单据不存在,请检查后重试"); validTaskBillIfRelated(taskNos, req.getType()); } else if (Objects.equals(VisaBillTypeEnum.RECTIFY.name(), key)) { /*整改单*/ List billIds = value.stream().map(v -> String.valueOf(v.getId())).collect(Collectors.toList()); + // 存在性 + ListRectifyOrderReq rectifyOrderReq = ListRectifyOrderReq.builder() + .ids(value.stream().map(VisaChangeTempCreateReq.OrderSimpleModel::getId).collect(Collectors.toSet())) + .build(); + List rectifyOrders = rectifyApiGateway.listRectifyOrders(rectifyOrderReq); + AssertUtil.isTrue(CollectionUtils.isNotEmpty(rectifyOrders) && rectifyOrders.size() == billIds.size(), "关联整改单单据不存在,请检查后重试"); validBillIfRelated(VisaBillTypeEnum.RECTIFY, billIds, req.getType()); } else if (Objects.equals(VisaBillTypeEnum.DESIGN_VISA.name(), key)) { /*变更单*/ @@ -1507,7 +1527,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl billIds = value.stream().map(v -> String.valueOf(v.getId())).collect(Collectors.toList()); List relationVisa = listByIds(billIds); - AssertUtil.notEmpty(relationVisa, "关联的单据不存在"); + AssertUtil.isTrue(CollectionUtils.isNotEmpty(relationVisa) && relationVisa.size() == billIds.size(), "关联的变更单单据不存在,请检查后重试"); relationVisa.forEach(r -> { AssertUtil.isTrue(Objects.equals(r.getRelationWorkspaceId(), req.getRelationWorkspaceId()), "关联的单据所属项目不匹配"); AssertUtil.isFalse(Objects.equals(r.getStatus(), VisaStatusEnum.TO_REPORT) || Objects.equals(r.getStatus(), VisaStatusEnum.FORBIDED), String.format("%s单据%s状态为%s,不允许被关联", VisaBillTypeEnum.DESIGN_VISA.getDesc(), r.getNo(), r.getStatus().getDesc()));