From 2506c3f8e3ef1ace4a258a8c5f93ddd47a51bbd2 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期五, 19 九月 2025 16:06:14 +0800 Subject: [PATCH] 修改后台司机授权逻辑判断 --- ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCarController.java | 18 ++++ ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverWorkServiceImpl.java | 11 ++ ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverWork.java | 106 ++++++++++++++++++++++++++ ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverWorkService.java | 7 + ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tCar/tCar_info.js | 10 + ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverWorkMapper.xml | 51 ++++++++++++ ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverWorkMapper.java | 29 +++++++ 7 files changed, 229 insertions(+), 3 deletions(-) diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCarController.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCarController.java index ff91bee..6bbe451 100644 --- a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCarController.java +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/general/TCarController.java @@ -84,6 +84,12 @@ private CarInsuranceMapper carInsuranceMapper; @Autowired private ShiroExtUtil shiroExtUtil; + + @Autowired + private ITDriverService driverService; + + @Autowired + private IDriverWorkService driverWorkService; @Value("${pushMinistryOfTransport}") @@ -697,6 +703,8 @@ }).start(); return SUCCESS_TIP; } + + @RequestMapping(value = "/update1") @ResponseBody public Object update1(TCar tCar,String bindDriverId) { @@ -704,6 +712,16 @@ if(bindDriverId==null){ bindDriverId=""; } + List<TDriver> tDrivers = driverService.selectList(new EntityWrapper<TDriver>().eq("carId", tCar.getId()).ne("flag", 3)); + for (TDriver tDriver : tDrivers) { + DriverWork driverWork = driverWorkService.selectOne(new EntityWrapper<DriverWork>().eq("driverId", tDriver.getId()).eq("state", 1)); + if(null != driverWork){ + return new ErrorTip(500, tDriver.getName() + "司机正在上班中,不能取消授权"); + }else{ + tDriver.setCarId(null); + driverService.updateAllColumnById(tDriver); + } + } obj.setBindDriverId(bindDriverId); tCarService.updateById(obj); return SUCCESS_TIP; diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverWorkMapper.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverWorkMapper.java new file mode 100644 index 0000000..0e06955 --- /dev/null +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/DriverWorkMapper.java @@ -0,0 +1,29 @@ +package com.stylefeng.guns.modular.system.dao; + +import com.baomidou.mybatisplus.mapper.BaseMapper; +import com.stylefeng.guns.modular.system.model.DriverWork; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +public interface DriverWorkMapper extends BaseMapper<DriverWork> { + + + /** + * 获取司机最新上班数据(还未下班的) + * @param driverId + * @return + * @throws Exception + */ + DriverWork queryNewWork(@Param("driverId") Integer driverId, @Param("type") Integer type, + @Param("state") Integer state); + + + /** + * 获取在线时间大于time的数据,且当前为在线状态 + * @param type + * @param time 小时 + * @return + */ + List<DriverWork> query(@Param("type") Integer type, @Param("time") Integer time); +} diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverWorkMapper.xml b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverWorkMapper.xml new file mode 100644 index 0000000..b7bb1a5 --- /dev/null +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/DriverWorkMapper.xml @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.stylefeng.guns.modular.system.dao.DriverWorkMapper"> + + <!-- 通用查询映射结果 --> + <resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.DriverWork"> + <id column="id" property="id" /> + <result column="driverId" property="driverId" /> + <result column="startTime" property="startTime" /> + <result column="endTime" property="endTime" /> + <result column="type" property="type" /> + <result column="state" property="state" /> + </resultMap> + + + <select id="queryNewWork" resultType="DriverWork"> + select + id as id, + driverId as driverId, + startTime as startTime, + endTime as endTime, + `type` as `type`, + state as state + from t_driver_work where 1 = 1 + <if test="null != driverId"> + and driverId = #{driverId} + </if> + <if test="null != type"> + and type like CONCAT('%', #{type}, '%') + </if> + <if test="null != state"> + and state = #{state} + </if> + order by startTime desc limit 0,1 + </select> + + + + <select id="query" resultType="DriverWork"> + select + id as id, + driverId as driverId, + startTime as startTime, + endTime as endTime, + `type` as `type`, + state as state + from t_driver_work where `type` like CONCAT('%', #{type}, '%') + and (unix_timestamp(if(endTime is null , now(), endTime))) - + unix_timestamp(IF((DATE_FORMAT(now(), '%Y-%m-%d') != DATE_FORMAT(startTime, '%Y-%m-%d')), STR_TO_DATE(CONCAT(DATE_FORMAT(now(), '%Y-%m-%d'),' ','00:00:00'), '%Y-%m-%d %H:%i:%s'), startTime)) > (#{time} * 60 * 60) + </select> +</mapper> \ No newline at end of file diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverWork.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverWork.java new file mode 100644 index 0000000..48452cc --- /dev/null +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/DriverWork.java @@ -0,0 +1,106 @@ +package com.stylefeng.guns.modular.system.model; + +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableName; +import com.baomidou.mybatisplus.enums.IdType; + +import java.util.Date; + + +/** + * 司机上下班记录 + */ +@TableName("t_driver_work") +public class DriverWork { + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + @TableField("id") + private Integer id; + /** + * 司机id + */ + @TableField("driverId") + private Integer driverId; + /** + * 上班时间 + */ + @TableField("startTime") + private Date startTime; + /** + * 下班时间 + */ + @TableField("endTime") + private Date endTime; + /** + * 业务类型(1=专车,2=出租车,3=城际,4=小件物流-同城,5=小件物流-跨城,6=包车) + */ + @TableField("type") + private String type; + /** + * 上下班状态(1=上班,2=下班) + */ + @TableField("state") + private Integer state; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getDriverId() { + return driverId; + } + + public void setDriverId(Integer driverId) { + this.driverId = driverId; + } + + public Date getStartTime() { + return startTime; + } + + public void setStartTime(Date startTime) { + this.startTime = startTime; + } + + public Date getEndTime() { + return endTime; + } + + public void setEndTime(Date endTime) { + this.endTime = endTime; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Integer getState() { + return state; + } + + public void setState(Integer state) { + this.state = state; + } + + @Override + public String toString() { + return "DriverWork{" + + "id=" + id + + ", driverId=" + driverId + + ", startTime=" + startTime + + ", endTime=" + endTime + + ", type=" + type + + '}'; + } +} diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverWorkService.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverWorkService.java new file mode 100644 index 0000000..eb29af0 --- /dev/null +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverWorkService.java @@ -0,0 +1,7 @@ +package com.stylefeng.guns.modular.system.service; + +import com.baomidou.mybatisplus.service.IService; +import com.stylefeng.guns.modular.system.model.DriverWork; + +public interface IDriverWorkService extends IService<DriverWork> { +} diff --git a/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverWorkServiceImpl.java b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverWorkServiceImpl.java new file mode 100644 index 0000000..546f86a --- /dev/null +++ b/ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverWorkServiceImpl.java @@ -0,0 +1,11 @@ +package com.stylefeng.guns.modular.system.service.impl; + +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import com.stylefeng.guns.modular.system.dao.DriverWorkMapper; +import com.stylefeng.guns.modular.system.model.DriverWork; +import com.stylefeng.guns.modular.system.service.IDriverWorkService; +import org.springframework.stereotype.Service; + +@Service +public class DriverWorkServiceImpl extends ServiceImpl<DriverWorkMapper, DriverWork> implements IDriverWorkService { +} diff --git a/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tCar/tCar_info.js b/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tCar/tCar_info.js index 74db578..5cdbd33 100644 --- a/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tCar/tCar_info.js +++ b/ManagementQYTTravel/guns-admin/src/main/webapp/static/modular/system/tCar/tCar_info.js @@ -490,9 +490,13 @@ } //提交信息 var ajax = new $ax(Feng.ctxPath + "/tCar/update1", function(data){ - Feng.success("修改成功!"); - window.parent.TCar.table.refresh(); - TCarInfoDlg.close(); + if(200 == data.code){ + Feng.success("修改成功!"); + window.parent.TCar.table.refresh(); + TCarInfoDlg.close(); + }else{ + Feng.error(data.message); + } },function(data){ Feng.error("修改失败!" + data.responseJSON.message + "!"); }); -- Gitblit v1.7.1