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, "金额变化超出范围");
|
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)) {
|
if (CollUtil.isNotEmpty(relationOrderMap)) {
|
||||||
relationOrderMap.forEach((key, value) -> {
|
relationOrderMap.forEach((key, value) -> {
|
||||||
if (CollectionUtils.isNotEmpty(value)) {
|
if (CollectionUtils.isNotEmpty(value)) {
|
||||||
@ -1549,7 +1549,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
|||||||
queryOrderToBasicReq.setPageSize(taskNos.size());
|
queryOrderToBasicReq.setPageSize(taskNos.size());
|
||||||
List<TaskOrderToBasicRes> taskOrders = taskOrderApiGateway.pageOrderByForBasic(queryOrderToBasicReq).getData();
|
List<TaskOrderToBasicRes> taskOrders = taskOrderApiGateway.pageOrderByForBasic(queryOrderToBasicReq).getData();
|
||||||
AssertUtil.isTrue(CollectionUtils.isNotEmpty(taskOrders) && taskOrders.size() == taskNos.size(), "关联任务单单据不存在,请检查后重试");
|
AssertUtil.isTrue(CollectionUtils.isNotEmpty(taskOrders) && taskOrders.size() == taskNos.size(), "关联任务单单据不存在,请检查后重试");
|
||||||
validTaskBillIfRelated(taskNos, type);
|
validTaskBillIfRelated(taskNos, type, visaId);
|
||||||
}
|
}
|
||||||
} else if (Objects.equals(VisaBillTypeEnum.RECTIFY.name(), key)) {
|
} else if (Objects.equals(VisaBillTypeEnum.RECTIFY.name(), key)) {
|
||||||
/*整改单*/
|
/*整改单*/
|
||||||
@ -1564,7 +1564,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
|||||||
.build();
|
.build();
|
||||||
List<RectifyOrderResp> rectifyOrders = rectifyApiGateway.listRectifyOrders(rectifyOrderReq);
|
List<RectifyOrderResp> rectifyOrders = rectifyApiGateway.listRectifyOrders(rectifyOrderReq);
|
||||||
AssertUtil.isTrue(CollectionUtils.isNotEmpty(rectifyOrders) && rectifyOrders.size() == billIds.size(), "关联整改单单据不存在,请检查后重试");
|
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)) {
|
} 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(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()));
|
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 {
|
} else {
|
||||||
throw new ServiceException("不支持的关联单据类型");
|
throw new ServiceException("不支持的关联单据类型");
|
||||||
@ -1599,12 +1599,13 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
|||||||
.one();
|
.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.notNull(billType, "关联单据类型不能为空");
|
||||||
AssertUtil.notEmpty(value, "关联单据Id不能为空");
|
AssertUtil.notEmpty(value, "关联单据Id不能为空");
|
||||||
AssertUtil.notNull(visaType, "单据类型不能为空");
|
AssertUtil.notNull(visaType, "单据类型不能为空");
|
||||||
List<ChangeRecordBill> mainBill = changeRecordBillService.getRelatedMainBill(billType, value);
|
List<ChangeRecordBill> mainBill = changeRecordBillService.getRelatedMainBill(billType, value);
|
||||||
mainBill.stream()
|
mainBill.stream()
|
||||||
|
.filter(i -> !Objects.equals(visaId, i.getVisaId()))
|
||||||
.collect(Collectors.groupingBy(ChangeRecordBill::getBillId))
|
.collect(Collectors.groupingBy(ChangeRecordBill::getBillId))
|
||||||
.forEach((k, v) -> v.stream()
|
.forEach((k, v) -> v.stream()
|
||||||
.filter(m -> Objects.equals(m.getVisaType(), visaType))
|
.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.notEmpty(taskNos, "关联单据Id不能为空");
|
||||||
AssertUtil.notNull(visaType, "单据类型不能为空");
|
AssertUtil.notNull(visaType, "单据类型不能为空");
|
||||||
List<ChangeRecordBill> mainBill = changeRecordBillService.getRelatedMainBill(VisaBillTypeEnum.TASK, taskNos);
|
List<ChangeRecordBill> mainBill = changeRecordBillService.getRelatedMainBill(VisaBillTypeEnum.TASK, taskNos);
|
||||||
@ -1623,6 +1624,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mainBill.stream()
|
mainBill.stream()
|
||||||
|
.filter(i -> !Objects.equals(visaId, i.getVisaId()))
|
||||||
.collect(Collectors.groupingBy(ChangeRecordBill::getBillNo))
|
.collect(Collectors.groupingBy(ChangeRecordBill::getBillNo))
|
||||||
.forEach((k, v) -> v.stream()
|
.forEach((k, v) -> v.stream()
|
||||||
.filter(m -> Objects.equals(m.getVisaType(), visaType))
|
.filter(m -> Objects.equals(m.getVisaType(), visaType))
|
||||||
@ -2138,6 +2140,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void approveCreateVisaPay(VisaPayApproveCreateReq req) {
|
public void approveCreateVisaPay(VisaPayApproveCreateReq req) {
|
||||||
ChangeRecord visa = changeRecordService.getById(req.getVisaId());
|
ChangeRecord visa = changeRecordService.getById(req.getVisaId());
|
||||||
|
AssertUtil.notNull(visa, "未找到变洽签单据");
|
||||||
check(req, visa);
|
check(req, visa);
|
||||||
|
|
||||||
// 更新主业务单据中的相关数据数据
|
// 更新主业务单据中的相关数据数据
|
||||||
@ -2185,7 +2188,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
|
|||||||
|
|
||||||
private void check(VisaPayApproveCreateReq req, ChangeRecord visa) {
|
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);
|
List<BpmnProcessInstanceResultEnum> checkResults = Lists.newArrayList(PROCESSING, APPROVED);
|
||||||
boolean checkResult = StringUtils.hasText(visa.getApprovalIdPay()) && checkResults.contains(BpmnProcessInstanceResultEnum.valueOfStatus(visa.getApprovalStatusPay()));
|
boolean checkResult = StringUtils.hasText(visa.getApprovalIdPay()) && checkResults.contains(BpmnProcessInstanceResultEnum.valueOfStatus(visa.getApprovalStatusPay()));
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user