完成挂账管理相关需求

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