Эх сурвалжийг харах

提交累计装货量和卸货量计算

chenxiaofei 3 долоо хоног өмнө
parent
commit
bdd1dedbbe

+ 58 - 28
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtLogisticsConsignmentService.java

@@ -3220,19 +3220,8 @@ public class KwtLogisticsConsignmentService {
         BigDecimal unloadAmount = BigDecimal.ZERO;
         BigDecimal unloadAmount = BigDecimal.ZERO;
         //用于计算
         //用于计算
         BigDecimal totalAmount = BigDecimal.ZERO;
         BigDecimal totalAmount = BigDecimal.ZERO;
-        if (org.apache.commons.lang3.StringUtils.equals(kwtLogisticsOrder.getBillingMode(),
-                DictEnum.CHARGING_TYPE_1.getValue())) {
-            loadAmount = subtasks.stream().filter(x->Objects.nonNull(x.getLoadAmount()))
-                    .map(KwtWaybillOrderSubtask::getLoadAmount)
-                    .reduce(BigDecimal.ZERO, BigDecimal::add);
-            transportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) ? loadAmount.multiply(kwtLogisticsOrder.getPrice()) :
-                    BigDecimal.ZERO;
-           // logisticsOrderResp.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + kwtLogisticsOrder.getUnit());
-            logisticsOrderResp.setUnloadAmount("-");
-           // logisticsOrderResp.setActualTransportPrice(transportPrice.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
-
-        } else if (org.apache.commons.lang3.StringUtils.equals(kwtLogisticsOrder.getBillingMode(),
-                DictEnum.CHARGING_TYPE_2.getValue())) {
+        if (Objects.equals(kwtLogisticsOrder.getOrderType(),1)){
+            log.info("订单类型为1,原矿转运");
             loadAmount = subtasks.stream().filter(x->Objects.nonNull(x.getLoadAmount()))
             loadAmount = subtasks.stream().filter(x->Objects.nonNull(x.getLoadAmount()))
                     .map(KwtWaybillOrderSubtask::getLoadAmount)
                     .map(KwtWaybillOrderSubtask::getLoadAmount)
                     .reduce(BigDecimal.ZERO, BigDecimal::add);
                     .reduce(BigDecimal.ZERO, BigDecimal::add);
@@ -3242,10 +3231,38 @@ public class KwtLogisticsConsignmentService {
             transportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) ? unloadAmount.multiply(kwtLogisticsOrder.getPrice()) :
             transportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) ? unloadAmount.multiply(kwtLogisticsOrder.getPrice()) :
                     BigDecimal.ZERO;
                     BigDecimal.ZERO;
 
 
-           // logisticsOrderResp.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + kwtLogisticsOrder.getUnit());
+            // logisticsOrderResp.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + kwtLogisticsOrder.getUnit());
             logisticsOrderResp.setUnloadAmount(unloadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + kwtLogisticsOrder.getUnit());
             logisticsOrderResp.setUnloadAmount(unloadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + kwtLogisticsOrder.getUnit());
-            //logisticsOrderResp.setActualTransportPrice(transportPrice.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
+        }else {
+            log.info("订单类型不为1,普通订单");
+            if (org.apache.commons.lang3.StringUtils.equals(kwtLogisticsOrder.getBillingMode(),
+                    DictEnum.CHARGING_TYPE_1.getValue())) {
+                loadAmount = subtasks.stream().filter(x->Objects.nonNull(x.getLoadAmount()))
+                        .map(KwtWaybillOrderSubtask::getLoadAmount)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add);
+                transportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) ? loadAmount.multiply(kwtLogisticsOrder.getPrice()) :
+                        BigDecimal.ZERO;
+                // logisticsOrderResp.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + kwtLogisticsOrder.getUnit());
+                logisticsOrderResp.setUnloadAmount("-");
+                // logisticsOrderResp.setActualTransportPrice(transportPrice.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
+
+            } else if (org.apache.commons.lang3.StringUtils.equals(kwtLogisticsOrder.getBillingMode(),
+                    DictEnum.CHARGING_TYPE_2.getValue())) {
+                loadAmount = subtasks.stream().filter(x->Objects.nonNull(x.getLoadAmount()))
+                        .map(KwtWaybillOrderSubtask::getLoadAmount)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add);
+                unloadAmount = subtasks.stream().filter(x->Objects.nonNull(x.getUnloadAmount()))
+                        .map(KwtWaybillOrderSubtask::getUnloadAmount)
+                        .reduce(BigDecimal.ZERO, BigDecimal::add);
+                transportPrice = Objects.nonNull(kwtLogisticsOrder.getPrice()) ? unloadAmount.multiply(kwtLogisticsOrder.getPrice()) :
+                        BigDecimal.ZERO;
+
+                // logisticsOrderResp.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + kwtLogisticsOrder.getUnit());
+                logisticsOrderResp.setUnloadAmount(unloadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + kwtLogisticsOrder.getUnit());
+                //logisticsOrderResp.setActualTransportPrice(transportPrice.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
+            }
         }
         }
+
         logisticsOrderResp.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + kwtLogisticsOrder.getUnit());
         logisticsOrderResp.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + kwtLogisticsOrder.getUnit());
         logisticsOrderResp.setActualTransportPrice(transportPrice.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
         logisticsOrderResp.setActualTransportPrice(transportPrice.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
 //        logisticsOrderResp.setActualTransportPrice(actualTransportPrice.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
 //        logisticsOrderResp.setActualTransportPrice(actualTransportPrice.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
@@ -3516,27 +3533,40 @@ public class KwtLogisticsConsignmentService {
         BigDecimal totalCarriageCost = BigDecimal.ZERO;
         BigDecimal totalCarriageCost = BigDecimal.ZERO;
         //用于计算
         //用于计算
         BigDecimal totalAmount = BigDecimal.ZERO;
         BigDecimal totalAmount = BigDecimal.ZERO;
-        if (org.apache.commons.lang3.StringUtils.equals(logisticsOrder.getBillingMode(),
-                DictEnum.CHARGING_TYPE_1.getValue())) {
-            totalCarriageCost = Objects.nonNull(logisticsOrder.getPrice()) ? loadAmount.multiply(logisticsOrder.getPrice()) :
-                    BigDecimal.ZERO;
-            performanceInfoVO.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
-            performanceInfoVO.setUnloadAmount("-");
-            BigDecimal surplusAmount = tradeAmount.subtract(orderAmount.add(loadAmount)).compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO : tradeAmount.subtract(orderAmount.add(loadAmount));
-            performanceInfoVO.setSurplusAmount(surplusAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
-
-        } else if (org.apache.commons.lang3.StringUtils.equals(logisticsOrder.getBillingMode(),
-                DictEnum.CHARGING_TYPE_2.getValue())) {
+        if (Objects.equals(logisticsOrder.getOrderType(), 1)){
+            log.info("物流单类型为1,原矿转运");
             totalCarriageCost = Objects.nonNull(logisticsOrder.getPrice()) ? unloadAmount.multiply(logisticsOrder.getPrice()) :
             totalCarriageCost = Objects.nonNull(logisticsOrder.getPrice()) ? unloadAmount.multiply(logisticsOrder.getPrice()) :
                     BigDecimal.ZERO;
                     BigDecimal.ZERO;
             performanceInfoVO.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
             performanceInfoVO.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
             performanceInfoVO.setUnloadAmount(unloadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
             performanceInfoVO.setUnloadAmount(unloadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
             BigDecimal surplusAmount = tradeAmount.subtract(orderAmount.add(unloadAmount)).compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO : tradeAmount.subtract(orderAmount.add(unloadAmount));
             BigDecimal surplusAmount = tradeAmount.subtract(orderAmount.add(unloadAmount)).compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO : tradeAmount.subtract(orderAmount.add(unloadAmount));
             performanceInfoVO.setSurplusAmount(surplusAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
             performanceInfoVO.setSurplusAmount(surplusAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
+        }else {
+            log.info("物流单类型不为1,普通物流");
+            if (org.apache.commons.lang3.StringUtils.equals(logisticsOrder.getBillingMode(),
+                    DictEnum.CHARGING_TYPE_1.getValue())) {
+                totalCarriageCost = Objects.nonNull(logisticsOrder.getPrice()) ? loadAmount.multiply(logisticsOrder.getPrice()) :
+                        BigDecimal.ZERO;
+                performanceInfoVO.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
+                performanceInfoVO.setUnloadAmount("-");
+                BigDecimal surplusAmount = tradeAmount.subtract(orderAmount.add(loadAmount)).compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO : tradeAmount.subtract(orderAmount.add(loadAmount));
+                performanceInfoVO.setSurplusAmount(surplusAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
+
+            } else if (org.apache.commons.lang3.StringUtils.equals(logisticsOrder.getBillingMode(),
+                    DictEnum.CHARGING_TYPE_2.getValue())) {
+                totalCarriageCost = Objects.nonNull(logisticsOrder.getPrice()) ? unloadAmount.multiply(logisticsOrder.getPrice()) :
+                        BigDecimal.ZERO;
+                performanceInfoVO.setLoadAmount(loadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
+                performanceInfoVO.setUnloadAmount(unloadAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
+                BigDecimal surplusAmount = tradeAmount.subtract(orderAmount.add(unloadAmount)).compareTo(BigDecimal.ZERO) <= 0 ? BigDecimal.ZERO : tradeAmount.subtract(orderAmount.add(unloadAmount));
+                performanceInfoVO.setSurplusAmount(surplusAmount.setScale(2, RoundingMode.HALF_UP).toPlainString() + logisticsOrder.getUnit());
+
+            }
+            String priceUnit = Optional.ofNullable(kwpGoods).map(KwpGoods::getPriceUnit).orElse("");
+            performanceInfoVO.setTotalCarriageCost(totalCarriageCost.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
 
 
         }
         }
-        String priceUnit = Optional.ofNullable(kwpGoods).map(KwpGoods::getPriceUnit).orElse("");
-        performanceInfoVO.setTotalCarriageCost(totalCarriageCost.setScale(2, RoundingMode.HALF_UP).toPlainString() + priceUnit);
+
 
 
         // BigDecimal totalAmount = getTotalAmount(logOrderList);
         // BigDecimal totalAmount = getTotalAmount(logOrderList);