longz
2026-05-22 76bfef072c45777a993d889f8fdeacbd57ca9b70
BUG fix
7个文件已修改
99 ■■■■■ 已修改文件
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineShiftDriverMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftDriverMapper.xml 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ILineShiftDriverService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineShiftDriverServiceImpl.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/set.html 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/set1.html 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/LineShiftDriverMapper.java
@@ -64,4 +64,10 @@
    List<Map<String, Object>> queryOtherDriverShiftListWithShiftId(@Param("driverShiftId") Long driverShiftId);
    Integer queryCustomerIdByLineShiftDriverId(@Param("lineShiftDriverId") Integer lineShiftDriverId);
    /**
     * 查询已超时且无有效订单的排班ID
     * 标准班次按收车时间判定;自主行程按出发时间判定
     */
    List<Integer> queryExpiredNoOrderShiftIds();
}
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/dao/mapping/LineShiftDriverMapper.xml
@@ -178,6 +178,13 @@
            ) occ ON occ.lineShiftDriverId = lsd.id
            WHERE lsd.driverId = #{driverId}
              AND lsd.lineShiftId != -1
              AND NOT EXISTS (
                  SELECT 1
                  FROM t_order_cross_city occ_end
                  WHERE occ_end.lineShiftDriverId = lsd.id
                    AND occ_end.isDelete = 1
                    AND occ_end.state = 9
              )
              <if test="startDate != null and startDate != ''">
                  AND lsd.day = #{startDate}
              </if>
@@ -207,6 +214,13 @@
               AND st.state = 1
            WHERE lsd.driverId = #{driverId}
              AND lsd.lineShiftId = -1
              AND NOT EXISTS (
                  SELECT 1
                  FROM t_order_cross_city occ_end
                  WHERE occ_end.lineShiftDriverId = lsd.id
                    AND occ_end.isDelete = 1
                    AND occ_end.state = 9
              )
              <if test="startDate != null and startDate != ''">
                  AND lsd.day = #{startDate}
              </if>
@@ -256,4 +270,30 @@
          AND ls.state = 1
        ORDER BY ls.startTime ASC, other.id ASC
    </select>
    <select id="queryExpiredNoOrderShiftIds" resultType="java.lang.Integer">
        SELECT lsd.id
        FROM t_line_shift_driver lsd
                 LEFT JOIN t_line_shift ls ON ls.id = lsd.lineShiftId
                 LEFT JOIN t_driver_self_trip st ON st.id = lsd.customerId
        WHERE lsd.day IS NOT NULL
          AND NOT EXISTS (
            SELECT 1
            FROM t_order_cross_city occ
            WHERE occ.lineShiftDriverId = lsd.id
              AND occ.isDelete = 1
              AND occ.state != 10
        )
          AND (
            (lsd.lineShiftId != -1
                AND ls.id IS NOT NULL
                AND ls.state = 1
                AND STR_TO_DATE(CONCAT(DATE_FORMAT(lsd.day, '%Y-%m-%d'), ' ', ls.endTime), '%Y-%m-%d %H:%i') &lt; NOW())
                OR
            (lsd.lineShiftId = -1
                AND st.id IS NOT NULL
                AND st.state = 1
                AND STR_TO_DATE(CONCAT(DATE_FORMAT(lsd.day, '%Y-%m-%d'), ' ', st.startTime), '%Y-%m-%d %H:%i') &lt; NOW())
            )
    </select>
</mapper>
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/ILineShiftDriverService.java
@@ -69,4 +69,11 @@
     * @throws Exception
     */
    ResultUtil<ScanOrderDetailWarpper> getDetail(Integer lineShiftDriverId);
    /**
     * 自动取消已超时且无订单的司机排班
     * @return 取消数量
     * @throws Exception
     */
    Integer autoCancelExpiredNoOrderShifts() throws Exception;
}
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/crossCity/server/impl/LineShiftDriverServiceImpl.java
@@ -804,4 +804,36 @@
        }
        return ResultUtil.success(result);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Integer autoCancelExpiredNoOrderShifts() throws Exception {
        List<Integer> shiftIds = lineShiftDriverMapper.queryExpiredNoOrderShiftIds();
        if (shiftIds == null || shiftIds.isEmpty()) {
            return 0;
        }
        int cancelCount = 0;
        for (Integer shiftId : shiftIds) {
            if (shiftId == null) {
                continue;
            }
            LineShiftDriver lineShiftDriver = lineShiftDriverMapper.selectById(shiftId);
            if (lineShiftDriver == null) {
                continue;
            }
            if (lineShiftDriver.getLineShiftId() != null
                    && lineShiftDriver.getLineShiftId() == -1
                    && lineShiftDriver.getCustomerId() != null) {
                DriverSelfTrip trip = driverSelfTripMapper.selectById(lineShiftDriver.getCustomerId());
                if (trip != null && trip.getState() != null && trip.getState() == 1) {
                    trip.setState(2);
                    trip.setUpdateTime(new Date());
                    driverSelfTripMapper.updateById(trip);
                }
            }
            lineShiftDriverMapper.deleteById(shiftId);
            cancelCount++;
        }
        return cancelCount;
    }
}
DriverYKDTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/TaskUtil.java
@@ -1,6 +1,7 @@
package com.stylefeng.guns.modular.system.util;
import com.stylefeng.guns.modular.account.service.UserWithdrawalService;
import com.stylefeng.guns.modular.crossCity.server.ILineShiftDriverService;
import com.stylefeng.guns.modular.system.service.IDriverService;
import com.stylefeng.guns.modular.system.service.IOrderService;
import com.stylefeng.guns.modular.system.service.IUserMerchantCouponService;
@@ -38,6 +39,9 @@
    @Autowired
    private UserWithdrawalService userWithdrawalService;
    @Autowired
    private ILineShiftDriverService lineShiftDriverService;
    public Set<Integer> driverIds = new HashSet<>();//存储需要提醒司机预约单的司机id
    private String ip = null;
@@ -63,6 +67,8 @@
                orderService.taskMidAxbUnBindSend();
                //修改过期的商家券
                userMerchantCouponService.updateExpired();
                //自动取消已超时且无订单的司机排班
                lineShiftDriverService.autoCancelExpiredNoOrderShifts();
            } catch (Exception e) {
                e.printStackTrace();
            }
ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/set.html
@@ -677,8 +677,8 @@
    function checkPercent(percent) {
        var regex = /^\d+(\.\d{1,2})?$/;
        if (!regex.test(percent) || percent <= 0 || percent>100) {
            Feng.error("提成比例必须为正数且支持两位小数");
        if (!regex.test(percent) || percent < 0 || percent>100) {
            Feng.error("提成比例必须大于等于0且支持两位小数");
            return false;
        }
        return true;
ManagementYKDTravel/guns-admin/src/main/webapp/WEB-INF/view/system/tLine/set1.html
@@ -647,8 +647,8 @@
    function checkPercent(percent) {
        var regex = /^\d+(\.\d{1,2})?$/;
        if (!regex.test(percent) || percent <= 0 || percent>100) {
            Feng.error("提成比例必须为正数且支持两位小数");
        if (!regex.test(percent) || percent < 0 || percent>100) {
            Feng.error("提成比例必须大于等于0且支持两位小数");
            return false;
        }
        return true;