feat(REQ-3300): 提交审批校验调整

This commit is contained in:
chenwenjian 2025-02-11 14:58:42 +08:00
parent cdbf8606af
commit 66f4bb59d4

View File

@ -1080,7 +1080,7 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
AssertUtil.isTrue(req.getHappenTime().get(0).compareTo(req.getHappenTime().get(1)) < 0, "提出结束时间不能小于开始时间");
}
if (CollectionUtils.isNotEmpty(req.getApproveCompletedDate())) {
AssertUtil.isFalse(req.getApproveCompletedDate().size() < 2, "请填写审批完成范围");
AssertUtil.isFalse(req.getApproveCompletedDate().size() < 2, "请填写审批完成时间范围");
AssertUtil.isTrue(req.getApproveCompletedDate().get(0).compareTo(req.getApproveCompletedDate().get(1)) < 0, "审批完成结束时间不能小于开始时间");
}
}
@ -1116,9 +1116,8 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
private void validVisaChangeForm(VisaChangeApproveCreateReq req) {
// 单号项目内唯一性
ChangeRecord visaRecord = getById(req.getNo());
AssertUtil.isTrue(Objects.isNull(visaRecord) || !Objects.equals(visaRecord.getRelationWorkspaceId(), req.getRelationWorkspaceId()), "已存在相同单号的变更签证单据,请修改");
// 发生区域存在性 TODO
ChangeRecord visaRecord = getVisaByWorkspaceIdAndNo(req.getRelationWorkspaceId(), req.getNo());
AssertUtil.notNull(visaRecord, "已存在相同单号的变更签证单据,请修改");
// 工程存在性
ProjectDetailRes projectById = visaProjectApiGateway.getProjectById(req.getRelationProject());
AssertUtil.notNull(projectById, "工程不存在");
@ -1158,7 +1157,12 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
});
}
// 金额变化合法性
AssertUtil.isTrue(req.getAmountChange().compareTo(maxAmount) <= 0 && req.getAmountChange().compareTo(minAmount) >= 0, "金额变化超出范围");
if (Objects.equals(req.getType(), VisaTypeEnum.PROJECT_VISA) && Objects.isNull(req.getAmountChange())) {
throw new ServiceException("请选择金额变化");
}
if (Objects.nonNull(req.getAmountChange())) {
AssertUtil.isTrue(req.getAmountChange().compareTo(maxAmount) <= 0 && req.getAmountChange().compareTo(minAmount) >= 0, "金额变化超出范围");
}
// 关联单据合法性
if (CollUtil.isNotEmpty(req.getRelationOrderMap())) {
req.getRelationOrderMap().forEach((key, value) -> {
@ -1195,6 +1199,14 @@ public class ChangeRecordServiceImpl extends ServiceImpl<ChangeRecordDao, Change
}
}
private ChangeRecord getVisaByWorkspaceIdAndNo(Long workspaceId, String no) {
return lambdaQuery().eq(ChangeRecord::getNo, no)
.eq(ChangeRecord::getRelationWorkspaceId, workspaceId)
.eq(ChangeRecord::getIsDelete, 0)
.last("LIMIT 1")
.one();
}
private void validBillIfRelated(VisaBillTypeEnum billType, List<Long> value, VisaTypeEnum visaType) {
AssertUtil.notNull(billType, "关联单据类型不能为空");
AssertUtil.notEmpty(value, "关联单据Id不能为空");