yanghb
2023-04-21 0481353111afb43a2322e18530dde26f1d841ead
ManagementTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TReassignMapper.xml
@@ -29,7 +29,7 @@
        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,
@@ -83,6 +83,42 @@
        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>
    <!--根据条件查询跨城改派订单列表-->
@@ -194,101 +230,7 @@
        </where>
        order by o.id desc
    </select>
    <select id="getTaxiReassignOrderList" resultType="map">
        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_taxi 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 = 2 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
        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_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 '%1%')
        and b.type = 1 and c.type = 1 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>
    <!--根据条件查询可被选择的快车司机列表-->
    <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="getCanSelectCrossDriverList" resultType="map" parameterType="com.baomidou.mybatisplus.plugins.Page">
@@ -319,491 +261,4 @@
        order by a.id desc
    </select>
    <select id="getCanSelectTaxiCarDriverList" resultType="map">
        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_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 '%2%')
        and b.type = 2 and c.type = 2 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>
    <!--根据条件查询快车改派订单列表-->
    <select id="getPrivateCarReassignOrderListEx" resultType="map">
        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="getCrossReassignOrderListEx" resultType="map">
        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="getSmallPieceLogisticsListEx" resultType="map">
        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="getTaxiReassignOrderListEx" resultType="map">
        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_taxi 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 = 2 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="getPrivateCarReassignOrderListMoney" resultType="java.lang.Double">
        SELECT sum(money) 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="getCrossReassignOrderListMoney" resultType="java.lang.Double">
        SELECT sum(money) 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="getSmallPieceLogisticsListMoney" resultType="java.lang.Double">
        SELECT sum(money) 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="getTaxiReassignOrderListMoney" resultType="java.lang.Double">
        SELECT sum(money) 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_taxi 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 = 2 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>
</mapper>