guoyong 4 лет назад
Родитель
Сommit
7986d37c3e

+ 2 - 39
src/main/java/com/aoyang/tms/controller/WorkerController.java

@@ -75,49 +75,12 @@ public class WorkerController {
     @ApiOperation(value = "运单详情", notes = "必传参数:订单id")
     @PostMapping("/find_order_info")
     public Result<WorkOrderVO> findOrderInfo(@RequestHeader(value = "orgId") Long orgId,
-                                             @RequestHeader(value = "userId") Long userId, @RequestBody WorkOrder workOrderParam) {
+                                             @RequestHeader(value = "userId") Long userId, @RequestHeader(value = "userName") String userName, @RequestBody WorkOrder workOrderParam) {
         log.info("运单详情,/tms/worker/find_order_info,参数:{}", JSON.toJSONString(workOrderParam));
         if (workOrderParam == null || workOrderParam.getId() == null) {
             return new Result(ErrCodeEnum.BAD_PARAM.getCode(), ErrCodeEnum.BAD_PARAM.getMessage());
         }
-        WorkOrderVO vo = new WorkOrderVO();
-        WorkOrder workOrder = workOrderService.getById(workOrderParam.getId());
-        if (workOrder != null) {
-
-            BeanUtils.copyProperties(workOrder, vo);
-
-            //调度员联系电话
-            User user = commonService.findUser(workOrder.getCreater());
-            if (user != null) {
-                vo.setDispatcherPhone(user.getMobile());
-            }
-            //卸车点联系人电话
-            WorkSpot workSpot = workSpotService.getById(workOrder.getSpotId());
-            if (workSpot != null) {
-                vo.setXiecheContactName(workSpot.getContactName());
-                vo.setXiecheContactPhone(workSpot.getContactPhone());
-                vo.setSpotAddress(workSpot.getAddress());
-            }
-            //取ExecuteTime第一条GPS上报时间作为开始运单时间,累计用时
-            LocationVO locationVO = commonService.getLocationByDate(workOrder.getTruckId(), workOrder.getExecuteTime());
-            if (locationVO != null) {
-                vo.setTime(DateUtils.betweenTime(locationVO.getDate(), LocalDateTime.now()));
-                vo.setLatitude(locationVO.getLatitude());
-                vo.setLongitude(locationVO.getLongitude());
-            } else {
-                if (workOrder.getExecuteTime() != null) {
-                    vo.setTime(DateUtils.betweenTime(workOrder.getExecuteTime(), LocalDateTime.now()));
-                }
-            }
-
-            WorkOrderReadinfo workOrderReadinfo = workOrderReadinfoService.findWorkOrderReadinfo(userId, workOrderParam.getId());
-            if (workOrderReadinfo != null) {
-                vo.setReadFlag(1);
-            }
-            List<String> routeGps = commonService.getLocationtrip(workOrder.getTruckId(), workOrder.getGotoSpotTime(), LocalDateTime.now());
-            vo.setRouteGps(routeGps);
-        }
-
+        WorkOrderVO vo = commonService.findOrderInfo(userId, userName, workOrderParam);
         return new Result<>(vo);
     }
 

+ 3 - 0
src/main/java/com/aoyang/tms/controller/vo/WorkOrderVO.java

@@ -60,5 +60,8 @@ public class WorkOrderVO extends WorkOrder implements Serializable {
     @ApiModelProperty(value = "线路GPS数据")
     private List<String> routeGps;
 
+    @ApiModelProperty(value = "判断车辆是否在围栏内,是true,否false")
+    private Boolean isInPolygon = false;
+
 
 }

+ 0 - 1
src/main/java/com/aoyang/tms/controller/vo/WorkerInfo.java

@@ -102,5 +102,4 @@ public class WorkerInfo {
     @ApiModelProperty(value = "上次位置更新时间")
     private String lastTime;
 
-
 }

+ 19 - 6
src/main/java/com/aoyang/tms/service/CommonService.java

@@ -2,8 +2,10 @@ package com.aoyang.tms.service;
 
 import com.aoyang.common.result.Result;
 import com.aoyang.tms.controller.vo.LocationVO;
+import com.aoyang.tms.controller.vo.WorkOrderVO;
 import com.aoyang.tms.controller.vo.WorkerInfo;
 import com.aoyang.tms.entity.User;
+import com.aoyang.tms.entity.WorkOrder;
 import com.aoyang.tms.feign.result.Org;
 
 import java.time.LocalDateTime;
@@ -16,15 +18,15 @@ import java.util.List;
  * @Version 1.0
  */
 public interface CommonService {
-    
-    
+
+
     /**
+     * @return
      * @Author guoyong
      * @Description 根据车辆判断车辆当前是空车还是重车,false空,true重
-     * @Date  2022/4/25
-     * @Param  
-     * @return 
-    **/
+     * @Date 2022/4/25
+     * @Param
+     **/
     boolean checkTruckZhong(Long truckId);
 
 
@@ -48,6 +50,16 @@ public interface CommonService {
     WorkerInfo findTruckInfo(Long truckId);
 
     /**
+     * @return
+     * @Author guoyong
+     * @Description 查询实时运单详情
+     * @Date 2022/4/28
+     * @Param
+     **/
+
+    WorkOrderVO findOrderInfo(Long userId, String userName, WorkOrder workOrder);
+
+    /**
      * 获取物流公司下卡车数或者物流公司部门下卡车数
      *
      * @param
@@ -128,6 +140,7 @@ public interface CommonService {
 
     /**
      * 经纬度转位置信息
+     *
      * @param lat 纬度
      * @param lng 经度
      * @return

+ 74 - 1
src/main/java/com/aoyang/tms/service/impl/CommonServiceImpl.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.aoyang.common.result.Result;
 import com.aoyang.tms.common.WorkOrderEnum;
 import com.aoyang.tms.controller.vo.LocationVO;
+import com.aoyang.tms.controller.vo.WorkOrderVO;
 import com.aoyang.tms.controller.vo.WorkerInfo;
 import com.aoyang.tms.entity.*;
 import com.aoyang.tms.feign.StrategyFeignClient;
@@ -12,7 +13,9 @@ import com.aoyang.tms.feign.result.Org;
 import com.aoyang.tms.feign.result.TmsMongoDoc;
 import com.aoyang.tms.service.*;
 import com.aoyang.tms.util.DateUtils;
+import com.aoyang.tms.util.RegionUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.HttpEntity;
 import org.apache.http.client.methods.CloseableHttpResponse;
@@ -20,6 +23,7 @@ import org.apache.http.client.methods.HttpGet;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.util.EntityUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.data.domain.Sort;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
@@ -61,6 +65,14 @@ public class CommonServiceImpl implements CommonService {
     private WorkOrderService workOrderService;
     @Resource
     private WorkCycleService workCycleService;
+    @Resource
+    private CommonService commonService;
+    @Resource
+    private TruckCheckInfoService truckCheckInfoService;
+    @Resource
+    private WorkSpotService workSpotService;
+    @Resource
+    private WorkOrderReadinfoService workOrderReadinfoService;
 
 
     final static String BAIDUMAP_AK = "Zvd6FzmertUwjhZih5Zfq0D8uTUhvqsH";
@@ -179,7 +191,7 @@ public class CommonServiceImpl implements CommonService {
         if (locationVO != null) {
             workerInfo.setLatitude(locationVO.getLatitude());
             workerInfo.setLongitude(locationVO.getLongitude());
-            workerInfo.setLastTime(locationVO.getDate()+"");
+            workerInfo.setLastTime(locationVO.getDate() + "");
         }
 
 
@@ -187,6 +199,67 @@ public class CommonServiceImpl implements CommonService {
     }
 
     @Override
+    public WorkOrderVO findOrderInfo(Long userId, String userName, WorkOrder workOrderParam) {
+        WorkOrderVO vo = new WorkOrderVO();
+        WorkOrder workOrder = workOrderService.getById(workOrderParam.getId());
+        if (workOrder != null) {
+            BeanUtils.copyProperties(workOrder, vo);
+            //调度员联系电话
+            User user = commonService.findUser(workOrder.getCreater());
+            if (user != null) {
+                vo.setDispatcherPhone(user.getMobile());
+            }
+            //卸车点联系人电话
+            String regionData = "";
+            WorkSpot workSpot = workSpotService.getById(workOrder.getSpotId());
+            if (workSpot != null) {
+                vo.setXiecheContactName(workSpot.getContactName());
+                vo.setXiecheContactPhone(workSpot.getContactPhone());
+                vo.setSpotAddress(workSpot.getAddress());
+                regionData = workSpot.getRegionData();
+            }
+            //取ExecuteTime第一条GPS上报时间作为开始运单时间,累计用时
+            LocationVO locationVO = commonService.getLocationByDate(workOrder.getTruckId(), workOrder.getExecuteTime());
+            if (locationVO != null) {
+                vo.setTime(DateUtils.betweenTime(locationVO.getDate(), LocalDateTime.now()));
+                vo.setLatitude(locationVO.getLatitude());
+                vo.setLongitude(locationVO.getLongitude());
+            } else {
+                if (workOrder.getExecuteTime() != null) {
+                    vo.setTime(DateUtils.betweenTime(workOrder.getExecuteTime(), LocalDateTime.now()));
+                }
+            }
+
+            WorkOrderReadinfo workOrderReadinfo = workOrderReadinfoService.findWorkOrderReadinfo(userId, workOrderParam.getId());
+            if (workOrderReadinfo != null) {
+                vo.setReadFlag(1);
+            }
+            List<String> routeGps = commonService.getLocationtrip(workOrder.getTruckId(), workOrder.getGotoSpotTime(), LocalDateTime.now());
+            vo.setRouteGps(routeGps);
+
+            //判断是否在当前围栏
+            LocationVO location = getLocation(workOrder.getTruckId());
+            double pointLon = Double.valueOf(location.getLongitude());
+            double pointLat = Double.valueOf(location.getLatitude());
+            if (StringUtils.isNotBlank(regionData)) {
+                regionData = regionData.replace("\"", "");
+                regionData = regionData.replace("[", "");
+                regionData = regionData.replace("]", "");
+                String[] regionDataArray = regionData.split(";");
+                Double[] lon = new Double[regionDataArray.length];
+                Double[] lat = new Double[regionDataArray.length];
+                for (int i = 0; i < regionDataArray.length; i++) {
+                    lon[i] = Double.valueOf(regionDataArray[i].split(",")[0]);
+                    lat[i] = Double.valueOf(regionDataArray[i].split(",")[1]);
+                }
+                boolean flag = RegionUtil.isInPolygon(pointLon, pointLat, lon, lat);
+                vo.setIsInPolygon(flag);
+            }
+        }
+        return vo;
+    }
+
+    @Override
     public Integer findOrgTruckNumber(Long orgId, Long deptId) {
         Truck truck = new Truck();
         truck.setOrgId(orgId);

Разница между файлами не показана из-за своего большого размера
+ 30 - 0
src/main/java/com/aoyang/tms/util/RegionUtil.java