yupeng
2025-02-28 8f236a170f6693d3fc7a87646e52e29ec9bbe299
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TBillServiceImpl.java
@@ -18,8 +18,6 @@
import com.ruoyi.system.query.TInvoiceToBillQuery;
import com.ruoyi.system.service.*;
import com.taxi591.bankapi.dto.ChargeBillRequest;
import com.tencentcloudapi.sms.v20190711.SmsClient;
import com.tencentcloudapi.sms.v20190711.models.SendSmsRequest;
import lombok.extern.slf4j.Slf4j;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeanUtils;
@@ -29,12 +27,15 @@
import javax.annotation.Resource;
import javax.validation.constraints.NotEmpty;
import java.util.*;
import java.util.stream.Collectors;
import java.math.BigDecimal;
import java.text.ParseException;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import java.util.function.Consumer;
import java.util.stream.Collectors;
/**
 * <p>
@@ -169,7 +170,7 @@
                            BigDecimal result = presist.getPayFeesMoney().add(tBill.getPayFeesMoney());
                            save.setPayFeesMoney(result);
                            //缴费后的欠费 =(应缴费+违约金)-已缴费金额
                            BigDecimal outstand = save.getPayableFeesMoney()
                            BigDecimal outstand = presist.getPayableFeesMoney()
                                    .add(presist.getPayableFeesPenalty())
                                    .subtract(save.getPayFeesMoney());
                            save.setOutstandingMoney(outstand);
@@ -241,7 +242,7 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean checkOfflinePay(OfflinePayCheckDto dto) {
        TBankFlow bankflow = tBankFlowService.getById(dto.getTBankFlow().getId());
        TBankFlow bankflow = tBankFlowService.getById(dto.getFlowId());
        TBillDto bill = getDetailByBillId(dto.getBillId());
        if (bankflow.getRemainingMoney().compareTo(BigDecimal.ZERO)<=0){
            throw new ServiceException("该流水已无可抵扣剩余金额");
@@ -257,8 +258,8 @@
        TBill billSave = new TBill();
        billSave.setId(bill.getId());
        billSave.setPayFeesMoney(dto.getAmount());
        billSave.setBankSerialNumber(dto.getTBankFlow().getBankSerialNumber());
        billSave.setPayFeesTime(dto.getTBankFlow().getPayTime());
        billSave.setBankSerialNumber(bankflow.getBankSerialNumber());
        billSave.setPayFeesTime(bankflow.getPayTime());
        billSave.setVoucher(dto.getVoucher());
        billSave.setPayFeesType(2);
        TBill back = lockAndUpdateInfo(billSave, 2);
@@ -273,8 +274,8 @@
        TFlowManagement save = new TFlowManagement();
        save.setPayType(3);
        save.setPayer(dto.getPayer());
        save.setPayTime(dto.getTBankFlow().getPayTime());
        save.setBankSerialNumber(dto.getTBankFlow().getBankSerialNumber());
        save.setPayTime(bankflow.getPayTime());
        save.setBankSerialNumber(bankflow.getBankSerialNumber());
        save.setFlowType(2);
        save.setPaymentBillId(back.getId());
        save.setDeductionMoney(back.getDeductionMoney());
@@ -358,16 +359,18 @@
     * @return
     */
    @Override
    public PageInfo<TBill> getBillByInvoiceId(String invoiceId){
        invoiceId = "1889552849671061505";
        PageInfo<TBill> pageInfo = new PageInfo<>();
        ArrayList<TBill> bills = new ArrayList<>();
    public PageInfo<TBillDto> getBillByInvoiceId(String invoiceId){
        PageInfo<TBillDto> pageInfo = new PageInfo<>();
        ArrayList<TBillDto> bills = new ArrayList<>();
        TInvoiceToBillQuery query = new TInvoiceToBillQuery();
        query.setInvoiceId(invoiceId);
        List<TInvoiceToBill> tInvoiceToBills = tInvoiceToBillService.makeQuery(query);
        for (TInvoiceToBill tInvoiceToBill : tInvoiceToBills) {
            TBill byId = getById(tInvoiceToBill.getBillId());
            bills.add(byId);
            TBill bill = getById(tInvoiceToBill.getBillId());
            if (bill != null && bill.getId() != null){
                TBillDto detailByBillId = getDetailByBillId(bill.getId());
                bills.add(detailByBillId);
            }
        }
        pageInfo.setRecords(bills);
        return pageInfo;
@@ -448,7 +451,10 @@
        TBill back = null;
        TBankFlow bankflow = null;
        if (dto.getPayType()==1){
            bankflow = tBankFlowService.getById(dto.getTBankFlow().getId());
            if (StringUtils.isEmpty(dto.getFlowId())){
                throw new ServiceException("银行流水不能为空");
            }
            bankflow = tBankFlowService.getById(dto.getFlowId());
            TBillDto bill = getDetailByBillId(dto.getBillId());
            if (bankflow.getRemainingMoney().compareTo(BigDecimal.ZERO)<=0){
                throw new ServiceException("该流水已无可抵扣剩余金额");
@@ -465,8 +471,8 @@
        TBill billSave = new TBill();
        billSave.setId(bill.getId());
        billSave.setPayFeesMoney(dto.getAmount());
        billSave.setBankSerialNumber(dto.getTBankFlow().getBankSerialNumber());
        billSave.setPayFeesTime(dto.getTBankFlow().getPayTime());
        billSave.setBankSerialNumber(bankflow!=null?bankflow.getBankSerialNumber():null);
        billSave.setPayFeesTime(bankflow!=null?bankflow.getPayTime():DateUtils.dateToLocalDateTime(new Date()));
        billSave.setVoucher(dto.getVoucher());
        billSave.setPayFeesType(2);
        back = lockAndUpdateInfo(billSave, 2);
@@ -482,8 +488,8 @@
        TFlowManagement save = new TFlowManagement();
        save.setPayType(3);
        save.setPayer(dto.getPayer());
        save.setPayTime(dto.getTBankFlow().getPayTime());
        save.setBankSerialNumber(dto.getTBankFlow().getBankSerialNumber());
        save.setPayTime(bankflow!=null?bankflow.getPayTime():DateUtils.dateToLocalDateTime(new Date()));
        save.setBankSerialNumber(bankflow!=null?bankflow.getBankSerialNumber():null);
        save.setFlowType(dto.getPayType()==1?2:1);
        save.setPaymentBillId(back.getId());
        save.setDeductionMoney(back.getDeductionMoney());