| | |
| | | <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 |
| | |
| | | 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 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_start_time <= #{endTime} and (t.actual_end_time is null or t.actual_end_time >= #{startTime})) |
| | | ) |
| | | order by t.actual_start_time |
| | | </select> |
| | | |
| | | <select id="selectTaskStatistics" resultType="TaskStatisticsVO"> |
| | | select |
| | | count(*) as totalTasks, |