Ver código fonte

提交修改查询轨迹

chenxiaofei 2 meses atrás
pai
commit
d73363570c

+ 22 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/config/UrlConfigProperties.java

@@ -0,0 +1,22 @@
+package com.sckw.fleet.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * 通用URL配置类
+ * 用于从配置文件中读取和管理各种URL配置
+ * @author PC
+ */
+@Data
+@Component
+@ConfigurationProperties(prefix = "url.config")
+public class UrlConfigProperties {
+    
+    /**
+     * API基础地址
+     */
+    private String apiBaseUrl;
+
+}

+ 36 - 1
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/KwfTruck.java

@@ -1,5 +1,6 @@
 package com.sckw.fleet.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.sckw.core.model.base.BaseModel;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -100,5 +101,39 @@ public class KwfTruck extends BaseModel {
      * 认证状态(1认证、2临时、3异常)
      */
     private Integer authStatus;
-
+    /**
+     * 是否安装gps 0-未安装1-已安装
+     */
+    @TableField("gps_flag")
+    private Integer gpsFlag;
+    /**
+     * 采集来源 0-app 1-pc端
+     */
+    @TableField("signup_channel")
+    private Integer signupChannel;
+    /**
+     * 企业id(旧系统)
+     */
+    @TableField("company_id")
+    private String companyId;
+    /**
+     * 车辆标记 0-自有车辆 1-外部车辆
+     */
+    @TableField("truck_mark")
+    private Integer truckMark;
+    /**
+     * 里程总数
+     */
+    @TableField("all_mileage")
+    private String allMileage;
+    /**
+     * 轴数
+     */
+    @TableField("car_axis")
+    private String carAxis;
+    /**
+     * 是否是无人驾驶(0-有人驾驶,1-无人驾驶)
+     */
+    @TableField("drive_mode")
+    private Integer driveMode;
 }

+ 31 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/VehicleDataDTO.java

@@ -0,0 +1,31 @@
+package com.sckw.fleet.model.dto;
+
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+public class VehicleDataDTO {
+
+    /**
+     * 运单号
+     */
+    private String wOrderNo;
+
+    /**
+     * 车牌
+     */
+    private String carNo;
+
+    /**
+     * 开始时
+     */
+    private LocalDateTime startTime;
+
+    /**
+     * 结束时间
+     */
+    private LocalDateTime endTime;
+
+}

+ 79 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/dto/VehicleReturnData.java

@@ -0,0 +1,79 @@
+package com.sckw.fleet.model.dto;
+
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+
+/**
+ * @author PC
+ */
+@Data
+public class VehicleReturnData {
+
+    /**
+     * 时间戳
+     */
+    private LocalDateTime ts;
+    /**
+     * 车牌号
+     */
+    private String carNo;
+
+    /**
+     * 经度
+     */
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    private String latitude;
+
+    /**
+     * 车速(km/h)
+     */
+    private Float speed;
+
+    /**
+     * 行驶方向(角度)
+     */
+    private Integer direction;
+
+    /**
+     * 燃油液位(%)
+     */
+    private Float fuelLevel;
+
+    /**
+     * 里程数(km)
+     */
+    private Double mileage;
+
+    /**
+     * 发动机温度(℃)
+     */
+    private Float engineTemp;
+
+    /**
+     * 电池电压(V)
+     */
+    private Float batteryVoltage;
+
+    /**
+     * 车辆状态
+     */
+    private String status;
+
+    /**
+     * 运单号
+     */
+    private String wOrderNo;
+
+    /**
+     * 报警代码
+     */
+    private Integer alarmCode;
+
+}

+ 17 - 0
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/model/vo/TruckInfoVo.java

@@ -46,5 +46,22 @@ public class TruckInfoVo implements Serializable {
          */
         @Schema(description = "车牌号")
         private String truckNo;
+        /**
+         * 经度
+         */
+        @Schema(description = "经度")
+        private String longitude;
+        /**
+         * 纬度
+         */
+        @Schema(description = "纬度")
+        private String latitude;
+        /**
+         * 车辆状态
+         *
+         */
+        @Schema(description = "车辆状态")
+        private String businessStatus;
+
     }
 }

+ 34 - 3
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/service/KwfTruckService.java

@@ -9,9 +9,11 @@ import com.alibaba.fastjson.JSONObject;
 import com.google.common.collect.Lists;
 import com.sckw.core.common.enums.enums.DictTypeEnum;
 import com.sckw.core.common.enums.enums.FileEnum;
+import com.sckw.core.exception.BusinessException;
 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.constant.UrlConstants;
 import com.sckw.core.model.enums.EntTypeEnum;
 import com.sckw.core.model.enums.SystemTypeEnum;
 import com.sckw.core.model.file.FileInfo;
@@ -25,6 +27,7 @@ import com.sckw.core.web.response.HttpResult;
 import com.sckw.core.web.response.result.PageDataResult;
 import com.sckw.excel.easyexcel.ExcelImportListener;
 import com.sckw.excel.utils.ExcelUtil;
+import com.sckw.fleet.config.UrlConfigProperties;
 import com.sckw.fleet.dao.*;
 import com.sckw.fleet.model.*;
 import com.sckw.fleet.model.dto.*;
@@ -85,6 +88,7 @@ public class KwfTruckService {
     KwfFleetTruckMapper fleetTruckDao;
     private final KwfTruckRepository kwfTruckRepository;
     private final KwfFleetRepository kwfFleetRepository;
+    private final UrlConfigProperties urlConfigProperties;
 
     private final KwfFleetTruckRepository kwfFleetTruckRepository;
     @DubboReference(version = "1.0.0", group = "design", check = false, timeout = 8000)
@@ -1425,7 +1429,7 @@ public class KwfTruckService {
         log.info("分页查询车辆信息,请求参数:{}",JSON.toJSONString(req));
         //查询车辆信息
         Long entId = null;
-        if (StringUtils.isBlank(req.getTruckNo())){
+        if (StringUtils.isNotBlank(req.getTruckNo())){
             KwfTruck kwfTruck = kwfTruckRepository.queryByTruckNo(req.getTruckNo());
             entId = Optional.ofNullable(kwfTruck).map(KwfTruck::getEntId).orElse(null);
         }
@@ -1442,6 +1446,11 @@ public class KwfTruckService {
                 .collect(Collectors.toList());
         //获取车辆信息
         List<KwfTruck> truckList = kwfTruckRepository.queryByEntIds(entIds);
+        if (StringUtils.isNotBlank(req.getTruckNo())){
+            truckList = truckList.stream()
+                    .filter(x -> org.apache.commons.lang3.StringUtils.equals(x.getTruckNo(), req.getTruckNo()))
+                    .collect(Collectors.toList());
+        }
         //将车辆信息按照企业id进行分组
         Map<Long, List<KwfTruck>> entIdAndTruckMap = truckList.stream()
                 .collect(Collectors.groupingBy(KwfTruck::getEntId));
@@ -1454,7 +1463,7 @@ public class KwfTruckService {
     }
 
 
-    private static TruckInfoVo getTruckInfoVo(KwsEnterpriseResDto e, Map<Long, List<KwfTruck>> entIdAndTruckMap) {
+    private TruckInfoVo getTruckInfoVo(KwsEnterpriseResDto e, Map<Long, List<KwfTruck>> entIdAndTruckMap) {
         TruckInfoVo ent = new TruckInfoVo();
         ent.setEntId(String.valueOf(e.getId()));
         ent.setEntName(e.getFirmName());
@@ -1468,10 +1477,32 @@ public class KwfTruckService {
         return ent;
     }
 
-    private static TruckInfoVo.TruckData getTruckData(KwfTruck t) {
+    private TruckInfoVo.TruckData getTruckData(KwfTruck t) {
         TruckInfoVo.TruckData truck = new TruckInfoVo.TruckData();
         truck.setTruckId(String.valueOf(t.getId()));
         truck.setTruckNo(t.getTruckNo());
+        truck.setBusinessStatus(String.valueOf(t.getBusinessStatus()));
+       // VehicleReturnData vehicleReturnData = getVehicleReturnData(t.getTruckNo());
+//        if (Objects.nonNull(vehicleReturnData)){
+//            truck.setLatitude(vehicleReturnData.getLatitude());
+//            truck.setLongitude(vehicleReturnData.getLongitude());
+//        }
         return truck;
     }
+
+    public VehicleReturnData getVehicleReturnData(String carNo) {
+        VehicleDataDTO vehicleDataDTO = new VehicleDataDTO();
+        vehicleDataDTO.setCarNo(carNo);
+        String s;
+        try {
+            s = HttpUtil.postJson(urlConfigProperties.getApiBaseUrl()+ UrlConstants.QUERY_REAL_TIME_TRACE_URL, JSON.toJSONString(vehicleDataDTO), null);
+        } catch (Exception e) {
+            log.error("查询任务轨迹异常",e);
+            throw new BusinessException("查询任务轨迹异常");
+        }
+        if (org.apache.commons.lang3.StringUtils.isBlank(s)){
+            return null;
+        }
+        return JSON.parseObject(s, VehicleReturnData.class);
+    }
 }

+ 1 - 1
sckw-modules/sckw-system/src/main/java/com/sckw/system/repository/KwsEnterpriseRepository.java

@@ -20,6 +20,6 @@ public class KwsEnterpriseRepository extends ServiceImpl<KwsEnterpriseDao,KwsEnt
     public IPage<KwsEnterprise> pageEnt(int pageNum, int pageSize, Long entId) {
         return page(new Page<>(pageNum, pageSize), Wrappers.<KwsEnterprise>lambdaQuery()
                 .eq(BaseModel::getDelFlag,0)
-                .eq(Objects.nonNull(entId),KwsEnterprise::getId, entId));
+                .eq(KwsEnterprise::getId, entId));
     }
 }

+ 10 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/TaskStatisticsVo.java

@@ -35,4 +35,14 @@ public class TaskStatisticsVo implements Serializable {
      */
     @Schema(description = "占全部运力百分比")
     private String taskPercent;
+    /**
+     * 当前异常车辆数
+     */
+    @Schema(description = "当前异常车辆数")
+    private String truckAbnormal;
+    /**
+     * 今日安全警告总数
+     */
+    @Schema(description = "今日安全警告总数")
+    private String warningTotal;
 }

+ 2 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwfTaskService.java

@@ -46,6 +46,8 @@ public class KwfTaskService {
         taskStatisticsVo.setTaskRunning(String.valueOf(taskingCount));
         taskStatisticsVo.setTaskCompleted(String.valueOf(completedCount));
         taskStatisticsVo.setTaskPercent(taskingCount == 0 ? "0" : String.format("%.2f", (double) taskingCount / totalCount * 100));
+        taskStatisticsVo.setTruckAbnormal("0");
+        taskStatisticsVo.setWarningTotal("0");
         return taskStatisticsVo;
     }
 

+ 4 - 4
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/kwfTruckTraceService.java

@@ -205,7 +205,7 @@ public class kwfTruckTraceService {
             return TruckInfoVo.toTruckInfoVo(truckDto);
         }
         //缓存没有则查询数据中台
-        VehicleReturnData vehicleReturnData = getVehicleReturnData(wOrderNo);
+        VehicleReturnData vehicleReturnData = getVehicleReturnData(truckNo);
         if (Objects.nonNull(vehicleReturnData)){
             return buildTruckInfo(wOrderNo, vehicleReturnData);
         }
@@ -325,7 +325,7 @@ public class kwfTruckTraceService {
         vehicleDataDTO.setWOrderNo(wOrderNo);
         String s;
         try {
-             s = HttpUtil.postJson(urlConfigProperties.getApiBaseUrl()+ UrlConstants.QUERY_REAL_TIME_TRACE_URL, JSON.toJSONString(vehicleDataDTO), null);
+             s = HttpUtil.postJson(urlConfigProperties.getApiBaseUrl()+ UrlConstants.QUERY_TRACE_URL, JSON.toJSONString(vehicleDataDTO), null);
         } catch (Exception e) {
             log.error("查询任务轨迹异常",e);
             throw new BusinessException("查询任务轨迹异常");
@@ -336,9 +336,9 @@ public class kwfTruckTraceService {
         return JSON.parseArray(s, VehicleReturnData.class);
     }
 
-    private VehicleReturnData getVehicleReturnData(String wOrderNo) {
+    public VehicleReturnData getVehicleReturnData(String truckNo) {
         VehicleDataDTO vehicleDataDTO = new VehicleDataDTO();
-        vehicleDataDTO.setWOrderNo(wOrderNo);
+        vehicleDataDTO.setCarNo(truckNo);
         String s;
         try {
             s = HttpUtil.postJson(urlConfigProperties.getApiBaseUrl()+ UrlConstants.QUERY_REAL_TIME_TRACE_URL, JSON.toJSONString(vehicleDataDTO), null);