完成挂账管理相关需求

This commit is contained in:
谭凯凯 2024-11-26 16:05:04 +08:00 committed by Tankaikai
parent 8ed0eddde9
commit 11a089a535
1 changed files with 14 additions and 0 deletions

View File

@ -14,8 +14,10 @@ import cn.ysk.cashier.dto.credit.CreditBuyerOrderDTO;
import cn.ysk.cashier.exception.BadRequestException;
import cn.ysk.cashier.mybatis.entity.TbCreditBuyer;
import cn.ysk.cashier.mybatis.entity.TbCreditBuyerOrder;
import cn.ysk.cashier.mybatis.entity.TbCreditPaymentRecord;
import cn.ysk.cashier.mybatis.mapper.TbCreditBuyerMapper;
import cn.ysk.cashier.mybatis.mapper.TbCreditBuyerOrderMapper;
import cn.ysk.cashier.mybatis.mapper.TbCreditPaymentRecordMapper;
import cn.ysk.cashier.mybatis.service.TbCreditBuyerService;
import cn.ysk.cashier.utils.PageUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -41,6 +43,7 @@ public class TbCreditBuyerServiceImpl extends ServiceImpl<TbCreditBuyerMapper, T
@Resource
private TbCreditBuyerOrderMapper tbCreditBuyerOrderMapper;
private TbCreditPaymentRecordMapper tbCreditPaymentRecordMapper;
private LambdaQueryWrapper<TbCreditBuyer> getWrapper(Map<String, Object> params) {
MapProxy mapProxy = MapProxy.create(params);
@ -221,6 +224,8 @@ public class TbCreditBuyerServiceImpl extends ServiceImpl<TbCreditBuyerMapper, T
for (CreditBuyerOrderDTO dto : orderList) {
// 未付款金额
BigDecimal unpaidAmount = dto.getUnpaidAmount();
// 记录还款记录
TbCreditPaymentRecord record = new TbCreditPaymentRecord();
if (NumberUtil.isGreaterOrEqual(repaymentAmount, unpaidAmount)) {
// 还全额
tbCreditBuyerOrderMapper.update(Wrappers.<TbCreditBuyerOrder>lambdaUpdate()
@ -235,6 +240,7 @@ public class TbCreditBuyerServiceImpl extends ServiceImpl<TbCreditBuyerMapper, T
.set(TbCreditBuyerOrder::getLastPaymentMethod, param.getPaymentMethod())
.set(TbCreditBuyerOrder::getLastPaymentTime, new Date())
);
record.setRepaymentAmount(unpaidAmount);
repaymentAmount = NumberUtil.sub(repaymentAmount, unpaidAmount);
} else if (NumberUtil.isLess(repaymentAmount, unpaidAmount)) {
// 还部分
@ -250,8 +256,16 @@ public class TbCreditBuyerServiceImpl extends ServiceImpl<TbCreditBuyerMapper, T
.set(TbCreditBuyerOrder::getLastPaymentMethod, param.getPaymentMethod())
.set(TbCreditBuyerOrder::getLastPaymentTime, new Date())
);
record.setRepaymentAmount(repaymentAmount);
repaymentAmount = BigDecimal.ZERO;
}
record.setCreditBuyerId(dto.getCreditBuyerId());
record.setOrderId(dto.getOrderId());
record.setPaymentMethod(param.getPaymentMethod());
record.setCreateTime(new Date());
record.setPaymentTime(new Date());
record.setRemark(param.getRemark());
tbCreditPaymentRecordMapper.insert(record);
repaymentCount++;
if (NumberUtil.equals(repaymentAmount, BigDecimal.ZERO)) {
break;