wujianwei
2025-09-05 abb51ab390fa6cf9bf3747f57576c1507f89ae00
service/src/main/java/com/ruoyi/cwgl/service/impl/EstimatedReceivableBillServiceImpl.java
@@ -160,6 +160,7 @@
        estimatedReceivableBillLog.setOperation("修改账单名称为"+estimatedReceivableBill.getBillName());
        logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
         pendingSettlementBusinessMapper.updatePendingSettlementBusinessByBillId(estimatedReceivableBill.getId(),estimatedReceivableBill.getBillName());
        return estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
    }
@@ -230,17 +231,26 @@
        estimatedReceivableBillLog.setOperation("本次提交金额"+ settlementAmount);
        estimatedReceivableBillLog.setFileName(estimatedReceivableBill.getAttachment());
        logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
        settledAmount = settledAmount.add(settlementAmount);
        List<String>dispatchNos =pendingSettlementBusinessMapper.selectPendingSettlementBusinessDispatchNos(estimatedReceivableBill.getId());
        if (settledAmount.compareTo(totalAmount) > 0){
        // 检查当前提交金额+已结算金额是否超过应结算金额
        if (settlementAmount.add(settledAmount).compareTo(totalAmount) > 0) {
            // 超过应结算金额,抛出异常或处理错误
            throw new RuntimeException("当前提交金额加上已结算金额不能超过应结算金额");
        }
       if (settlementAmount.add(settledAmount).compareTo(totalAmount) == 0) {
            //已结算大于应计算金额为已结算
            estimatedReceivableBill.setStatus(2);
            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,3);
            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,3,null);
            pendingSettlementBusinessMapper.updateEstimatedReceivableBillStatus(dispatchNos,3);
        }else {
            //否则部分结算
            estimatedReceivableBill.setStatus(1);
            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,2);
            estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,2,null);
           pendingSettlementBusinessMapper.updateEstimatedReceivableBillStatus(dispatchNos,2);
        }
        settledAmount = settledAmount.add(settlementAmount);
        estimatedReceivableBill.setSettledAmount(settledAmount);
        return estimatedReceivableBillMapper.updateEstimatedReceivableBill(estimatedReceivableBill);
    }
@@ -263,9 +273,7 @@
        String dispatchNo = pendingSettlementBusiness.getDispatchNo();
        estimatedReceivableBillLog.setOperation("取消调度单"+ dispatchNo +"关联");
        logService.insertEstimatedReceivableBillLog(estimatedReceivableBillLog);
        List<String> dispatchNos = new ArrayList<>();
        dispatchNos.add(dispatchNo);
        estimatedReceivableMapper.updateEstimatedReceivableBillStatus(dispatchNos,0);
        return  pendingSettlementBusinessMapper.cancelRelevancy(id);