Forráskód Böngészése

司机修改当前站点同时修改经纬度

zhengqiang 4 éve
szülő
commit
10568f0bd7

+ 41 - 53
common/src/main/java/com/jpsoft/bus/modules/bus/callback/GpsDataCallbackImpl.java

@@ -142,9 +142,6 @@ public class GpsDataCallbackImpl implements GpsDataCallback {
                             shiftInfo.setCurrentStationId(stationId);
                             shiftInfoService.update(shiftInfo);
 
-
-
-
                             //当前站点
                             StationInfo currentStation = stationInfoService.get(stationId);
                             //此线路的所有站点
@@ -161,8 +158,6 @@ public class GpsDataCallbackImpl implements GpsDataCallback {
                                 frontToEnd = false;
                             }
 
-
-
                             //查询乘客表是否有过站的情况
                             List<PassengerInfo> passengerInfoList = passengerInfoService.findByShiftStatusPayStatusNotTicketDown(shiftInfo.getId(),"1","1",stationId);
 
@@ -172,20 +167,31 @@ public class GpsDataCallbackImpl implements GpsDataCallback {
                                     StationInfo downStation = stationInfoService.get(passengerInfo.getTicketDownStationId());
 
                                     //按照线路顺行并且当前站点大于乘客购票站点,则过站
-                                    if (frontToEnd && currentStationIndex > downStation.getSortNo()){
-                                        passengerInfo.setPayStatus("2");
+                                    if (frontToEnd){
+                                        if(currentStationIndex > downStation.getSortNo()) {
+                                            passengerInfo.setPayStatus("2");
+                                        }
+                                        else{
+                                            passengerInfo.setPayStatus("1");
+                                        }
+
                                         passengerInfoService.update(passengerInfo);
                                     }
 
                                     //按照线路逆行并且当前站点小于乘客购票站点,则过站
-                                    if (!frontToEnd && currentStationIndex < downStation.getSortNo()){
-                                        passengerInfo.setPayStatus("2");
+                                    if (!frontToEnd){
+                                        if(currentStationIndex < downStation.getSortNo()) {
+                                            passengerInfo.setPayStatus("2");
+                                        }
+                                        else {
+                                            passengerInfo.setPayStatus("1");
+                                        }
+
                                         passengerInfoService.update(passengerInfo);
                                     }
 
                                     //过站发消息
                                     if (passengerInfo.getPayStatus().equals("2")){
-
                                             List<OrderInfo> orderInfoList = orderInfoService.findByPassengerIdAndPayStatus(passengerInfo.getId(),20);
                                             OrderInfo orderInfo = orderInfoList.get(0);
                                             //综合账单
@@ -208,58 +214,40 @@ public class GpsDataCallbackImpl implements GpsDataCallback {
                                                         passengerMessageService.update(passengerMessage0);
                                                     }
                                                 }
-
-
-
-
                                             }
-
-
-
-
                                     }
-
                                 }
                             }
 
-
-                                //查询乘客有过站的情况
-                                List<PassengerInfo> passengerInfoList1 = passengerInfoService.findByShiftStatusPayStatusNotTicketDown(shiftInfo.getId(),"1","2",stationId);
-                                if (passengerInfoList1.size()>0){
-                                    for (PassengerInfo passengerInfo : passengerInfoList1){
-                                        List<OrderInfo> orderInfoList = orderInfoService.findByPassengerIdAndPayStatus(passengerInfo.getId(),20);
-                                        OrderInfo orderInfo = orderInfoList.get(0);
-                                        //综合账单
-                                        MergeOrderInfo mergeOrderInfo = mergeOrderInfoService.get(orderInfo.getMergeOrderId());
-                                        if (StringUtils.isNotBlank(mergeOrderInfo.getOpenId())){
-
-                                            UserInfo userInfo = userInfoService.findByOpenId(mergeOrderInfo.getOpenId());
-                                            if (userInfo.getAcceptMessage()){
-                                                PassengerMessage passengerMessage0 = passengerMessageService.findByPassengerId(orderInfo.getPassengerId());
-                                                if (passengerMessage0 ==null){
-                                                    PassengerMessage passengerMessage = new PassengerMessage();
-                                                    passengerMessage.setId(UUID.randomUUID().toString());
-                                                    passengerMessage.setOpenId(mergeOrderInfo.getOpenId());
-                                                    passengerMessage.setPassengerId(passengerInfo.getId());
-                                                    passengerMessage.setCreateTime(new Date());
-                                                    passengerMessageService.insert(passengerMessage);
-                                                }
-                                                else {
-                                                    passengerMessage0.setReadStatus(false);
-                                                    passengerMessageService.update(passengerMessage0);
-                                                }
+                            //查询乘客有过站的情况
+                            List<PassengerInfo> passengerInfoList1 = passengerInfoService.findByShiftStatusPayStatusNotTicketDown(shiftInfo.getId(),"1","2",stationId);
+                            if (passengerInfoList1.size()>0){
+                                for (PassengerInfo passengerInfo : passengerInfoList1){
+                                    List<OrderInfo> orderInfoList = orderInfoService.findByPassengerIdAndPayStatus(passengerInfo.getId(),20);
+                                    OrderInfo orderInfo = orderInfoList.get(0);
+                                    //综合账单
+                                    MergeOrderInfo mergeOrderInfo = mergeOrderInfoService.get(orderInfo.getMergeOrderId());
+                                    if (StringUtils.isNotBlank(mergeOrderInfo.getOpenId())){
+
+                                        UserInfo userInfo = userInfoService.findByOpenId(mergeOrderInfo.getOpenId());
+                                        if (userInfo.getAcceptMessage()){
+                                            PassengerMessage passengerMessage0 = passengerMessageService.findByPassengerId(orderInfo.getPassengerId());
+                                            if (passengerMessage0 ==null){
+                                                PassengerMessage passengerMessage = new PassengerMessage();
+                                                passengerMessage.setId(UUID.randomUUID().toString());
+                                                passengerMessage.setOpenId(mergeOrderInfo.getOpenId());
+                                                passengerMessage.setPassengerId(passengerInfo.getId());
+                                                passengerMessage.setCreateTime(new Date());
+                                                passengerMessageService.insert(passengerMessage);
+                                            }
+                                            else {
+                                                passengerMessage0.setReadStatus(false);
+                                                passengerMessageService.update(passengerMessage0);
                                             }
-
-
-
-
                                         }
                                     }
-
                                 }
-
-
-
+                            }
                         }
 
                         if (gpsDataInfo0 != null){

+ 21 - 1
web/src/main/java/com/jpsoft/bus/modules/driver/controller/DriverApiController.java

@@ -22,6 +22,7 @@ import com.jpsoft.bus.modules.common.utils.CommonUtil;
 import com.jpsoft.bus.modules.common.utils.JwtUtil;
 import com.jpsoft.bus.modules.common.utils.OSSUtil;
 import com.jpsoft.bus.modules.common.utils.PojoUtils;
+import com.jpsoft.gps.callback.GpsDataCallback;
 import io.swagger.annotations.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
@@ -99,6 +100,9 @@ public class DriverApiController {
     @Autowired
     private ValueOperations<String,Object> valueOperations;
 
+    @Autowired
+    private GpsDataCallback gpsDataCallback;
+
     @PostMapping("carActivation")
     @ApiOperation(value = "司机端激活")
     @ApiImplicitParams({
@@ -339,7 +343,16 @@ public class DriverApiController {
             List<ShiftInfo> shiftInfoList = shiftInfoService.findByDriverIdAndStatus(driverInfo.getId(),"1");
 
             if (shiftInfoList.size()>0){
-                throw new Exception("已有正在运行的班次!");
+//                throw new Exception("已有正在运行的班次!");
+                for (ShiftInfo shiftInfo : shiftInfoList) {
+                    if(!shiftInfo.getVehicleId().equals(vehicleInfo.getId())) {
+                        shiftInfo.setStatus("2");
+                        shiftInfo.setUpdateTime(new Date());
+                        shiftInfo.setUpdateBy("在其它车上未收班,则自动收班");
+
+                        shiftInfoService.update(shiftInfo);
+                    }
+                }
             }
 
             //始发站
@@ -1060,6 +1073,7 @@ public class DriverApiController {
             }
 
             ShiftInfo shiftInfo = shiftInfoList.get(0);
+            StationInfo currentStation = stationInfoService.get(currentStationId);
 
             shiftInfo.setCurrentStationId(currentStationId);
             shiftInfo.setUpdateTime(new Date());
@@ -1067,6 +1081,12 @@ public class DriverApiController {
 
             shiftInfoService.update(shiftInfo);
 
+            if(currentStation.getLongitude()!=null && currentStation.getLatitude()!=null) {
+                gpsDataCallback.receive(vehicleInfo.getGpsDeviceNo(),
+                        String.valueOf(currentStation.getLongitude()),
+                        String.valueOf(currentStation.getLatitude()));
+            }
+
             //todo 填写具体代码
             messageResult.setData(currentStationId);
             messageResult.setResult(true);