From 92a2f7c9e6915f8ca9f26fae79816f904dc82469 Mon Sep 17 00:00:00 2001 From: chenwenjian Date: Wed, 12 Feb 2025 11:26:11 +0800 Subject: [PATCH] =?UTF-8?q?feat(REQ-3300):=20=E6=9A=82=E5=AD=98-=E5=85=B3?= =?UTF-8?q?=E8=81=94=E5=8D=95=E6=8D=AE=E6=A8=A1=E5=9E=8B=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../response/VisaChangePageSearchResp.java | 8 ++++++ .../server/rpc/ApolloTaskOrderApiGateway.java | 19 ++++++++++++++ .../service/impl/ChangeRecordServiceImpl.java | 26 ++++++++++++------- 3 files changed, 43 insertions(+), 10 deletions(-) create mode 100644 visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/rpc/ApolloTaskOrderApiGateway.java diff --git a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/response/VisaChangePageSearchResp.java b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/response/VisaChangePageSearchResp.java index 7c88a21d..ba8eabdb 100644 --- a/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/response/VisaChangePageSearchResp.java +++ b/visa/visa-api/src/main/java/cn/axzo/nanopart/visa/api/response/VisaChangePageSearchResp.java @@ -121,6 +121,14 @@ public class VisaChangePageSearchResp { /** * 操作按钮 + *

+ * UPDATE: 编辑 + * DETAIL: 详情 + * UPLOAD_FILE: 上传附件 + * APPROVE_RECORD: 查看审批记录 + *

+ * + * @see VisaButtonTypeEnum */ private Set operateBtnSet; diff --git a/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/rpc/ApolloTaskOrderApiGateway.java b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/rpc/ApolloTaskOrderApiGateway.java new file mode 100644 index 00000000..f54ca1eb --- /dev/null +++ b/visa/visa-server/src/main/java/cn/axzo/nanopart/visa/server/rpc/ApolloTaskOrderApiGateway.java @@ -0,0 +1,19 @@ +package cn.axzo.nanopart.visa.server.rpc; + +import cn.axzo.apollo.api.ApolloTaskOrderApi; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +/** + * @author chenwenjian + * @version 1.0 + * @date 2025/2/12 11:18 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class ApolloTaskOrderApiGateway { + + private final ApolloTaskOrderApi apolloTaskOrderApi; +} 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 10e1784b..fb63ce5f 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 @@ -571,7 +571,8 @@ public class ChangeRecordServiceImpl extends ServiceImpl VisaBillDto.builder() .visaId(changeRecord.getId()) .visaType(changeRecord.getType()) - .billId(o) + .billId(o.getId()) + .billNo(o.getNo()) .billType(VisaBillTypeEnum.valueOf(os.getKey())) .createBy(req.getOperatorPersonId()) .updateBy(req.getOperatorPersonId()) @@ -1178,13 +1179,15 @@ public class ChangeRecordServiceImpl extends ServiceImpl billIds = value.stream().map(VisaChangeTempCreateReq.OrderSimpleModel::getId).collect(Collectors.toList()); + validBillIfRelated(VisaBillTypeEnum.TASK, billIds, req.getType()); } else if (Objects.equals(VisaRelationFieldEnum.RECTIFICATION_ORDER.name(), key)) { /*整改单*/ // 关联单据数量限制 AssertUtil.isTrue(value.size() <= refreshableConfiguration.getVerifyVisaLimit(), String.format("最多可关联%d个变更单,请重新选择", refreshableConfiguration.getVerifyVisaLimit())); - validBillIfRelated(VisaBillTypeEnum.RECTIFY, value, req.getType()); + List billIds = value.stream().map(VisaChangeTempCreateReq.OrderSimpleModel::getId).collect(Collectors.toList()); + validBillIfRelated(VisaBillTypeEnum.RECTIFY, billIds, req.getType()); } else if (Objects.equals(VisaRelationFieldEnum.VISA_ORDER.name(), key)) { /*变更单*/ AssertUtil.isTrue(VisaTypeEnum.TECHNOLOGY_APPROVED.equals(req.getType()) || VisaTypeEnum.PROJECT_VISA.equals(req.getType()), "变更单关联单据仅支持技术核定/工程签证"); @@ -1192,13 +1195,14 @@ public class ChangeRecordServiceImpl extends ServiceImpl relationVisa = listByIds(value); + List billIds = value.stream().map(VisaChangeTempCreateReq.OrderSimpleModel::getId).collect(Collectors.toList()); + List relationVisa = listByIds(billIds); AssertUtil.notEmpty(relationVisa, "关联的单据不存在"); 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,不允许被关联", r.getNo(), r.getStatus().getDesc())); }); - validBillIfRelated(VisaBillTypeEnum.DESIGN_VISA, value, req.getType()); + validBillIfRelated(VisaBillTypeEnum.DESIGN_VISA, billIds, req.getType()); } else { throw new ServiceException("不支持的关联单据类型"); } @@ -1471,11 +1475,13 @@ public class ChangeRecordServiceImpl extends ServiceImpl bills = changeRecordBillService.listById(changeRecord.getId()); - if (CollectionUtils.isNotEmpty(bills)) { - req.setRelationOrderMap(bills.stream().collect(Collectors.groupingBy(b -> b.getBillType().name(), - Collectors.mapping(ChangeRecordBill::getBillId, Collectors.toList()))) - ); - } +// // 实时构建单据名称 +// if (CollectionUtils.isNotEmpty(bills)) { +// Map> orderMap = bills.stream().collect(Collectors.groupingBy(b -> b.getBillType().name(), +// Collectors.mapping(ChangeRecordBill::getBillId, Collectors.toList()))); +// req.setRelationOrderMap() +// ); +// } // 附件 List attach = changeRecordRelationService.findByVisaAndVarName(changeRecord.getId(), VisaRelationFieldEnum.ATTACHMENT.name()); if (CollectionUtils.isNotEmpty(attach)) {