wlzboy
2025-12-03 c6e38b6c66de5f5a8df5b8b2ab03a82c3b605db8
ruoyi-system/src/main/resources/mapper/system/SysTaskMapper.xml
@@ -34,6 +34,7 @@
        <result property="creatorName"      column="creator_name"      />
        <result property="assigneeName"     column="assignee_name"     />
        <result property="deptName"         column="dept_name"         />
        <result property="vehicleNo"        column="vehicle_no"        />
        <collection property="assignedVehicles" ofType="SysTaskVehicle">
            <result property="id"            column="tv_id"             />
            <result property="taskId"        column="tv_task_id"        />
@@ -57,6 +58,14 @@
               t.actual_start_time, t.actual_end_time, t.creator_id, t.assignee_id, t.dept_id,
               t.create_time, t.update_time, t.create_by, t.update_by, t.remark, t.del_flag, t.legacy_synced,
               u1.nick_name as creator_name, u2.nick_name as assignee_name, d.dept_name,
               (
                   select v2.vehicle_no
                   from sys_task_vehicle tv2
                   left join tb_vehicle_info v2 on tv2.vehicle_id = v2.vehicle_id
                   where tv2.task_id = t.task_id
                   order by tv2.assign_time asc
                   limit 1
               ) as vehicle_no,
               tv.id as tv_id, tv.task_id as tv_task_id, tv.vehicle_id as tv_vehicle_id,
               v.vehicle_no as tv_vehicle_no, v.vehicle_type as tv_vehicle_type,
               v.vehicle_brand as tv_vehicle_brand, v.vehicle_model as tv_vehicle_model,
@@ -77,6 +86,7 @@
            <if test="taskCode != null  and taskCode != ''"> and t.task_code like concat('%', #{taskCode}, '%')</if>
            <if test="taskType != null  and taskType != ''"> and t.task_type = #{taskType}</if>
            <if test="taskStatus != null  and taskStatus != ''"> and t.task_status = #{taskStatus}</if>
            <if test="vehicleNo != null  and vehicleNo != ''"> and v.vehicle_no like concat('%', #{vehicleNo}, '%')</if>
            <!-- 综合查询:当前用户所在机构 OR 当前用户创建 OR 分配给当前用户 -->
            <if test="(creatorId != null and creatorId != 0) or (assigneeId != null and assigneeId != 0) or (deptId != null and deptId != 0)">
                and (
@@ -241,6 +251,7 @@
            <if test="actualEndTime != null">actual_end_time = #{actualEndTime},</if>
            <if test="creatorId != null">creator_id = #{creatorId},</if>
            <if test="assigneeId != null">assignee_id = #{assigneeId},</if>
            <if test="deptId != null">dept_id = #{deptId},</if>
            <if test="updateTime != null">update_time = #{updateTime},</if>
            <if test="updateBy != null">update_by = #{updateBy},</if>
@@ -268,6 +279,19 @@
        where task_id = #{taskId}
    </update>
    <select id="selectActiveTasksByVehicleId" parameterType="Long" resultMap="SysTaskResult">
        select t.task_id, t.task_code, t.task_type, t.task_status, t.task_description,
               t.departure_address, t.destination_address,
               t.planned_start_time, t.actual_start_time,
               t.create_time, t.update_time
        from sys_task t
        inner join sys_task_vehicle tv on t.task_id = tv.task_id
        where tv.vehicle_id = #{vehicleId}
          and t.del_flag = '0'
          and t.task_status not in ('PENDING', 'COMPLETED', 'CANCELLED')
        order by t.create_time desc
    </select>
    <delete id="deleteSysTaskByTaskId" parameterType="Long">
        update sys_task set del_flag = '2', update_time = now() where task_id = #{taskId}
    </delete>