| | |
| | | public Long createReceivable(CrmReceivableSaveReqVO createReqVO) { |
| | | // 1.1 校验关联数据存在 |
| | | validateRelationDataExists(createReqVO); |
| | | // 1.2 校验关联开票合格(审批通过 + 已上传发票附件 + 与合同匹配) |
| | | validateInvoiceForReceivable(createReqVO); |
| | | // 1.3 校验可回款金额不超过合同剩余可回款金额 |
| | | validateReceivablePriceExceedsLimit(createReqVO); |
| | | // 1.4 校验可回款金额不超过该开票剩余可回款金额(先开票后回款) |
| | | validateReceivablePriceExceedsInvoiceRemaining(createReqVO); |
| | | // 1.2 合同、关联开票均为非必填:未选择时跳过对应校验,仅按已填写的维度约束金额 |
| | | if (createReqVO.getContractId() != null) { |
| | | // 校验可回款金额不超过合同剩余可回款金额 |
| | | validateReceivablePriceExceedsLimit(createReqVO); |
| | | } |
| | | if (createReqVO.getInvoiceId() != null) { |
| | | // 校验关联开票合格(审批通过 + 已上传发票附件 + 与合同匹配) |
| | | validateInvoiceForReceivable(createReqVO); |
| | | // 校验可回款金额不超过该开票剩余可回款金额(先开票后回款) |
| | | validateReceivablePriceExceedsInvoiceRemaining(createReqVO); |
| | | } |
| | | // 1.5 生成回款编号 |
| | | String no = noRedisDAO.generate(CrmNoRedisDAO.RECEIVABLE_PREFIX); |
| | | if (receivableMapper.selectByNo(no) != null) { |
| | |
| | | if (updateReqVO.getInvoiceId() == null) { |
| | | updateReqVO.setInvoiceId(oldReceivable.getInvoiceId()); |
| | | } |
| | | // 1.3 校验可回款金额不超过合同剩余可回款金额 |
| | | validateReceivablePriceExceedsLimit(updateReqVO); |
| | | // 1.4 校验关联开票合格 |
| | | validateInvoiceForReceivable(updateReqVO); |
| | | // 1.5 校验可回款金额不超过该开票剩余可回款金额 |
| | | validateReceivablePriceExceedsInvoiceRemaining(updateReqVO); |
| | | // 1.3 合同、关联开票均为非必填:未填写时跳过对应校验 |
| | | if (updateReqVO.getContractId() != null) { |
| | | // 校验可回款金额不超过合同剩余可回款金额 |
| | | validateReceivablePriceExceedsLimit(updateReqVO); |
| | | } |
| | | if (updateReqVO.getInvoiceId() != null) { |
| | | // 校验关联开票合格 |
| | | validateInvoiceForReceivable(updateReqVO); |
| | | // 校验可回款金额不超过该开票剩余可回款金额 |
| | | validateReceivablePriceExceedsInvoiceRemaining(updateReqVO); |
| | | } |
| | | |
| | | // 1.6 只有未审核,可以编辑; |
| | | if (ObjectUtil.notEqual(oldReceivable.getAuditStatus(), CrmAuditStatusEnum.PROCESS.getStatus())) { |