shiyunteng
2026-09-18 c5c284896ce6428cffc5092e9cdef4fefc23409f
platformx-business-finance-biz/src/main/java/com/by4cloud/platformx/business/service/impl/MeterReadRecordServiceImpl.java
@@ -1,7 +1,7 @@
package com.by4cloud.platformx.business.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.ObjUtil;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -15,6 +15,8 @@
import java.math.BigDecimal;
import java.util.List;
;
/**
 * 水电抄表
@@ -98,6 +100,7 @@
      schedule.setPaymentStatus(0);
      schedule.setActualAmount(new BigDecimal("0"));
      schedule.setInvoiceFlag("0");
      schedule.setInvoiceNum(record.getUsageNum());
      contractPaymentScheduleMapper.insert(schedule);
      //房屋租赁生成应收
      PaymentConfirm confirm = new PaymentConfirm();
@@ -131,13 +134,16 @@
         confirm.setCompId(contract.getCompId());
         paymentConfirmMapper.insert(confirm);
      }
      contract.setBillingStatus("2");
      contract.setAmount(contract.getAmount().add(confirm.getTransationAmount()));
      contractMapper.updateById(contract);
      //判断 循环是否完成
      List<ContractExecDate> execDateList = contractExecDateMapper.selectList(Wrappers.<ContractExecDate>lambdaQuery().eq(ContractExecDate::getContractId,contract.getId())
            .eq(ContractExecDate::getGenFlag,"0"));
      List<MeterReadRecord> recordList = baseMapper.selectList(Wrappers.<MeterReadRecord>lambdaQuery()
            .eq(MeterReadRecord::getContractId,contract.getId())
            .isNull(MeterReadRecord::getMeterReadNum));
      if (ArrayUtil.isEmpty(execDateList.toArray())&&ArrayUtil.isEmpty(recordList.toArray())){
      if (CollUtil.isEmpty(execDateList)&& CollUtil.isEmpty(recordList)){
         List<PaymentConfirm> confirmList = paymentConfirmMapper.selectList(Wrappers.<PaymentConfirm>lambdaQuery()
               .eq(PaymentConfirm::getContractId, contract.getId())
               .and(wrapper -> wrapper
@@ -147,7 +153,7 @@
                     .or()
                     .eq(PaymentConfirm::getBusinessType, "不征税自来水应收")
               ));
         if (ArrayUtil.isNotEmpty(confirmList.toArray())){
         if (CollUtil.isNotEmpty(confirmList)){
            BigDecimal total = confirmList.stream().map(PaymentConfirm::getTransationAmount).filter(amount -> amount != null).reduce(BigDecimal.ZERO, BigDecimal::add);
            contract.setAmount(total);
            contractMapper.updateById(contract);