Selaa lähdekoodia

Merge remote-tracking branch 'origin/dev' into dev

czh 2 vuotta sitten
vanhempi
commit
4eb3ca3631
23 muutettua tiedostoa jossa 524 lisäystä ja 69 poistoa
  1. 9 0
      pom.xml
  2. 28 0
      sckw-auth/src/main/resources/bootstrap-prod.yml
  3. 28 0
      sckw-gateway/src/main/resources/bootstrap-prod.yml
  4. 28 0
      sckw-modules/sckw-contract/src/main/resources/bootstrap-prod.yml
  5. 28 0
      sckw-modules/sckw-example/src/main/resources/bootstrap-prod.yml
  6. 28 0
      sckw-modules/sckw-file/src/main/resources/bootstrap-prod.yml
  7. 28 0
      sckw-modules/sckw-fleet/src/main/resources/bootstrap-prod.yml
  8. 28 0
      sckw-modules/sckw-manage/src/main/resources/bootstrap-prod.yml
  9. 28 0
      sckw-modules/sckw-message/src/main/resources/bootstrap-prod.yml
  10. 28 0
      sckw-modules/sckw-operation/src/main/resources/bootstrap-prod.yml
  11. 28 0
      sckw-modules/sckw-order/src/main/resources/bootstrap-prod.yml
  12. 28 0
      sckw-modules/sckw-payment/src/main/resources/bootstrap-prod.yml
  13. 28 0
      sckw-modules/sckw-product/src/main/resources/bootstrap-prod.yml
  14. 28 0
      sckw-modules/sckw-report/src/main/resources/bootstrap-prod.yml
  15. 28 0
      sckw-modules/sckw-system/src/main/resources/bootstrap-prod.yml
  16. 6 3
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderDriverVo.java
  17. 31 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/CommonService.java
  18. 29 25
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java
  19. 8 3
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java
  20. 28 27
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java
  21. 8 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/dubbo/TransportDubboServiceImpl.java
  22. 12 8
      sckw-modules/sckw-transport/src/main/resources/bootstrap-prod.yml
  23. 1 1
      sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

+ 9 - 0
pom.xml

@@ -354,6 +354,15 @@
                 <nacos.namespace>sckw-service-platform</nacos.namespace>
             </properties>
         </profile>
+        <!--测试环境-->
+        <profile>
+            <id>prod</id>
+            <properties>
+                <profiles.active>prod</profiles.active>
+                <nacos.server>172.16.156.151:8848</nacos.server>
+                <nacos.namespace>sckw-service-platform</nacos.namespace>
+            </properties>
+        </profile>
     </profiles>
     <build>
         <pluginManagement>

+ 28 - 0
sckw-auth/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,28 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true

+ 28 - 0
sckw-gateway/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,28 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true

+ 28 - 0
sckw-modules/sckw-contract/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,28 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true

+ 28 - 0
sckw-modules/sckw-example/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,28 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true

+ 28 - 0
sckw-modules/sckw-file/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,28 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true

+ 28 - 0
sckw-modules/sckw-fleet/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,28 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true

+ 28 - 0
sckw-modules/sckw-manage/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,28 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true

+ 28 - 0
sckw-modules/sckw-message/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,28 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true

+ 28 - 0
sckw-modules/sckw-operation/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,28 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true

+ 28 - 0
sckw-modules/sckw-order/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,28 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true

+ 28 - 0
sckw-modules/sckw-payment/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,28 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true

+ 28 - 0
sckw-modules/sckw-product/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,28 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true

+ 28 - 0
sckw-modules/sckw-report/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,28 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true

+ 28 - 0
sckw-modules/sckw-system/src/main/resources/bootstrap-prod.yml

@@ -0,0 +1,28 @@
+spring:
+  cloud:
+    nacos:
+      discovery:
+        # 服务注册地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+      config:
+        # 配置中心地址
+        server-addr: @nacos.server@
+        # 命名空间
+        namespace: @nacos.namespace@
+        # 共享配置
+        group: sckw-service-platform
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
+        extension-configs:
+          - dataId: sckw-common.yml
+            group: sckw-service-platform
+            refresh: true

+ 6 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderDriverVo.java

@@ -208,7 +208,7 @@ public class WaybillOrderDriverVo {
     }
 
     public BigDecimal getDeficitLossAmount() {
-        return deficitPrice(loadAmount, deficitAmount, loss, lossUnit);
+        return deficitLossAmount(loadAmount, deficitAmount, loss, lossUnit);
     }
 
     /**
@@ -219,7 +219,7 @@ public class WaybillOrderDriverVo {
      * @author zk
      * @date 2023/7/27
      **/
-    public BigDecimal deficitPrice(BigDecimal loadAmount, BigDecimal deficitAmount, BigDecimal loss,String lossUnit) {
+    public BigDecimal deficitLossAmount(BigDecimal loadAmount, BigDecimal deficitAmount, BigDecimal loss,String lossUnit) {
         //亏吨<=0
         if (deficitAmount.compareTo(new BigDecimal(Global.AMOUNT)) <= 0) {
             return new BigDecimal(Global.AMOUNT);
@@ -234,8 +234,11 @@ public class WaybillOrderDriverVo {
                 loss = loss.divide(new BigDecimal(TaxRateTypeEnum.MILLIMETER.getValue()));
             }
         }
-        //扣亏量
+        //扣亏量=亏吨量-合理损耗值【要求大于0,如果小于0则扣亏货量取0】
         BigDecimal deficitPrice = deficitAmount.subtract(loadAmount.multiply(loss).setScale(4, RoundingMode.HALF_UP));
+        if (deficitPrice.doubleValue() <= 0) {
+            return new BigDecimal(Global.AMOUNT);
+        }
         return deficitPrice;
     }
 }

+ 31 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/CommonService.java

@@ -8,9 +8,11 @@ import com.sckw.contract.api.RemoteContractService;
 import com.sckw.core.common.enums.NumberConstant;
 import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.exception.BusinessException;
+import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.LogisticsOrderEnum;
 import com.sckw.core.model.enums.OrderRuleEnum;
 import com.sckw.core.model.enums.RedisOrderGenerateEnum;
+import com.sckw.core.model.enums.TaxRateTypeEnum;
 import com.sckw.core.utils.*;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.fleet.api.RemoteFleetService;
@@ -41,6 +43,7 @@ import org.springframework.cloud.stream.function.StreamBridge;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -736,4 +739,32 @@ public class CommonService {
         log.info(MessageEnum.getDesc(consignMessageEnum) + "-[托运方]-业务联系人:{}", JSON.toJSONString(message));
         streamBridge.send("sckw-message", JSON.toJSONString(message));
     }
+
+    /**
+     * @param loadAmount    装货量
+     * @param deficitAmount 亏吨量
+     * @param loss          合理损耗
+     * @desc 计算扣亏量
+     * @author zk
+     * @date 2023/7/27
+     **/
+    public BigDecimal deficitPrice(BigDecimal loadAmount, BigDecimal deficitAmount, BigDecimal loss,String lossUnit) {
+        //亏吨<=0
+        if (deficitAmount.compareTo(new BigDecimal(Global.AMOUNT)) <= 0) {
+            return new BigDecimal(Global.AMOUNT);
+        }
+        //承运订单亏吨扣款=(承运订单亏吨量 -(承运订单装货量 * 承运订单合理损耗))* 扣亏货值
+        loss = loss == null ? new BigDecimal(Global.AMOUNT) : loss;
+        if (loss.doubleValue() > 0 && StringUtils.isNotBlank(lossUnit)) {
+            if (lossUnit.equals(String.valueOf(TaxRateTypeEnum.PERCENT.getCode()))) {
+                loss = loss.divide(new BigDecimal(TaxRateTypeEnum.PERCENT.getValue()));
+            }
+            if (lossUnit.equals(String.valueOf(TaxRateTypeEnum.MILLIMETER.getCode()))) {
+                loss = loss.divide(new BigDecimal(TaxRateTypeEnum.MILLIMETER.getValue()));
+            }
+        }
+        //扣亏量
+        BigDecimal deficitPrice = deficitAmount.subtract(loadAmount.multiply(loss).setScale(4, RoundingMode.HALF_UP));
+        return deficitPrice;
+    }
 }

+ 29 - 25
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/ConsignOrderService.java

@@ -379,7 +379,8 @@ public class ConsignOrderService {
                     //亏吨量
                     BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getDeficitAmount();
                     //扣亏量/吨
-                    BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
+//                    BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
+                    BigDecimal deduct = commonService.deficitPrice(loadAmount, defectiveWeigh, loss, order.getLossUnit());
                     carWaybillVo.setLOrderId(String.valueOf(kwtWaybillOrder.getLOrderId()));
                     carWaybillVo.setLOrderNo(order.getLOrderNo());
                     carWaybillVo.setWOrderId(String.valueOf(kwtWaybillOrder.getId()));
@@ -646,7 +647,8 @@ public class ConsignOrderService {
                     //亏吨量
                     BigDecimal defectiveWeigh = kwtWaybillOrder.getDeficitAmount() == null ? new BigDecimal("0.00") : kwtWaybillOrder.getDeficitAmount();
                     //扣亏量/吨
-                    BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
+//                    BigDecimal deduct = defectiveWeigh.compareTo(new BigDecimal("0.00")) == 0 ? new BigDecimal("0.00") : defectiveWeigh.subtract(multiply);
+                    BigDecimal deduct = commonService.deficitPrice(loadAmount, defectiveWeigh, loss, order.getLossUnit());
                     carWaybillVo.setWOrderId(String.valueOf(kwtWaybillOrder.getId()));
                     carWaybillVo.setWOrderNo(kwtWaybillOrder.getWOrderNo());
                     carWaybillVo.setTruckNo(kwtWaybillOrder.getTruckNo());
@@ -872,7 +874,7 @@ public class ConsignOrderService {
             HttpResult result1 = tradeOrderInfoService.createOrCancelLogisticsOrder(param);
             if (result1.getCode() != HttpStatus.SUCCESS_CODE) {
                 log.info("托运订单手动完结订单-完结订单,返回信息:{}", "id:" + logisticsOrder.getTOrderId() + "orderNo" + logisticsOrder.getTOrderNo(), JSONObject.toJSONString(result1));
-                throw new BusinessException("{" + logisticsOrder.getTOrderNo() + "} 托运订单手动完结订单-完结订单!"+result1.getMsg());
+                throw new BusinessException("{" + logisticsOrder.getTOrderNo() + "} 托运订单手动完结订单-完结订单!" + result1.getMsg());
             }
         }
 
@@ -1680,7 +1682,7 @@ public class ConsignOrderService {
         if (StringUtils.isNotBlank(query.getIds())) {
             idsList = StringUtils.splitStrToList(query.getIds(), Long.class);
         }
-        List<AcceptCarriageOrderVO> list = kwtLogisticsOrderMapper.selectLogisticsOrderListByConsign(query, orderList, type, entId, longList, longList,idsList);
+        List<AcceptCarriageOrderVO> list = kwtLogisticsOrderMapper.selectLogisticsOrderListByConsign(query, orderList, type, entId, longList, longList, idsList);
         PageInfo<AcceptCarriageOrderVO> pageInfo = new PageInfo<>(list);
         if (CollectionUtils.isEmpty(list)) {
             return PageRes.build(pageInfo, list);
@@ -1800,7 +1802,7 @@ public class ConsignOrderService {
         List<Long> longList = longs.stream().distinct().collect(Collectors.toList());
         List<Long> idsList = StringUtils.splitStrToList(query.getIds(), Long.class);
 //        List<TableTops> list = kwtLogisticsOrderMapper.countLogisticsOrderListByStatus(query, orderList, type, entId, longList, longList,idsList);
-        List<TableTops> list = kwtLogisticsOrderMapper.countLogisticsOrderListByConsignStatus(query, orderList, type, entId, longList, longList,idsList);
+        List<TableTops> list = kwtLogisticsOrderMapper.countLogisticsOrderListByConsignStatus(query, orderList, type, entId, longList, longList, idsList);
         List<TableTops> arrayList = new ArrayList<>();
         arrayList.addAll(list);
         /**补全数据状态不齐的情况*/
@@ -1896,7 +1898,7 @@ public class ConsignOrderService {
         List<Long> longList = longs.stream().distinct().collect(Collectors.toList());
         List<Long> idsList = StringUtils.splitStrToList(query.getIds(), Long.class);
 //        List<ConsignOrderVO> list = kwtLogisticsOrderMapper.selectConsignLogisticsOrderList(query, orderList, type, entId, longList, longList,idsList);
-        List<ConsignOrderVO> list = kwtLogisticsOrderMapper.selectConsignLogisticsOrderListByConsign(query, orderList, type, entId, longList, longList,idsList);
+        List<ConsignOrderVO> list = kwtLogisticsOrderMapper.selectConsignLogisticsOrderListByConsign(query, orderList, type, entId, longList, longList, idsList);
 //        List<ConsignOrderVO> list = kwtLogisticsOrderMapper.selectLogisticsOrderListByConsign(query, orderList, type, entId, longList, longList,idsList);
         /**计费方式*/
         Map<String, String> chargingDictData = commonService.getDictData(DictTypeEnum.CHARGING_TYPE.getType());
@@ -1963,7 +1965,7 @@ public class ConsignOrderService {
                         }
                     }
                 } catch (Exception e) {
-                    log.error("tradeOrderInfoService.getOrderDetailById error id:{},errorMessage:{}",tOrderId,e.getMessage(),e);
+                    log.error("tradeOrderInfoService.getOrderDetailById error id:{},errorMessage:{}", tOrderId, e.getMessage(), e);
                 }
             }
             consignOrderExcelVo.setSubcontractAmount(Objects.isNull(vo.getSubcontractAmount()) ? null : df.format(vo.getSubcontractAmount()) + priceType.get(vo.getPriceType()));
@@ -1993,7 +1995,7 @@ public class ConsignOrderService {
             String lastWeekDateStart = DateUtil.getLastWeekDateStartToString(LocalDate.now(), 13);
             //结束时间
             String lastWeekDateEnd = DateUtil.getLastWeekDateEndToString(7);
-            return computeCompare(entCacheResDto.getId(), weekDateStart, weekDateEnd, lastWeekDateStart, lastWeekDateEnd,2);
+            return computeCompare(entCacheResDto.getId(), weekDateStart, weekDateEnd, lastWeekDateStart, lastWeekDateEnd, 2);
         } else if (String.valueOf(NumberConstant.TWO).equals(dateType)) {
             //月
             //开始时间
@@ -2005,7 +2007,7 @@ public class ConsignOrderService {
             String lastMonthDateStart = DateUtil.getBeforeMonthDateAndDaysStartToString(LocalDateTime.now(), 2, -1);
             //结束时间
             String lastMonthDateEnd = DateUtil.getBeforeMonthDateAndDaysEndToString(LocalDateTime.now(), 1, 0);
-            return computeCompare(entCacheResDto.getId(), monthDateStart, monthDateEnd, lastMonthDateStart, lastMonthDateEnd,3);
+            return computeCompare(entCacheResDto.getId(), monthDateStart, monthDateEnd, lastMonthDateStart, lastMonthDateEnd, 3);
         } else if (String.valueOf(NumberConstant.THREE).equals(dateType)) {
             //年
 
@@ -2026,7 +2028,7 @@ public class ConsignOrderService {
      * @param lastWeekDateEnd   环比上次结束时间
      * @return
      */
-    private HttpResult computeCompare(Long id, String weekDateStart, String weekDateEnd, String lastWeekDateStart, String lastWeekDateEnd,Integer dateType) {
+    private HttpResult computeCompare(Long id, String weekDateStart, String weekDateEnd, String lastWeekDateStart, String lastWeekDateEnd, Integer dateType) {
         HttpResult httpResult = new HttpResult();
         StatisticsResultVO resultVO = new StatisticsResultVO();
         //本周
@@ -2043,7 +2045,7 @@ public class ConsignOrderService {
         statusList.add(LogisticsOrderEnum.PENDING_ORDER.getCode());
         statusList.add(LogisticsOrderEnum.WAIT_DELIVERY.getCode());
         statusList.add(LogisticsOrderEnum.IN_TRANSIT.getCode());
-        StatisticsByOrderVO currentFinishIng= kwtLogisticsOrderMapper.selectAcceptCarriageAwaitFinishOrder(statusList, weekDateStart, weekDateEnd, id, OrderTypeEnum.CONSIGN_ORDER.getType());
+        StatisticsByOrderVO currentFinishIng = kwtLogisticsOrderMapper.selectAcceptCarriageAwaitFinishOrder(statusList, weekDateStart, weekDateEnd, id, OrderTypeEnum.CONSIGN_ORDER.getType());
         //全部的未履约量
         BigDecimal waitingAmount = currentFinish.getWaitingAmount().add(currentFinishIng.getWaitingAmount());
         BigDecimal amount = currentFinish.getAmount().add(currentFinishIng.getAmount());
@@ -2089,13 +2091,13 @@ public class ConsignOrderService {
         last.setTotalPrice(lastTotalPrice);
 
         /**计算待承运量*/
-        computeCompareWaitingAmount(resultVO,current,last);
+        computeCompareWaitingAmount(resultVO, current, last);
 
         /**承运量*/
-        computeCompareAmount(resultVO,current,last);
+        computeCompareAmount(resultVO, current, last);
 
         /**总金额(费用)*/
-        computeCompareTotalPrice(resultVO,current,last);
+        computeCompareTotalPrice(resultVO, current, last);
 
         /**待处理的金额*/
         SettlementMoney settlementMoney = paymentDubboService.countShipper(id, dateType);
@@ -2162,7 +2164,8 @@ public class ConsignOrderService {
         amountVO.setLastAmount(lastWeek.getAmount());
         resultVO.setAmountVO(amountVO);
     }
-    private void computeCompareWaitingAmount(StatisticsResultVO resultVO,StatisticsByOrderVO currentWeek,StatisticsByOrderVO lastWeek) {
+
+    private void computeCompareWaitingAmount(StatisticsResultVO resultVO, StatisticsByOrderVO currentWeek, StatisticsByOrderVO lastWeek) {
         Integer flag = 1;
         BigDecimal chainRatio = new BigDecimal("0.00");
         if (currentWeek.getWaitingAmount().compareTo(new BigDecimal("0.00")) == 0
@@ -2188,6 +2191,7 @@ public class ConsignOrderService {
         waitingAmountVO.setLastWaitingAmount(lastWeek.getWaitingAmount());
         resultVO.setWaitingAmountVO(waitingAmountVO);
     }
+
     /**
      * 工作台-物流运输数据统计
      *
@@ -2223,16 +2227,16 @@ public class ConsignOrderService {
             String dateEnd = cn.hutool.core.date.DateUtil.format(dateTime, DEF_DATE_FORMAT);
 
             List<LogisticsOrderStatisticsVO> list = kwtLogisticsOrderMapper.workbenchLogisticsOrderStatisticsByMonth(id, statusList,
-                    OrderTypeEnum.CONSIGN_ORDER.getType(), dateStart, dateEnd,logisticsOrderStatistics.getTypeOne(),logisticsOrderStatistics.getTypeTwo());
-            if (logisticsOrderStatistics.getTypeOne().equals("2")){
+                    OrderTypeEnum.CONSIGN_ORDER.getType(), dateStart, dateEnd, logisticsOrderStatistics.getTypeOne(), logisticsOrderStatistics.getTypeTwo());
+            if (logisticsOrderStatistics.getTypeOne().equals("2")) {
                 list.forEach(vo -> {
-                    vo.setTypeTwo(vo.getTypeTwo().setScale(2,RoundingMode.HALF_UP));
+                    vo.setTypeTwo(vo.getTypeTwo().setScale(2, RoundingMode.HALF_UP));
                     vo.setTypeOne(vo.getTypeOne().divide(new BigDecimal("10000")).setScale(2, RoundingMode.HALF_UP));
                 });
             }
-            if (logisticsOrderStatistics.getTypeTwo().equals("2")){
+            if (logisticsOrderStatistics.getTypeTwo().equals("2")) {
                 list.forEach(vo -> {
-                    vo.setTypeOne(vo.getTypeOne().setScale(2,RoundingMode.HALF_UP));
+                    vo.setTypeOne(vo.getTypeOne().setScale(2, RoundingMode.HALF_UP));
                     vo.setTypeTwo(vo.getTypeTwo().divide(new BigDecimal("10000")).setScale(2, RoundingMode.HALF_UP));
                 });
             }
@@ -2249,16 +2253,16 @@ public class ConsignOrderService {
             //结束时间
             String dateEnd = DateUtil.getLastWeekDateEndToString(0);
             List<LogisticsOrderStatisticsVO> list = kwtLogisticsOrderMapper.workbenchLogisticsOrderStatisticsByDays(id, statusList,
-                    OrderTypeEnum.CONSIGN_ORDER.getType(), dateStart, dateEnd,logisticsOrderStatistics.getTypeOne(),logisticsOrderStatistics.getTypeTwo());
-            if (logisticsOrderStatistics.getTypeOne().equals("2")){
+                    OrderTypeEnum.CONSIGN_ORDER.getType(), dateStart, dateEnd, logisticsOrderStatistics.getTypeOne(), logisticsOrderStatistics.getTypeTwo());
+            if (logisticsOrderStatistics.getTypeOne().equals("2")) {
                 list.forEach(vo -> {
-                    vo.setTypeTwo(vo.getTypeTwo().setScale(2,RoundingMode.HALF_UP));
+                    vo.setTypeTwo(vo.getTypeTwo().setScale(2, RoundingMode.HALF_UP));
                     vo.setTypeOne(vo.getTypeOne().divide(new BigDecimal("10000")).setScale(2, RoundingMode.HALF_UP));
                 });
             }
-            if (logisticsOrderStatistics.getTypeTwo().equals("2")){
+            if (logisticsOrderStatistics.getTypeTwo().equals("2")) {
                 list.forEach(vo -> {
-                    vo.setTypeOne(vo.getTypeOne().setScale(2,RoundingMode.HALF_UP));
+                    vo.setTypeOne(vo.getTypeOne().setScale(2, RoundingMode.HALF_UP));
                     vo.setTypeTwo(vo.getTypeTwo().divide(new BigDecimal("10000")).setScale(2, RoundingMode.HALF_UP));
                 });
             }

+ 8 - 3
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java

@@ -115,7 +115,7 @@ public class KwtWaybillOrderService {
     public Map<String, Object> findStatisticsSumByDriver(Map params) {
         Map<String, Object> data = waybillOrderDao.findStatisticsSumByDriver(params);
         Double deficitLossAmount = waybillOrderDao.deficitLossAmountByDriver(params);
-        data.put("deficitLossAmount", deficitLossAmount);
+        data.put("deficitLossAmount", deficitLossAmount <= 0 ? Global.AMOUNT : deficitLossAmount);
         return data;
     }
 
@@ -1768,8 +1768,13 @@ public class KwtWaybillOrderService {
         }
 
         goodsPrice = goodsPrice == null ? new BigDecimal(Global.AMOUNT) : goodsPrice;
-        BigDecimal deficitPrice = deficitAmount.subtract(loadAmount.multiply(loss).setScale(4, RoundingMode.HALF_UP))
-                .multiply(goodsPrice).setScale(4, RoundingMode.HALF_UP);
+        BigDecimal deficitLossAmount = deficitAmount.subtract(loadAmount.multiply(loss).setScale(4, RoundingMode.HALF_UP));
+        //扣亏量=亏吨量-合理损耗值【要求大于0,如果小于0则扣亏货量取0】
+        if (deficitLossAmount.doubleValue() <= 0) {
+            return new BigDecimal(Global.AMOUNT);
+        }
+        //罚款值=扣亏量 * 扣亏货值
+        BigDecimal deficitPrice = deficitLossAmount.multiply(goodsPrice).setScale(4, RoundingMode.HALF_UP);
         return deficitPrice;
     }
 

+ 28 - 27
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/TransportCommonService.java

@@ -471,8 +471,8 @@ public class TransportCommonService {
 //                logisticsOrder.getEntId(), MessageEnum.CANCELLATION_LOGISTICS, MessageEnum.CARRIAGE_CANCELLATION_LOGISTICS);
         commonService.newSendLogisticsOrderToMessage(consignUnit, carriageUnit, logisticsOrder.getLOrderNo(), logisticsOrder.getCreateBy(),
                 logisticsOrder.getEntId(),
-                messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(),messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
-                messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(),messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
+                messageUrlConfig.getPc().getConsignLogisticsAddOrderUrl(), messageUrlConfig.getApp().getConsignLogisticsAddOrderUrl(),
+                messageUrlConfig.getPc().getCarriageLogisticsAddOrderUrl(), messageUrlConfig.getApp().getCarriageLogisticsAddOrderUrl(),
                 MessageEnum.CANCELLATION_LOGISTICS, MessageEnum.CARRIAGE_CANCELLATION_LOGISTICS,
                 "1");
         return result;
@@ -537,8 +537,8 @@ public class TransportCommonService {
         orderStatusList.add(LogisticsOrderEnum.HAVE_FINISHED.getCode());
         ids = ids.stream().distinct().collect(Collectors.toList());
         logisticsOrderParam.setPage((logisticsOrderParam.getPage() - 1) * logisticsOrderParam.getPageSize());
-        List<LogisticsOrderVO> list = logisticsOrderMapper.selectLogisticOrderData(logisticsOrderParam, dictValue, LoginUserHolder.getEntId(), ids,orderStatusList);
-        Long count = logisticsOrderMapper.selectLogisticOrderCount(logisticsOrderParam, dictValue, LoginUserHolder.getEntId(), ids,orderStatusList);
+        List<LogisticsOrderVO> list = logisticsOrderMapper.selectLogisticOrderData(logisticsOrderParam, dictValue, LoginUserHolder.getEntId(), ids, orderStatusList);
+        Long count = logisticsOrderMapper.selectLogisticOrderCount(logisticsOrderParam, dictValue, LoginUserHolder.getEntId(), ids, orderStatusList);
         /**计量单位*/
         Map<String, String> unitTypeDictData = getDictData(DictTypeEnum.UNIT_TYPE.getType());
         /**运价方式*/
@@ -622,16 +622,17 @@ public class TransportCommonService {
                  扣亏量/吨->亏吨量-合理损耗值(装货量*合理损耗)*/
                 BigDecimal loadAmount = logisticsOrderDTO.getTotalLoadAmount() == null ? new BigDecimal("0.00") : logisticsOrderDTO.getTotalLoadAmount();
                 BigDecimal unloadAmount = logisticsOrderDTO.getTotalUnloadAmount() == null ? new BigDecimal("0.00") : logisticsOrderDTO.getTotalUnloadAmount();
-
+                BigDecimal loss = logisticsOrderDTO.getLoss() == null ? new BigDecimal("0.00") : logisticsOrderDTO.getLoss();
                 //亏吨量
                 BigDecimal defectiveWeighNumber = loadAmount.subtract(unloadAmount);
                 //合理损耗值
                 BigDecimal lossAmount = loadAmount.multiply(logisticsOrderDTO.getLoss() == null ? new BigDecimal("0.00") : logisticsOrderDTO.getLoss());
                 //扣亏量
-                BigDecimal deductWeighNumber = defectiveWeighNumber.subtract(lossAmount);
-                if (deductWeighNumber.compareTo(new BigDecimal("0")) < 0) {
-                    deductWeighNumber = new BigDecimal("0.00");
-                }
+//                BigDecimal deductWeighNumber = defectiveWeighNumber.subtract(lossAmount);
+//                if (deductWeighNumber.compareTo(new BigDecimal("0")) < 0) {
+//                    deductWeighNumber = new BigDecimal("0.00");
+//                }
+                BigDecimal deductWeighNumber = commonService.deficitPrice(loadAmount, defectiveWeighNumber, loss, logisticsOrderDTO.getLossUnit());
                 //罚款值
                 BigDecimal fineValue = (logisticsOrderDTO.getGoodsPrice() == null ? new BigDecimal("0.00") : logisticsOrderDTO.getGoodsPrice()).multiply(deductWeighNumber);
                 /**
@@ -763,14 +764,14 @@ public class TransportCommonService {
 
         /**2物流订单树形数据结构**/
         //所有管理物流订单
-        List<KwtLogisticsOrder> orders = logisticsOrderMapper.findLogisticsOrder(new HashMap<>(Global.NUMERICAL_SIXTEEN){{
+        List<KwtLogisticsOrder> orders = logisticsOrderMapper.findLogisticsOrder(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
             put("plOrderIds", lOrderId);
             put("currentlOrderId", logisticsOrder.getPids());
             put("allOrderId", Global.NUMERICAL_ONE);
         }});
         //数据copy
         List<KwtLogisticsOrderTreeVo> logisticsOrders = new ArrayList<>();
-        for (KwtLogisticsOrder order:orders) {
+        for (KwtLogisticsOrder order : orders) {
             KwtLogisticsOrderTreeVo logisticsOrderVo = new KwtLogisticsOrderTreeVo();
             BeanUtils.copyProperties(order, logisticsOrderVo);
             logisticsOrders.add(logisticsOrderVo);
@@ -781,7 +782,7 @@ public class TransportCommonService {
 
         /**3链路数据组装*/
         List<List<KwtLogisticsOrderTreeVo>> orderLinks = new ArrayList<>();
-        for (KwtLogisticsOrderTreeVo order:treeData) {
+        for (KwtLogisticsOrderTreeVo order : treeData) {
             Stack<KwtLogisticsOrderTreeVo> pathStack = new Stack<>();
             iteratorNode(order, pathStack, orderLinks);
         }
@@ -791,7 +792,7 @@ public class TransportCommonService {
         Collections.reverse(orderLink);
 
         /**4数据处理**/
-        for (KwtLogisticsOrderTreeVo order:orderLink) {
+        for (KwtLogisticsOrderTreeVo order : orderLink) {
             //排除已完结订单
             if (Objects.equals(order.getStatus(), LogisticsOrderEnum.HAVE_FINISHED.getCode())) {
                 //上级物流订单分包量技术-排除一级物流订单
@@ -819,7 +820,7 @@ public class TransportCommonService {
                 put("logisticsStatus", LogisticsOrderEnum.IN_TRANSIT.getCode());
             }});
             //物流订单统计(运输完成后的物流订单)
-            LogisticsCountVo LogisticsCount = logisticsOrderMapper.findLogisticsOrderCount(new HashMap<>(Global.NUMERICAL_SIXTEEN){{
+            LogisticsCountVo LogisticsCount = logisticsOrderMapper.findLogisticsOrderCount(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
                 put("upperlOrderId", order.getId());
                 put("finishedStatus", Global.NUMERICAL_ONE);
             }});
@@ -839,11 +840,11 @@ public class TransportCommonService {
             //一级物流订单向贸易订单推送数据
             if (order.getPid() == null && Integer.parseInt(order.getType()) == Global.NUMERICAL_ONE) {
                 //物流订单统计(运输完成后的物流订单)
-                LogisticsCountVo tradeCount = logisticsOrderMapper.findLogisticsOrderCount(new HashMap<>(){{
+                LogisticsCountVo tradeCount = logisticsOrderMapper.findLogisticsOrderCount(new HashMap<>() {{
                     put("tOrderId", order.getTOrderId());
                     put("level", Global.NUMERICAL_ONE);
                 }});
-                UpdateActualAmountParam tradeOrder = new  UpdateActualAmountParam();
+                UpdateActualAmountParam tradeOrder = new UpdateActualAmountParam();
                 tradeOrder.setTOrderId(logisticsOrder.getTOrderId());
                 tradeOrder.setActualLoadAmount(tradeCount.getTotalLoadAmount());
                 tradeOrder.setActualUnloadAmount(tradeCount.getTotalUnloadAmount());
@@ -865,12 +866,12 @@ public class TransportCommonService {
      * @author zk
      * @date 2023/9/18
      **/
-    public static void orderTreeHandle(List<KwtLogisticsOrderTreeVo> treeData){
+    public static void orderTreeHandle(List<KwtLogisticsOrderTreeVo> treeData) {
         if (CollectionUtil.isEmpty(treeData)) {
             return;
         }
 
-        for (KwtLogisticsOrderTreeVo order:treeData) {
+        for (KwtLogisticsOrderTreeVo order : treeData) {
             orderTreeHandle(order.getChildren());
             if (order.getStatus() == 4) {
                 order.setChildren(null);
@@ -890,7 +891,7 @@ public class TransportCommonService {
 
         //获取根节点数据
         if (CollectionUtil.isNotEmpty(orders)) {
-            for(KwtLogisticsOrderTreeVo order:orders){
+            for (KwtLogisticsOrderTreeVo order : orders) {
                 if (order.getPid() == null) {
                     rootList.add(order);
                 }
@@ -907,7 +908,7 @@ public class TransportCommonService {
     }
 
     /**
-     * @param pid 上级物流订单ID
+     * @param pid    上级物流订单ID
      * @param orders 物流订单
      * @desc 树形数据处理-递归
      * @author zk
@@ -916,7 +917,7 @@ public class TransportCommonService {
     public static List<KwtLogisticsOrderTreeVo> getChild(Long pid, List<KwtLogisticsOrderTreeVo> orders) {
         List<KwtLogisticsOrderTreeVo> childList = new ArrayList();
         for (KwtLogisticsOrderTreeVo order : orders) {
-            if(pid.equals(order.getPid())){
+            if (pid.equals(order.getPid())) {
                 //获取当前节点id的所有子列表
                 childList.add(order);
             }
@@ -926,9 +927,9 @@ public class TransportCommonService {
             List<KwtLogisticsOrderTreeVo> child = getChild(order.getId(), orders);
             order.setChildren(child);
         }
-        if(childList.size()==0){
+        if (childList.size() == 0) {
             //子节点的长度为0,返回null,null不会被阿里的FastJson包解析
-            return  null;
+            return null;
         }
         return childList;
     }
@@ -946,7 +947,7 @@ public class TransportCommonService {
         pathstack.push(order);
         List childlist = order.getChildren();
         //没有子节点 说明是叶子结点
-        if (childlist == null){
+        if (childlist == null) {
             List list = new ArrayList();
             Iterator stackIt = pathstack.iterator();
             while (stackIt.hasNext()) {
@@ -985,14 +986,14 @@ public class TransportCommonService {
 
     /**
      * @param orderLinks 物流订单链路信息
-     * @param lOrderId 物流订单id
+     * @param lOrderId   物流订单id
      * @desc 获取当前物流订单垂直链路
      * @author zk
      * @date 2023/9/18
      **/
     public static List<KwtLogisticsOrderTreeVo> findLink(List<List<KwtLogisticsOrderTreeVo>> orderLinks, Long lOrderId) {
-        for (List<KwtLogisticsOrderTreeVo> logisticsOrders:orderLinks) {
-            for (KwtLogisticsOrderTreeVo order:logisticsOrders) {
+        for (List<KwtLogisticsOrderTreeVo> logisticsOrders : orderLinks) {
+            for (KwtLogisticsOrderTreeVo order : logisticsOrders) {
                 if (Objects.equals(lOrderId, order.getId())) {
                     return logisticsOrders;
                 }

+ 8 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/dubbo/TransportDubboServiceImpl.java

@@ -39,6 +39,7 @@ import com.sckw.transport.api.model.vo.KwtLogisticsOrderVO;
 import com.sckw.transport.api.model.vo.RWaybillOrderVo;
 import com.sckw.transport.dao.*;
 import com.sckw.transport.model.*;
+import com.sckw.transport.service.CommonService;
 import jakarta.annotation.Resource;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
@@ -62,6 +63,9 @@ import java.util.stream.Collectors;
 @DubboService(group = "design", version = "1.0.0", timeout = 50000)
 public class TransportDubboServiceImpl implements TransportDubboService {
 
+    @Autowired
+    public CommonService commonService;
+
     @Resource
     private StreamBridge streamBridge;
 
@@ -123,7 +127,7 @@ public class TransportDubboServiceImpl implements TransportDubboService {
      */
     @Override
     public List<LogisticsOrderDTO> getAcceptCarriageOrderList(List<String> ids) {
-        List<LogisticsOrderDTO> list = logisticsOrderMapper.selectLogisticOrderList(ids,LogisticsOrderEnum.HAVE_FINISHED.getCode());
+        List<LogisticsOrderDTO> list = logisticsOrderMapper.selectLogisticOrderList(ids, LogisticsOrderEnum.HAVE_FINISHED.getCode());
         /**计量单位*/
         Map<String, String> unitTypeDictData = getDictData(DictTypeEnum.UNIT_TYPE.getType());
         /**运价方式*/
@@ -204,12 +208,14 @@ public class TransportDubboServiceImpl implements TransportDubboService {
                 BigDecimal loadAmount = logisticsOrderDTO.getTotalLoadAmount() == null ? new BigDecimal("0.00") : logisticsOrderDTO.getTotalLoadAmount();
                 BigDecimal unloadAmount = logisticsOrderDTO.getTotalUnloadAmount() == null ? new BigDecimal("0.00") : logisticsOrderDTO.getTotalUnloadAmount();
 
+                BigDecimal loss = logisticsOrderDTO.getLoss() == null ? new BigDecimal("0.00") : logisticsOrderDTO.getLoss();
                 //亏吨量
                 BigDecimal defectiveWeighNumber = loadAmount.subtract(unloadAmount);
                 //合理损耗值
                 BigDecimal lossAmount = loadAmount.multiply(logisticsOrderDTO.getLoss() == null ? new BigDecimal("0.00") : logisticsOrderDTO.getLoss());
                 //扣亏量
-                BigDecimal deductWeighNumber = defectiveWeighNumber.subtract(lossAmount);
+//                BigDecimal deductWeighNumber = defectiveWeighNumber.subtract(lossAmount);
+                BigDecimal deductWeighNumber = commonService.deficitPrice(loadAmount, defectiveWeighNumber, loss, logisticsOrderDTO.getLossUnit());
                 if (deductWeighNumber.compareTo(new BigDecimal("0")) < 0) {
                     deductWeighNumber = new BigDecimal("0.00");
                 }

+ 12 - 8
sckw-modules/sckw-transport/src/main/resources/bootstrap-prod.yml

@@ -3,22 +3,26 @@ spring:
     nacos:
       discovery:
         # 服务注册地址
-        server-addr: 10.10.10.230:8848
+        server-addr: @nacos.server@
         # 命名空间
-        namespace: sckw_lfdc
+        namespace: @nacos.namespace@
         # 共享配置
         group: sckw-service-platform
       config:
         # 配置中心地址
-        server-addr: 10.10.10.230:8848
-        # 配置文件格式
-        file-extension: yaml
+        server-addr: @nacos.server@
         # 命名空间
-        namespace: sckw_lfdc
+        namespace: @nacos.namespace@
         # 共享配置
         group: sckw-service-platform
-        #可以读多个配置文件  需要在同一个命名空间下面可以是不同的组
+        # 配置文件格式
+        file-extension: yaml
+        shared-configs:
+          - data-id: sckw-common.yml
+            group: sckw-common
+            refresh: true
+        #可以读多个配置文件 需要在同一个命名空间下面可以是不同的组
         extension-configs:
           - dataId: sckw-common.yml
             group: sckw-service-platform
-            refresh: true
+            refresh: true

+ 1 - 1
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -311,7 +311,7 @@
 
     <select id="deficitLossAmountByDriver" resultType="java.lang.Double" parameterType="java.util.Map">
         SELECT
-            FORMAT(sum(deficitLossAmount), 2) deficitLossAmount
+            FORMAT(IFNULL(sum(deficitLossAmount), 0.0), 2) deficitLossAmount
         from (
             SELECT
             ( deficitAmount - FORMAT((loadAmount * loss / lossUnit),2) ) deficitLossAmount