供应商 付款金额 负数问题

付款记录
购物车回滚库存问题
日库存记录 定时任务
This commit is contained in:
2024-07-01 18:11:26 +08:00
parent 7bf66ab106
commit 7ea3ee3ec0
10 changed files with 194 additions and 27 deletions

View File

@@ -2,7 +2,10 @@ package cn.ysk.cashier.service.impl.shopimpl;
import cn.ysk.cashier.dto.shop.TbShopPurveyorTransactDto;
import cn.ysk.cashier.dto.shop.TbShopPurveyorTransactQueryCriteria;
import cn.ysk.cashier.exception.BadRequestException;
import cn.ysk.cashier.mapper.shop.TbShopPurveyorTransactMapper;
import cn.ysk.cashier.mybatis.entity.TbShopPurveyorTransactPay;
import cn.ysk.cashier.mybatis.service.TbShopPurveyorTransactPayService;
import cn.ysk.cashier.pojo.shop.TbShopPurveyorTransact;
import cn.ysk.cashier.repository.shop.TbShopPurveyorRepository;
import cn.ysk.cashier.repository.shop.TbShopPurveyorTransactRepository;
@@ -21,6 +24,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.*;
/**
@@ -36,6 +40,7 @@ public class TbShopPurveyorTransactServiceImpl implements TbShopPurveyorTransact
private final TbShopPurveyorTransactRepository tbShopPurveyorTransactRepository;
private final TbShopPurveyorTransactMapper tbShopPurveyorTransactMapper;
private final TbShopPurveyorRepository tbShopPurveyorRepository;
private final TbShopPurveyorTransactPayService transactPayService;
@Override
public Map<String, Object> queryPurveyorTransact(TbShopPurveyorTransactQueryCriteria criteria) {
@@ -103,7 +108,17 @@ public class TbShopPurveyorTransactServiceImpl implements TbShopPurveyorTransact
TbShopPurveyorTransact tbShopPurveyorTransact = tbShopPurveyorTransactRepository.findById(resources.getId()).orElseGet(TbShopPurveyorTransact::new);
ValidationUtil.isNull(tbShopPurveyorTransact.getId(), "TbShopPurveyorTransact", "id", resources.getId());
tbShopPurveyorTransact.setPaidAmount(tbShopPurveyorTransact.getPaidAmount().add(resources.getPaidAmount()));
tbShopPurveyorTransact.setWaitAmount(tbShopPurveyorTransact.getWaitAmount().subtract(resources.getPaidAmount()));
if (resources.getPaidAmount().compareTo(BigDecimal.ZERO) == 0) {
throw new BadRequestException("付款金额不能为 0");
} else {
if (tbShopPurveyorTransact.getWaitAmount().compareTo(BigDecimal.ZERO) > 0 && resources.getPaidAmount().compareTo(BigDecimal.ZERO) > 0) {//待付款金额大于0
tbShopPurveyorTransact.setWaitAmount(tbShopPurveyorTransact.getWaitAmount().subtract(resources.getPaidAmount()));
} else if (tbShopPurveyorTransact.getWaitAmount().compareTo(BigDecimal.ZERO) < 0 && resources.getPaidAmount().compareTo(BigDecimal.ZERO) < 0) {
tbShopPurveyorTransact.setWaitAmount(tbShopPurveyorTransact.getWaitAmount().subtract(resources.getPaidAmount()));
} else {
tbShopPurveyorTransact.setWaitAmount(tbShopPurveyorTransact.getWaitAmount().add(resources.getPaidAmount()));
}
}
tbShopPurveyorTransact.setPaidAt(System.currentTimeMillis());
if (tbShopPurveyorTransact.getWaitAmount().compareTo(tbShopPurveyorTransact.getPaidAmount()) <= 0) {
tbShopPurveyorTransact.setStatus(1);
@@ -112,6 +127,7 @@ public class TbShopPurveyorTransactServiceImpl implements TbShopPurveyorTransact
}
tbShopPurveyorTransact.setPayType(resources.getPayType());
tbShopPurveyorTransactRepository.save(tbShopPurveyorTransact);
transactPayService.save(new TbShopPurveyorTransactPay(resources.getId(),resources.getPayType(),resources.getPaidAmount(),resources.getRemark(),new Date()));
}