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)) {