Procházet zdrojové kódy

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

xucaiqin před 2 měsíci
rodič
revize
ec134d38cf
24 změnil soubory, kde provedl 888 přidání a 71 odebrání
  1. 2 0
      sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/ErrorCodeEnum.java
  2. 11 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckAxleNumController.java
  3. 45 4
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java
  4. 3 2
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java
  5. 51 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfTruck.java
  6. 6 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/TmsTruckAxleNum.java
  7. 45 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/enums/TruckEevEnum.java
  8. 41 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/enums/TruckEnergyTypeEnum.java
  9. 1 6
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/enums/TruckStatusEnum.java
  10. 41 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/enums/TruckTypeEnum.java
  11. 175 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/reponse/TruckDetailResp.java
  12. 6 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/reponse/TruckResp.java
  13. 49 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/TruckAxleNumUpdateParam.java
  14. 4 6
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/TruckBlacklistParam.java
  15. 5 7
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/TruckQueryParam.java
  16. 35 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/TruckReviewParam.java
  17. 133 0
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/TruckSaveParam.java
  18. 5 5
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/TruckUpdateStatusParam.java
  19. 24 1
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckAxleNumService.java
  20. 174 33
      sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckService.java
  21. 4 4
      sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsMenuService.java
  22. 7 0
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/ComeIntoHandler.java
  23. 3 2
      sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/TakingOrderHandler.java
  24. 18 0
      sql/2026/01/2026_01_06_donglang_create.sql

+ 2 - 0
sckw-common/sckw-common-core/src/main/java/com/sckw/core/common/enums/enums/ErrorCodeEnum.java

@@ -83,6 +83,8 @@ public enum ErrorCodeEnum {
     TRUCK_STATUS_ERROR("600003", "车辆信息状态异常"),
     ASSOCIATED_TRUCK_NOT_FOUND("600004", "司机关联车辆信息不存在"),
     ASSOCIATED_TRUCK_EXIST("600005", "司机关联车辆已存在"),
+    TRUCK_EXIST("600006", "车辆已存在"),
+    TRUCK_REVIEW_ERROR("600007", "车辆审核异常"),
 
 
     // ====================== 铲车订单(100000~110000)======================

+ 11 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckAxleNumController.java

@@ -2,6 +2,7 @@ package com.sckw.fleet.controller;
 
 
 import com.sckw.core.web.response.BaseResult;
+import com.sckw.fleet.model.request.TruckAxleNumUpdateParam;
 import com.sckw.fleet.model.vo.TruckAxleNumVO;
 import com.sckw.fleet.service.KwfTruckAxleNumService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -35,4 +36,14 @@ public class KwfTruckAxleNumController {
         return BaseResult.success(truckAxleNumVOS);
     }
 
+    /**
+     * 修改轴数
+     * @return
+     */
+    @PostMapping("/updateTruckAxleNum")
+    public BaseResult updateTruckAxleNum(TruckAxleNumUpdateParam param) {
+        kwfTruckAxleNumService.updateTruckAxleNum(param);
+        return BaseResult.success();
+    }
+
 }

+ 45 - 4
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/controller/KwfTruckController.java

@@ -19,10 +19,11 @@ import com.sckw.fleet.model.dto.GpsByTruckNoDto;
 import com.sckw.fleet.model.dto.KwfTransportLicenseDto;
 import com.sckw.fleet.model.dto.KwfTruckDto;
 import com.sckw.fleet.model.dto.KwfTruckLicenseDto;
-import com.sckw.fleet.model.reponse.TruckBlacklistParam;
-import com.sckw.fleet.model.reponse.TruckQueryParam;
+import com.sckw.fleet.model.reponse.TruckDetailResp;
+import com.sckw.fleet.model.request.TruckBlacklistParam;
+import com.sckw.fleet.model.request.TruckQueryParam;
 import com.sckw.fleet.model.reponse.TruckResp;
-import com.sckw.fleet.model.reponse.TruckUpdateStatusParam;
+import com.sckw.fleet.model.request.TruckUpdateStatusParam;
 import com.sckw.fleet.model.request.*;
 import com.sckw.fleet.model.vo.*;
 import com.sckw.fleet.service.KwfTruckService;
@@ -398,6 +399,33 @@ public class KwfTruckController {
     }
 
 
+    /**
+     * 车辆详情
+     *
+     * @param id
+     * @return
+     */
+    @Operation(summary = "车辆详情", description = "车辆详情")
+    @PostMapping("/truckDetail")
+    public BaseResult<TruckDetailResp> truckDetail(Long id){
+        TruckDetailResp truckDetailResp = truckService.truckDetail(id);
+        return BaseResult.success(truckDetailResp);
+    }
+
+    /**
+     * 保存车辆
+     *
+     * @param param
+     * @return
+     */
+    @Operation(summary = "保存车辆", description = "保存车辆")
+    @PostMapping("/saveTruck")
+    public BaseResult saveTruck(TruckSaveParam param){
+        truckService.saveTruck(param);
+        return BaseResult.success();
+    }
+
+
     /**
      *
      * 批量启用/停用
@@ -412,7 +440,7 @@ public class KwfTruckController {
 
     /**
      *
-     * 批量启用/停用
+     * 黑名单
      * @param param
      * @return
      */
@@ -422,5 +450,18 @@ public class KwfTruckController {
         return BaseResult.success();
     }
 
+    /**
+     *
+     * 车辆审核
+     * @param param
+     * @return
+     */
+    @PostMapping("/reviewTruck")
+    public BaseResult reviewTruck(@RequestBody @Valid TruckReviewParam param) {
+        truckService.reviewTruck(param);
+        return BaseResult.success();
+    }
+
+
 
 }

+ 3 - 2
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java

@@ -12,6 +12,7 @@ import com.sckw.fleet.api.model.vo.*;
 import com.sckw.fleet.dao.KwfDriverMapper;
 import com.sckw.fleet.dao.KwfTruckMapper;
 import com.sckw.fleet.model.*;
+import com.sckw.fleet.model.enums.TruckTypeEnum;
 import com.sckw.fleet.repository.*;
 import com.sckw.fleet.service.KwfDriverScoreService;
 import com.sckw.fleet.service.KwfDriverService;
@@ -190,7 +191,7 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
         TmsTruckAxleNum carAxisInfo = getCarAxisInfo(truck.getCarAxis());
         truckVo.setCarAxisId(carAxisInfo.getId());
         truckVo.setCarAxis(carAxisInfo.getName());
-        truckVo.setLegalLoad(carAxisInfo.getLegalLoad());
+        truckVo.setLegalLoad(Objects.equals(TruckTypeEnum.TRUCK.getCode(), truck.getType()) ? carAxisInfo.getLegalLoad() : carAxisInfo.getTractorLegalLoad());
         return truckVo;
     }
 
@@ -367,7 +368,7 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
         TmsTruckAxleNum carAxisInfo = getCarAxisInfo(truck.getCarAxis());
         rTruckVo.setCarAxisId(carAxisInfo.getId());
         rTruckVo.setCarAxis(carAxisInfo.getName());
-        rTruckVo.setLegalLoad(carAxisInfo.getLegalLoad());
+        rTruckVo.setLegalLoad(Objects.equals(TruckTypeEnum.TRUCK.getCode(), truck.getType()) ? carAxisInfo.getLegalLoad() : carAxisInfo.getTractorLegalLoad());
         rTruckVo.setEnergyType(truck.getEnergyType());
         return rTruckVo;
     }

+ 51 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfTruck.java

@@ -1,10 +1,13 @@
 package com.sckw.fleet.model;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.sckw.core.model.base.BaseModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
+
 import java.math.BigDecimal;
 
 /**
@@ -15,6 +18,7 @@ import java.math.BigDecimal;
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
+@TableName("kwf_truck")
 public class KwfTruck extends BaseModel {
 
 //    /**
@@ -148,4 +152,51 @@ public class KwfTruck extends BaseModel {
      */
     @TableField("vin")
     private String vin;
+
+    /**
+     * 发动机号
+     */
+    private String engineNo;
+
+    /**
+     * 年审到期时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Data annualInspectionTime;
+
+    /**
+     * 道路运输证有效期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Data transportValidityTime;
+
+    /**
+     * 定位设备
+     */
+    private String positionDevice;
+
+    /**
+     * 车辆行驶证信息
+     */
+    private String truckLicense;
+
+    /**
+     * 车辆道路运输许可证
+     */
+    private String transportLicense;
+
+    /**
+     * 环保清单照片
+     */
+    private String environmentalList;
+
+    /**
+     * 黑名单
+     */
+    private Integer blacklist;
+
+
+
+
+
 }

+ 6 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/TmsTruckAxleNum.java

@@ -45,10 +45,15 @@ public class TmsTruckAxleNum implements Serializable {
     private BigDecimal standardLoad;
 
     /**
-     * 法定载重
+     * 货车法定载重
      */
     private BigDecimal legalLoad;
 
+    /**
+     * 牵引车法定载重
+     */
+    private BigDecimal tractorLegalLoad;
+
     /**
      * 创建人ID
      */

+ 45 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/enums/TruckEevEnum.java

@@ -0,0 +1,45 @@
+package com.sckw.fleet.model.enums;
+
+import lombok.Getter;
+
+/**
+ * @author zk
+ * @desc 车辆排放标准类型
+ * @date 2024/3/8 0008
+ */
+@Getter
+public enum TruckEevEnum {
+    /**
+     * 国四
+     */
+    GUO_SI(1, "国四"),
+    /**
+     * 国五
+     */
+    GUO_WU(1, "国五"),
+
+    /**
+     * 国六
+     */
+    GUO_LIU(1, "国六")
+
+    ;
+
+
+    private final Integer code;
+    private final String name;
+
+    TruckEevEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static String getName(Integer code) {
+        for (TruckEevEnum entity : TruckEevEnum.values()) {
+            if (entity.getCode().equals(code)) {
+                return entity.getName();
+            }
+        }
+        return null;
+    }
+}

+ 41 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/enums/TruckEnergyTypeEnum.java

@@ -0,0 +1,41 @@
+package com.sckw.fleet.model.enums;
+
+import lombok.Getter;
+
+/**
+ * @author zk
+ * @desc 车辆能源类型
+ * @date 2024/3/8 0008
+ */
+@Getter
+public enum TruckEnergyTypeEnum {
+    /**
+     * 传统能源车辆
+     */
+    TRADITIONAL(1, "传统能源车辆"),
+
+    /**
+     * 新能源车辆
+     */
+    NEW_ENERGY(2, "新能源车辆")
+
+    ;
+
+
+    private final Integer code;
+    private final String name;
+
+    TruckEnergyTypeEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static String getName(Integer code) {
+        for (TruckEnergyTypeEnum entity : TruckEnergyTypeEnum.values()) {
+            if (entity.getCode().equals(code)) {
+                return entity.getName();
+            }
+        }
+        return null;
+    }
+}

+ 1 - 6
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/enums/TruckStatusEnum.java

@@ -27,12 +27,7 @@ public enum TruckStatusEnum {
     /**
      * 审核驳回
      */
-    REVIEW_REJECTED(3, "审核驳回"),
-
-    /**
-     * 黑名单
-     */
-    BLACKLIST(4, "黑名单");
+    REVIEW_REJECTED(3, "审核驳回");
 
 
     private final Integer code;

+ 41 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/enums/TruckTypeEnum.java

@@ -0,0 +1,41 @@
+package com.sckw.fleet.model.enums;
+
+import lombok.Getter;
+
+/**
+ * @author zk
+ * @desc 车辆类型
+ * @date 2024/3/8 0008
+ */
+@Getter
+public enum TruckTypeEnum {
+    /**
+     * 货车
+     */
+    TRUCK(1, "货车"),
+
+    /**
+     * 牵引车
+     */
+    TRACTOR(1, "牵引车")
+
+    ;
+
+
+    private final Integer code;
+    private final String name;
+
+    TruckTypeEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static String getName(Integer code) {
+        for (TruckTypeEnum entity : TruckTypeEnum.values()) {
+            if (entity.getCode().equals(code)) {
+                return entity.getName();
+            }
+        }
+        return null;
+    }
+}

+ 175 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/reponse/TruckDetailResp.java

@@ -0,0 +1,175 @@
+package com.sckw.fleet.model.reponse;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author zk
+ * @desc 车辆信息
+ * @date 2023/7/11 0011
+ */
+@Data
+public class TruckDetailResp implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -390999289225406231L;
+
+    /**
+     * 车辆主键id
+     */
+    @Schema(description = "车辆主键id")
+    private Long id;
+
+    /**
+     * 车牌号
+     */
+    @Schema(description = "车牌号")
+    private String truckNo;
+
+    /**
+     * 车辆类别(牵引车、货车)
+     */
+    @Schema(description = "车辆类别(牵引车、货车)")
+    private Integer type;
+
+    /**
+     * 车辆类别描述
+     */
+    @Schema(description = "车辆类别描述")
+    private String typeDesc;
+
+    /**
+     * 轴数(1-二轴、2-三轴、3-四轴、5-六轴)
+     */
+    @Schema(description = "轴数(1-二轴、2-三轴、3-四轴、5-六轴)")
+    private String carAxis;
+
+    /**
+     * 轴数名称
+     */
+    @Schema(description = "轴数名称")
+    private String carAxisName;
+
+    /**
+     * 车辆唯一识别码
+     */
+    @Schema(description = "vin")
+    private String vin;
+
+    /**
+     * 品牌
+     */
+    @Schema(description = "品牌")
+    private String brand;
+
+    /**
+     * 能源类型(1-传统能源车辆、2-新能源车辆)
+     */
+    @Schema(description = "能源类型(1-传统能源车辆、2-新能源车辆)")
+    private int energyType;
+
+    /**
+     * 能源类型描述
+     */
+    @Schema(description = "能源类型描述")
+    private String energyTypeDesc;
+
+    /**
+     * 排放标准(1-国四、2-国五、3-国六)
+     */
+    @Schema(description = "排放标准(1-国四、2-国五、3-国六)")
+    private int eev;
+
+    /**
+     * 排放标准描述
+     */
+    @Schema(description = "排放标准描述")
+    private String eevDesc;
+
+    /**
+     * 状态(0-正常、1-停用、2-待审核、3-审核驳回、4-黑名单)
+     */
+    @Schema(description = "状态(0-正常、1-停用、2-待审核、3-审核驳回、4-黑名单)")
+    private int status;
+
+    /**
+     * 状态描述
+     */
+    @Schema(description = "状态描述")
+    private String statusDesc;
+
+
+    /**
+     * 发动机号
+     */
+    @Schema(description = "发动机号")
+    private String engineNo;
+
+    /**
+     * 年审到期时间
+     */
+    @NotNull(message = "年审到期时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Data annualInspectionTime;
+
+    /**
+     * 道路运输证有效期
+     */
+    @NotNull(message = "道路运输证有效期不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Data transportValidityTime;
+
+    /**
+     * 定位设备
+     */
+    @Schema(description = "发动机号")
+    private String positionDevice;
+
+    /**
+     * 车辆行驶证信息
+     */
+    @Schema(description = "车辆行驶证信息")
+    private String truckLicense;
+
+    /**
+     * 车辆道路运输许可证
+     */
+    @Schema(description = "车辆道路运输许可证")
+    private String transportLicense;
+
+    /**
+     * 环保清单照片
+     */
+    @Schema(description = "环保清单照片")
+    private String environmentalList;
+
+    /**
+     * 车队id
+     */
+    @Schema(description = "车队id")
+    private Long fleetId;
+
+    /**
+     * 车队名称
+     */
+    @Schema(description = "车队名称")
+    private String fleetName;
+
+    /**
+     * 车队名称
+     */
+    @Schema(description = "车队名称")
+    private String driverName;
+
+    /**
+     * 黑名单
+     */
+    @Schema(description = "目标状态: 0-正常、1-黑名单")
+    private Integer blacklist;
+
+}

+ 6 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/reponse/TruckResp.java

@@ -84,6 +84,12 @@ public class TruckResp implements Serializable {
     @Schema(description = "关联司机")
     private String driverName;
 
+    /**
+     * 黑名单
+     */
+    @Schema(description = "目标状态: 0-正常、1-黑名单")
+    private Integer blacklist;
+
     /**
      * 创建时间
      */

+ 49 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/TruckAxleNumUpdateParam.java

@@ -0,0 +1,49 @@
+package com.sckw.fleet.model.request;
+
+import com.sckw.core.web.request.PageReq;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author zk
+ * @desc 车辆轴数信息
+ * @date 2023/7/11 0011
+ */
+@Data
+public class TruckAxleNumUpdateParam extends PageReq implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -1804956106629602885L;
+
+    @Schema(description = "轴数")
+    private List<TruckAxleNumUpdateParamVO> truckAxleNumUpdateParamVOList;
+
+
+    @Data
+    public class TruckAxleNumUpdateParamVO implements Serializable {
+
+        @Serial
+        private static final long serialVersionUID = -7905792845847783871L;
+
+        @NotNull(message = "车辆轴数ID不能为空")
+        @Schema(description = "车辆轴数ID")
+        private Long id;
+
+        @NotNull(message = "货车法定载重不能为空")
+        @Schema(description = "货车法定载重")
+        private BigDecimal legalLoad;
+
+        @NotNull(message = "牵引车法定载重不能为空")
+        @Schema(description = "牵引车法定载重")
+        private BigDecimal tractorLegalLoad;
+
+    }
+
+
+}

+ 4 - 6
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/reponse/TruckBlacklistParam.java → sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/TruckBlacklistParam.java

@@ -1,7 +1,6 @@
-package com.sckw.fleet.model.reponse;
+package com.sckw.fleet.model.request;
 
 import com.sckw.core.web.request.PageReq;
-import com.sckw.excel.annotation.ExcelContext;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -14,17 +13,16 @@ import java.io.Serializable;
  * @date 2023/7/11 0011
  */
 @Data
-@ExcelContext(fileName = "车辆黑名单那模型", sheetName = "车辆黑名单那模型")
 public class TruckBlacklistParam extends PageReq implements Serializable {
 
     @Serial
     private static final long serialVersionUID = -1021090755043784996L;
 
-    @Schema(description = "车辆ID列表")
+    @Schema(description = "车辆主键")
     private Long id;
 
 
-    @Schema(description = "目标状态: 0-正常、4-黑名单")
-    private Integer status;
+    @Schema(description = "目标状态: 0-正常、1-黑名单")
+    private Integer blacklist;
 
 }

+ 5 - 7
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/reponse/TruckQueryParam.java → sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/TruckQueryParam.java

@@ -1,7 +1,6 @@
-package com.sckw.fleet.model.reponse;
+package com.sckw.fleet.model.request;
 
 import com.sckw.core.web.request.PageReq;
-import com.sckw.excel.annotation.ExcelContext;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
@@ -14,7 +13,6 @@ import java.io.Serializable;
  * @date 2023/7/11 0011
  */
 @Data
-@ExcelContext(fileName = "车辆信息查询模型", sheetName = "车辆信息查询模型")
 public class TruckQueryParam extends PageReq implements Serializable {
 
     @Serial
@@ -43,19 +41,19 @@ public class TruckQueryParam extends PageReq implements Serializable {
      * 能源类型(1-传统能源车辆、2-新能源车辆)
      */
     @Schema(description = "能源类型(1-传统能源车辆、2-新能源车辆)")
-    private int energyTyp;
+    private Integer energyTyp;
 
     /**
      * 排放标准(1-国四、2-国五、3-国六)
      */
     @Schema(description = "排放标准(1-国四、2-国五、3-国六)")
-    private int eev;
+    private Integer eev;
 
     /**
      * 状态(0-正常、1-停用、2-待审核、3-审核驳回、4-黑名单)
      */
-    @Schema(description = "状态(0-正常、1-停用、2-待审核、3-审核驳回、4-黑名单)")
-    private int status;
+    @Schema(description = "状态(0-正常、1-停用、2-待审核、3-审核驳回)")
+    private Integer status;
 
     /**
      * 关联司机

+ 35 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/TruckReviewParam.java

@@ -0,0 +1,35 @@
+package com.sckw.fleet.model.request;
+
+import com.sckw.core.web.request.PageReq;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author zk
+ * @desc 车辆信息
+ * @date 2023/7/11 0011
+ */
+@Data
+public class TruckReviewParam extends PageReq implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = -1021090755043784996L;
+
+    @NotNull(message = "车辆id不能为空")
+    @Schema(description = "车辆ID")
+    private Long id;
+
+    @NotNull(message = "审核状态不能为空")
+    @Schema(description = "审核状态: 0-正常、3-审核驳回")
+    private Integer status;
+
+    @Schema(description = "驳回理由")
+    private Integer remark;
+
+
+
+}

+ 133 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/TruckSaveParam.java

@@ -0,0 +1,133 @@
+package com.sckw.fleet.model.request;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+/**
+ * @author zk
+ * @desc 车辆信息
+ * @date 2023/7/11 0011
+ */
+@Data
+public class TruckSaveParam implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 6228981791999980700L;
+
+
+    /**
+     * 车辆主键id
+     */
+    @Schema(description = "车辆主键id")
+    private Long id;
+
+    /**
+     * 车牌号
+     */
+    @NotBlank(message = "车牌号不能为空")
+    @Schema(description = "车牌号")
+    private String truckNo;
+
+    /**
+     * 车辆类别(牵引车、货车)
+     */
+    @NotBlank(message = "车辆类别不能为空")
+    @Schema(description = "车辆类别(牵引车、货车)")
+    private Integer type;
+
+    /**
+     * 轴数(1-二轴、2-三轴、3-四轴、5-六轴)
+     */
+    @NotBlank(message = "轴数不能为空")
+    @Schema(description = "轴数(1-二轴、2-三轴、3-四轴、5-六轴)")
+    private String carAxis;
+
+    /**
+     * 车辆唯一识别码
+     */
+    @Schema(description = "vin")
+    private String vin;
+
+    /**
+     * 品牌
+     */
+    @Schema(description = "品牌")
+    private String brand;
+
+    /**
+     * 能源类型(1-传统能源车辆、2-新能源车辆)
+     */
+    @NotBlank(message = "能源类型不能为空")
+    @Schema(description = "能源类型(1-传统能源车辆、2-新能源车辆)")
+    private int energyType;
+
+    /**
+     * 排放标准(1-国四、2-国五、3-国六)
+     */
+    @NotBlank(message = "排放标准不能为空")
+    @Schema(description = "排放标准(1-国四、2-国五、3-国六)")
+    private int eev;
+
+    /**
+     * 发动机号
+     */
+    @NotBlank(message = "发动机号不能为空")
+    @Schema(description = "发动机号")
+    private String engineNo;
+
+    /**
+     * 年审到期时间
+     */
+    @NotNull(message = "年审到期时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Data annualInspectionTime;
+
+    /**
+     * 道路运输证有效期
+     */
+    @NotNull(message = "道路运输证有效期不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Data transportValidityTime;
+
+    /**
+     * 定位设备
+     */
+    @Schema(description = "发动机号")
+    private String positionDevice;
+
+    /**
+     * 车辆行驶证信息
+     */
+    @NotBlank(message = "车辆行驶证信息不能为空")
+    @Schema(description = "车辆行驶证信息")
+    private String truckLicense;
+
+    /**
+     * 车辆道路运输许可证
+     */
+    @NotBlank(message = "车辆道路运输许可证不能为空")
+    @Schema(description = "车辆道路运输许可证")
+    private String transportLicense;
+
+    /**
+     * 环保清单照片
+     */
+    @NotBlank(message = "环保清单照片不能为空")
+    @Schema(description = "环保清单照片")
+    private String environmentalList;
+
+    /**
+     * 车队id
+     */
+    @NotBlank(message = "车队不能为空")
+    @Schema(description = "车队id")
+    private Long fleetId;
+
+
+}

+ 5 - 5
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/reponse/TruckUpdateStatusParam.java → sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/request/TruckUpdateStatusParam.java

@@ -1,8 +1,8 @@
-package com.sckw.fleet.model.reponse;
+package com.sckw.fleet.model.request;
 
 import com.sckw.core.web.request.PageReq;
-import com.sckw.excel.annotation.ExcelContext;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 
 import java.io.Serial;
@@ -15,17 +15,17 @@ import java.util.List;
  * @date 2023/7/11 0011
  */
 @Data
-@ExcelContext(fileName = "车辆状态修改模型", sheetName = "车辆状态修改模型")
 public class TruckUpdateStatusParam extends PageReq implements Serializable {
 
     @Serial
     private static final long serialVersionUID = -1021090755043784996L;
 
+    @NotNull(message = "车辆ID列表不能为空")
     @Schema(description = "车辆ID列表")
     private List<Long> ids;
 
-
-    @Schema(description = "目标状态: 0-正常、1-停用")
+    @NotNull(message = "车辆状态不能为空")
+    @Schema(description = "状态: 0-正常、1-停用")
     private Integer status;
 
 }

+ 24 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckAxleNumService.java

@@ -1,9 +1,10 @@
 package com.sckw.fleet.service;
 
 
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.sckw.core.web.response.HttpResult;
 import com.sckw.fleet.model.TmsTruckAxleNum;
+import com.sckw.fleet.model.request.TruckAxleNumUpdateParam;
 import com.sckw.fleet.model.vo.TruckAxleNumVO;
 import com.sckw.fleet.repository.KwfTruckAxleNumRepository;
 import lombok.RequiredArgsConstructor;
@@ -25,9 +26,31 @@ public class KwfTruckAxleNumService {
 
     private final KwfTruckAxleNumRepository truckAxleNumRepository;
 
+    /**
+     * 查询轴数列表
+     * @return
+     */
     public List<TruckAxleNumVO> queryTruckAxleNumList() {
         List<TmsTruckAxleNum> truckAxleNums = truckAxleNumRepository.list(Wrappers.<TmsTruckAxleNum>lambdaQuery()
                 .eq(TmsTruckAxleNum::getStatus, 1));
         return truckAxleNums.stream().map(TruckAxleNumVO::toTruckAxleNumVO).collect(Collectors.toList());
     }
+
+    /**
+     * 修改轴数
+     * @param param
+     */
+    public void updateTruckAxleNum(TruckAxleNumUpdateParam param) {
+        List<TruckAxleNumUpdateParam.TruckAxleNumUpdateParamVO> voList = param.getTruckAxleNumUpdateParamVOList();
+        for (TruckAxleNumUpdateParam.TruckAxleNumUpdateParamVO vo : voList) {
+            LambdaUpdateWrapper<TmsTruckAxleNum> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.eq(TmsTruckAxleNum::getId, vo.getId())
+                    .set(TmsTruckAxleNum::getLegalLoad, vo.getLegalLoad())
+                    .set(TmsTruckAxleNum::getTractorLegalLoad, vo.getTractorLegalLoad());
+            truckAxleNumRepository.update(updateWrapper);
+        }
+
+    }
+
+
 }

+ 174 - 33
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckService.java

@@ -22,7 +22,6 @@ import com.sckw.core.exception.SystemException;
 import com.sckw.core.model.base.BaseModel;
 import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.enums.EntTypeEnum;
-import com.sckw.core.model.enums.ForkliftStatusEnum;
 import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.model.file.FileInfo;
 import com.sckw.core.utils.*;
@@ -31,7 +30,6 @@ import com.sckw.core.web.context.LoginEntHolder;
 import com.sckw.core.web.context.LoginUserHolder;
 import com.sckw.core.web.request.HttpClientUtil;
 import com.sckw.core.web.response.BaseIotResult;
-import com.sckw.core.web.response.BaseResult;
 import com.sckw.core.web.response.HttpResult;
 import com.sckw.core.web.response.result.PageDataResult;
 import com.sckw.excel.easyexcel.ExcelImportListener;
@@ -40,15 +38,13 @@ import com.sckw.fleet.config.UrlConfigProperties;
 import com.sckw.fleet.dao.*;
 import com.sckw.fleet.model.*;
 import com.sckw.fleet.model.dto.*;
+import com.sckw.fleet.model.enums.TruckEevEnum;
+import com.sckw.fleet.model.enums.TruckEnergyTypeEnum;
 import com.sckw.fleet.model.enums.TruckStatusEnum;
-import com.sckw.fleet.model.reponse.TruckBlacklistParam;
-import com.sckw.fleet.model.reponse.TruckQueryParam;
+import com.sckw.fleet.model.enums.TruckTypeEnum;
+import com.sckw.fleet.model.reponse.TruckDetailResp;
+import com.sckw.fleet.model.request.*;
 import com.sckw.fleet.model.reponse.TruckResp;
-import com.sckw.fleet.model.reponse.TruckUpdateStatusParam;
-import com.sckw.fleet.model.request.BatchTruckValidateReq;
-import com.sckw.fleet.model.request.CapacityStatusReq;
-import com.sckw.fleet.model.request.TruckInfoReq;
-import com.sckw.fleet.model.request.TruckNoReq;
 import com.sckw.fleet.model.vo.*;
 import com.sckw.fleet.repository.*;
 import com.sckw.system.api.RemoteSystemService;
@@ -2084,9 +2080,17 @@ public class KwfTruckService {
                 .eq(KwfTruck::getType, param.getType())
                 .eq(KwfTruck::getCarAxis, param.getCarAxis())
                 .eq(KwfTruck::getEnergyType, param.getEnergyTyp())
-                .eq(KwfTruck::getEev, param.getEev())
-                .eq(KwfTruck::getStatus, param.getStatus());
-        // 查询该你了司机
+                .eq(KwfTruck::getEev, param.getEev());
+        //黑名单
+        if (param.getStatus() != null) {
+            if (Objects.equals(param.getStatus(), 4)) {
+                wrapper.eq(KwfTruck::getBlacklist, 1);
+            } else {
+                wrapper.eq(KwfTruck::getStatus, param.getStatus());
+            }
+        }
+
+        // 查询关联司机
         if (CollectionUtils.isNotEmpty(validTruckIds)) {
             wrapper.in(KwfTruck::getId, validTruckIds);
         }
@@ -2111,22 +2115,17 @@ public class KwfTruckService {
      */
     public List<TruckResp> getTruckResp(List<KwfTruck> trucks) {
         List<TruckResp> truckResps = new ArrayList<>();
-        Map<String, Map<String, String>> dict = remoteSystemService.queryDictByType(List.of(DictTypeEnum.TRUCK_TYPE.getType()));
-        Map<String, String> truckTypeMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
-        if (CollectionUtils.isNotEmpty(dict)) {
-            truckTypeMap = dict.get(DictTypeEnum.TRUCK_TYPE.getType());
-        }
         for (KwfTruck truck : trucks) {
             TruckResp truckResp = new TruckResp();
             truckResp.setId(truck.getId());
             truckResp.setTruckNo(truck.getTruckNo());
             truckResp.setType(truck.getType());
-            truckResp.setTypeDesc(CollectionUtils.isNotEmpty(truckTypeMap) ? truckTypeMap.get(String.valueOf(truck.getType())) : null);
+            truckResp.setTypeDesc(TruckTypeEnum.getName(truck.getType()));
             truckResp.setBrand(truck.getBrand());
             truckResp.setStatus(truck.getStatus());
             truckResp.setStatusDesc(TruckStatusEnum.getName(truck.getStatus()));
             truckResp.setCreateTime(truck.getCreateTime());
-
+            truckResp.setBlacklist(truck.getBlacklist());
             //查询车辆轴数
             TmsTruckAxleNum axleNum = getCarAxisInfo(truck.getCarAxis());
             truckResp.setCarAxis(truck.getCarAxis());
@@ -2146,19 +2145,145 @@ public class KwfTruckService {
      * @param param
      * @return
      */
+    public TruckDetailResp truckDetail(Long id) {
+        log.info("查询司机详情,id:{}", id);
+        KwfTruck truck = kwfTruckRepository.getOne(Wrappers.<KwfTruck>lambdaQuery()
+                .eq(KwfTruck::getId, id));
+        if (truck == null) {
+            return new TruckDetailResp();
+        }
+        TruckDetailResp truckDetailResp = new TruckDetailResp();
+        truckDetailResp.setId(truck.getId());
+        truckDetailResp.setTruckNo(truck.getTruckNo());
+        truckDetailResp.setType(truck.getType());
+        truckDetailResp.setTypeDesc(TruckTypeEnum.getName(truck.getType()));
+
+        truckDetailResp.setVin(truck.getVin());
+        truckDetailResp.setBrand(truck.getBrand());
+        truckDetailResp.setEnergyType(truck.getEnergyType());
+        truckDetailResp.setEnergyTypeDesc(TruckEnergyTypeEnum.getName(truck.getEnergyType()));
+        truckDetailResp.setEev(truck.getEev());
+        truckDetailResp.setEevDesc(TruckEevEnum.getName(truck.getEev()));
+        truckDetailResp.setStatus(truck.getStatus());
+        truckDetailResp.setStatusDesc(TruckStatusEnum.getName(truck.getStatus()));
+        truckDetailResp.setEngineNo(truck.getEngineNo());
+        truckDetailResp.setAnnualInspectionTime(truck.getAnnualInspectionTime());
+        truckDetailResp.setTransportValidityTime(truck.getTransportValidityTime());
+        truckDetailResp.setPositionDevice(truck.getPositionDevice());
+        truckDetailResp.setTruckLicense(truck.getTruckLicense());
+        truckDetailResp.setTransportLicense(truck.getTransportLicense());
+        truckDetailResp.setEnvironmentalList(truck.getEnvironmentalList());
+        truckDetailResp.setBlacklist(truck.getBlacklist());
+        //轴数
+        TmsTruckAxleNum axleNum = getCarAxisInfo(truck.getCarAxis());
+        truckDetailResp.setCarAxis(truck.getCarAxis());
+        truckDetailResp.setCarAxisName(axleNum.getName());
+
+        //车队班组
+        KwfFleet fleet = findByFleetTruck(truck.getId(), LoginUserHolder.getEntId());
+        truckDetailResp.setFleetId(fleet.getId());
+        truckDetailResp.setFleetName(fleet.getName());
+
+        //查询司机信息
+        KwfDriver driver = getDriverInfo(truck.getId(), LoginUserHolder.getEntId());
+        truckDetailResp.setDriverName(driver.getName());
+
+        return truckDetailResp;
+
+    }
+
+    /**
+     * 保存车辆
+     * @param param
+     * @return
+     */
+    public void saveTruck(TruckSaveParam param) {
+        log.info("保存车辆,id:{}", JSON.toJSONString(param));
+        // 新增
+        if (param.getId() == null) {
+            KwfTruck kwfTruck = kwfTruckRepository.getOne(Wrappers.<KwfTruck>lambdaQuery()
+                    .eq(KwfTruck::getTruckNo, param.getTruckNo()));
+            if (kwfTruck != null) {
+                throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_EXIST, "车牌号已存在");
+            }
+
+            KwfTruck truck = new KwfTruck();
+            truck.setTruckNo(param.getTruckNo());
+            truck.setType(param.getType());
+            truck.setEnergyType(param.getEnergyType());
+            truck.setEev(param.getEev());
+            truck.setCarAxis(param.getCarAxis());
+            truck.setBrand(param.getBrand());
+            truck.setVin(param.getVin());
+            truck.setEngineNo(param.getEngineNo());
+            truck.setAnnualInspectionTime(param.getAnnualInspectionTime());
+            truck.setTransportValidityTime(param.getTransportValidityTime());
+            truck.setPositionDevice(param.getPositionDevice());
+            truck.setTruckLicense(param.getTruckLicense());
+            truck.setTransportLicense(param.getTransportLicense());
+            truck.setEnvironmentalList(param.getEnvironmentalList());
+            truck.setStatus(TruckStatusEnum.PENDING_REVIEW.getCode());
+            truck.setDelFlag(0);
+            truck.setBlacklist(0);
+            truck.setCreateTime(new Date());
+            kwfTruckRepository.save(truck);
+
+            // 车队班组绑定
+            truckFleetEdit(truck.getId(), param.getFleetId());
+
+            // 车辆信息与企业关联信息
+            truckEntEdit(truck);
+        } else {
+            // 更新车辆
+            KwfTruck truck = kwfTruckRepository.getById(param.getId());
+            if (truck == null) {
+                throw new BusinessPlatfromException(ErrorCodeEnum.DRIVER_NOT_FOUND, "车辆不已存在");
+            }
+            truck.setTruckNo(param.getTruckNo());
+            truck.setType(param.getType());
+            truck.setEnergyType(param.getEnergyType());
+            truck.setEev(param.getEev());
+            truck.setCarAxis(param.getCarAxis());
+            truck.setBrand(param.getBrand());
+            truck.setVin(param.getVin());
+            truck.setEngineNo(param.getEngineNo());
+            truck.setAnnualInspectionTime(param.getAnnualInspectionTime());
+            truck.setTransportValidityTime(param.getTransportValidityTime());
+            truck.setPositionDevice(param.getPositionDevice());
+            truck.setTruckLicense(param.getTruckLicense());
+            truck.setTransportLicense(param.getTransportLicense());
+            truck.setEnvironmentalList(param.getEnvironmentalList());
+            truck.setUpdateTime(new Date());
+            kwfTruckRepository.updateById(truck);
+
+            // 车队班组绑定
+            truckFleetEdit(truck.getId(), param.getFleetId());
+        }
+
+    }
+
+    /**
+     * 车辆停用/启用
+     * @param param
+     * @return
+     */
     public void batchUpdateStatus(TruckUpdateStatusParam param) {
         log.info("车辆停用/启用,param:{}", JSON.toJSONString(param));
         // 1. 校验状态合法性
         if (param.getStatus() != 0 && param.getStatus() != 1) {
             throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_STATUS_ERROR, "仅支持修改为正常(0)或停用(1)状态");
         }
-        if (param.getStatus() == null) {
-            throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_STATUS_ERROR, "状态参数不能为空");
+        int targetStatus;
+        if (param.getStatus() == 0) {
+            // 如果当前已经是正常,则操作为“停用”,目标状态设为正常(1)
+            targetStatus = 1;
+        } else {
+            // 如果当前已经是停用,则操作为“正常”,目标状态设为停用(0)
+            targetStatus = 0;
         }
-
         LambdaUpdateWrapper<KwfTruck> updateWrapper = new LambdaUpdateWrapper<>();
         updateWrapper.in(KwfTruck::getId, param.getIds());
-        updateWrapper.set(KwfTruck::getStatus, param.getStatus());
+        updateWrapper.set(KwfTruck::getStatus, targetStatus);
         kwfTruckRepository.update(updateWrapper);
 
     }
@@ -2170,20 +2295,36 @@ public class KwfTruckService {
      */
     public void toggleBlacklist(TruckBlacklistParam param) {
         log.info("黑名单业务:{}", JSON.toJSONString(param));
-        if (param.getId() == null) {
-            throw new BusinessPlatfromException(ErrorCodeEnum.DRIVER_NOT_FOUND, "车辆不存在");
-        }
-        int targetStatus;
-        if (param.getStatus() == 4) {
-            // 如果当前已经是黑名单,则操作为“移出”,目标状态设为正常(0)
-            targetStatus = 0;
+        int targetBlacklist;
+        if (param.getBlacklist() == 1) {
+            // 如果当前已经是黑名单,则操作为“移出”,黑名单状态设为正常(0)
+            targetBlacklist = 0;
         } else {
-            // 如果当前不是黑名单,则操作为“加入”,目标状态设为黑名单(4)
-            targetStatus = 4;
+            // 如果当前不是黑名单,则操作为“加入”,黑名单状态设为黑名单(1)
+            targetBlacklist = 1;
         }
         kwfTruckRepository.update(Wrappers.<KwfTruck>lambdaUpdate()
                 .eq(KwfTruck::getId, param.getId())
-                .set(KwfTruck::getStatus, targetStatus));
+                .set(KwfTruck::getBlacklist, targetBlacklist));
+    }
+
+    /**
+     * 车辆审核
+     * @param param
+     * @return
+     */
+    public void reviewTruck(TruckReviewParam param) {
+        log.info("车辆审核:{}", JSON.toJSONString(param));
+        KwfTruck truck = kwfTruckRepository.getById(param.getId());
+        if (truck == null || !Objects.equals(TruckStatusEnum.PENDING_REVIEW.getCode(), param.getStatus())) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_REVIEW_ERROR, "车辆审核状态异常:当前状态非待审核");
+        }
+        if (Objects.equals(TruckStatusEnum.REVIEW_REJECTED.getCode(), param.getStatus())
+                && StringUtils.isBlank(param.getRemark())) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_REVIEW_ERROR, "审核理由不能为空");
+        }
+        truck.setStatus(param.getStatus());
+        kwfTruckRepository.updateById(truck);
     }
 
 

+ 4 - 4
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsMenuService.java

@@ -308,10 +308,10 @@ public class KwsMenuService {
         } else {
             finalList = menuList;
         }
-
-        if (Boolean.TRUE.equals(reqVo.getIncludeButton())) {
-            finalList = supplementButtons(finalList);
-        }
+//
+//        if (Boolean.TRUE.equals(reqVo.getIncludeButton())) {
+//            finalList = supplementButtons(finalList);
+//        }
 
         List<KwsMenuResVo> rootList = new ArrayList<>();
 

+ 7 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/ComeIntoHandler.java

@@ -12,6 +12,7 @@ import com.sckw.core.utils.DateUtils;
 import com.sckw.fleet.api.model.vo.DriverConductRulesVO;
 import com.sckw.fleet.api.model.vo.RTruckVo;
 import com.sckw.fleet.api.model.vo.TruckDispatchCoefficientVO;
+import com.sckw.fleet.model.enums.TruckStatusEnum;
 import com.sckw.system.api.RemoteSystemService;
 import com.sckw.system.api.model.dto.res.SysDictResDto;
 import com.sckw.transport.model.*;
@@ -54,9 +55,15 @@ public class ComeIntoHandler extends AbstractWaybillOrderHandler<WaybillOrderCme
 
     @Override
     protected void checkState(WaybillOrderCmeIntoWeighParam param, KwtWaybillOrder waybillOrder) {
+        // 校验运单
         if (!Objects.equals(CarWaybillV1Enum.PENDING_VEHICLE.getCode(), waybillOrder.getStatus())) {
             throw new BusinessPlatfromException(ErrorCodeEnum.WAYBILL_ORDER_STATUS_ERROR, "当前物流运单状态不是“已接单”状态,无法推进下一节点!");
         }
+        // 校验车辆
+        RTruckVo truckNo = remoteFleetService.findTruckByTruckNo(param.getTruckNo());
+        if (truckNo == null || !Objects.equals(TruckStatusEnum.NORMAL.getCode(), truckNo.getStatus())) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_STATUS_ERROR, "当前车辆非正常状态,无法到达装货点!");
+        }
     }
 
     @Override

+ 3 - 2
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/handler/TakingOrderHandler.java

@@ -12,6 +12,7 @@ import com.sckw.fleet.api.model.vo.RDriverScoreVo;
 import com.sckw.fleet.api.model.vo.RDriverVo;
 import com.sckw.fleet.api.model.vo.RTruckVo;
 import com.sckw.fleet.api.model.vo.TruckDispatchCoefficientVO;
+import com.sckw.fleet.model.enums.TruckStatusEnum;
 import com.sckw.order.api.model.OrderDetailVo;
 import com.sckw.order.api.model.UpdateActualAmountParam;
 import com.sckw.transport.model.*;
@@ -253,8 +254,8 @@ public class TakingOrderHandler extends AbstractWaybillOrderHandler<OrderCircula
      */
     private RTruckVo checkTruck(OrderCirculateTakingQueryParam param) {
         RTruckVo truckNo = remoteFleetService.findTruckByTruckNo(param.getTruckNo());
-        if (truckNo == null || truckNo.getStatus() == Global.NUMERICAL_ONE) {
-            throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_STATUS_ERROR, "当前车辆已锁定");
+        if (truckNo == null || !Objects.equals(TruckStatusEnum.NORMAL.getCode(), truckNo.getStatus())) {
+            throw new BusinessPlatfromException(ErrorCodeEnum.TRUCK_STATUS_ERROR, "当前车辆非正常状态,不能接单!");
         }
         //核定载重
         if (truckNo.getLegalLoad() == null || BigDecimal.ZERO.compareTo(truckNo.getLegalLoad()) == 0) {

+ 18 - 0
sql/2026/01/2026_01_06_donglang_create.sql

@@ -55,3 +55,21 @@ create table kwt_gatekeeper_waybill_order
 
     PRIMARY KEY (`id`) USING BTREE
 ) comment '门卫车辆运单';
+
+
+CREATE TABLE tms_truck_axle_num (
+    id int unsigned NOT NULL AUTO_INCREMENT,
+    group_id int DEFAULT NULL,
+    name varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车辆轴数',
+    num varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
+    standard_load decimal(10,2) DEFAULT NULL COMMENT '默认准载量',
+    legal_load decimal(10,2) DEFAULT NULL COMMENT '货车法定载重',
+    tractor_legal_load decimal(10,2) DEFAULT NULL COMMENT '牵引车法定载重',
+    uuid varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人id',
+    uuid_name varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人姓名',
+    status tinyint unsigned NOT NULL DEFAULT '1' COMMENT '1正常   2禁用',
+    create_time datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '数据添加时间',
+    update_time datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '数据修改时间',
+    delete_time datetime DEFAULT NULL COMMENT '数据删除时间',
+    PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='车辆轴数表';