From 7742172e5295f94e0569672870f6101ac5ee0552 Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期一, 20 四月 2026 16:31:29 +0800
Subject: [PATCH] 获取司机已预约或排班的城际出行

---
 DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineShiftDriverServiceImpl.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineShiftDriverServiceImpl.java b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineShiftDriverServiceImpl.java
index a7ee5ec..2c568e5 100644
--- a/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineShiftDriverServiceImpl.java
+++ b/DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineShiftDriverServiceImpl.java
@@ -123,6 +123,7 @@
             lineShiftDriver.setLaveSeatNumber(seatNumber.substring(0, seatNumber.length() - 1));
             lineShiftDriver.setTotalSeat(carModel.getSeat() - 1);
             lineShiftDriver.setInserTime(new Date());
+            lineShiftDriver.setAssignType(1);
             lineShiftDriverMapper.insert(lineShiftDriver);
         }
         if(type == 2){//取消预约
@@ -386,6 +387,55 @@
         return result;
     }
 
+    /**
+     * 【202604】查询司机本人已领取/被分配的排班列表(今天及之后)
+     */
+    @Override
+    public List<LineShiftItemWarpper> queryMyDriverShiftList(Integer driverId, String date, Integer pageNum, Integer size) throws Exception {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
+
+        String today = sdf.format(new Date());
+        String startDate = ToolUtil.isEmpty(date) ? null : date;
+        int safePageNum = (pageNum == null || pageNum < 1) ? 1 : pageNum;
+        int safeSize = (size == null || size < 1) ? 10 : size;
+        int offset = (safePageNum - 1) * safeSize;
+
+        List<Map<String, Object>> rows = lineShiftDriverMapper.queryMyDriverShiftList(driverId, startDate, offset, safeSize);
+        List<LineShiftItemWarpper> result = new ArrayList<>();
+        String currentTime = timeFormat.format(new Date());
+
+        for (Map<String, Object> row : rows) {
+            LineShiftItemWarpper item = new LineShiftItemWarpper();
+            item.setLineShiftId(row.get("lineShiftId") == null ? null : Integer.valueOf(row.get("lineShiftId").toString()));
+            item.setLineShiftDriverId(row.get("lineShiftDriverId") == null ? null : Integer.valueOf(row.get("lineShiftDriverId").toString()));
+            item.setStartTime(row.get("startTime") == null ? "" : row.get("startTime").toString());
+            item.setEndTime(row.get("endTime") == null ? "" : row.get("endTime").toString());
+            item.setDay(row.get("day") == null ? "" : row.get("day").toString());
+            item.setLaveSeat(row.get("laveSeat") == null ? 0 : Integer.valueOf(row.get("laveSeat").toString()));
+            item.setTotalSeat(row.get("totalSeat") == null ? 0 : Integer.valueOf(row.get("totalSeat").toString()));
+            item.setLineName(row.get("lineName") == null ? "" : row.get("lineName").toString());
+            item.setAssignType(row.get("assignType") == null ? 1 : Integer.valueOf(row.get("assignType").toString()));
+            item.setOrderId(row.get("orderId") == null ? null : Integer.valueOf(row.get("orderId").toString()));
+            item.setOrderType(row.get("orderType") == null ? null : Integer.valueOf(row.get("orderType").toString()));
+
+            String dayStr = row.get("day") == null ? today : row.get("day").toString();
+            boolean isExpired = dayStr.equals(today) && currentTime.compareTo(item.getEndTime()) >= 0;
+            if (isExpired) {
+                item.setStatus(2);
+                item.setStatusText("已过期");
+                item.setCanOperate(false);
+            } else {
+                item.setStatus(1);
+                item.setStatusText("已预约");
+                item.setCanOperate(true);
+            }
+            result.add(item);
+        }
+
+        return result;
+    }
+
     @Override
     public ResultUtil<ScanOrderDetailWarpper> getDetail(Integer lineShiftDriverId) {
         // 1. 查询基础数据

--
Gitblit v1.7.1