|
|
@@ -1798,200 +1798,20 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
*/
|
|
|
@Override
|
|
|
public Map<String, Object> calculationDomesticFees(Order order) {
|
|
|
-
|
|
|
- //客户
|
|
|
- List<CorpsDesc> corpsDescList = castToList(redisTemplate.opsForValue().get("corps"), CorpsDesc.class);
|
|
|
- //总费用
|
|
|
- BigDecimal amount = new BigDecimal(0);
|
|
|
- //分摊金额
|
|
|
- BigDecimal amountF = new BigDecimal(0);
|
|
|
+ List<Map<String,Object>> mapList = new ArrayList<>();
|
|
|
+ if (order.getDomesticAbroad().equals("1")){
|
|
|
+ order.setDomesticAbroad("1");
|
|
|
+ List<Map<String,Object>> mapList1 = calculationDomestic(order,1);
|
|
|
+ mapList.addAll(mapList1);
|
|
|
+ order.setDomesticAbroad("2");
|
|
|
+ List<Map<String,Object>> mapList2 = calculationDomestic(order,1);
|
|
|
+ mapList.addAll(mapList2);
|
|
|
+ }else{
|
|
|
+ List<Map<String,Object>> mapList2 = calculationDomestic(order,2);
|
|
|
+ mapList.addAll(mapList2);
|
|
|
+ }
|
|
|
//返回数据
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
- //应收集合
|
|
|
- List<Map<String, Object>> mapList = new ArrayList<>();
|
|
|
-
|
|
|
- //获取费用主表信息
|
|
|
- LambdaQueryWrapper<OrderCost> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- lambdaQueryWrapper.eq(OrderCost::getGoodsAttribute, order.getCargoType())
|
|
|
- .eq(OrderCost::getOutHarborName, order.getPortOfLoad());
|
|
|
- if (order.getDomesticAbroad().equals("2")) {//判断是否计算国际费用
|
|
|
- lambdaQueryWrapper.eq(OrderCost::getObjectiveName, order.getPortOfDestination());
|
|
|
- }
|
|
|
- lambdaQueryWrapper.eq(OrderCost::getStatus, 0)
|
|
|
- .eq(OrderCost::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(OrderCost::getIsDeleted, 0);
|
|
|
- //明细数据
|
|
|
- List<OrderItems> orderItemsList = order.getOrderItemsList();
|
|
|
- //获取费用主表信息
|
|
|
- List<OrderCost> orderCostList = orderCostMapper.selectList(lambdaQueryWrapper);
|
|
|
- //国内费用追加海运费
|
|
|
- if(order.getDomesticAbroad().equals("1")){
|
|
|
- //获取费用主表信息
|
|
|
- LambdaQueryWrapper<OrderCost> lambdaQueryWrappers = new LambdaQueryWrapper<>();
|
|
|
- lambdaQueryWrappers.eq(OrderCost::getGoodsAttribute, order.getCargoType())
|
|
|
- .eq(OrderCost::getOutHarborName, order.getPortOfLoad());
|
|
|
- lambdaQueryWrappers.eq(OrderCost::getObjectiveName, order.getPortOfDestination());
|
|
|
- lambdaQueryWrappers.eq(OrderCost::getStatus, 0)
|
|
|
- .eq(OrderCost::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(OrderCost::getIsDeleted, 0);
|
|
|
- //获取费用主表信息
|
|
|
- List<OrderCost> orderCostLists = orderCostMapper.selectList(lambdaQueryWrapper);
|
|
|
- orderCostList.addAll(orderCostLists);
|
|
|
- }
|
|
|
- for (OrderCost orderCost : orderCostList) {
|
|
|
- //获取费用明细
|
|
|
- LambdaQueryWrapper<OrderCostItem> itemLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- itemLambdaQueryWrapper.eq(OrderCostItem::getPId, orderCost.getId());
|
|
|
- if (order.getDomesticAbroad().equals("1")) {//判断是否计算国际费用
|
|
|
- //获取明细第一条供应商所在地
|
|
|
- if (ObjectUtils.isNotNull(orderItemsList)) {
|
|
|
- Long corpId = orderItemsList.get(0).getCorpId();
|
|
|
- //供应商
|
|
|
- CorpsDesc corpsDesc = corpsDescList.stream().filter(corps -> corps.getId().equals(corpId)).findFirst().orElse(null);
|
|
|
- if (ObjectUtils.isNotNull(corpsDesc) && ObjectUtils.isNotNull(corpsDesc.getBelongtoarea())) {
|
|
|
- itemLambdaQueryWrapper.apply("find_in_set(departure,'" + corpsDesc.getBelongtoarea() + "')");//明细供应商所在地址
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- itemLambdaQueryWrapper.eq(OrderCostItem::getStatus, 0)
|
|
|
- .eq(OrderCostItem::getTenantId, AuthUtil.getTenantId())
|
|
|
- .eq(OrderCostItem::getIsDeleted, 0);
|
|
|
- //获取费用明细
|
|
|
- List<OrderCostItem> orderCostItemList = orderCostItemMapper.selectList(itemLambdaQueryWrapper);
|
|
|
- for (OrderCostItem orderCostItem : orderCostItemList) {
|
|
|
- Map<String, Object> feesMap = new HashMap<>();
|
|
|
- feesMap.put("feeName", orderCostItem.getFeesName());
|
|
|
- feesMap.put("itemId", orderCostItem.getFeesId());
|
|
|
-
|
|
|
- //判断是否计算国内费用
|
|
|
- if (order.getDomesticAbroad().equals("1") && orderCostItem.getCurrency().equals("CNY")) {
|
|
|
- feesMap.put("currency", "CNY");
|
|
|
- feesMap.put("exchangeRate", "1.00");
|
|
|
- //陆运费
|
|
|
- if (orderCostItem.getType() == 1) {
|
|
|
- feesMap.put("quantity", order.getBoxNumber());
|
|
|
- //陆运费=箱型费用*箱量/汇率
|
|
|
- if ("20GP".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getTwentyGp().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "20GP");
|
|
|
- feesMap.put("price", orderCostItem.getTwentyGp());
|
|
|
- } else if ("40GP".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getFortyGp().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "40GP");
|
|
|
- feesMap.put("price", orderCostItem.getFortyGp());
|
|
|
- } else if ("40HC".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getFortyHc().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "40HC");
|
|
|
- feesMap.put("price", orderCostItem.getFortyHc());
|
|
|
- } else if ("45GP".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getFortyFiveGp().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "45GP");
|
|
|
- feesMap.put("price", orderCostItem.getFortyFiveGp());
|
|
|
- } else if ("PALLET".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getPallet().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "PALLET");
|
|
|
- feesMap.put("price", orderCostItem.getPallet());
|
|
|
- }
|
|
|
- } else if (orderCostItem.getType() == 2) {//运费
|
|
|
- feesMap.put("quantity", order.getBoxNumber());
|
|
|
- //运费=箱型费用*箱量/汇率 || 箱型费用*箱量
|
|
|
- if ("20GP".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getTwentyGp().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "20GP");
|
|
|
- feesMap.put("price", orderCostItem.getTwentyGp());
|
|
|
- } else if ("40GP".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getFortyGp().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "40GP");
|
|
|
- feesMap.put("price", orderCostItem.getFortyGp());
|
|
|
- } else if ("40HC".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getFortyHc().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "40HC");
|
|
|
- feesMap.put("price", orderCostItem.getFortyHc());
|
|
|
- }
|
|
|
- } else if (orderCostItem.getType() == 3) {//杂费
|
|
|
- //杂费 = 票费用/汇率 || 票费用
|
|
|
- amount = amount.add(orderCostItem.getTicket());
|
|
|
- feesMap.put("unit", "JOB");
|
|
|
- feesMap.put("price", orderCostItem.getTicket());
|
|
|
- feesMap.put("quantity", 1);
|
|
|
- }
|
|
|
- mapList.add(feesMap);
|
|
|
- } else if (order.getDomesticAbroad().equals("2") && orderCostItem.getCurrency().equals("USD")) {
|
|
|
- feesMap.put("currency", "USD");
|
|
|
- feesMap.put("exchangeRate", order.getExchangeRate());
|
|
|
- //陆运费
|
|
|
- if (orderCostItem.getType() == 1) {
|
|
|
- feesMap.put("quantity", order.getBoxNumber());
|
|
|
- //陆运费=箱型费用*箱量/汇率
|
|
|
- if ("20GP".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getTwentyGp().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "20GP");
|
|
|
- feesMap.put("price", orderCostItem.getTwentyGp());
|
|
|
- } else if ("40GP".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getFortyGp().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "40GP");
|
|
|
- feesMap.put("price", orderCostItem.getFortyGp());
|
|
|
- } else if ("40HC".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getFortyHc().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "40HC");
|
|
|
- feesMap.put("price", orderCostItem.getFortyHc());
|
|
|
- } else if ("45GP".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getFortyFiveGp().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "45GP");
|
|
|
- feesMap.put("price", orderCostItem.getFortyFiveGp());
|
|
|
- } else if ("PALLET".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getPallet().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "PALLET");
|
|
|
- feesMap.put("price", orderCostItem.getPallet());
|
|
|
- }
|
|
|
- } else if (orderCostItem.getType() == 2) {//运费
|
|
|
- feesMap.put("quantity", order.getBoxNumber());
|
|
|
- //运费=箱型费用*箱量/汇率 || 箱型费用*箱量
|
|
|
- if ("20GP".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getTwentyGp().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "20GP");
|
|
|
- feesMap.put("price", orderCostItem.getTwentyGp());
|
|
|
- } else if ("40GP".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getFortyGp().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "40GP");
|
|
|
- feesMap.put("price", orderCostItem.getFortyGp());
|
|
|
- } else if ("40HC".equals(order.getBoxPile())) {
|
|
|
- amount = amount.add(orderCostItem.getFortyHc().multiply(order.getBoxNumber()));
|
|
|
- feesMap.put("unit", "40HC");
|
|
|
- feesMap.put("price", orderCostItem.getFortyHc());
|
|
|
- }
|
|
|
- } else if (orderCostItem.getType() == 3) {//杂费
|
|
|
- //杂费 = 票费用/汇率 || 票费用
|
|
|
- amount = amount.add(orderCostItem.getTicket());
|
|
|
- feesMap.put("unit", "JOB");
|
|
|
- feesMap.put("price", orderCostItem.getTicket());
|
|
|
- feesMap.put("quantity", 1);
|
|
|
- }
|
|
|
- mapList.add(feesMap);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-// //分摊费用额 = 总费用/总货值
|
|
|
-// if (!amount.equals(new BigDecimal(0))) {
|
|
|
-// if (order.getDomesticAbroad().equals("1") && order.getCurrency().equals("CNY")) {
|
|
|
-// amount = amount;
|
|
|
-// } else if (order.getDomesticAbroad().equals("1") && order.getCurrency().equals("USD")) {
|
|
|
-// amount = amount.divide(order.getExchangeRate(), MathContext.DECIMAL32);
|
|
|
-// } else if (order.getDomesticAbroad().equals("2") && order.getCurrency().equals("CNY")) {
|
|
|
-// amount = amount.multiply(order.getExchangeRate(), MathContext.DECIMAL32);
|
|
|
-// } else if (order.getDomesticAbroad().equals("2") && order.getCurrency().equals("USD")) {
|
|
|
-// amount = amount;
|
|
|
-// }
|
|
|
-// if(ObjectUtils.isNotNull(order.getTotalValue()) || !order.getTotalValue().equals(new BigDecimal("0.00"))){
|
|
|
-// amountF = amount.divide(order.getTotalValue(), MathContext.DECIMAL32);
|
|
|
-// amountF = amountF.setScale(8, BigDecimal.ROUND_HALF_UP);
|
|
|
-// amount = amount.setScale(8, BigDecimal.ROUND_HALF_UP);
|
|
|
-// }else{
|
|
|
-// throw new RuntimeException("总货值为0");
|
|
|
-// }
|
|
|
-// }
|
|
|
-// map.put("amount", amount.toString());
|
|
|
-// map.put("amountF", amountF.toString());
|
|
|
map.put("fees", mapList);
|
|
|
return map;
|
|
|
}
|
|
|
@@ -3149,6 +2969,227 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public List<Map<String,Object>> calculationDomestic(Order order,int type) {
|
|
|
+
|
|
|
+ //应收集合
|
|
|
+ List<Map<String, Object>> mapList = new ArrayList<>();
|
|
|
+
|
|
|
+ //客户
|
|
|
+ List<CorpsDesc> corpsDescList = castToList(redisTemplate.opsForValue().get("corps"), CorpsDesc.class);
|
|
|
+ //总费用
|
|
|
+ BigDecimal amount = new BigDecimal(0);
|
|
|
+ //分摊金额
|
|
|
+ BigDecimal amountF = new BigDecimal(0);
|
|
|
+
|
|
|
+ //获取费用主表信息
|
|
|
+ LambdaQueryWrapper<OrderCost> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ lambdaQueryWrapper.eq(OrderCost::getGoodsAttribute, order.getCargoType())
|
|
|
+ .eq(OrderCost::getOutHarborName, order.getPortOfLoad());
|
|
|
+ if (order.getDomesticAbroad().equals("2")) {//判断是否计算国际费用
|
|
|
+ lambdaQueryWrapper.eq(OrderCost::getObjectiveName, order.getPortOfDestination());
|
|
|
+ }
|
|
|
+ lambdaQueryWrapper.eq(OrderCost::getStatus, 0)
|
|
|
+ .eq(OrderCost::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(OrderCost::getIsDeleted, 0);
|
|
|
+ //明细数据
|
|
|
+ List<OrderItems> orderItemsList = order.getOrderItemsList();
|
|
|
+ //获取费用主表信息
|
|
|
+ List<OrderCost> orderCostList = orderCostMapper.selectList(lambdaQueryWrapper);
|
|
|
+ for (OrderCost orderCost : orderCostList) {
|
|
|
+ //获取费用明细
|
|
|
+ LambdaQueryWrapper<OrderCostItem> itemLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ itemLambdaQueryWrapper.eq(OrderCostItem::getPId, orderCost.getId());
|
|
|
+ if (order.getDomesticAbroad().equals("1")) {//判断是否计算国际费用
|
|
|
+ //获取明细第一条供应商所在地
|
|
|
+ if (ObjectUtils.isNotNull(orderItemsList)) {
|
|
|
+ Long corpId = orderItemsList.get(0).getCorpId();
|
|
|
+ //供应商
|
|
|
+ CorpsDesc corpsDesc = corpsDescList.stream().filter(corps -> corps.getId().equals(corpId)).findFirst().orElse(null);
|
|
|
+ if (ObjectUtils.isNotNull(corpsDesc) && ObjectUtils.isNotNull(corpsDesc.getBelongtoarea())) {
|
|
|
+ itemLambdaQueryWrapper.apply("find_in_set(departure,'" + corpsDesc.getBelongtoarea() + "')");//明细供应商所在地址
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ itemLambdaQueryWrapper.eq(OrderCostItem::getStatus, 0)
|
|
|
+ .eq(OrderCostItem::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(OrderCostItem::getIsDeleted, 0);
|
|
|
+ //获取费用明细
|
|
|
+ List<OrderCostItem> orderCostItemList = orderCostItemMapper.selectList(itemLambdaQueryWrapper);
|
|
|
+ for (OrderCostItem orderCostItem : orderCostItemList) {
|
|
|
+ Map<String, Object> feesMap = new HashMap<>();
|
|
|
+ feesMap.put("feeName", orderCostItem.getFeesName());
|
|
|
+ feesMap.put("itemId", orderCostItem.getFeesId());
|
|
|
+
|
|
|
+ //判断是否计算国内费用
|
|
|
+ if (order.getDomesticAbroad().equals("1") && orderCostItem.getCurrency().equals("CNY")) {
|
|
|
+ feesMap.put("currency", "CNY");
|
|
|
+ feesMap.put("exchangeRate", "1.00");
|
|
|
+ //陆运费
|
|
|
+ if (orderCostItem.getType() == 1) {
|
|
|
+ feesMap.put("quantity", order.getBoxNumber());
|
|
|
+ //陆运费=箱型费用*箱量/汇率
|
|
|
+ if ("20GP".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getTwentyGp().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "20GP");
|
|
|
+ feesMap.put("price", orderCostItem.getTwentyGp());
|
|
|
+ } else if ("40GP".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getFortyGp().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "40GP");
|
|
|
+ feesMap.put("price", orderCostItem.getFortyGp());
|
|
|
+ } else if ("40HC".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getFortyHc().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "40HC");
|
|
|
+ feesMap.put("price", orderCostItem.getFortyHc());
|
|
|
+ } else if ("45GP".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getFortyFiveGp().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "45GP");
|
|
|
+ feesMap.put("price", orderCostItem.getFortyFiveGp());
|
|
|
+ } else if ("PALLET".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getPallet().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "PALLET");
|
|
|
+ feesMap.put("price", orderCostItem.getPallet());
|
|
|
+ }
|
|
|
+ } else if (orderCostItem.getType() == 2) {//运费
|
|
|
+ feesMap.put("quantity", order.getBoxNumber());
|
|
|
+ //运费=箱型费用*箱量/汇率 || 箱型费用*箱量
|
|
|
+ if ("20GP".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getTwentyGp().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "20GP");
|
|
|
+ feesMap.put("price", orderCostItem.getTwentyGp());
|
|
|
+ } else if ("40GP".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getFortyGp().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "40GP");
|
|
|
+ feesMap.put("price", orderCostItem.getFortyGp());
|
|
|
+ } else if ("40HC".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getFortyHc().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "40HC");
|
|
|
+ feesMap.put("price", orderCostItem.getFortyHc());
|
|
|
+ }
|
|
|
+ } else if (orderCostItem.getType() == 3) {//杂费
|
|
|
+ //杂费 = 票费用/汇率 || 票费用
|
|
|
+ amount = amount.add(orderCostItem.getTicket());
|
|
|
+ feesMap.put("unit", "JOB");
|
|
|
+ feesMap.put("price", orderCostItem.getTicket());
|
|
|
+ feesMap.put("quantity", 1);
|
|
|
+ }
|
|
|
+ mapList.add(feesMap);
|
|
|
+ } else if (order.getDomesticAbroad().equals("2")) {
|
|
|
+ if (type == 2){
|
|
|
+ if (orderCostItem.getCurrency().equals("USD")){
|
|
|
+ feesMap.put("currency", "USD");
|
|
|
+ feesMap.put("exchangeRate", order.getExchangeRate());
|
|
|
+ //陆运费
|
|
|
+ if (orderCostItem.getType() == 1) {
|
|
|
+ feesMap.put("quantity", order.getBoxNumber());
|
|
|
+ //陆运费=箱型费用*箱量/汇率
|
|
|
+ if ("20GP".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getTwentyGp().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "20GP");
|
|
|
+ feesMap.put("price", orderCostItem.getTwentyGp());
|
|
|
+ } else if ("40GP".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getFortyGp().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "40GP");
|
|
|
+ feesMap.put("price", orderCostItem.getFortyGp());
|
|
|
+ } else if ("40HC".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getFortyHc().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "40HC");
|
|
|
+ feesMap.put("price", orderCostItem.getFortyHc());
|
|
|
+ } else if ("45GP".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getFortyFiveGp().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "45GP");
|
|
|
+ feesMap.put("price", orderCostItem.getFortyFiveGp());
|
|
|
+ } else if ("PALLET".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getPallet().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "PALLET");
|
|
|
+ feesMap.put("price", orderCostItem.getPallet());
|
|
|
+ }
|
|
|
+ } else if (orderCostItem.getType() == 2) {//运费
|
|
|
+ feesMap.put("quantity", order.getBoxNumber());
|
|
|
+ //运费=箱型费用*箱量/汇率 || 箱型费用*箱量
|
|
|
+ if ("20GP".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getTwentyGp().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "20GP");
|
|
|
+ feesMap.put("price", orderCostItem.getTwentyGp());
|
|
|
+ } else if ("40GP".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getFortyGp().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "40GP");
|
|
|
+ feesMap.put("price", orderCostItem.getFortyGp());
|
|
|
+ } else if ("40HC".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getFortyHc().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "40HC");
|
|
|
+ feesMap.put("price", orderCostItem.getFortyHc());
|
|
|
+ }
|
|
|
+ } else if (orderCostItem.getType() == 3) {//杂费
|
|
|
+ //杂费 = 票费用/汇率 || 票费用
|
|
|
+ amount = amount.add(orderCostItem.getTicket());
|
|
|
+ feesMap.put("unit", "JOB");
|
|
|
+ feesMap.put("price", orderCostItem.getTicket());
|
|
|
+ feesMap.put("quantity", 1);
|
|
|
+ }
|
|
|
+ mapList.add(feesMap);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ if (orderCostItem.getCurrency().equals("CNY")) {
|
|
|
+ feesMap.put("currency", "CNY");
|
|
|
+ feesMap.put("exchangeRate", "1");
|
|
|
+ //陆运费
|
|
|
+ if (orderCostItem.getType() == 1) {
|
|
|
+ feesMap.put("quantity", order.getBoxNumber());
|
|
|
+ //陆运费=箱型费用*箱量/汇率
|
|
|
+ if ("20GP".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getTwentyGp().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "20GP");
|
|
|
+ feesMap.put("price", orderCostItem.getTwentyGp());
|
|
|
+ } else if ("40GP".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getFortyGp().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "40GP");
|
|
|
+ feesMap.put("price", orderCostItem.getFortyGp());
|
|
|
+ } else if ("40HC".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getFortyHc().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "40HC");
|
|
|
+ feesMap.put("price", orderCostItem.getFortyHc());
|
|
|
+ } else if ("45GP".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getFortyFiveGp().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "45GP");
|
|
|
+ feesMap.put("price", orderCostItem.getFortyFiveGp());
|
|
|
+ } else if ("PALLET".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getPallet().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "PALLET");
|
|
|
+ feesMap.put("price", orderCostItem.getPallet());
|
|
|
+ }
|
|
|
+ } else if (orderCostItem.getType() == 2) {//运费
|
|
|
+ feesMap.put("quantity", order.getBoxNumber());
|
|
|
+ //运费=箱型费用*箱量/汇率 || 箱型费用*箱量
|
|
|
+ if ("20GP".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getTwentyGp().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "20GP");
|
|
|
+ feesMap.put("price", orderCostItem.getTwentyGp());
|
|
|
+ } else if ("40GP".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getFortyGp().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "40GP");
|
|
|
+ feesMap.put("price", orderCostItem.getFortyGp());
|
|
|
+ } else if ("40HC".equals(order.getBoxPile())) {
|
|
|
+ amount = amount.add(orderCostItem.getFortyHc().multiply(order.getBoxNumber()));
|
|
|
+ feesMap.put("unit", "40HC");
|
|
|
+ feesMap.put("price", orderCostItem.getFortyHc());
|
|
|
+ }
|
|
|
+ } else if (orderCostItem.getType() == 3) {//杂费
|
|
|
+ //杂费 = 票费用/汇率 || 票费用
|
|
|
+ amount = amount.add(orderCostItem.getTicket());
|
|
|
+ feesMap.put("unit", "JOB");
|
|
|
+ feesMap.put("price", orderCostItem.getTicket());
|
|
|
+ feesMap.put("quantity", 1);
|
|
|
+ }
|
|
|
+ mapList.add(feesMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return mapList;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/**
|
|
|
* 将Object转换成List类型
|
|
|
*
|