Просмотр исходного кода

车辆所在站点位置更新

fllmoyu 4 лет назад
Родитель
Сommit
f3cb5d97ad

+ 14 - 1
common/src/main/java/com/jpsoft/bus/modules/bus/callback/GpsDataCallbackImpl.java

@@ -137,13 +137,17 @@ public class GpsDataCallbackImpl implements GpsDataCallback {
                         ShiftInfo shiftInfo = shiftInfoList.get(0);
                         String stationId = gpsService.getLatelyStation(v.getId());
 
+                        StationInfo currentStation = stationInfoService.get(stationId);
+
+
+
                         //站点发生变化时
                         if (!shiftInfo.getCurrentStationId().equals(stationId)){
                             shiftInfo.setCurrentStationId(stationId);
                             shiftInfoService.update(shiftInfo);
 
                             //当前站点
-                            StationInfo currentStation = stationInfoService.get(stationId);
+                          //  StationInfo currentStation = stationInfoService.get(stationId);
                             //此线路的所有站点
                             List<StationInfo> stationInfoList = stationInfoService.findByRouteId(shiftInfo.getRouteId());
 
@@ -254,6 +258,15 @@ public class GpsDataCallbackImpl implements GpsDataCallback {
                             gpsDataInfo0.setStationId(shiftInfo.getCurrentStationId());
                             gpsDataInfoService.update(gpsDataInfo0);
                         }
+
+                        //判断车辆和当前站点的位置关系
+                        if (gpsService.matchDistance(currentStation,v,50)){
+                            shiftInfo.setCurrentStationStatus("1");
+                            shiftInfoService.update(shiftInfo);
+                        }else {
+                            shiftInfo.setCurrentStationStatus("2");
+                            shiftInfoService.update(shiftInfo);
+                        }
                     }
                 }catch (Exception ex){
                     log.error(ex.getMessage(),ex);

+ 2 - 0
common/src/main/java/com/jpsoft/bus/modules/bus/entity/ShiftInfo.java

@@ -29,6 +29,8 @@ public class ShiftInfo {
     private String startStationId;
     @ApiModelProperty(value = "当前站点")
     private String currentStationId;
+    @ApiModelProperty(value = "车和当前站点的关系(1:站点上,2:站点和站点间)")
+    private String currentStationStatus = "1";
     @ApiModelProperty(value = "状态值(1:进行中,2:结束)")
     private String status;
     @ApiModelProperty(value = "终点站")

+ 3 - 0
common/src/main/java/com/jpsoft/bus/modules/bus/service/GpsService.java

@@ -1,6 +1,7 @@
 package com.jpsoft.bus.modules.bus.service;
 
 import com.jpsoft.bus.modules.bus.dto.StationStatusDTO;
+import com.jpsoft.bus.modules.bus.entity.StationInfo;
 import com.jpsoft.bus.modules.bus.entity.VehicleInfo;
 
 import java.util.Date;
@@ -21,4 +22,6 @@ public interface GpsService {
      * @return
      */
     String getLatelyStation(String id) throws Exception;
+
+    boolean matchDistance(StationInfo stationInfo, VehicleInfo vehicleInfo, int distance);
 }

+ 5 - 1
common/src/main/java/com/jpsoft/bus/modules/bus/service/impl/GpsServiceImpl.java

@@ -304,6 +304,9 @@ public class GpsServiceImpl implements GpsService {
 
         if (shiftInfoList.size() > 0) {
             ShiftInfo shiftInfo = shiftInfoList.get(0);
+
+
+
             RouteInfo routeInfo = routeInfoService.get(shiftInfo.getRouteId());
 
             List<StationInfo> stationInfoList = stationInfoService.findByRouteId(routeInfo.getId());
@@ -374,7 +377,8 @@ public class GpsServiceImpl implements GpsService {
      * @param distance
      * @return
      */
-    private boolean matchDistance(StationInfo stationInfo,VehicleInfo vehicleInfo,int distance){
+    @Override
+    public boolean matchDistance(StationInfo stationInfo,VehicleInfo vehicleInfo,int distance){
         GlobalCoordinates source = new GlobalCoordinates(Double.valueOf(vehicleInfo.getLatitude()), Double.valueOf(vehicleInfo.getLongitude()));
         GlobalCoordinates target = new GlobalCoordinates(Double.valueOf(stationInfo.getLatitude()), Double.valueOf(stationInfo.getLongitude()));
 

+ 6 - 1
common/src/main/resources/mapper/bus/ShiftInfo.xml

@@ -10,6 +10,7 @@
 			<result property="routeId" column="route_id" />
 			<result property="startStationId" column="start_station_id" />
 			<result property="currentStationId" column="current_station_id" />
+			<result property="currentStationStatus" column="current_station_status"/>
 			<result property="status" column="status_" />
 			<result property="endStationId" column="end_station_id" />
 			<result property="createBy" column="create_by" />
@@ -33,7 +34,7 @@
 	-->
 	<![CDATA[
 		insert into bus_shift_info
-	    (id_,driver_id,vehicle_id,route_id,start_station_id,current_station_id,status_,end_station_id,create_by,create_time,update_by,update_time,del_flag,finish_time)
+	    (id_,driver_id,vehicle_id,route_id,start_station_id,current_station_id,current_station_status,status_,end_station_id,create_by,create_time,update_by,update_time,del_flag,finish_time)
 		values
 		(
 #{id,jdbcType=VARCHAR}
@@ -42,6 +43,7 @@
 ,#{routeId,jdbcType=VARCHAR}
 ,#{startStationId,jdbcType=VARCHAR}
 ,#{currentStationId,jdbcType=VARCHAR}
+,#{currentStationStatus,jdbcType=VARCHAR}
 ,#{status,jdbcType=VARCHAR}
 ,#{endStationId,jdbcType=VARCHAR}
 ,#{createBy,jdbcType=VARCHAR}
@@ -74,6 +76,9 @@
 				<if test="currentStationId!=null">
 		current_station_id=#{currentStationId,jdbcType=VARCHAR},
 		</if>
+			<if test="currentStationStatus!=null">
+				current_station_status=#{currentStationStatus,jdbcType=VARCHAR},
+			</if>
 				<if test="status!=null">
 		status_=#{status,jdbcType=VARCHAR},
 		</if>

+ 8 - 3
web/src/main/java/com/jpsoft/bus/modules/mobile/controller/PassengerApiController.java

@@ -349,6 +349,7 @@ public class PassengerApiController {
             map.put("longitude", vehicleInfo.getLongitude());
             map.put("latitude", vehicleInfo.getLatitude());
             map.put("currentStationId", shiftInfo.getCurrentStationId());
+            map.put("currentStationStatus",shiftInfo.getCurrentStationStatus());
             messageResult.setData(map);
             messageResult.setResult(true);
             messageResult.setCode(200);
@@ -1294,13 +1295,14 @@ public class PassengerApiController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "outOrderNo", value = "商户订单号", paramType = "form")
     })
-    public MessageResult<List<PassengerRecordDTO>> mergeInfo(String outOrderNo) {
-        MessageResult<List<PassengerRecordDTO>> messageResult = new MessageResult<>();
+    public MessageResult<Map> mergeInfo(String outOrderNo) {
+        MessageResult<Map> messageResult = new MessageResult<>();
 
         try {
 
             List<PassengerRecordDTO> list = new ArrayList<>();
             MergeOrderInfo mergeOrderInfo = mergeOrderInfoService.findByOutOrderNo(outOrderNo);
+            ShiftInfo shiftInfo = shiftInfoService.get(mergeOrderInfo.getVehicleShiftId());
             if (mergeOrderInfo != null){
                 List<OrderInfo> orderInfoList = orderInfoService.findByMergeOrderId(mergeOrderInfo.getId());
                 if (orderInfoList.size()>0){
@@ -1326,8 +1328,11 @@ public class PassengerApiController {
                     }
                 }
             }
+            Map<String,Object> map = new HashMap<>();
+            map.put("id",shiftInfo.getVehicleId());
+            map.put("list",list);
 
-            messageResult.setData(list);
+            messageResult.setData(map);
             messageResult.setResult(true);
             messageResult.setCode(200);
         } catch (Exception ex) {