From dd1002e732270a93785ea62a231ae83e68552605 Mon Sep 17 00:00:00 2001 From: linfso Date: Fri, 28 Jun 2024 13:09:05 +0800 Subject: [PATCH] md --- .../erp/emis/service/EmisBaseService.java | 1 + .../service/impl/EmisWaybillServiceImpl.java | 23 +++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java index 8fdb72d19..90cda03f2 100644 --- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java +++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/EmisBaseService.java @@ -445,6 +445,7 @@ public class EmisBaseService { * @param areaId * @return */ + @Deprecated public EmisDestination getDestinationByCountryOrAreaId(String countryCode,Long areaId){ EmisDestination destination=null; 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 d85b2eba0..c1f28091b 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 @@ -1169,14 +1169,22 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb double totalFee = 0.0D; List feeList = new ArrayList<>(); - + Map feeTypeMap = new HashMap<>(); for (EmisQuotePrice quoteItem: emisQuotePriceList) { + // 不允许重复 + if(feeTypeMap.containsKey(quoteItem.getFeeType())){ + continue; + } + + List exprList = quoteItem.getExprList(); if(CollectionUtils.isEmpty(exprList)){ continue; } + + // 判断是否要计算报关费 只有一般贸易报关需要收取报关费 // 2002-报关费 3-一般报关 if( "2002".equals(quoteItem.getFeeType()) ){ @@ -1193,8 +1201,8 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb } } + EmisWaybillFeeitem feeItem = null; - EmisWaybillFeeitem feeItem = new EmisWaybillFeeitem(); // 重量计费 , 一口价 if("1".equals(calcFeeType) || "3".equals(calcFeeType)){ for (EmisQuoteExpression exprItem: exprList) { @@ -1203,6 +1211,8 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb if( exprItem.getStartWeight().doubleValue() < emisWaybill.getSettlementWeight().doubleValue() && exprItem.getEndWeight().doubleValue() >= emisWaybill.getSettlementWeight().doubleValue() ){ + + feeItem = new EmisWaybillFeeitem(); feeItem.setFeeCode(quoteItem.getFeeType()); String feeName=DictUtils.getDictLabel("emis_fee_type",quoteItem.getFeeType()); feeItem.setFeeName(feeName); @@ -1263,6 +1273,9 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb exprItem.getStartWeight().doubleValue() < emisWaybill.getTotalVolume().doubleValue() && exprItem.getEndWeight().doubleValue() >= emisWaybill.getTotalVolume().doubleValue() ){ + + feeItem = new EmisWaybillFeeitem(); + feeItem.setFeeCode(quoteItem.getFeeType()); String feeName=DictUtils.getDictLabel("emis_fee_type",quoteItem.getFeeType()); feeItem.setFeeName(feeName); @@ -1294,13 +1307,15 @@ public class EmisWaybillServiceImpl extends EmisBaseService implements IEmisWayb feeItem.setRemark(feeItem.getCalcExp()); feeItem.setBlAutoGen("1"); - feeList.add(feeItem); - break; } } } + if(feeItem.getFee().compareTo(BigDecimal.ZERO)!=0) { + feeList.add(feeItem); + } + } // 设置费用明细