shiyunteng
2026-08-25 dd4284136cb12dc3c2e498e0f0ff002d553763af
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/PaymentConfirmServiceImpl.java
@@ -209,18 +209,15 @@
            }
            paid = paid.add(addDTO.getTransationAmount());
            contract.setPaidAmount(paid);
            if (paid.compareTo(contract.getAmount()) == 0&&contract.getBillingAmout().compareTo(contract.getAmount())==0) {
            if (paid.compareTo(contract.getAmount().subtract(contract.getDropAmount())) == 0&&contract.getBillingAmout().compareTo(contract.getAmount())==0) {
               contract.setContractStatus(3);
               contract.setPaidAmount(contract.getAmount());
               contract.setPaidAmount(contract.getAmount().subtract(contract.getDropAmount()));
            }
            contractService.updateById(contract);
         }else {
            List<ContractExecDate> execDateList = contractExecDateMapper.selectList(Wrappers.<ContractExecDate>lambdaQuery().eq(ContractExecDate::getContractId,contract.getId())
                  .eq(ContractExecDate::getGenFlag,"0"));
            List<MeterReadRecord> recordList = meterReadRecordMapper.selectList(Wrappers.<MeterReadRecord>lambdaQuery()
                  .eq(MeterReadRecord::getContractId,contract.getId())
                  .isNull(MeterReadRecord::getMeterReadNum));
            if (CollUtil.isEmpty(execDateList)&&CollUtil.isEmpty(recordList)){
            if (CollUtil.isEmpty(execDateList)){
               //更新合同已付款
               BigDecimal paid = new BigDecimal("0");
               if (ObjUtil.isNotNull(contract.getPaidAmount())) {
@@ -228,7 +225,7 @@
               }
               paid = paid.add(addDTO.getTransationAmount());
               contract.setPaidAmount(paid);
               if (contract.getAmount().compareTo(new BigDecimal("0"))==0&&paid.compareTo(contract.getAmount()) >= 0) {
               if (contract.getBillingAmout().compareTo(contract.getAmount())==0&&paid.compareTo(contract.getAmount().subtract(contract.getDropAmount())) >= 0) {
                  contract.setContractStatus(3);
                  contract.setPaidAmount(contract.getAmount());
               }