Merge remote-tracking branch 'origin/feature/REQ-3982' into feature/REQ-3982
This commit is contained in:
commit
9fb4a349d6
@ -1524,10 +1524,10 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
AssertUtil.isTrue(req.getAmountChange().compareTo(maxAmount) <= 0 && req.getAmountChange().compareTo(minAmount) >= 0, "金额变化超出范围");
|
||||
}
|
||||
// 关联单据合法性
|
||||
validRelationOrder(req.getRelationOrderMap(), req.getRelationWorkspaceId(), req.getType());
|
||||
validRelationOrder(req.getRelationOrderMap(), req.getRelationWorkspaceId(), req.getType(), req.getId());
|
||||
}
|
||||
|
||||
private void validRelationOrder(Map<String, List<VisaChangeTempCreateReq.OrderSimpleModel>> relationOrderMap, Long workspaceId, VisaTypeEnum type) {
|
||||
private void validRelationOrder(Map<String, List<VisaChangeTempCreateReq.OrderSimpleModel>> relationOrderMap, Long workspaceId, VisaTypeEnum type, Long visaId) {
|
||||
if (CollUtil.isNotEmpty(relationOrderMap)) {
|
||||
relationOrderMap.forEach((key, value) -> {
|
||||
if (CollectionUtils.isNotEmpty(value)) {
|
||||
@ -1549,7 +1549,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
queryOrderToBasicReq.setPageSize(taskNos.size());
|
||||
List<TaskOrderToBasicRes> taskOrders = taskOrderApiGateway.pageOrderByForBasic(queryOrderToBasicReq).getData();
|
||||
AssertUtil.isTrue(CollectionUtils.isNotEmpty(taskOrders) && taskOrders.size() == taskNos.size(), "关联任务单单据不存在,请检查后重试");
|
||||
validTaskBillIfRelated(taskNos, type);
|
||||
validTaskBillIfRelated(taskNos, type, visaId);
|
||||
}
|
||||
} else if (Objects.equals(VisaBillTypeEnum.RECTIFY.name(), key)) {
|
||||
/*整改单*/
|
||||
@ -1564,7 +1564,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
.build();
|
||||
List<RectifyOrderResp> rectifyOrders = rectifyApiGateway.listRectifyOrders(rectifyOrderReq);
|
||||
AssertUtil.isTrue(CollectionUtils.isNotEmpty(rectifyOrders) && rectifyOrders.size() == billIds.size(), "关联整改单单据不存在,请检查后重试");
|
||||
validBillIfRelated(VisaBillTypeEnum.RECTIFY, billIds, type);
|
||||
validBillIfRelated(VisaBillTypeEnum.RECTIFY, billIds, type, visaId);
|
||||
}
|
||||
} else if (Objects.equals(VisaBillTypeEnum.DESIGN_VISA.name(), key)) {
|
||||
/*变更单*/
|
||||
@ -1581,7 +1581,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
AssertUtil.isTrue(Objects.equals(r.getRelationWorkspaceId(), workspaceId), "关联的单据所属项目不匹配");
|
||||
AssertUtil.isTrue(VisaStatusEnum.COMPLETED.equals(r.getStatus()), String.format("%s单据%s状态为%s,不允许被关联", VisaBillTypeEnum.DESIGN_VISA.getDesc(), r.getNo(), r.getStatus().getDesc()));
|
||||
});
|
||||
validBillIfRelated(VisaBillTypeEnum.DESIGN_VISA, billIds, type);
|
||||
validBillIfRelated(VisaBillTypeEnum.DESIGN_VISA, billIds, type, visaId);
|
||||
}
|
||||
} else {
|
||||
throw new ServiceException("不支持的关联单据类型");
|
||||
@ -1599,12 +1599,13 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
.one();
|
||||
}
|
||||
|
||||
private void validBillIfRelated(VisaBillTypeEnum billType, List<String> value, VisaTypeEnum visaType) {
|
||||
private void validBillIfRelated(VisaBillTypeEnum billType, List<String> value, VisaTypeEnum visaType, Long visaId) {
|
||||
AssertUtil.notNull(billType, "关联单据类型不能为空");
|
||||
AssertUtil.notEmpty(value, "关联单据Id不能为空");
|
||||
AssertUtil.notNull(visaType, "单据类型不能为空");
|
||||
List<ChangeRecordBill> mainBill = changeRecordBillService.getRelatedMainBill(billType, value);
|
||||
mainBill.stream()
|
||||
.filter(i -> !Objects.equals(visaId, i.getVisaId()))
|
||||
.collect(Collectors.groupingBy(ChangeRecordBill::getBillId))
|
||||
.forEach((k, v) -> v.stream()
|
||||
.filter(m -> Objects.equals(m.getVisaType(), visaType))
|
||||
@ -1615,7 +1616,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
}));
|
||||
}
|
||||
|
||||
private void validTaskBillIfRelated(List<String> taskNos, VisaTypeEnum visaType) {
|
||||
private void validTaskBillIfRelated(List<String> taskNos, VisaTypeEnum visaType, Long visaId) {
|
||||
AssertUtil.notEmpty(taskNos, "关联单据Id不能为空");
|
||||
AssertUtil.notNull(visaType, "单据类型不能为空");
|
||||
List<ChangeRecordBill> mainBill = changeRecordBillService.getRelatedMainBill(VisaBillTypeEnum.TASK, taskNos);
|
||||
@ -1623,6 +1624,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
return;
|
||||
}
|
||||
mainBill.stream()
|
||||
.filter(i -> !Objects.equals(visaId, i.getVisaId()))
|
||||
.collect(Collectors.groupingBy(ChangeRecordBill::getBillNo))
|
||||
.forEach((k, v) -> v.stream()
|
||||
.filter(m -> Objects.equals(m.getVisaType(), visaType))
|
||||
@ -2138,6 +2140,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void approveCreateVisaPay(VisaPayApproveCreateReq req) {
|
||||
ChangeRecord visa = changeRecordService.getById(req.getVisaId());
|
||||
AssertUtil.notNull(visa, "未找到变洽签单据");
|
||||
check(req, visa);
|
||||
|
||||
// 更新主业务单据中的相关数据数据
|
||||
@ -2185,7 +2188,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
||||
|
||||
private void check(VisaPayApproveCreateReq req, ChangeRecord visa) {
|
||||
// 验证单据
|
||||
validRelationOrder(req.getRelationOrderMap(), visa.getRelationWorkspaceId(), visa.getType());
|
||||
validRelationOrder(req.getRelationOrderMap(), visa.getRelationWorkspaceId(), visa.getType(), visa.getId());
|
||||
// 校验是否已经发起过价款申请,审批中和已通过
|
||||
List<BpmnProcessInstanceResultEnum> checkResults = Lists.newArrayList(PROCESSING, APPROVED);
|
||||
boolean checkResult = StringUtils.hasText(visa.getApprovalIdPay()) && checkResults.contains(BpmnProcessInstanceResultEnum.valueOfStatus(visa.getApprovalStatusPay()));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user