修改计费信息表结构

This commit is contained in:
wuweihua
2026-09-14 14:53:05 +08:00
parent 479b72b59f
commit 4bd95cb472
21 changed files with 378 additions and 137 deletions
@@ -1,16 +1,16 @@
package com.ruoyi.price.service;
import java.util.List;
import com.ruoyi.price.domain.PrcBill;
import com.ruoyi.price.domain.PrcOrderBill;
import com.ruoyi.price.domain.vo.TmsPriceBillRequest;
import com.ruoyi.price.domain.vo.TmsPriceQuoteResult;
/** Receivable billing from synced orders. Same price match as quote, persist prc_bill. */
public interface IPrcBillService
/** Order billing: persist prc_order_bill + prc_income_bill_fee. Same price match as quote. */
public interface IPrcOrderBillService
{
TmsPriceQuoteResult bill(TmsPriceBillRequest request);
List<PrcBill> selectBillList(PrcBill query);
List<PrcOrderBill> selectBillList(PrcOrderBill query);
TmsPriceQuoteResult getBill(String billId);
@@ -16,30 +16,30 @@ import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.MessageUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.sign.Md5Utils;
import com.ruoyi.price.domain.PrcBill;
import com.ruoyi.price.domain.PrcBillFee;
import com.ruoyi.price.domain.PrcIncomeBillFee;
import com.ruoyi.price.domain.PrcOrderBill;
import com.ruoyi.price.domain.vo.TmsPriceBillRequest;
import com.ruoyi.price.domain.vo.TmsPriceQuoteFeeLine;
import com.ruoyi.price.domain.vo.TmsPriceQuoteResult;
import com.ruoyi.price.mapper.PrcBillFeeMapper;
import com.ruoyi.price.mapper.PrcBillMapper;
import com.ruoyi.price.mapper.PrcIncomeBillFeeMapper;
import com.ruoyi.price.mapper.PrcOrderBillMapper;
import com.ruoyi.price.search.EsBizLogSupport;
import com.ruoyi.price.search.EsLogType;
import com.ruoyi.price.search.IBillSearchStore;
import com.ruoyi.price.service.IPrcBillService;
import com.ruoyi.price.service.IPrcOrderBillService;
import com.ruoyi.price.service.ITmsPriceQuoteService;
@Service
public class PrcBillServiceImpl implements IPrcBillService
public class PrcOrderBillServiceImpl implements IPrcOrderBillService
{
@Autowired
private ITmsPriceQuoteService tmsPriceQuoteService;
@Autowired
private PrcBillMapper billMapper;
private PrcOrderBillMapper orderBillMapper;
@Autowired
private PrcBillFeeMapper billFeeMapper;
private PrcIncomeBillFeeMapper incomeBillFeeMapper;
@Autowired
private IBillSearchStore billSearchStore;
@@ -73,9 +73,9 @@ public class PrcBillServiceImpl implements IPrcBillService
}
@Override
public List<PrcBill> selectBillList(PrcBill query)
public List<PrcOrderBill> selectBillList(PrcOrderBill query)
{
return billMapper.selectPrcBillList(query);
return orderBillMapper.selectPrcOrderBillList(query);
}
@Override
@@ -85,12 +85,12 @@ public class PrcBillServiceImpl implements IPrcBillService
{
throw new ServiceException(MessageUtils.message("price.bill.billIdRequired"));
}
PrcBill bill = billMapper.selectPrcBillById(billId);
PrcOrderBill bill = orderBillMapper.selectPrcOrderBillById(billId);
if (bill == null)
{
throw new ServiceException(MessageUtils.message("price.bill.notFound"));
}
return toResult(bill, billFeeMapper.selectByBillId(billId));
return toResult(bill, incomeBillFeeMapper.selectByBillId(billId));
}
@Override
@@ -100,12 +100,12 @@ public class PrcBillServiceImpl implements IPrcBillService
{
throw new ServiceException(MessageUtils.message("price.bill.orderNoRequired"));
}
PrcBill bill = billMapper.selectPrcBillByOrderNo(orderNo.trim());
PrcOrderBill bill = orderBillMapper.selectPrcOrderBillByOrderNo(orderNo.trim());
if (bill == null)
{
throw new ServiceException(MessageUtils.message("price.bill.notFound"));
}
return toResult(bill, billFeeMapper.selectByBillId(bill.getBillId()));
return toResult(bill, incomeBillFeeMapper.selectByBillId(bill.getBillId()));
}
private void persistBill(TmsPriceBillRequest request, BigDecimal weight, Date bizDate,
@@ -113,8 +113,8 @@ public class PrcBillServiceImpl implements IPrcBillService
{
String orderNo = request.getOrderNo();
String billKey = Md5Utils.hash(orderNo);
PrcBill existed = billMapper.selectPrcBillByOrderNo(orderNo);
PrcBill bill = existed == null ? new PrcBill() : existed;
PrcOrderBill existed = orderBillMapper.selectPrcOrderBillByOrderNo(orderNo);
PrcOrderBill bill = existed == null ? new PrcOrderBill() : existed;
if (existed == null)
{
bill.setBillId(UUID.randomUUID().toString());
@@ -165,41 +165,45 @@ public class PrcBillServiceImpl implements IPrcBillService
bill.setRegistrationFee(result.getRegistrationFee());
bill.setFreightAmount(result.getFreightAmount());
bill.setSurchargeAmount(result.getSurchargeAmount());
bill.setPayableTotal(result.getPayableTotal());
bill.setIncomeTotal(result.getPayableTotal());
bill.setPayTotal(result.getPayTotal() == null ? BigDecimal.ZERO : result.getPayTotal());
bill.setCurrency(result.getCurrency());
bill.setRoundMode(result.getRoundMode());
result.setBillId(bill.getBillId());
result.setOrderNo(orderNo);
result.setCustomerCode(request.getCustomerCode());
result.setIncomeTotal(bill.getIncomeTotal());
result.setPayTotal(bill.getPayTotal());
result.setPayableTotal(bill.getIncomeTotal());
fillResultOrder(result, bill);
result.setFromCache(Boolean.valueOf(existed != null));
if (existed == null)
{
billMapper.insertPrcBill(bill);
orderBillMapper.insertPrcOrderBill(bill);
}
else
{
billMapper.updatePrcBill(bill);
billFeeMapper.deleteByBillId(bill.getBillId());
orderBillMapper.updatePrcOrderBill(bill);
incomeBillFeeMapper.deleteByBillId(bill.getBillId());
}
List<PrcBillFee> fees = toFeeRows(bill.getBillId(), result);
List<PrcIncomeBillFee> fees = toFeeRows(bill.getBillId(), result);
if (!fees.isEmpty())
{
billFeeMapper.insertBatch(fees);
incomeBillFeeMapper.insertBatch(fees);
}
billSearchStore.save(EsLogType.BILL, orderNo, toRequestJson(request), toResponseJson(result));
}
private List<PrcBillFee> toFeeRows(String billId, TmsPriceQuoteResult result)
private List<PrcIncomeBillFee> toFeeRows(String billId, TmsPriceQuoteResult result)
{
List<PrcBillFee> fees = new ArrayList<PrcBillFee>();
List<PrcIncomeBillFee> fees = new ArrayList<PrcIncomeBillFee>();
if (result.getFeeDetails() == null)
{
return fees;
}
for (TmsPriceQuoteFeeLine line : result.getFeeDetails())
{
PrcBillFee fee = new PrcBillFee();
PrcIncomeBillFee fee = new PrcIncomeBillFee();
fee.setFeeId(UUID.randomUUID().toString());
fee.setBillId(billId);
fee.setFeeType(line.getFeeType());
@@ -214,7 +218,7 @@ public class PrcBillServiceImpl implements IPrcBillService
return fees;
}
private TmsPriceQuoteResult toResult(PrcBill bill, List<PrcBillFee> fees)
private TmsPriceQuoteResult toResult(PrcOrderBill bill, List<PrcIncomeBillFee> fees)
{
TmsPriceQuoteResult r = new TmsPriceQuoteResult();
r.setBillId(bill.getBillId());
@@ -248,14 +252,16 @@ public class PrcBillServiceImpl implements IPrcBillService
r.setRegistrationFee(bill.getRegistrationFee());
r.setFreightAmount(bill.getFreightAmount());
r.setSurchargeAmount(bill.getSurchargeAmount());
r.setPayableTotal(bill.getPayableTotal());
r.setIncomeTotal(bill.getIncomeTotal());
r.setPayTotal(bill.getPayTotal());
r.setPayableTotal(bill.getIncomeTotal());
r.setCurrency(bill.getCurrency());
r.setRoundMode(bill.getRoundMode());
r.setBizDate(bill.getBizDate());
List<TmsPriceQuoteFeeLine> lines = new ArrayList<TmsPriceQuoteFeeLine>();
if (fees != null)
{
for (PrcBillFee fee : fees)
for (PrcIncomeBillFee fee : fees)
{
TmsPriceQuoteFeeLine line = new TmsPriceQuoteFeeLine();
line.setFeeType(fee.getFeeType());
@@ -272,7 +278,7 @@ public class PrcBillServiceImpl implements IPrcBillService
return r;
}
private void fillResultOrder(TmsPriceQuoteResult r, PrcBill bill)
private void fillResultOrder(TmsPriceQuoteResult r, PrcOrderBill bill)
{
r.setTrackingNo(bill.getTrackingNo());
r.setCustomerName(bill.getCustomerName());