<?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.xiaopeng.maintenance.mapper.XpTaskMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="BaseResultMap" type="com.xiaopeng.api.model.maintenance.XpTask">
|
<id column="id" property="id"/>
|
<result column="task_code" property="taskCode"/>
|
<result column="task_category" property="taskCategory"/>
|
<result column="task_type_id" property="taskTypeId"/>
|
<result column="error_type_id" property="errorTypeId"/>
|
<result column="task_urgency_level" property="taskUrgencyLevel"/>
|
<result column="task_description" property="taskDescription"/>
|
<result column="vehicle_location" property="vehicleLocation"/>
|
<result column="vehicle_id" property="vehicleId"/>
|
<result column="vehicle_lon" property="vehicleLon"/>
|
<result column="vehicle_lat" property="vehicleLat"/>
|
<result column="handle_user_id" property="handleUserId"/>
|
<result column="handle_time" property="handleTime"/>
|
<result column="assignee_user_id" property="assigneeUserId"/>
|
<result column="assignee_time" property="assigneeTime"/>
|
<result column="report_user_id" property="reportUserId"/>
|
<result column="report_time" property="reportTime"/>
|
<result column="end_time" property="endTime"/>
|
<result column="expired_notice_sent" property="expiredNoticeSent"/>
|
<result column="status" property="status"/>
|
<result column="is_deleted" property="deleted"/>
|
<result column="create_time" property="createTime"/>
|
<result column="update_time" property="updateTime"/>
|
<result column="create_by" property="createBy"/>
|
<result column="update_by" property="updateBy"/>
|
</resultMap>
|
|
<!-- 通用查询结果列 -->
|
<sql id="Base_Column_List">
|
id, task_code, task_category, error_type_id ,end_time, expired_notice_sent, task_type_id, task_image, task_urgency_level, task_description, vehicle_location, vehicle_id, vehicle_lon, vehicle_lat, handle_user_id, handle_time, assignee_user_id, assignee_time, report_user_id, report_time, status, is_deleted, create_time, update_time, create_by, update_by
|
</sql>
|
<select id="workbench" resultType="com.xiaopeng.maintenance.model.vo.WorkBenchVO">
|
select t1.*,
|
t2.vehicle_vin as vehicleVin,
|
t2.plate_number as plateNumber,
|
t2.vehicle_color as vehicleColor,
|
t2.vehicle_pictures as vehiclePictures
|
from xp_task t1
|
left join xp_vehicle t2 on t1.vehicle_id = t2.id
|
where t1.handle_user_id = #{query.operationId}
|
and t1.status = 1
|
and t1.is_deleted = 0
|
order by t1.assignee_time asc
|
</select>
|
<select id="pageList" resultType="com.xiaopeng.maintenance.model.vo.TaskPageListVO">
|
select t1.id,t1.task_code as taskCode,t1.end_time as endTime,t1.task_category as taskCategory,t1.task_type_id as
|
taskTypeId,t1.task_urgency_level as taskUrgencyLevel,t1.task_description as taskDescription,t1.vehicle_location
|
as vehicleLocation,t1.vehicle_id as vehicleId,t1.vehicle_lon as vehicleLon,t1.vehicle_lat as
|
vehicleLat,t1.handle_user_id as handleUserId,t1.handle_time as handleTime,t1.assignee_user_id as assigneeUserId
|
,t1.assignee_time as assigneeTime,t1.task_image as taskImage,t1.report_user_id as reportUserId,t1.report_time as
|
reportTime,t1.status as status,t1.is_deleted as isDeleted,t1.create_time as createTime,t1.update_time as
|
updateTime,t1.create_by as createBy,t1.update_by as updateBy,t2.plate_number as plateNumber
|
from xp_task t1
|
left join xp_vehicle t2 on t1.vehicle_id = t2.id
|
where t1.is_deleted = 0 and ((t1.task_category = 2 and t1.status != 2) OR t1.task_category = 1)
|
<if test="query.taskCategory != null">
|
and t1.task_category = #{query.taskCategory}
|
</if>
|
<if test="query.userId != null">
|
and FIND_IN_SET(#{query.userId}, t1.handle_user_id)
|
</if>
|
|
<if test="query.taskUrgencyLevel != null">
|
and t1.task_urgency_level = #{query.taskUrgencyLevel}
|
</if>
|
<if test="query.status != null">
|
and t1.status = #{query.status}
|
</if>
|
<if test="query.plateNumber != null and query.plateNumber != ''">
|
and t2.plate_number like concat('%',#{query.plateNumber},'%')
|
</if>
|
<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
|
and t1.create_time between #{query.startTime} and #{query.endTime}
|
</if>
|
|
|
<if test="query.sortType != null">
|
<if test="query.sortType == 1">
|
<if test="query.sortRule == 1">
|
order by t1.task_urgency_level asc, t1.create_time desc
|
</if>
|
<if test="query.sortRule == 2">
|
order by t1.task_urgency_level desc, t1.create_time desc
|
</if>
|
</if>
|
<if test="query.sortType == 2">
|
<if test="query.sortRule == 1">
|
order by t2.plate_number, t1.create_time desc
|
</if>
|
<if test="query.sortRule == 2">
|
order by t2.plate_number desc, t1.create_time desc
|
</if>
|
</if>
|
<if test="query.sortType == 3">
|
order by t1.create_time
|
<if test="query.sortRule == 2">
|
desc
|
</if>
|
</if>
|
</if>
|
|
|
</select>
|
<select id="pageListManagement" resultType="com.xiaopeng.maintenance.model.vo.TaskManagementPageListVO">
|
select t.id,t.task_category as taskCategory,t.task_type_id as taskTypeId,t.task_urgency_level as
|
taskUrgencyLevel,t.task_description as taskDescription,t.handle_user_id as handleUserId,t.create_time as
|
createTime,t.status as status,
|
v.plate_number as plateNumber
|
from xp_task t
|
left join xp_vehicle v on t.vehicle_id = v.id
|
where t.is_deleted = 0
|
<if test="query.taskCategory != null">
|
and t.task_category = #{query.taskCategory}
|
</if>
|
<if test="query.taskUrgencyLevel != null">
|
and t.task_urgency_level = #{query.taskUrgencyLevel}
|
</if>
|
<if test="query.status != null">
|
and t.status = #{query.status}
|
</if>
|
<if test="query.plateNumber != null and query.plateNumber != ''">
|
and v.plate_number like concat('%',#{query.plateNumber},'%')
|
</if>
|
<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
|
and t.create_time between #{query.startTime} and #{query.endTime}
|
</if>
|
<if test="query.taskGeneralId != null">
|
and t.task_type_id = #{query.taskGeneralId} and t.task_category = 1
|
</if>
|
<if test="query.taskErrorId != null">
|
and find_in_set(#{query.taskErrorId}, t.task_type_id)
|
and t.task_category = 2
|
</if>
|
order by t.status,t.task_urgency_level asc, t.create_time desc
|
</select>
|
<select id="exportList" resultType="com.xiaopeng.maintenance.model.vo.TaskManagementPageListVO">
|
select t.id,t.task_category as taskCategory,t.task_type_id as taskTypeId,t.task_urgency_level as
|
taskUrgencyLevel,t.task_description as taskDescription,t.handle_user_id as handleUserId,t.create_time as
|
createTime,t.status as status,
|
v.plate_number as plateNumber
|
from xp_task t
|
left join xp_vehicle v on t.vehicle_id = v.id
|
where t.is_deleted = 0
|
<if test="query.taskCategory != null">
|
and t.task_category = #{query.taskCategory}
|
</if>
|
<if test="query.taskUrgencyLevel != null">
|
and t.task_urgency_level = #{query.taskUrgencyLevel}
|
</if>
|
<if test="query.status != null">
|
and t.status = #{query.status}
|
</if>
|
<if test="query.plateNumber != null and query.plateNumber != ''">
|
and v.plate_number like concat('%',#{query.plateNumber},'%')
|
</if>
|
<if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
|
and t.create_time between #{query.startTime} and #{query.endTime}
|
</if>
|
<if test="query.taskGeneralId != null">
|
and t.task_type_id = #{query.taskGeneralId}
|
</if>
|
<if test="query.taskErrorId != null">
|
and find_in_set(#{query.taskErrorId}, t.task_type_id)
|
and t.task_category = 2
|
</if>
|
order by t.status,t.task_urgency_level asc, t.create_time desc
|
</select>
|
|
<select id="queryInfoByVehicleId"
|
resultType="com.xiaopeng.api.model.maintenance.XpTask">
|
SELECT <include refid="Base_Column_List"></include>
|
FROM xp_task
|
WHERE vehicle_id = #{vehicleId}
|
AND task_category = 1
|
AND task_type_id = 6
|
AND status != 3
|
ORDER BY handle_time DESC limit 1
|
</select>
|
|
<select id="reassignTaskPageList" resultType="com.xiaopeng.api.vo.XpTaskVO">
|
SELECT
|
t.id,
|
t.task_code AS taskCode,
|
t.task_category AS taskCategory,
|
t.task_type_id AS taskTypeId,
|
t.error_type_id AS errorTypeId,
|
t.task_urgency_level AS taskUrgencyLevel,
|
t.task_description AS taskDescription,
|
t.vehicle_id AS vehicleId,
|
t.handle_user_id AS handleUserId,
|
t.assignee_user_id AS assigneeUserId,
|
t.status,
|
t.excluded,
|
t.reassignment_status AS reassignmentStatus,
|
t.create_time AS createTime,
|
v.plate_number AS plateNumber,
|
et.error_name AS errorName
|
FROM xp_task t
|
LEFT JOIN xp_vehicle v ON t.vehicle_id = v.id AND v.is_deleted = 0
|
LEFT JOIN xp_error_type et ON t.error_type_id = et.id
|
WHERE t.is_deleted = 0
|
AND t.status = 4
|
<if test="query.taskCategory != null">
|
AND t.task_category = #{query.taskCategory}
|
</if>
|
<if test="query.errorTypeId != null">
|
AND t.error_type_id = #{query.errorTypeId}
|
</if>
|
<if test="query.taskTypeId != null">
|
AND t.task_type_id = #{query.taskTypeId}
|
</if>
|
<if test="query.taskUrgencyLevel != null">
|
AND t.task_urgency_level = #{query.taskUrgencyLevel}
|
</if>
|
<if test="query.plateNumber != null and query.plateNumber != ''">
|
AND v.plate_number LIKE CONCAT('%', #{query.plateNumber}, '%')
|
</if>
|
<if test="query.reassignmentStatus != null and query.reassignmentStatus != ''">
|
AND t.reassignment_status = #{query.reassignmentStatus}
|
</if>
|
ORDER BY t.create_time DESC,t.task_urgency_level ASC
|
</select>
|
|
</mapper>
|