| | |
| | | <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" /> |
| | |
| | | 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, |
| | |
| | | <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)"> |
| | | <if test="(creatorId != null and creatorId != 0) or (assigneeId != null and assigneeId != 0) or (deptId != null and deptId != 0) or (deptIds != null and deptIds.size() > 0)"> |
| | | and ( |
| | | <if test="deptId != null and deptId != 0">t.dept_id = #{deptId}</if> |
| | | <if test="creatorId != null and creatorId != 0"> |
| | | <!-- 查询指定分公司及其所有子部门的任务 --> |
| | | <if test="deptId != null and deptId != 0"> |
| | | (t.dept_id = #{deptId} OR t.dept_id IN ( |
| | | SELECT dept_id FROM sys_dept |
| | | WHERE del_flag = '0' AND find_in_set(#{deptId}, ancestors) |
| | | )) |
| | | </if> |
| | | <!-- 查询多个分公司及其所有子部门的任务 --> |
| | | <if test="deptIds != null and deptIds.size() > 0"> |
| | | <if test="deptId != null and deptId != 0"> or </if> |
| | | ( |
| | | <foreach collection="deptIds" item="branchDeptId" separator=" OR "> |
| | | (t.dept_id = #{branchDeptId} OR t.dept_id IN ( |
| | | SELECT dept_id FROM sys_dept |
| | | WHERE del_flag = '0' AND find_in_set(#{branchDeptId}, ancestors) |
| | | )) |
| | | </foreach> |
| | | ) |
| | | </if> |
| | | <if test="creatorId != null and creatorId != 0"> |
| | | <if test="(deptId != null and deptId != 0) or (deptIds != null and deptIds.size() > 0)"> or </if> |
| | | t.creator_id = #{creatorId} |
| | | </if> |
| | | <if test="assigneeId != null and assigneeId != 0"> |
| | | <if test="(deptId != null and deptId != 0) or (creatorId != null and creatorId != 0)"> or </if> |
| | | t.assignee_id = #{assigneeId} |
| | | <if test="(deptId != null and deptId != 0) or (deptIds != null and deptIds.size() > 0) or (creatorId != null and creatorId != 0)"> or </if> |
| | | t.task_id IN ( |
| | | SELECT task_id FROM sys_task_assignee WHERE user_id = #{assigneeId} |
| | | ) |
| | | </if> |
| | | ) |
| | | </if> |
| | |
| | | |
| | | <select id="selectMyTasks" parameterType="Long" resultMap="SysTaskResult"> |
| | | <include refid="selectSysTaskVo"/> |
| | | where t.del_flag = '0' and (t.creator_id = #{userId} or t.assignee_id = #{userId}) |
| | | where t.del_flag = '0' and ( |
| | | t.creator_id = #{userId} |
| | | OR t.task_id IN ( |
| | | SELECT task_id FROM sys_task_assignee WHERE user_id = #{userId} |
| | | ) |
| | | ) |
| | | order by |
| | | CASE t.task_status |
| | | WHEN 'PENDING' THEN 1 |
| | |
| | | END, |
| | | t.update_time desc, |
| | | t.create_time desc |
| | | </select> |
| | | |
| | | <select id="selectTaskByVehicleIdAndDate" resultMap="SysTaskResult"> |
| | | select tv.task_id, t.actual_start_time, |
| | | IFNULL(t.actual_end_time, NOW()) as t.actual_end_time |
| | | from sys_task_vehicle tv |
| | | inner join sys_task t on tv.task_id = t.task_id |
| | | where tv.vehicle_id = #{vehicleId} |
| | | and t.del_flag = '0' |
| | | and ( |
| | | (t.actual_end_time is not null and t.actual_start_time > #{startTime} and t.actual_end_time < #{endTime} ) |
| | | or (t.actual_end_time is null and t.actual_start_time > ${endTime} ) |
| | | ) |
| | | order by t.actual_start_time |
| | | </select> |
| | | |
| | | <select id="selectTaskStatistics" resultType="TaskStatisticsVO"> |
| | |
| | | <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> |