From ca73af429b960124ab9b32ccfd5572e3f1df2bc2 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期三, 22 十月 2025 18:10:04 +0800
Subject: [PATCH] 添加后台改派司机校验

---
 DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java                |    6 ++++++
 UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java      |    3 +--
 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java |   13 +++++++++++++
 ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TReassignServiceImpl.java           |   23 +++++++++++++++++++----
 4 files changed, 39 insertions(+), 6 deletions(-)

diff --git a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
index 069d259..bacc537 100644
--- a/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
+++ b/DriverZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/ReassignServiceImpl.java
@@ -1,6 +1,8 @@
 package com.stylefeng.guns.modular.system.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import com.stylefeng.guns.core.shiro.ShiroKit;
 import com.stylefeng.guns.core.util.ToolUtil;
 import com.stylefeng.guns.modular.crossCity.model.OrderCrossCity;
 import com.stylefeng.guns.modular.crossCity.server.IOrderCrossCityService;
@@ -86,6 +88,9 @@
 
     @Autowired
     private RedisUtil redisUtil;
+
+    @Autowired
+    private IAppOperationLogService appOperationLogService;
 
 
     /**
@@ -192,6 +197,7 @@
                             orderPrivateCar.setState(11);
                             orderPrivateCar.setReassignNotice(2);
                             orderPrivateCarService.updateById(orderPrivateCar);
+                            appOperationLogService.addAppOperationLog(uid, "{\"type\":\"司机申请改派\",\"orderId\":\"" + orderPrivateCar.getId() + "\",\"driver\":\"" + JSON.toJSONString(orderPrivateCar) + "\"}");
                     
                             //添加已收入明细
                             incomeService.saveData(1, orderPrivateCar.getCompanyId(), 4, orderPrivateCar.getId(), 1, reassign.getMoney());
diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java
index 83fe944..3633366 100644
--- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java
+++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TReassignController.java
@@ -1,8 +1,10 @@
 package com.stylefeng.guns.modular.system.controller.specialTrain;
 
+import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
 import com.stylefeng.guns.core.base.controller.BaseController;
+import com.stylefeng.guns.core.base.tips.ErrorTip;
 import com.stylefeng.guns.core.common.constant.factory.PageFactory;
 import com.stylefeng.guns.core.shiro.ShiroKit;
 import com.stylefeng.guns.core.shiro.ShiroUser;
@@ -78,6 +80,9 @@
 
     @Autowired
     private ITOrderLogisticsService orderLogisticsService;
+
+    @Autowired
+    private IAppOperationLogService appOperationLogService;
 
 
 
@@ -296,6 +301,7 @@
             TOrderPrivateCar tOrderPrivateCar = itOrderPrivateCarService.selectById(tReassign.getOrderId());
             tOrderPrivateCar.setState(tOrderPrivateCar.getOldState());
             itOrderPrivateCarService.updateById(tOrderPrivateCar);
+            appOperationLogService.addAppOperationLog(ShiroKit.getUser().getId(), "{\"type\":\"调度拒绝改派\",\"orderId\":\"" + tOrderPrivateCar.getId() + "\",\"driver\":\"" + JSON.toJSONString(tOrderPrivateCar) + "\"}");
         }else if (2 == optType){
             tReassign.setState(4);
             tReassignService.updateById(tReassign);
@@ -304,6 +310,7 @@
             TOrderPrivateCar tOrderPrivateCar = itOrderPrivateCarService.selectById(tReassign.getOrderId());
             tOrderPrivateCar.setState(10);
             itOrderPrivateCarService.updateById(tOrderPrivateCar);
+            appOperationLogService.addAppOperationLog(ShiroKit.getUser().getId(), "{\"type\":\"调度取消订单\",\"orderId\":\"" + tOrderPrivateCar.getId() + "\",\"driver\":\"" + JSON.toJSONString(tOrderPrivateCar) + "\"}");
 
             //修改司机状态"空闲"
             TDriver driver = itDriverService.selectById(tReassign.getOriginalDriverId());
@@ -583,6 +590,11 @@
     @RequestMapping(value = "/selectDriver")
     @ResponseBody
     public Object selectDriver(@RequestParam Integer orderId,@RequestParam Integer driverId) {
+        int count = itOrderPrivateCarService.selectCount(new EntityWrapper<TOrderPrivateCar>().eq("driverId", driverId)
+                .in("state", Arrays.asList(2, 3, 4, 5, 6, 11)).eq("isDelete", 1));
+        if(count > 0){
+            throw new RuntimeException("司机正在服务中,请选择其他司机");
+        }
         //修改订单
         TReassign tReassign = tReassignService.selectById(orderId);
         TOrderPrivateCar tOrderPrivateCar = itOrderPrivateCarService.selectById(tReassign.getOrderId());
@@ -602,6 +614,7 @@
         tOrderPrivateCar.setDriverId(driverId);
         tOrderPrivateCar.setCarId(nowDriver.getCarId());
         itOrderPrivateCarService.updateById(tOrderPrivateCar);
+        appOperationLogService.addAppOperationLog(ShiroKit.getUser().getId(), "{\"type\":\"调度完成订单改派\",\"orderId\":\"" + tOrderPrivateCar.getId() + "\",\"driver\":\"" + JSON.toJSONString(tOrderPrivateCar) + "\"}");
 
         //修改专车改派订单
         tReassign.setNowDriverId(driverId);
diff --git a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TReassignServiceImpl.java b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TReassignServiceImpl.java
index 0440f96..31c43d8 100644
--- a/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TReassignServiceImpl.java
+++ b/ManagementZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TReassignServiceImpl.java
@@ -1,15 +1,17 @@
 package com.stylefeng.guns.modular.system.service.impl;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.baomidou.mybatisplus.plugins.Page;
+import com.stylefeng.guns.modular.system.model.TOrderPrivateCar;
 import com.stylefeng.guns.modular.system.model.TReassign;
 import com.stylefeng.guns.modular.system.dao.TReassignMapper;
+import com.stylefeng.guns.modular.system.service.ITOrderPrivateCarService;
 import com.stylefeng.guns.modular.system.service.ITReassignService;
 import com.baomidou.mybatisplus.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * <p>
@@ -22,6 +24,9 @@
 @Service
 public class TReassignServiceImpl extends ServiceImpl<TReassignMapper, TReassign> implements ITReassignService {
 
+    @Autowired
+    private ITOrderPrivateCarService itOrderPrivateCarService;
+
     @Override
     public List<Map<String, Object>> getPrivateCarReassignOrderList(Page<Map<String, Object>> page, Integer roleType, Integer nowUserId, String beginTime, String endTime, String originalDriverName, String originalDriverPhone, String orderNum, String nowDriverName, String nowDriverPhone, Integer orderState, Integer state) {
         return this.baseMapper.getPrivateCarReassignOrderList(page, roleType, nowUserId, beginTime, endTime, originalDriverName, originalDriverPhone, orderNum, nowDriverName, nowDriverPhone, orderState, state);
@@ -29,7 +34,17 @@
 
     @Override
     public List<Map<String, Object>> getCanSelectPrivateCarDriverList(Page<Map<String, Object>> page, Integer companyId, String name, String phone) {
-        return this.baseMapper.getCanSelectPrivateCarDriverList(page, companyId, name, phone);
+        List<Map<String, Object>> driverList = this.baseMapper.getCanSelectPrivateCarDriverList(page, companyId, name, phone);
+        List<Map<String, Object>> list = new ArrayList<>();
+        for (Map<String, Object> map : driverList) {
+            String driverId = map.get("id").toString();
+            int count = itOrderPrivateCarService.selectCount(new EntityWrapper<TOrderPrivateCar>().eq("driverId", driverId)
+                    .in("state", Arrays.asList(2, 3, 4, 5, 6, 11)).eq("isDelete", 1));
+            if(0 == count){
+                list.add(map);
+            }
+        }
+        return list;
     }
 
     @Override
diff --git a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
index 549fccb..4b804dd 100644
--- a/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
+++ b/UserZYTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/server/impl/OrderPrivateCarServiceImpl.java
@@ -442,7 +442,7 @@
                                         // 判断司机是否有订单进行中
                                         long count = orderPrivateCarMapper.selectCount(new EntityWrapper<OrderPrivateCar>().eq("driverId", driver1.getId())
                                                 .in("state", Arrays.asList(2, 3, 4, 5, 6, 11)).eq("isDelete", 1));
-                                        if(0 != count){
+                                        if(count > 0){
                                             continue;
                                         }
                                         // 判断该司机是否有30分钟内预约单
@@ -462,7 +462,6 @@
                                             }
                                         }
                                     }
-
                                     if(!ds.isEmpty()){
                                         ds.sort(new Comparator<Driver>() {
                                             @Override

--
Gitblit v1.7.1