Răsfoiți Sursa

优化司机行为规则

donglang 1 lună în urmă
părinte
comite
e3e2f2e570

+ 1 - 0
sckw-modules-api/sckw-fleet-api/src/main/java/com/sckw/fleet/api/RemoteFleetService.java

@@ -127,6 +127,7 @@ public interface RemoteFleetService {
 
 
     void updateDriverScoreByEntId(RUpdateDriverScoreDto dto);
     void updateDriverScoreByEntId(RUpdateDriverScoreDto dto);
 
 
+    void driverBindTruck(Long driverId, Long truckId);
 
 
 
 
 }
 }

+ 2 - 2
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfAutoDispatchController.java

@@ -25,7 +25,7 @@ import org.springframework.web.bind.annotation.RestController;
  * @date 2023/7/6 0006
  * @date 2023/7/6 0006
  */
  */
 @RestController
 @RestController
-@RequestMapping("/kwfDriver")
+@RequestMapping("/kwfDriver/auto")
 @Tag(name = "司机行为规则", description = "提供司机行为规则相关操作接口")
 @Tag(name = "司机行为规则", description = "提供司机行为规则相关操作接口")
 @RequiredArgsConstructor
 @RequiredArgsConstructor
 public class KwfAutoDispatchController {
 public class KwfAutoDispatchController {
@@ -95,7 +95,7 @@ public class KwfAutoDispatchController {
      */
      */
     @Operation(summary = "分页查询司机行为规则日志", description = "分页查询司机行为规则日志")
     @Operation(summary = "分页查询司机行为规则日志", description = "分页查询司机行为规则日志")
     @PostMapping("/queryDriverRulesLogPage")
     @PostMapping("/queryDriverRulesLogPage")
-    public BaseResult<PageDataResult<KwfDriverConductRulesLogVO>> queryDriverRulesLogPage(DriverConductRulesLogRequest request){
+    public BaseResult<PageDataResult<KwfDriverConductRulesLogVO>> queryDriverRulesLogPage( @Valid @RequestBody DriverConductRulesLogRequest request){
         PageDataResult<KwfDriverConductRulesLogVO> driverConductRulesLogVOPage = autoDispatchService.queryDriverRulesLogPage(request);
         PageDataResult<KwfDriverConductRulesLogVO> driverConductRulesLogVOPage = autoDispatchService.queryDriverRulesLogPage(request);
         return BaseResult.success(driverConductRulesLogVOPage);
         return BaseResult.success(driverConductRulesLogVOPage);
     }
     }

+ 7 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java

@@ -14,6 +14,7 @@ import com.sckw.fleet.dao.KwfTruckMapper;
 import com.sckw.fleet.model.*;
 import com.sckw.fleet.model.*;
 import com.sckw.fleet.repository.*;
 import com.sckw.fleet.repository.*;
 import com.sckw.fleet.service.KwfDriverScoreService;
 import com.sckw.fleet.service.KwfDriverScoreService;
+import com.sckw.fleet.service.KwfDriverService;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.RemoteSystemService;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import org.apache.dubbo.config.annotation.DubboReference;
 import org.apache.dubbo.config.annotation.DubboReference;
@@ -55,6 +56,7 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
     private final KwfTruckAxleNumRepository truckAxleNumRepository;
     private final KwfTruckAxleNumRepository truckAxleNumRepository;
     private final KwfDriverScoreRepository driverScoreRepository;
     private final KwfDriverScoreRepository driverScoreRepository;
     private final KwfDriverScoreService driverScoreService;
     private final KwfDriverScoreService driverScoreService;
+    private final KwfDriverService driverService;
 
 
 
 
     /**
     /**
@@ -620,4 +622,9 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
     public void updateDriverScoreByEntId(RUpdateDriverScoreDto driverScoreDto) {
     public void updateDriverScoreByEntId(RUpdateDriverScoreDto driverScoreDto) {
         driverScoreService.updateDriverScore(driverScoreDto);
         driverScoreService.updateDriverScore(driverScoreDto);
     }
     }
+
+    @Override
+    public void driverBindTruck(Long driverId, Long truckId) {
+        driverService.bindTruck(driverId, truckId);
+    }
 }
 }

+ 0 - 7
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/DriverConductRulesRequest.java

@@ -18,13 +18,6 @@ public class DriverConductRulesRequest implements Serializable {
     @Serial
     @Serial
     private static final long serialVersionUID = -1143520801815863768L;
     private static final long serialVersionUID = -1143520801815863768L;
 
 
-    /**
-     * 企业id
-     */
-    @Schema(description = "企业id")
-    @NotNull(message = "企业id不能为空!")
-    private Long entId;
-
     /**
     /**
      * 是否初始化
      * 是否初始化
      */
      */

+ 4 - 2
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/KwfDriverConductRulesLogVO.java

@@ -1,5 +1,6 @@
 package com.sckw.fleet.model.vo;
 package com.sckw.fleet.model.vo;
 
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.sckw.fleet.model.KwfDriverConductRulesLog;
 import com.sckw.fleet.model.KwfDriverConductRulesLog;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.Data;
@@ -42,13 +43,14 @@ public class KwfDriverConductRulesLogVO implements Serializable {
     /**
     /**
      * 日志内容
      * 日志内容
      */
      */
-    @Schema(description = "主键id")
+    @Schema(description = "日志内容")
     private String description;
     private String description;
 
 
     /**
     /**
      * 创建时间
      * 创建时间
      */
      */
-    @Schema(description = "主键id")
+    @Schema(description = "Schema")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
     private Date createTime;
 
 
     /**
     /**

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/KwfDriverConductRulesVO.java

@@ -147,7 +147,7 @@ public class KwfDriverConductRulesVO implements Serializable {
 
 
     public static KwfDriverConductRulesVO toVO(KwfDriverConductRules rules){
     public static KwfDriverConductRulesVO toVO(KwfDriverConductRules rules){
         if (rules == null) {
         if (rules == null) {
-            return KwfDriverConductRulesVO.getInstance();
+            return null;
         }
         }
         KwfDriverConductRulesVO rulesVO = KwfDriverConductRulesVO.getInstance();
         KwfDriverConductRulesVO rulesVO = KwfDriverConductRulesVO.getInstance();
         rulesVO.setId(rules.getId());
         rulesVO.setId(rules.getId());

+ 1 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/KwfTruckDispatchCoefficientVO.java

@@ -129,7 +129,7 @@ public class KwfTruckDispatchCoefficientVO implements Serializable {
 
 
     public static KwfTruckDispatchCoefficientVO toVO(KwfTruckDispatchCoefficient result){
     public static KwfTruckDispatchCoefficientVO toVO(KwfTruckDispatchCoefficient result){
         if (result == null) {
         if (result == null) {
-            return KwfTruckDispatchCoefficientVO.getInstance();
+            return null;
         }
         }
         KwfTruckDispatchCoefficientVO rulesVO = KwfTruckDispatchCoefficientVO.getInstance();
         KwfTruckDispatchCoefficientVO rulesVO = KwfTruckDispatchCoefficientVO.getInstance();
         rulesVO.setId(result.getId());
         rulesVO.setId(result.getId());

+ 103 - 42
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfAutoDispatchService.java

@@ -107,36 +107,47 @@ public class KwfAutoDispatchService {
      */
      */
     public void updateAutoDispatch(TruckDispatchCoefficientUpdateRequest request) {
     public void updateAutoDispatch(TruckDispatchCoefficientUpdateRequest request) {
         log.info("更新自动派车系数:{}", JSON.toJSONString(request));
         log.info("更新自动派车系数:{}", JSON.toJSONString(request));
+        Long entId = LoginUserHolder.getEntId();
+        if (entId == null) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "当前登录用户未关联企业ID,无法查询规则");
+        }
+        //如果id为空则是新增
+        if (request.getId() == null) {
+            saveAutoDispatch(request, entId);
+            return;
+        }
+        // 修改
         KwfTruckDispatchCoefficient oldDispatchCoefficient = truckDispatchCoefficientRepository.getById(request.getId());
         KwfTruckDispatchCoefficient oldDispatchCoefficient = truckDispatchCoefficientRepository.getById(request.getId());
         if (oldDispatchCoefficient == null) {
         if (oldDispatchCoefficient == null) {
             throw new BusinessPlatfromException(ErrorCodeEnum.DATA_NOT_EXIST, "查询自动派车系数数据不存在!");
             throw new BusinessPlatfromException(ErrorCodeEnum.DATA_NOT_EXIST, "查询自动派车系数数据不存在!");
         }
         }
 
 
+        // 生成差异化修改文案
+        String modifyDesc = getAutoDispatchModifyDesc(oldDispatchCoefficient, request);
+        if (StringUtils.isEmpty(modifyDesc)) {
+            return;
+        }
+
         KwfTruckDispatchCoefficient newDispatchCoefficient = new KwfTruckDispatchCoefficient();
         KwfTruckDispatchCoefficient newDispatchCoefficient = new KwfTruckDispatchCoefficient();
         BeanUtils.copyProperties(oldDispatchCoefficient, newDispatchCoefficient);
         BeanUtils.copyProperties(oldDispatchCoefficient, newDispatchCoefficient);
 
 
-        oldDispatchCoefficient.setVehicleWorkHours(request.getVehicleWorkHours());
-        oldDispatchCoefficient.setVehicleLoadingHours(request.getVehicleLoadingHours());
-        oldDispatchCoefficient.setVehicleUnloadingHours(request.getVehicleUnloadingHours());
-        oldDispatchCoefficient.setDriverTimeoutLimit(request.getDriverTimeoutLimit());
-        oldDispatchCoefficient.setVehicleAvgLoad(request.getVehicleAvgLoad());
-        oldDispatchCoefficient.setVehicleAvgSpeed(request.getVehicleAvgSpeed());
-        oldDispatchCoefficient.setVehicleMaxTasks(request.getVehicleMaxTasks());
-        oldDispatchCoefficient.setDriverOrderLimit(request.getDriverOrderLimit());
-        oldDispatchCoefficient.setYardVehicleCapacity(request.getYardVehicleCapacity());
-        oldDispatchCoefficient.setMaxRatio(request.getMaxRatio());
-        oldDispatchCoefficient.setBufferCoefficient(request.getBufferCoefficient());
-        oldDispatchCoefficient.setUpdateUser(LoginUserHolder.getUserId());
+        newDispatchCoefficient.setVehicleWorkHours(request.getVehicleWorkHours());
+        newDispatchCoefficient.setVehicleLoadingHours(request.getVehicleLoadingHours());
+        newDispatchCoefficient.setVehicleUnloadingHours(request.getVehicleUnloadingHours());
+        newDispatchCoefficient.setDriverTimeoutLimit(request.getDriverTimeoutLimit());
+        newDispatchCoefficient.setVehicleAvgLoad(request.getVehicleAvgLoad());
+        newDispatchCoefficient.setVehicleAvgSpeed(request.getVehicleAvgSpeed());
+        newDispatchCoefficient.setVehicleMaxTasks(request.getVehicleMaxTasks());
+        newDispatchCoefficient.setDriverOrderLimit(request.getDriverOrderLimit());
+        newDispatchCoefficient.setYardVehicleCapacity(request.getYardVehicleCapacity());
+        newDispatchCoefficient.setMaxRatio(request.getMaxRatio());
+        newDispatchCoefficient.setBufferCoefficient(request.getBufferCoefficient());
+        newDispatchCoefficient.setUpdateUser(LoginUserHolder.getUserId());
 
 
         boolean updateResult = truckDispatchCoefficientRepository.updateById(newDispatchCoefficient);
         boolean updateResult = truckDispatchCoefficientRepository.updateById(newDispatchCoefficient);
         if (!updateResult) {
         if (!updateResult) {
             throw new BusinessPlatfromException(ErrorCodeEnum.DATA_UPDATE_FAIL, "更新自动派车系数失败");
             throw new BusinessPlatfromException(ErrorCodeEnum.DATA_UPDATE_FAIL, "更新自动派车系数失败");
         }
         }
-        // 生成差异化修改文案
-        String modifyDesc = getAutoDispatchModifyDesc(oldDispatchCoefficient, request);
-        if (StringUtils.isEmpty(modifyDesc)) {
-            return;
-        }
 
 
         //生成规则更新日志
         //生成规则更新日志
         KwfDriverConductRulesLog rulesLog = new KwfDriverConductRulesLog();
         KwfDriverConductRulesLog rulesLog = new KwfDriverConductRulesLog();
@@ -153,8 +164,29 @@ public class KwfAutoDispatchService {
         log.info("更新自动派车系数成功!修改内容:{}", modifyDesc);
         log.info("更新自动派车系数成功!修改内容:{}", modifyDesc);
     }
     }
 
 
-
-
+    /**
+     * 保存自动派车系数表
+     * @param request
+     */
+    private void saveAutoDispatch(TruckDispatchCoefficientUpdateRequest request, Long entId) {
+        log.info("新增自动派车系数:{}", JSON.toJSONString(request));
+        KwfTruckDispatchCoefficient dispatchCoefficient = new KwfTruckDispatchCoefficient();
+        dispatchCoefficient.setEntId(entId);
+        dispatchCoefficient.setVehicleWorkHours(request.getVehicleWorkHours());
+        dispatchCoefficient.setVehicleLoadingHours(request.getVehicleLoadingHours());
+        dispatchCoefficient.setVehicleUnloadingHours(request.getVehicleUnloadingHours());
+        dispatchCoefficient.setDriverTimeoutLimit(request.getDriverTimeoutLimit());
+        dispatchCoefficient.setVehicleAvgLoad(request.getVehicleAvgLoad());
+        dispatchCoefficient.setVehicleAvgSpeed(request.getVehicleAvgSpeed());
+        dispatchCoefficient.setVehicleMaxTasks(request.getVehicleMaxTasks());
+        dispatchCoefficient.setDriverOrderLimit(request.getDriverOrderLimit());
+        dispatchCoefficient.setYardVehicleCapacity(request.getYardVehicleCapacity());
+        dispatchCoefficient.setMaxRatio(request.getMaxRatio());
+        dispatchCoefficient.setBufferCoefficient(request.getBufferCoefficient());
+        dispatchCoefficient.setCreateUser(LoginUserHolder.getUserId());
+        dispatchCoefficient.setUpdateUser(LoginUserHolder.getUserId());
+        truckDispatchCoefficientRepository.save(dispatchCoefficient);
+    }
 
 
     /**
     /**
      * 生成司机行为规则修改的差异化文案
      * 生成司机行为规则修改的差异化文案
@@ -187,6 +219,19 @@ public class KwfAutoDispatchService {
         return StringUtils.join(changeItems, ",");
         return StringUtils.join(changeItems, ",");
     }
     }
 
 
+    /**
+     * 对比单个字段值,有变化则添加到文案列表
+     * @param items 文案列表
+     * @param fieldName 字段业务名称
+     * @param oldValue 旧值
+     * @param newValue 新值
+     */
+    private void compareAndAddItem(List<String> items, String fieldName, Integer oldValue, Integer newValue) {
+        // 仅当值不同时添加文案
+        if (!Objects.equals(oldValue, newValue)) {
+            items.add(String.format("%s由【%s】设置为【%s】", fieldName, oldValue, newValue));
+        }
+    }
 
 
     /**
     /**
      * 对比单个字段值,有变化则添加到文案列表
      * 对比单个字段值,有变化则添加到文案列表
@@ -197,12 +242,11 @@ public class KwfAutoDispatchService {
      */
      */
     private void compareAndAddItem(List<String> items, String fieldName, BigDecimal oldValue, BigDecimal newValue) {
     private void compareAndAddItem(List<String> items, String fieldName, BigDecimal oldValue, BigDecimal newValue) {
         // 仅当值不同时添加文案
         // 仅当值不同时添加文案
-        if (Objects.equals(oldValue, newValue)) {
+        if (oldValue.compareTo(newValue) != 0) {
             items.add(String.format("%s由【%s】设置为【%s】", fieldName, oldValue, newValue));
             items.add(String.format("%s由【%s】设置为【%s】", fieldName, oldValue, newValue));
         }
         }
     }
     }
 
 
-
     /**
     /**
      * 查询司机行为规则
      * 查询司机行为规则
      * @param request
      * @param request
@@ -259,12 +303,27 @@ public class KwfAutoDispatchService {
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public void updateDriverConduct(DriverConductRulesUpdateRequest request) {
     public void updateDriverConduct(DriverConductRulesUpdateRequest request) {
         log.info("更新司机行为规则:{}", JSON.toJSONString(request));
         log.info("更新司机行为规则:{}", JSON.toJSONString(request));
-
+        Long entId = LoginUserHolder.getEntId();
+        if (entId == null) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "当前登录用户未关联企业ID,无法查询规则");
+        }
+        // 新增
+        if (request.getId() == null) {
+            saveDriverConductRules(request, entId);
+            return;
+        }
+        // 修改
         KwfDriverConductRules oldDriverConductRules = driverConductRulesRepository.getById(request.getId());
         KwfDriverConductRules oldDriverConductRules = driverConductRulesRepository.getById(request.getId());
         if (oldDriverConductRules == null) {
         if (oldDriverConductRules == null) {
             throw new BusinessPlatfromException(ErrorCodeEnum.DATA_NOT_EXIST, "查询司机行为规则数据不存在!");
             throw new BusinessPlatfromException(ErrorCodeEnum.DATA_NOT_EXIST, "查询司机行为规则数据不存在!");
         }
         }
 
 
+        // 生成差异化修改文案
+        String modifyDesc = getDriverModifyDesc(oldDriverConductRules, request);
+        if (StringUtils.isEmpty(modifyDesc)) {
+            return;
+        }
+
         KwfDriverConductRules newDriverConductRules = new KwfDriverConductRules();
         KwfDriverConductRules newDriverConductRules = new KwfDriverConductRules();
         BeanUtils.copyProperties(oldDriverConductRules, newDriverConductRules);
         BeanUtils.copyProperties(oldDriverConductRules, newDriverConductRules);
 
 
@@ -288,11 +347,6 @@ public class KwfAutoDispatchService {
         if (!updateResult) {
         if (!updateResult) {
             throw new BusinessPlatfromException(ErrorCodeEnum.DATA_UPDATE_FAIL, "更新司机行为规则失败");
             throw new BusinessPlatfromException(ErrorCodeEnum.DATA_UPDATE_FAIL, "更新司机行为规则失败");
         }
         }
-        // 生成差异化修改文案
-        String modifyDesc = getDriverModifyDesc(oldDriverConductRules, request);
-        if (StringUtils.isEmpty(modifyDesc)) {
-            return;
-        }
 
 
         //生成规则更新日志
         //生成规则更新日志
         KwfDriverConductRulesLog rulesLog = new KwfDriverConductRulesLog();
         KwfDriverConductRulesLog rulesLog = new KwfDriverConductRulesLog();
@@ -309,6 +363,28 @@ public class KwfAutoDispatchService {
         log.info("更新司机行为规则成功!修改内容:{}", modifyDesc);
         log.info("更新司机行为规则成功!修改内容:{}", modifyDesc);
     }
     }
 
 
+    private void saveDriverConductRules(DriverConductRulesUpdateRequest request, Long entId) {
+        KwfDriverConductRules driverConductRules = new KwfDriverConductRules();
+        driverConductRules.setEntId(entId);
+        driverConductRules.setUnloadSeriousTimeoutScore(request.getUnloadSeriousTimeoutScore());
+        driverConductRules.setUnloadSeriousTimeoutMultiple(request.getUnloadSeriousTimeoutMultiple());
+        driverConductRules.setDocumentErrorMissingScore(request.getDocumentErrorMissingScore());
+        driverConductRules.setNotOnTimeArriveScore(request.getNotOnTimeArriveScore());
+        driverConductRules.setFakeUnloadScore(request.getFakeUnloadScore());
+        driverConductRules.setFakeUnloadDistance(request.getFakeUnloadDistance());
+        driverConductRules.setIllegalCancelOrderScore(request.getIllegalCancelOrderScore());
+        driverConductRules.setIllegalCancelOrderMinutes(request.getIllegalCancelOrderMinutes());
+        driverConductRules.setContinuousOnTimeArriveScore(request.getContinuousOnTimeArriveScore());
+        driverConductRules.setContinuousOnTimeArriveTimes(request.getContinuousOnTimeArriveTimes());
+        driverConductRules.setContinuousOnTimeUnloadScore(request.getContinuousOnTimeUnloadScore());
+        driverConductRules.setContinuousOnTimeUnloadTimes(request.getContinuousOnTimeUnloadTimes());
+        driverConductRules.setContinuousAccurateUnloadScore(request.getContinuousAccurateUnloadScore());
+        driverConductRules.setContinuousAccurateUnloadTimes(request.getContinuousAccurateUnloadTimes());
+        driverConductRules.setCreateUser(LoginUserHolder.getUserId());
+        driverConductRules.setUpdateUser(LoginUserHolder.getUserId());
+        driverConductRulesRepository.save(driverConductRules);
+    }
+
     /**
     /**
      * 生成司机行为规则修改的差异化文案
      * 生成司机行为规则修改的差异化文案
      * @param oldRule 旧规则数据
      * @param oldRule 旧规则数据
@@ -343,21 +419,6 @@ public class KwfAutoDispatchService {
         return StringUtils.join(changeItems, ",");
         return StringUtils.join(changeItems, ",");
     }
     }
 
 
-    /**
-     * 对比单个字段值,有变化则添加到文案列表
-     * @param items 文案列表
-     * @param fieldName 字段业务名称
-     * @param oldValue 旧值
-     * @param newValue 新值
-     */
-    private void compareAndAddItem(List<String> items, String fieldName, Integer oldValue, Integer newValue) {
-        // 仅当值不同时添加文案  //TODO  donglang BigDecimal
-        if (Objects.equals(oldValue, newValue)) {
-            items.add(String.format("%s由【%s】设置为【%s】", fieldName, oldValue, newValue));
-        }
-    }
-
-
     /**
     /**
      * 查询司机行为规则
      * 查询司机行为规则
      * @param request
      * @param request

+ 26 - 10
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfDriverService.java

@@ -1205,33 +1205,49 @@ public class KwfDriverService {
      * @date 2023/7/6
      * @date 2023/7/6
      **/
      **/
     public HttpResult bindTruck(KwfBindTruckDto params) {
     public HttpResult bindTruck(KwfBindTruckDto params) {
-        if (StringUtils.isBlank(params.getTruckId())) {
-            return HttpResult.ok("未选择需要绑定的车辆!");
+         bindTruck(params.getId(), params.getTruckId());
+         return HttpResult.ok();
+    }
+
+    /**
+     * @param params 参数
+     * @desc 修改司机
+     * @author zk
+     * @date 2023/7/6
+     **/
+    public void bindTruck(Long driverId, Long truckId) {
+        if (driverId == null || truckId == null) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.PARAM_ERROR, "司机id和车辆id不能为空!");
         }
         }
         //查询司机是否存在已绑定的车辆
         //查询司机是否存在已绑定的车辆
         KwfTruckReport truckReport = truckReportRepository.getOne(Wrappers.<KwfTruckReport>lambdaQuery()
         KwfTruckReport truckReport = truckReportRepository.getOne(Wrappers.<KwfTruckReport>lambdaQuery()
                 .eq(KwfTruckReport::getEntId, LoginUserHolder.getEntId())
                 .eq(KwfTruckReport::getEntId, LoginUserHolder.getEntId())
-                .eq(KwfTruckReport::getDriverId, params.getId())
+                .eq(KwfTruckReport::getDriverId, driverId)
                 .eq(KwfTruckReport::getDelFlag, Global.NO)
                 .eq(KwfTruckReport::getDelFlag, Global.NO)
                 .eq(KwfTruckReport::getStatus, Global.YES));
                 .eq(KwfTruckReport::getStatus, Global.YES));
         if(truckReport == null) {
         if(truckReport == null) {
             KwfTruckReport newTruckReport = new KwfTruckReport();
             KwfTruckReport newTruckReport = new KwfTruckReport();
-            newTruckReport.setTruckId(params.getTruckId());
-            newTruckReport.setDriverId(params.getId());
+            newTruckReport.setTruckId(truckId);
+            newTruckReport.setDriverId(driverId);
             newTruckReport.setEntId(LoginUserHolder.getEntId());
             newTruckReport.setEntId(LoginUserHolder.getEntId());
             newTruckReport.setStatus(Global.YES);
             newTruckReport.setStatus(Global.YES);
             boolean saveResult = truckReportRepository.save(newTruckReport);
             boolean saveResult = truckReportRepository.save(newTruckReport);
-            return saveResult ? HttpResult.ok("车辆绑定成功!") : HttpResult.error("车辆绑定失败!");
+            if (!saveResult) {
+                throw new BusinessPlatfromException(ErrorCodeEnum.DB_OPERATE_FAIL, "车辆绑定失败!");
+            }
         } else {
         } else {
-            if (truckReport.getTruckId().equals(params.getTruckId())) {
-                return HttpResult.error("此车辆已与此司机绑定,请重选选择车辆");
+            if (truckReport.getTruckId().equals(truckId)) {
+                throw new BusinessPlatfromException(ErrorCodeEnum.ASSOCIATED_TRUCK_EXIST, "此车辆已与此司机绑定,请重选选择车辆!");
             }
             }
-            truckReport.setTruckId(params.getTruckId());
+            truckReport.setTruckId(truckId);
             boolean updateResult = truckReportRepository.updateById(truckReport);
             boolean updateResult = truckReportRepository.updateById(truckReport);
-            return updateResult ? HttpResult.ok("车辆绑定成功!") : HttpResult.error("车辆绑定失败!");
+            if (!updateResult) {
+                throw new BusinessPlatfromException(ErrorCodeEnum.DB_OPERATE_FAIL, "车辆绑定失败!");
+            }
         }
         }
     }
     }
 
 
+
     /**
     /**
      * 查询司机关联车辆信息
      * 查询司机关联车辆信息
      * @param request
      * @param request

+ 10 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/TakingOrderHandler.java

@@ -111,6 +111,9 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
         //6、更新上游订单:回写贸易订单
         //6、更新上游订单:回写贸易订单
 //        updateTradeOrder(tradeOrder, truckLoadVolume);
 //        updateTradeOrder(tradeOrder, truckLoadVolume);
 
 
+        //7、绑定车辆
+        driverBindTruck(waybill);
+
         BusinessContext.set("createdWaybillOrder", waybillOrder);
         BusinessContext.set("createdWaybillOrder", waybillOrder);
 
 
         log.info("物流订单接单完成,运单ID:{}", waybillOrder.getId());
         log.info("物流订单接单完成,运单ID:{}", waybillOrder.getId());
@@ -548,7 +551,7 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
         return  "司机[" + actualOrder.getDriverName() + "]接单成功,预计任务量[" + entrustAmount + "吨]";
         return  "司机[" + actualOrder.getDriverName() + "]接单成功,预计任务量[" + entrustAmount + "吨]";
     }
     }
 
 
-    // 7. 接单需要单独创建接单轨迹数据
+    // 接单需要单独创建接单轨迹数据
     protected OrderTakingResp afterProcess(OrderCirculateTakingQueryParam param, KwtWaybillOrder waybillOrder) {
     protected OrderTakingResp afterProcess(OrderCirculateTakingQueryParam param, KwtWaybillOrder waybillOrder) {
         KwtWaybillOrder actualOrder = BusinessContext.get("createdWaybillOrder");
         KwtWaybillOrder actualOrder = BusinessContext.get("createdWaybillOrder");
         createNodeTrace(param, actualOrder);
         createNodeTrace(param, actualOrder);
@@ -559,5 +562,11 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
 
 
     }
     }
 
 
+    // 7. 绑定车辆
+    private void driverBindTruck(KwtWaybillOrder waybillOrder) {
+        remoteFleetService.driverBindTruck(waybillOrder.getDriverId(), waybillOrder.getTruckId());
+
+    }
+
 
 
 }
 }

+ 2 - 1
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/app/WaybillOrderService.java

@@ -361,7 +361,8 @@ public class WaybillOrderService {
         orderResp.setSendOperator(Optional.ofNullable(userCacheResDto).map(UserCacheResDto::getName).orElse(null));
         orderResp.setSendOperator(Optional.ofNullable(userCacheResDto).map(UserCacheResDto::getName).orElse(null));
         orderResp.setSendPhone(Optional.ofNullable(userCacheResDto).map(UserCacheResDto::getPhone).orElse(null));
         orderResp.setSendPhone(Optional.ofNullable(userCacheResDto).map(UserCacheResDto::getPhone).orElse(null));
         orderResp.setStatus(Optional.ofNullable(order.getStatus()).map(String::valueOf).orElse(null));
         orderResp.setStatus(Optional.ofNullable(order.getStatus()).map(String::valueOf).orElse(null));
-        orderResp.setStatusDesc(LogisticsOrderV1Enum.getDesc(order.getStatus()));
+        orderResp.setStatusDesc(LogisticsOrderV1Enum.IN_TRANSIT.getCode().equals(order.getStatus()) ? "待接单" : "未知状态");
+
 
 
         return orderResp;
         return orderResp;
     }
     }

+ 2 - 3
sql/2025/12/01/2025_12_04_donglang.sql

@@ -29,11 +29,10 @@ create table kwf_driver_conduct_rules
 create table kwf_driver_conduct_rules_log
 create table kwf_driver_conduct_rules_log
 (
 (
     id                              bigint          NOT NULL AUTO_INCREMENT COMMENT '主键',
     id                              bigint          NOT NULL AUTO_INCREMENT COMMENT '主键',
-    dcr_id                          bigint          NOT NULL DEFAULT '-1' comment '司机行为规则id',
+    biz_id                          bigint          NOT NULL DEFAULT '-1' comment '司机行为规则id',
+    status                          int             NOT NULL DEFAULT '0' COMMENT '状态(0-自动派单,1-司机行为规则)',
     description                     varchar(255)    CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci   DEFAULT NULL COMMENT '日志内容',
     description                     varchar(255)    CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci   DEFAULT NULL COMMENT '日志内容',
-    del_flag                        int             NOT NULL DEFAULT '0' COMMENT '是否删除(0未删除,1删除)',
     create_time                     datetime        NOT NULL default CURRENT_TIMESTAMP comment '创建时间',
     create_time                     datetime        NOT NULL default CURRENT_TIMESTAMP comment '创建时间',
-    update_time                     datetime        NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP comment '更新时间',
     create_user                     bigint          NOT NULL DEFAULT '-1' comment '创建人',
     create_user                     bigint          NOT NULL DEFAULT '-1' comment '创建人',
     update_user                     bigint          NOT NULL DEFAULT '-1' comment '更新人',
     update_user                     bigint          NOT NULL DEFAULT '-1' comment '更新人',
     PRIMARY KEY (`id`) USING BTREE
     PRIMARY KEY (`id`) USING BTREE