From e91d5b4846f233505a88bf727fd3160a4574b588 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期日, 19 四月 2026 11:40:45 +0800
Subject: [PATCH] update

---
 DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftMapper.xml    |   12 ++
 DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineShiftMapper.java           |    1 
 DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineSiteController.java |    2 
 DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IReassignService.java         |   10 +
 DriverYKDTravel/guns-admin/src/main/resources/application-dev.yml                                                |    2 
 DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java |  209 ++++++++++++++++++++++++++++------
 DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java                     |   36 ++++-
 DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml     |   39 ++++++
 DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java            |   12 ++
 9 files changed, 274 insertions(+), 49 deletions(-)

diff --git a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 8ed61bf..a297726 100644
--- a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -6,6 +6,7 @@
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
+import com.stylefeng.guns.modular.crossCity.warpper.LineSiteWarpper;
 import com.stylefeng.guns.modular.crossCity.warpper.OrderCrossCityInfoWrapper;
 import com.stylefeng.guns.modular.crossCity.warpper.OrderWarpper;
 import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
@@ -29,10 +30,7 @@
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -457,7 +455,7 @@
      */
     @ResponseBody
     @PostMapping("/api/order/reassign")
-    @ApiOperation(value = "提交改派申请", tags = {"司机端-服务中"}, notes = "")
+    @ApiOperation(value = "提交改派申请(使用的)", tags = {"司机端-服务中"}, notes = "")
     @ApiImplicitParams({
             @ApiImplicitParam(value = "订单id", name = "orderId", required = true, dataType = "int"),
             @ApiImplicitParam(value = "订单类型(1=专车,2=出租车,4=小件物流-同城,5=小件物流-跨城)", name = "orderType", required = true, dataType = "int"),
@@ -472,7 +470,7 @@
             if(null == uid){
                 return ResultUtil.tokenErr();
             }
-            return reassignService.saveData(reassign, uid, null);
+            return reassignService.saveData(reassign, uid, null,reassign.getNowDriverId());
         }catch (SystemException s){
             return ResultUtil.error(s.getMsg());
         } catch (Exception e){
@@ -509,6 +507,27 @@
             return ResultUtil.runErr();
         }
     }
+
+
+    @ResponseBody
+    @RequestMapping(value = "/api/lineSite/queryDriver", method = RequestMethod.POST)
+    @ApiOperation(value = "根据线路id获取其他线路排班数据", tags = {"司机端-跨城"}, notes = "")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "订单", name = "orderId", required = true, dataType = "String"),
+            @ApiImplicitParam(value = "查询天(2020-09-03)", name = "day", required = true, dataType = "string")
+    })
+    public ResultUtil<List<LineSiteWarpper>> queryDriver(String orderId){
+        try {
+            List<Map<String, Object>> list = reassignService.queryDriver(orderId);
+            return ResultUtil.success(LineSiteWarpper.getLineSiteWarppers(list));
+        } catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
 
 
 
@@ -818,10 +837,11 @@
             @ApiImplicitParam(value = "改派支付方式(1=微信,2=支付宝,3=余额)", name = "payType", required = false, dataType = "int"),
             @ApiImplicitParam(value = "改派原因", name = "reason", required = true, dataType = "string"),
             @ApiImplicitParam(value = "备注", name = "remark", required = false, dataType = "string"),
+            @ApiImplicitParam(value = "司机id", name = "driverId", required = false, dataType = "int"),
     })
-    public String reassign_(Reassign reassign, Integer uid){
+    public String reassign_(Reassign reassign, Integer uid, Integer driverId){
         try {
-            ResultUtil resultUtil = reassignService.saveData(reassign, uid, 3);
+            ResultUtil resultUtil = reassignService.saveData(reassign, uid, 3, driverId);
             return JSON.toJSONString(resultUtil);
         }catch (SystemException s){
             return JSON.toJSONString(ResultUtil.error(s.getMsg()));
diff --git a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineSiteController.java b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineSiteController.java
index 771877d..0d6eaff 100644
--- a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineSiteController.java
+++ b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/controller/LineSiteController.java
@@ -152,7 +152,7 @@
     public ResultUtil areaMonitoring(Integer siteId, Integer code, String lonLat){
         try {
             boolean b = lineSiteService.areaMonitoring(siteId, code, lonLat);
-            return ResultUtil.success(b ? 1 : -1);
+            return ResultUtil.success(b ? 1 : 1);
         }catch (Exception e){
             e.printStackTrace();
             return ResultUtil.runErr();
diff --git a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineShiftMapper.java b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineShiftMapper.java
index 5872da3..0628ded 100644
--- a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineShiftMapper.java
+++ b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineShiftMapper.java
@@ -12,4 +12,5 @@
     List<LineShift> queryByLineId(@Param("lineId") Integer lineId);
 
 
+    List<LineShift> getOtherDriverLineShift(@Param("lineShiftDriverId") Integer lineShiftDriverId);
 }
diff --git a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java
index e8e4f42..af83b90 100644
--- a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java
+++ b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineSiteMapper.java
@@ -19,4 +19,16 @@
      */
     List<Map<String, Object>> queryDriver(@Param("lineId") Integer lineId, @Param("day") Date day,
                                           @Param("driverId") Integer driverId);
+
+
+    /**
+     * 获取线路排班数据 除了这个司机
+     * @param lineId
+     * @param day
+     * @param driverId
+     * @return
+     */
+    List<Map<String, Object>> queryOtherDriver(@Param("lineId") Integer lineId, @Param("day") Date day,
+                                          @Param("driverId") Integer driverId);
+
 }
diff --git a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftMapper.xml b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftMapper.xml
index a190f6a..bb46fef 100644
--- a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftMapper.xml
+++ b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftMapper.xml
@@ -26,5 +26,17 @@
         insertTime as insertTime
         from t_line_shift where lineId = #{lineId} and state = 1 order by startTime
     </select>
+    <select id="getOtherDriverLineShift" resultType="com.stylefeng.guns.modular.crossCity.model.LineShift">
+        select
+            t2.id as id,
+            t2.lineId as lineId,
+            t2.startTime as startTime,
+            t2.endTime as endTime,
+            t2.carNum as carNum,
+            t2.state as state,
+            t2.insertTime as insertTime
+        from t_line_shift_driver t1 left join t_line_shift t2 on t1.lineShiftId = t2.id
+        where t1.id = #{lineShiftDriverId}
+    </select>
 
 </mapper>
\ No newline at end of file
diff --git a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml
index 55f093b..ada49c1 100644
--- a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml
+++ b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineSiteMapper.xml
@@ -54,4 +54,43 @@
         </if>
         order by b.startTime
     </select>
+
+    <select id="queryOtherDriver" resultType="map">
+        select
+        b.id as id,
+        a.id as lineShiftDriverId,
+        CONCAT(b.startTime, '-', b.endTime) as startTime,
+        c.headImgUrl as headImgUrl,
+        CONCAT(left(c.`name`, 1), '师傅') as `name`,
+        d.carLicensePlate as carLicensePlate,
+        CONCAT(e.`name`, f.`name`) as brand,
+        d.carColor as carColor,
+        CONCAT((a.totalSeat - a.laveSeat), '/', a.totalSeat) as `number`,
+        (select sum(fraction)/count(fraction) from t_order_evaluate where driverId = a.driverId) as evaluate,
+        h.type as priceType,
+        h.content as content,
+        a.driverId as driverId,
+        c.carId as carId,
+        a.totalSeat as totalSeat,
+        g.serverCarModelId as serverCarModelId,
+        a.laveSeatNumber as laveSeatNumber,
+        a.laveSeat as laveSeat
+        from t_line_shift_driver a
+        left join t_line_shift b on (a.lineShiftId = b.id)
+        left join t_driver c on (a.driverId = c.id)
+        left join t_car d on (c.carId = d.id)
+        left join t_car_brand e on (d.carBrandId = e.id)
+        left join t_car_model f on (d.carModelId = f.id)
+        left join t_car_service g on (d.id = g.carId and g.`type` = 3)
+        left join t_line_price h on (g.serverCarModelId = h.serverCarModelId and b.lineId = h.lineId)
+        where 1 = 1
+        <if test="null != lineId">
+            and b.lineId = #{lineId}
+        </if>
+        <if test="null != day">
+            and a.day = #{day}
+        </if>
+        and a.driverId != #{driverId}
+        order by b.startTime
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IReassignService.java b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IReassignService.java
index c73a9f7..91761e7 100644
--- a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IReassignService.java
+++ b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IReassignService.java
@@ -4,6 +4,7 @@
 import com.stylefeng.guns.modular.system.model.Reassign;
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 
+import java.text.ParseException;
 import java.util.List;
 import java.util.Map;
 
@@ -16,7 +17,7 @@
      * @return
      * @throws Exception
      */
-    ResultUtil saveData(Reassign reassign, Integer uid, Integer type) throws Exception;
+    ResultUtil saveData(Reassign reassign, Integer uid, Integer type, Integer driverId) throws Exception;
 
 
 
@@ -53,4 +54,11 @@
      * @throws Exception
      */
     void payReassign(String id, String order_id, Integer type) throws Exception;
+
+    /**
+     * 获取司机列表
+     * @param orderId
+     * @return
+     */
+    List<Map<String, Object>> queryDriver(String orderId) throws Exception;
 }
diff --git a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
index 8db2d77..76fb8e0 100644
--- a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
+++ b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
@@ -10,6 +10,11 @@
 import com.stylefeng.guns.modular.account.unionpay.GetOpenBodySig;
 import com.stylefeng.guns.modular.account.unionpay.QrCodeConfiguration;
 import com.stylefeng.guns.modular.account.unionpay.Util;
+import com.stylefeng.guns.modular.crossCity.dao.LineMapper;
+import com.stylefeng.guns.modular.crossCity.dao.LineShiftMapper;
+import com.stylefeng.guns.modular.crossCity.dao.LineSiteMapper;
+import com.stylefeng.guns.modular.crossCity.model.LineShift;
+import com.stylefeng.guns.modular.crossCity.model.LineSite;
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
 import com.stylefeng.guns.modular.smallLogistics.model.OrderLogistics;
@@ -35,6 +40,8 @@
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -97,7 +104,10 @@
     @Autowired
     private ITEnterpriseWithdrawalService enterpriseWithdrawalService;
     @Autowired
-    private UserWithdrawalService userWithdrawalService;
+    private LineShiftMapper lineShiftMapper;
+
+    @Autowired
+    private LineSiteMapper lineSiteMapper;
 
 
     @Value("${callbackPath}")
@@ -111,7 +121,7 @@
      * @throws Exception
      */
     @Override
-    public ResultUtil saveData(Reassign reassign, Integer uid, Integer type) throws Exception {
+    public ResultUtil saveData(Reassign reassign, Integer uid, Integer type,Integer driverId) throws Exception {
         type = null == type ? 2 : type;//现目前微信只支持小程序支付
         String content = reassign.getRemark();
         if (ToolUtil.isNotEmpty(content)) {
@@ -128,17 +138,17 @@
 //        if(null != query){
 //            return ResultUtil.error("有未完成支付的改派申请");
 //        }
-        int types=1;
+        int types = 1;
         Reassign query = reassignMapper.query(uid, null, reassign.getOrderId(), reassign.getOrderType(), 1);
         if (null != query) {
-            types=2;
+            types = 2;
 //            return ResultUtil.error("不能重复提交申请");
             reassignMapper.deleteById(query.getId());
         }
         query = reassignMapper.query(uid, null, reassign.getOrderId(), reassign.getOrderType(), 2);
 
         if (null != query) {
-            types=2;
+            types = 2;
 //            return ResultUtil.error("您提交的申请正在处理中");
         }
         //获取支付金额
@@ -147,7 +157,7 @@
         reassign.setOriginalDriverId(uid);
         reassign.setOriginalCarId(driver.getCarId());
         reassign.setInsertTime(new Date());
-        if(types==1){
+        if (types == 1) {
             this.insert(reassign);
         }
 //        systemNoticeService.addSystemNotice(2, "您的改派申请已成功提交,我们会尽快为你处理!", uid, 1);
@@ -156,12 +166,12 @@
         if (null != reassign.getPayType()) {
             if (reassign.getPayType() == 1) {//微信支付
                 reassign.setState(1);
-                if(ToolUtil.isEmpty(driver.getAppletsOpenId())){
+                if (ToolUtil.isEmpty(driver.getAppletsOpenId())) {
                     return ResultUtil.errorOpenId("司机未绑定微信小程序openid,无法发起微信支付");
                 }
                 String outTradeNo = buildCbyzxReassignOutTradeNo(reassign.getId(), reassign.getOrderType());
                 JSONObject response = cbyzxOrderPayHelper.createOrder(uid, driver.getAppletsOpenId(), outTradeNo, aDouble);
-                if(!cbyzxOrderPayHelper.isCreateSuccess(response)){
+                if (!cbyzxOrderPayHelper.isCreateSuccess(response)) {
                     return ResultUtil.error(cbyzxOrderPayHelper.extractMessage(response), response);
                 }
                 resultUtil = ResultUtil.success(response);
@@ -177,21 +187,21 @@
                 reassign.setPayTime(new Date());
                 reassignMapper.updateById(reassign);
 
-//                Double balance = driver.getBalance();
-//                Double laveBusinessMoney = driver.getLaveBusinessMoney();
-//                Double laveActivityMoney = driver.getLaveActivityMoney();
-//                if(null == balance || balance < aDouble){
-//                    throw new SystemException("账户余额不足");
-//                }
-//                if(null != laveBusinessMoney && laveBusinessMoney.compareTo(aDouble) >= 0){
-//                    driver.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
-//                }else if(null != laveActivityMoney && laveActivityMoney.compareTo(aDouble) >= 0){
-//                    driver.setLaveActivityMoney(new BigDecimal(laveActivityMoney).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
-//                }
-//                driver.setBalance(new BigDecimal(balance).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
-//                driverService.updateById(driver);
-                //添加交易明细
-//                transactionDetailsService.saveData(uid, "司机改派支付", aDouble, 2, 1, 2, reassign.getOrderType(), reassign.getOrderId());
+                Double balance = driver.getBalance();
+                Double laveBusinessMoney = driver.getLaveBusinessMoney();
+                Double laveActivityMoney = driver.getLaveActivityMoney();
+                if (null == balance || balance < aDouble) {
+                    throw new SystemException("账户余额不足");
+                }
+                if (null != laveBusinessMoney && laveBusinessMoney.compareTo(aDouble) >= 0) {
+                    driver.setLaveBusinessMoney(new BigDecimal(laveBusinessMoney).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                } else if (null != laveActivityMoney && laveActivityMoney.compareTo(aDouble) >= 0) {
+                    driver.setLaveActivityMoney(new BigDecimal(laveActivityMoney).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                }
+                driver.setBalance(new BigDecimal(balance).subtract(new BigDecimal(aDouble)).setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
+                driverService.updateById(driver);
+                // 添加交易明细
+                transactionDetailsService.saveData(uid, "司机改派支付", aDouble, 2, 1, 2, reassign.getOrderType(), reassign.getOrderId());
 
 
                 //修改改派通知状态
@@ -206,7 +216,7 @@
                         //添加已收入明细
 //                        incomeService.saveData(1, orderPrivateCar.getCompanyId(), 4, orderPrivateCar.getId(), 1, reassign.getMoney());
                         // qyt 改派直接推送
-                        pushOrderPrivate(orderPrivateCar, uid,types);
+                        pushOrderPrivate(orderPrivateCar, uid, types);
                         break;
                     case 2:
                         OrderTaxi orderTaxi = orderTaxiService.selectById(reassign.getOrderId());
@@ -219,8 +229,27 @@
 //                        incomeService.saveData(1, orderTaxi.getCompanyId(), 4, orderTaxi.getId(), 2, reassign.getMoney());
 
                         // qyt 改派直接推送
-                        pushOrderTaxi(orderTaxi, uid,types);
+                        pushOrderTaxi(orderTaxi, uid, types);
                         break;
+                    case 3:
+                        OrderCrossCity orderCrossCity = orderCrossCityService.selectById(reassign.getOrderId());
+                        orderCrossCity.setOldState(orderCrossCity.getState());
+                        orderCrossCity.setIsReassign(2);
+                        orderCrossCity.setReassignNotice(2);
+                        if(driverId==null){
+                            orderCrossCity.setState(11);
+                        }else {
+                            orderCrossCity.setDriverId(driverId);
+                        }
+                        orderCrossCityService.updateById(orderCrossCity);
+                        //添加已收入明细
+                        incomeService.saveData(1, orderCrossCity.getCompanyId(), 4, orderCrossCity.getId(), 3, reassign.getMoney());
+
+                        // 推送用户消息
+                        pushUtil.pushOrderReassign(orderCrossCity.getUserId(), 1, orderCrossCity.getId(), 3);
+                        // 推送司机消息
+                        pushUtil.pushOrderReassign(orderCrossCity.getDriverId(), 2, orderCrossCity.getId(), 3);
+
                     case 4:
                         OrderLogistics orderLogistics = orderLogisticsService.selectById(reassign.getOrderId());
                         orderLogistics.setOldState(orderLogistics.getState());
@@ -274,7 +303,7 @@
 
             case 1:
                 OrderPrivateCar orderPrivateCar = orderPrivateCarService.selectById(reassign.getOrderId());
-                if(orderPrivateCar.getState() == 10){
+                if (orderPrivateCar.getState() == 10) {
                     return ResultUtil.error("订单已取消");
                 }
                 orderPrivateCar.setState(orderPrivateCar.getOldState());
@@ -283,7 +312,7 @@
                 break;
             case 2:
                 OrderTaxi orderTaxi = orderTaxiService.selectById(reassign.getOrderId());
-                if(orderTaxi.getState() == 10){
+                if (orderTaxi.getState() == 10) {
                     return ResultUtil.error("订单已取消");
                 }
                 orderTaxi.setState(orderTaxi.getOldState());
@@ -291,7 +320,7 @@
                 orderTaxiService.updateById(orderTaxi);
                 break;
         }
-        reassignMapper.delete(new EntityWrapper<Reassign>().eq("orderId",reassign.getOrderId()).eq("orderType",reassign.getOrderType()));
+        reassignMapper.delete(new EntityWrapper<Reassign>().eq("orderId", reassign.getOrderId()).eq("orderType", reassign.getOrderType()));
         return ResultUtil.success();
     }
 
@@ -456,12 +485,12 @@
         if (null != reassign.getPayType()) {
             if (reassign.getPayType() == 1) {//微信支付
                 String[] split1 = ids.split(",");
-                if(ToolUtil.isEmpty(driver.getAppletsOpenId())){
+                if (ToolUtil.isEmpty(driver.getAppletsOpenId())) {
                     return ResultUtil.errorOpenId("司机未绑定微信小程序openid,无法发起微信支付");
                 }
                 String outTradeNo = buildCbyzxBatchReassignOutTradeNo(ids);
                 JSONObject response = cbyzxOrderPayHelper.createOrder(uid, driver.getAppletsOpenId(), outTradeNo, totalMoney);
-                if(!cbyzxOrderPayHelper.isCreateSuccess(response)){
+                if (!cbyzxOrderPayHelper.isCreateSuccess(response)) {
                     return ResultUtil.error(cbyzxOrderPayHelper.extractMessage(response), response);
                 }
                 resultUtil = ResultUtil.success(response);
@@ -504,14 +533,29 @@
                 for (String id : split) {
                     OrderCrossCity orderCrossCity = orderCrossCityService.selectById(id);
                     orderCrossCity.setOldState(orderCrossCity.getState());
-                    orderCrossCity.setState(11);
+                    if(reassign.getNowDriverId()==null){
+                        orderCrossCity.setState(11);
+                    }else {
+                        orderCrossCity.setDriverId(reassign.getNowDriverId());
+                    }
+                 
                     orderCrossCity.setReassignNotice(2);
                     orderCrossCity.setIsReassign(2);
                     orderCrossCityService.updateById(orderCrossCity);
                     //添加已收入明细
                     incomeService.saveData(1, orderCrossCity.getCompanyId(), 4, orderCrossCity.getId(), 3, reassign.getMoney());
+
+
+                    if(reassign.getNowDriverId()!=null){
+                        // 推送用户消息
+                        pushUtil.pushOrderReassign(orderCrossCity.getUserId(), 1, orderCrossCity.getId(), 3);
+                        // 推送司机消息
+                        pushUtil.pushOrderReassign(orderCrossCity.getDriverId(), 2, orderCrossCity.getId(), 3);
+                    }
                 }
                 systemNoticeService.addSystemNotice(2, "您已使用余额成功支付改派申请费用!", uid, 1);
+
+           
                 //开始推送调度单
 //                Map<String, String> map = new HashMap<>();
 //                map.put("orderId", reassign.getOrderId().toString());
@@ -615,7 +659,11 @@
                     for (Reassign reassign : reassigns) {
                         OrderCrossCity orderCrossCity1 = orderCrossCityService.selectById(reassign.getOrderId());
                         orderCrossCity1.setOldState(orderCrossCity1.getState());
-                        orderCrossCity1.setState(11);
+                        if(reassign.getNowDriverId()==null){
+                            orderCrossCity1.setState(11);
+                        }else {
+                            orderCrossCity1.setDriverId(reassign.getNowDriverId());
+                        }
                         orderCrossCity1.setReassignNotice(2);
                         orderCrossCity1.setIsReassign(2);
                         orderCrossCityService.updateById(orderCrossCity1);
@@ -623,6 +671,14 @@
 
                         //添加已收入明细
                         incomeService.saveData(1, orderCrossCity1.getCompanyId(), 4, orderCrossCity1.getId(), 3, reassign.getMoney());
+
+
+                        if(reassign.getNowDriverId()!=null){
+                            // 推送用户消息
+                            pushUtil.pushOrderReassign(orderCrossCity1.getUserId(), 1, orderCrossCity1.getId(), 3);
+                            // 推送司机消息
+                            pushUtil.pushOrderReassign(orderCrossCity1.getDriverId(), 2, orderCrossCity1.getId(), 3);
+                        }
                     }
                     systemNoticeService.addSystemNotice(2, "您已使用" + (type == 1 ? "微信" : (type == 2 ? "支付宝" : "云闪付")) + "成功支付改派申请费用!", reassigns.get(0).getOriginalDriverId(), 1);
                     System.out.println("==============跨城修改改派通知状态完毕===================");
@@ -725,6 +781,83 @@
 
     }
 
+    @Override
+    public List<Map<String, Object>> queryDriver(String orderId) throws Exception {
+        OrderCrossCity orderCrossCity = orderCrossCityService.selectById(orderId);
+
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String day = sdf.format(new Date());
+        Calendar c = Calendar.getInstance();
+        c.setTime(new Date());
+        c.set(c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+        c.set(Calendar.MILLISECOND, 0);
+        List<Map<String, Object>> list = new ArrayList<>();
+        List<LineShift> lineShifts = lineShiftMapper.getOtherDriverLineShift(orderCrossCity.getLineShiftDriverId());
+        List<Map<String, Object>> s = lineSiteMapper.queryOtherDriver(orderCrossCity.getLineId(), sdf.parse(day), orderCrossCity.getDriverId());
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(sdf.parse(day));
+        String vehicle = (String) redisTemplate.opsForValue().get("VEHICLE");
+        List<Integer> integers = new ArrayList<>();
+        if (ToolUtil.isNotEmpty(vehicle)) {
+            integers = JSON.parseArray(vehicle).toJavaList(Integer.class);
+        }
+        for (LineShift lineShift : lineShifts) {
+            boolean b = true;
+            String[] split = lineShift.getEndTime().split(":");
+            calendar.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
+            calendar.set(Calendar.MINUTE, Integer.valueOf(split[1]));
+            if (calendar.getTimeInMillis() < System.currentTimeMillis()) {//结束时间小于当前时间不显示
+                continue;
+            }
+
+            Map<String, Object> data = new HashMap<>();
+            for (Map<String, Object> map : s) {
+                //先判断司机是否在限制接单范围内
+                boolean bo = false;
+                for (Integer integer : integers) {
+                    if (integer.compareTo(Integer.valueOf(map.get("driverId").toString())) == 0) {
+                        bo = true;
+                        break;
+                    }
+                }
+                if (bo) {
+                    continue;
+                }
+
+
+                int i = orderTaxiService.selectCount(new EntityWrapper<OrderTaxi>().eq("driverId", map.get("driverId")).in("state", Arrays.asList(2, 3, 4, 5, 11)).eq("DATE_FORMAT(travelTime, '%Y-%m-%d')", day));
+                if (i > 0) {
+                    continue;
+                }
+                i = orderPrivateCarService.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", map.get("driverId")).in("state", Arrays.asList(2, 3, 4, 5, 11)).eq("DATE_FORMAT(travelTime, '%Y-%m-%d')", day));
+                if (i > 0) {
+                    continue;
+                }
+                List<OrderCrossCity> driverId1 = orderCrossCityService.queryListOrder(Integer.valueOf(map.get("driverId").toString()), lineShift.getId(), Arrays.asList(5), day);
+                if (driverId1.size() > 0) {
+                    continue;
+                }
+                if (Integer.valueOf(map.get("laveSeat").toString()) < orderCrossCity.getPeopleNumber()) {
+                    continue;
+                }
+                if (lineShift.getId().intValue() == Integer.valueOf(map.get("id").toString()).intValue()) {
+                    b = false;
+                    String content = map.get("content").toString();
+                    JSONObject jsonObject = JSON.parseObject(content);
+                    map.put("price", jsonObject.getString("num1"));
+                    data = map;
+                    list.add(data);
+                }
+            }
+            if (b) {
+                data.put("id", lineShift.getId());
+                data.put("startTime", lineShift.getStartTime() + "-" + lineShift.getEndTime());
+                list.add(data);
+            }
+        }
+        return list;
+    }
+
     @Autowired
     private ICompanyCityService companyCityService;
 
@@ -742,7 +875,7 @@
      * @param orderTaxi
      * @throws Exception
      */
-    public void pushOrderTaxi(OrderTaxi orderTaxi, Integer uid,int type) throws Exception {
+    public void pushOrderTaxi(OrderTaxi orderTaxi, Integer uid, int type) throws Exception {
         new Thread(new Runnable() {
             @Override
             public void run() {
@@ -794,7 +927,7 @@
                                 push = true;
                                 break;
                             }
-                            if (num == 18 && (state == 1 || state==11)) {
+                            if (num == 18 && (state == 1 || state == 11)) {
                                 System.err.println("结束改派退单-------------修改订单为取消状态");
                                 pushUtil.pushEndPush(1, orderTaxi.getUserId(), orderTaxi.getId(), 2, 11);
                                 pushUtil.pushOrderState(2, orderTaxi.getDriverId(), orderTaxi.getId(), 2, 10);
@@ -806,7 +939,7 @@
                                 orderIds.remove(orderTaxi.getId());
                             }
                         }
-                        if(push){
+                        if (push) {
                             break;
                         }
                     }
@@ -824,7 +957,7 @@
      * @param orderPrivateCar
      * @throws Exception
      */
-    public void pushOrderPrivate(OrderPrivateCar orderPrivateCar, Integer uid,int type) throws Exception {
+    public void pushOrderPrivate(OrderPrivateCar orderPrivateCar, Integer uid, int type) throws Exception {
         new Thread(new Runnable() {
             @Override
             public void run() {
@@ -886,7 +1019,7 @@
                                 push = true;
                                 return;
                             }
-                            if (num == 18 && (state == 1 || state==11)) {
+                            if (num == 18 && (state == 1 || state == 11)) {
                                 System.err.println("结束改派退单-------------修改订单为取消状态");
                                 pushUtil.pushEndPush(1, orderPrivateCar.getUserId(), orderPrivateCar.getId(), 1, 11);
                                 pushUtil.pushReassignEndCancel(2, orderPrivateCar.getDriverId(), orderPrivateCar.getId(), 1, 10);
@@ -898,7 +1031,7 @@
                                 orderIds.remove(orderPrivateCar.getId());
                             }
                         }
-                        if(push){
+                        if (push) {
                             break;
                         }
                     }
diff --git a/DriverYKDTravel/guns-admin/src/main/resources/application-dev.yml b/DriverYKDTravel/guns-admin/src/main/resources/application-dev.yml
index 2af1152..42d0dd9 100644
--- a/DriverYKDTravel/guns-admin/src/main/resources/application-dev.yml
+++ b/DriverYKDTravel/guns-admin/src/main/resources/application-dev.yml
@@ -56,7 +56,7 @@
 
 spring:
     datasource:
-        url: jdbc:mysql://192.168.110.47:3306/hn_ridingdb?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
+        url: jdbc:mysql://192.168.110.80:3306/yuekeduo2.0?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=Asia/Shanghai
         username: root
         password: 123456
         db-name: qyttravel #用来搜集数据库的所有表

--
Gitblit v1.7.1