From eb33722b485afeab476bd8a27f3080bc6a470a41 Mon Sep 17 00:00:00 2001 From: linfso Date: Sun, 28 Jul 2024 20:13:13 +0800 Subject: [PATCH] md --- .../service/impl/EmisWaybillServiceImpl.java | 28 ++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java index 99358d38c..3ac6e8c32 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisWaybillServiceImpl.java @@ -96,6 +96,8 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb @Autowired private EmisWarehouseInMapper emisWarehouseInMapper; + private EmisExchangeRateMapper emisExchangeRateMapper; + /** * 直接数据查询运单列表 by billCode @@ -630,7 +632,6 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb } - // 新开单 if(isNew){ addNewWaybill(emisWaybillSave); @@ -1566,6 +1567,31 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb // 公共计算部分 calcWayBillCommonInfo(emisWaybillSave,true); + // 计算标准运费 + List feeitemList=emisWaybillSave.getFeeitemList(); + BigDecimal totalRealFee = BigDecimal.ZERO; + if(!CollectionUtils.isEmpty(feeitemList)){ + for (EmisWaybillFeeitem feeItem:feeitemList) { + + BigDecimal realFee = feeItem.getFee(); + + // 汇率计算 + if( !StringUtils.isEmpty(feeItem.getCurrency()) ){ + EmisExchangeRate emisExchangeRate=emisExchangeRateMapper.getValidExchangeRate(feeItem.getCurrency(),"CNY"); + if(emisExchangeRate!=null){ + BigDecimal rate=BigDecimal.valueOf(Double.valueOf(emisExchangeRate.getRate())); + realFee=realFee.multiply(rate); + realFee=realFee.setScale(2,BigDecimal.ROUND_HALF_UP); + } + } + + totalRealFee=totalRealFee.add(realFee); + } + + totalRealFee=totalRealFee.setScale(2,BigDecimal.ROUND_HALF_UP); + emisWaybillSave.setRealFee(totalRealFee); + } + //补齐数据 emisWaybillMapper.insertEmisWaybill(emisWaybillSave);