donglang преди 11 часа
родител
ревизия
11986df348

+ 3 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfDriverScore.java

@@ -1,5 +1,7 @@
 package com.sckw.fleet.model;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.Data;
 import lombok.experimental.Accessors;
@@ -22,6 +24,7 @@ public class KwfDriverScore implements Serializable {
     /**
      * 主键
      */
+    @TableId(value = "id", type = IdType.AUTO)
     private Long id;
 
     /** 供应商企业id */

+ 39 - 34
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderV1Service.java

@@ -153,7 +153,7 @@ public class KwtWaybillOrderV1Service {
     private RemoteSystemService remoteSystemService;
     @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 6000)
     private RemoteUserService remoteUserService;
-    @DubboReference(version = "1.0.0", group = "design", check = false)
+    @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 10000)
     private RemoteFleetService remoteFleetService;
     @DubboReference(version = "1.0.0", group = "design", check = false)
     private TradeOrderInfoService tradeOrderInfoService;
@@ -4632,46 +4632,51 @@ public class KwtWaybillOrderV1Service {
      * @param billOrder
      */
     protected void calculateAutoDispatchScore(KwtWaybillOrder billOrder, Integer status) {
-        if (!DispatchWayEnums.AUTO_DISPATCH.getCode().equals(billOrder.getDispatchWay())) {
-            return;
-        }
-        //查询物流订单
-        KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderRepository.queryByLogisticsOrderId(billOrder.getLOrderId());
+        try {
+            if (!DispatchWayEnums.AUTO_DISPATCH.getCode().equals(billOrder.getDispatchWay())) {
+                return;
+            }
+            //查询物流订单
+            KwtLogisticsOrder logisticsOrder = kwtLogisticsOrderRepository.queryByLogisticsOrderId(billOrder.getLOrderId());
+
+            //查询运单装卸货地址
+            List<KwtWaybillOrderAddress> addressList = waybillOrderAddressRepository.queryByWOrderId(billOrder.getId());
+            if (CollectionUtils.isEmpty(addressList)) {
+                log.info("物流运单无装卸货地址信息,运单id:{}", billOrder.getId());
+                throw new BusinessPlatfromException(ErrorCodeEnum.LOGISTICS_ORDER_NOT_ADDRESS, "物流订单无装卸货地址信息");
+            }
+            Map<Integer, KwtWaybillOrderAddress> addressMap = addressList.stream()
+                    .filter(addr -> addr.getAddressType() != null)
+                    .collect(Collectors.toMap(KwtWaybillOrderAddress::getAddressType, Function.identity(),
+                            (x,y) ->x));
+
+            // 获取司机行为规则配置(司机违规取消运单分钟数)
+            DriverConductRulesVO driverRulesVO = remoteFleetService.findDriverConductRulesByEntId(billOrder.getEntId());
+            if (driverRulesVO == null) {
+                throw new BusinessPlatfromException(ErrorCodeEnum.DATA_NOT_EXIST, "未找到司机行为规则数据!");
+            }
 
-        //查询运单装卸货地址
-        List<KwtWaybillOrderAddress> addressList = waybillOrderAddressRepository.queryByWOrderId(billOrder.getId());
-        if (CollectionUtils.isEmpty(addressList)) {
-            log.info("物流运单无装卸货地址信息,运单id:{}", billOrder.getId());
-            throw new BusinessPlatfromException(ErrorCodeEnum.LOGISTICS_ORDER_NOT_ADDRESS, "物流订单无装卸货地址信息");
-        }
-        Map<Integer, KwtWaybillOrderAddress> addressMap = addressList.stream()
-                .filter(addr -> addr.getAddressType() != null)
-                .collect(Collectors.toMap(KwtWaybillOrderAddress::getAddressType, Function.identity(),
-                        (x,y) ->x));
 
-        // 获取司机行为规则配置(司机违规取消运单分钟数)
-        DriverConductRulesVO driverRulesVO = remoteFleetService.findDriverConductRulesByEntId(billOrder.getEntId());
-        if (driverRulesVO == null) {
-            throw new BusinessPlatfromException(ErrorCodeEnum.DATA_NOT_EXIST, "未找到司机行为规则数据!");
-        }
+            //1. 运单单据错误被驳回
+            checkRefuseScore(billOrder, status, driverRulesVO);
 
+            //运单没通过,不执行以下逻辑
+            if (!Objects.equals(status, CarWaybillV1Enum.COMPLETED.getCode())) {
+                return;
+            }
 
-        //1. 运单单据错误被驳回
-        checkRefuseScore(billOrder, status, driverRulesVO);
+            //2. 校验司机运单完成是否超时
+            checkCompletionTimeout(billOrder, logisticsOrder, driverRulesVO);
 
-        //运单没通过,不执行以下逻辑
-        if (!Objects.equals(status, CarWaybillV1Enum.COMPLETED.getCode())) {
-            return;
-        }
-
-        //2. 校验司机运单完成是否超时
-        checkCompletionTimeout(billOrder, logisticsOrder, driverRulesVO);
+            //3. 校验司机连续准时卸货(审核通过)
+            checkContinuousUnload(billOrder, logisticsOrder);
 
-        //3. 校验司机连续准时卸货(审核通过)
-        checkContinuousUnload(billOrder, logisticsOrder);
+            //4. 校验司机连续准确填写卸货信息(审核通过)
+            checkContinuousPass(billOrder, addressMap);
+        } catch (Exception e) {
+            log.info("司机分数计算失败!", e);
+        }
 
-        //4. 校验司机连续准确填写卸货信息(审核通过)
-        checkContinuousPass(billOrder, addressMap);
 
     }