longz
2026-04-20 7742172e5295f94e0569672870f6101ac5ee0552
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. 查询基础数据