feat(REQ-3300): 暂存-关联单据模型调整适配

This commit is contained in:
chenwenjian 2025-02-12 11:26:11 +08:00
parent 1a918ecade
commit 92a2f7c9e6
3 changed files with 43 additions and 10 deletions

View File

@ -121,6 +121,14 @@ public class VisaChangePageSearchResp {
/**
* 操作按钮
* <p>
* UPDATE: 编辑
* DETAIL: 详情
* UPLOAD_FILE: 上传附件
* APPROVE_RECORD: 查看审批记录
* </p>
*
* @see VisaButtonTypeEnum
*/
private Set<VisaButtonTypeEnum> operateBtnSet;

View File

@ -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;
}

View File

@ -571,7 +571,8 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
.map(o -> 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<ChangeRecordDao, Change
// 关联单据数量限制
AssertUtil.isTrue(value.size() <= refreshableConfiguration.getVerifyVisaLimit(),
String.format("最多可关联%d个变更单请重新选择", refreshableConfiguration.getVerifyVisaLimit()));
validBillIfRelated(VisaBillTypeEnum.TASK, value, req.getType());
List<Long> 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<Long> 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<ChangeRecordDao, Change
AssertUtil.isTrue(value.size() <= refreshableConfiguration.getVerifyVisaLimit(),
String.format("最多可关联%d个变更单请重新选择", refreshableConfiguration.getVerifyVisaLimit()));
// 关联单据合法性是否存在状态是否合法
List<ChangeRecord> relationVisa = listByIds(value);
List<Long> billIds = value.stream().map(VisaChangeTempCreateReq.OrderSimpleModel::getId).collect(Collectors.toList());
List<ChangeRecord> 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<ChangeRecordDao, Change
}
// 关联单据
List<ChangeRecordBill> 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<String, List<Long>> orderMap = bills.stream().collect(Collectors.groupingBy(b -> b.getBillType().name(),
// Collectors.mapping(ChangeRecordBill::getBillId, Collectors.toList())));
// req.setRelationOrderMap()
// );
// }
// 附件
List<ChangeRecordRelation> attach = changeRecordRelationService.findByVisaAndVarName(changeRecord.getId(), VisaRelationFieldEnum.ATTACHMENT.name());
if (CollectionUtils.isNotEmpty(attach)) {