<?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.TReassignMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.stylefeng.guns.modular.system.model.TReassign">
|
<id column="id" property="id" />
|
<result column="orderType" property="orderType" />
|
<result column="orderId" property="orderId" />
|
<result column="originalDriverId" property="originalDriverId" />
|
<result column="originalCarId" property="originalCarId" />
|
<result column="insertTime" property="insertTime" />
|
<result column="nowDriverId" property="nowDriverId" />
|
<result column="nowCarId" property="nowCarId" />
|
<result column="money" property="money" />
|
<result column="payType" property="payType" />
|
<result column="payTime" property="payTime" />
|
<result column="payOrder" property="payOrder" />
|
<result column="state" property="state" />
|
<result column="reason" property="reason" />
|
<result column="remark" property="remark" />
|
<result column="reviewer" property="reviewer"/>
|
<result column="reviewerType" property="reviewerType"/>
|
<result column="completeTime" property="completeTime" />
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
id, orderType, orderId, originalDriverId, originalCarId, insertTime, nowDriverId, nowCarId, money, payType, payTime, payOrder, state, reason, remark, completeTime
|
</sql>
|
|
<!--根据条件查询专车改派订单列表-->
|
<select id="getPrivateCarReassignOrderList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
|
SELECT * FROM (SELECT rr.id,rr.insertTime,
|
dd1.name as originalDriverName,dd1.phone as originalDriverPhone,
|
CONCAT(dd1.name,'-',dd1.phone) as originalDriver,rr.reason,opc.orderNum,
|
CONCAT(uu1.nickName,'-',uu1.phone) as addOrderUser,opc.travelTime,opc.startAddress,opc.endAddress,
|
CONCAT(cb1.`name`,'-',cc1.carLicensePlate) as originalCar,rr.money,opc.state as orderState,
|
dd2.name as nowDriverName,dd2.phone as nowDriverPhone,
|
CONCAT(dd2.name,'-',dd2.phone) as nowDriver,CONCAT(cb2.`name`,'-',cc2.carLicensePlate) as nowCar,
|
opc.companyId,rr.state,rr.orderType FROM t_reassign as rr
|
LEFT JOIN t_driver as dd1 on dd1.id = rr.originalDriverId
|
LEFT JOIN t_order_private_car as opc on opc.id = rr.orderId
|
LEFT JOIN t_user as uu1 on uu1.id = opc.userId
|
LEFT JOIN t_car as cc1 on cc1.id= rr.originalCarId
|
LEFT JOIN t_car_brand as cb1 on cb1.id = cc1.carBrandId
|
LEFT JOIN t_driver as dd2 on dd2.id = rr.nowDriverId
|
LEFT JOIN t_car as cc2 on cc2.id= rr.nowCarId
|
LEFT JOIN t_car_brand as cb2 on cb2.id = cc2.carBrandId) as o
|
<where>
|
o.orderType = 1 and o.state != 6
|
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
|
AND (o.insertTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
|
</if>
|
<if test="originalDriverName != null and originalDriverName != ''">
|
and o.originalDriverName LIKE CONCAT('%',#{originalDriverName},'%')
|
</if>
|
<if test="originalDriverPhone != null and originalDriverPhone != ''">
|
and o.originalDriverPhone LIKE CONCAT('%',#{originalDriverPhone},'%')
|
</if>
|
<if test="orderNum != null and orderNum != ''">
|
and o.orderNum LIKE CONCAT('%',#{orderNum},'%')
|
</if>
|
<if test="nowDriverName != null and nowDriverName != ''">
|
and o.nowDriverName = #{nowDriverName}
|
</if>
|
<if test="nowDriverPhone != null and nowDriverPhone != ''">
|
and o.nowDriverPhone LIKE CONCAT('%',#{nowDriverPhone},'%')
|
</if>
|
<if test="orderState != null and orderState != ''">
|
and o.orderState = #{orderState}
|
</if>
|
<if test="state != null and state != ''">
|
and o.state = #{state}
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 2">
|
and (o.companyId = #{nowUserId} or FIND_IN_SET(o.companyId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId)))
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 3">
|
and o.companyId = #{nowUserId}
|
</if>
|
</where>
|
order by o.id desc
|
</select>
|
|
<!--根据条件查询可被选择的专车司机列表-->
|
<select id="getCanSelectPrivateCarDriverList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
|
SELECT dd.*,c1.name as companyName,c2.name as franchiseeName from t_driver AS dd
|
LEFT JOIN t_company as c1 on c1.id = dd.companyId
|
LEFT JOIN t_company as c2 on c2.id = dd.franchiseeId
|
LEFT JOIN (SELECT * from t_driver_service where type = 1) as ds on ds.driverId = dd.id
|
<where>
|
(dd.companyId = #{companyId} or dd.franchiseeId = #{companyId}) and dd.authState = 2 and dd.state = 2 and (ds.id is not null ) and (dd.carId is not null)
|
<if test="name != null and name != ''">
|
and dd.name LIKE CONCAT('%',#{name},'%')
|
</if>
|
<if test="phone != null and phone != ''">
|
and dd.phone LIKE CONCAT('%',#{phone},'%')
|
</if>
|
</where>
|
order by dd.id desc
|
</select>
|
|
|
<!--根据条件查询可被选择的专车司机列表-->
|
<select id="getCanSelectSmallDriverList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
|
SELECT dd.*,c1.name as companyName,c2.name as franchiseeName from t_driver AS dd
|
LEFT JOIN t_company as c1 on c1.id = dd.companyId
|
LEFT JOIN t_company as c2 on c2.id = dd.franchiseeId
|
LEFT JOIN (SELECT * from t_driver_service where type = #{type}) as ds on ds.driverId = dd.id
|
<where>
|
(dd.companyId = #{companyId} or dd.franchiseeId = #{companyId}) and dd.authState = 2 and dd.state = 2 and (ds.id is not null ) and (dd.carId is not null)
|
<if test="name != null and name != ''">
|
and dd.name LIKE CONCAT('%',#{name},'%')
|
</if>
|
<if test="phone != null and phone != ''">
|
and dd.phone LIKE CONCAT('%',#{phone},'%')
|
</if>
|
</where>
|
order by dd.id desc
|
</select>
|
|
|
<!--根据条件查询跨城改派订单列表-->
|
<select id="getCrossReassignOrderList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
|
SELECT * FROM (SELECT rr.id,rr.insertTime,
|
dd1.name as originalDriverName,dd1.phone as originalDriverPhone,
|
CONCAT(dd1.name,'-',dd1.phone) as originalDriver,rr.reason,opc.orderNum,
|
CONCAT(uu1.nickName,'-',uu1.phone) as addOrderUser,opc.travelTime,opc.startAddress,opc.endAddress,
|
CONCAT(cb1.`name`,'-',cc1.carLicensePlate) as originalCar,rr.money,opc.state as orderState,
|
dd2.name as nowDriverName,dd2.phone as nowDriverPhone,
|
CONCAT(dd2.name,'-',dd2.phone) as nowDriver,CONCAT(cb2.`name`,'-',cc2.carLicensePlate) as nowCar,
|
opc.companyId,rr.state,rr.orderType FROM t_reassign as rr
|
LEFT JOIN t_driver as dd1 on dd1.id = rr.originalDriverId
|
LEFT JOIN t_order_cross_city as opc on opc.id = rr.orderId
|
LEFT JOIN t_user as uu1 on uu1.id = opc.userId
|
LEFT JOIN t_car as cc1 on cc1.id= rr.originalCarId
|
LEFT JOIN t_car_brand as cb1 on cb1.id = cc1.carBrandId
|
LEFT JOIN t_driver as dd2 on dd2.id = rr.nowDriverId
|
LEFT JOIN t_car as cc2 on cc2.id= rr.nowCarId
|
LEFT JOIN t_car_brand as cb2 on cb2.id = cc2.carBrandId) as o
|
<where>
|
o.orderType = 3 and o.state != 6
|
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
|
AND (o.insertTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
|
</if>
|
<if test="originalDriverName != null and originalDriverName != ''">
|
and o.originalDriverName LIKE CONCAT('%',#{originalDriverName},'%')
|
</if>
|
<if test="originalDriverPhone != null and originalDriverPhone != ''">
|
and o.originalDriverPhone LIKE CONCAT('%',#{originalDriverPhone},'%')
|
</if>
|
<if test="orderNum != null and orderNum != ''">
|
and o.orderNum LIKE CONCAT('%',#{orderNum},'%')
|
</if>
|
<if test="nowDriverName != null and nowDriverName != ''">
|
and o.nowDriverName = #{nowDriverName}
|
</if>
|
<if test="nowDriverPhone != null and nowDriverPhone != ''">
|
and o.nowDriverPhone LIKE CONCAT('%',#{nowDriverPhone},'%')
|
</if>
|
<if test="orderState != null and orderState != ''">
|
and o.orderState = #{orderState}
|
</if>
|
<if test="state != null and state != ''">
|
and o.state = #{state}
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 2">
|
and (o.companyId = #{nowUserId} or FIND_IN_SET(o.companyId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId)))
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 3">
|
and o.companyId = #{nowUserId}
|
</if>
|
</where>
|
order by o.id desc
|
</select>
|
|
|
|
<!--根据条件查询跨城改派订单列表-->
|
<select id="getSmallPieceLogisticsList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
|
SELECT * FROM (SELECT rr.id,rr.insertTime,
|
dd1.name as originalDriverName,dd1.phone as originalDriverPhone,
|
CONCAT(dd1.name,'-',dd1.phone) as originalDriver,rr.reason,opc.orderNum,
|
CONCAT(uu1.nickName,'-',uu1.phone) as addOrderUser,opc.travelTime,opc.startAddress,opc.endAddress,
|
CONCAT(cb1.`name`,'-',cc1.carLicensePlate) as originalCar,rr.money,opc.state as orderState,
|
dd2.name as nowDriverName,dd2.phone as nowDriverPhone,
|
CONCAT(dd2.name,'-',dd2.phone) as nowDriver,CONCAT(cb2.`name`,'-',cc2.carLicensePlate) as nowCar,
|
opc.companyId,rr.state,rr.orderType FROM t_reassign as rr
|
LEFT JOIN t_driver as dd1 on dd1.id = rr.originalDriverId
|
LEFT JOIN t_order_logistics as opc on opc.id = rr.orderId
|
LEFT JOIN t_user as uu1 on uu1.id = opc.userId
|
LEFT JOIN t_car as cc1 on cc1.id= rr.originalCarId
|
LEFT JOIN t_car_brand as cb1 on cb1.id = cc1.carBrandId
|
LEFT JOIN t_driver as dd2 on dd2.id = rr.nowDriverId
|
LEFT JOIN t_car as cc2 on cc2.id= rr.nowCarId
|
LEFT JOIN t_car_brand as cb2 on cb2.id = cc2.carBrandId) as o
|
<where>
|
o.orderType in (4, 5) and o.state != 6
|
<if test="beginTime != null and beginTime != '' and endTime != null and endTime != ''">
|
AND (o.insertTime between CONCAT(#{beginTime},' 00:00:00') and CONCAT(#{endTime},' 23:59:59'))
|
</if>
|
<if test="originalDriverName != null and originalDriverName != ''">
|
and o.originalDriverName LIKE CONCAT('%',#{originalDriverName},'%')
|
</if>
|
<if test="originalDriverPhone != null and originalDriverPhone != ''">
|
and o.originalDriverPhone LIKE CONCAT('%',#{originalDriverPhone},'%')
|
</if>
|
<if test="orderNum != null and orderNum != ''">
|
and o.orderNum LIKE CONCAT('%',#{orderNum},'%')
|
</if>
|
<if test="nowDriverName != null and nowDriverName != ''">
|
and o.nowDriverName = #{nowDriverName}
|
</if>
|
<if test="nowDriverPhone != null and nowDriverPhone != ''">
|
and o.nowDriverPhone LIKE CONCAT('%',#{nowDriverPhone},'%')
|
</if>
|
<if test="orderState != null and orderState != ''">
|
and o.orderState = #{orderState}
|
</if>
|
<if test="state != null and state != ''">
|
and o.state = #{state}
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 2">
|
and (o.companyId = #{nowUserId} or FIND_IN_SET(o.companyId,(SELECT GROUP_CONCAT(id) as ids FROM t_company where superiorId = #{nowUserId} GROUP BY superiorId)))
|
</if>
|
<if test="roleType != null and roleType != '' and roleType == 3">
|
and o.companyId = #{nowUserId}
|
</if>
|
</where>
|
order by o.id desc
|
</select>
|
|
|
<!--根据条件查询可被选择的跨城司机列表-->
|
<select id="getCanSelectCrossDriverList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
|
select
|
a.*,
|
h.name as companyName,
|
i.name as franchiseeName
|
from t_driver a
|
left join t_driver_service b on (a.id = b.driverId)
|
left join t_driver_orders c on (a.id = c.driverId)
|
left join t_car d on (a.carId = d.id)
|
left join t_car_service e on (d.id = e.carId)
|
left join t_driver_line f on (a.id = f.driverId)
|
left join t_line_shift g on (f.lineId = g.lineId)
|
left join t_company as h on (h.id = a.companyId)
|
left join t_company as i on (i.id = a.franchiseeId)
|
where a.authState = 2 and a.state != 1 and a.flag != 3 and if(a.franchiseeId is null or a.franchiseeId = 0, a.companyId = #{companyId}, a.franchiseeId = #{companyId})
|
and a.id in (select driverId from t_driver_work where state = 1 and type like '%3%')
|
and b.type = 3 and c.type = 3 and e.type = 3 and e.serverCarModelId = #{serverCarModelId} and f.lineId = #{lineId} and g.id = #{lineShiftId}
|
and a.id in (select driverId from t_line_shift_driver where lineShiftId = #{lineShiftId} and DATE_FORMAT(`day`, '%Y-%m-%d') = DATE_FORMAT(#{time}, '%Y-%m-%d') and laveSeat >= #{num})
|
and a.id != #{driverId}
|
<if test="name != null and name != ''">
|
and a.name LIKE CONCAT('%',#{name},'%')
|
</if>
|
<if test="phone != null and phone != ''">
|
and a.phone LIKE CONCAT('%',#{phone},'%')
|
</if>
|
order by a.id desc
|
</select>
|
|
</mapper>
|