无关风月
2025-06-26 69b10ab2a3e171e6f30091ee54d8957cf4987809
ruoyi-system/src/main/resources/mapper/system/TTaskMapper.xml
@@ -4,31 +4,32 @@
    <!-- 通用查询映射结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.system.model.TTask">
        <id column="id" property="id" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="create_by" property="createBy" />
        <result column="update_by" property="updateBy" />
        <result column="disabled" property="disabled" />
        <result column="project_id" property="projectId" />
        <result column="status" property="status" />
        <result column="cleaner_id" property="cleanerId" />
        <result column="location_id" property="locationId" />
        <result column="patrol_inspector" property="patrolInspector" />
        <result column="implement_time" property="implementTime" />
        <result column="task_type" property="taskType" />
        <result column="patrol_inspector_dept" property="patrolInspectorDept" />
        <id column="id" property="id"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <result column="create_by" property="createBy"/>
        <result column="update_by" property="updateBy"/>
        <result column="disabled" property="disabled"/>
        <result column="project_id" property="projectId"/>
        <result column="status" property="status"/>
        <result column="cleaner_id" property="cleanerId"/>
        <result column="location_id" property="locationId"/>
        <result column="patrol_inspector" property="patrolInspector"/>
        <result column="implement_time" property="implementTime"/>
        <result column="task_type" property="taskType"/>
        <result column="patrol_inspector_dept" property="patrolInspectorDept"/>
    </resultMap>
    <!-- 通用查询结果列 -->
    <sql id="Base_Column_List">
        id, create_time, update_time, create_by, update_by, disabled, project_id, status, cleaner_id, location_id, patrol_inspector, implement_time, task_type, patrol_inspector_dept
        id
        , create_time, update_time, create_by, update_by, disabled, project_id, status, cleaner_id, location_id, patrol_inspector, implement_time, task_type, patrol_inspector_dept
    </sql>
    <select id="pageList" resultType="com.ruoyi.system.vo.system.LocationListTaskVO">
    <select id="pageList" resultType="com.ruoyi.system.vo.system.TaskListVO">
        select t1.*,t2.location_name as locationName,t3.location_name as locationTypeName,
               t4.nick_name as patrolInspectorName,
               t4.phonenumber as phonenumber
               from t_task t1
        t4.nick_name as patrolInspectorName,
        t4.phonenumber as phonenumber
        from t_task t1
        left join t_location t2 on t1.location_id = t2.id
        left join t_location_type t3 on t2.location_type = t3.id
        left join sys_user t4 on t1.patrol_inspector = t4.user_id
@@ -40,13 +41,13 @@
                #{id}
            </foreach>
        </if>
          <if test="query.taskIds != null and query.taskIds.size()>0">
        <if test="query.taskIds != null and query.taskIds.size()>0">
            AND t1.id IN
            <foreach collection="query.taskIds" separator="," item="id" open="(" close=")">
                #{id}
            </foreach>
        </if>
          <if test="query.locationIds != null and query.locationIds.size()>0">
        <if test="query.locationIds != null and query.locationIds.size()>0">
            AND t1.location_id IN
            <foreach collection="query.locationIds" separator="," item="id" open="(" close=")">
                #{id}
@@ -55,13 +56,13 @@
        <if test="query.status != null">
            and t1.status = #{query.status}
        </if>
        <if test="query.startTime != null and startTime != ''">
        <if test="query.startTime != null and query.startTime != ''">
            and (t1.implement_time between #{query.startTime} and #{query.endTime})
        </if>
    </select>
    <select id="pageListUser" resultType="com.ruoyi.system.applet.vo.TaskUserListVO">
        select t1.*,t2.location_name as locationName,t3.location_name as locationTypeName,
               t3.location_icon as locatioTypeIcon,
        t3.location_icon as locatioTypeIcon,
        t5.clear_status as clearStatus,
        t4.nick_name as patrolInspectorName,
        t4.phonenumber as phonenumber,
@@ -103,7 +104,7 @@
        <if test="query.clearStatus != null">
            and t2.status = #{query.clearStatus}
        </if>
          <if test="query.userId != null and query.userId != ''">
        <if test="query.userId != null and query.userId != ''">
            and t1.patrol_inspector = #{query.userId}
        </if>
        <if test="query.startTime != null and startTime != ''">
@@ -145,5 +146,29 @@
            and (t1.implement_time between #{query.startTime} and #{query.endTime})
        </if>
    </select>
    <select id="taskProgress" resultType="com.ruoyi.system.vo.system.ProgressListVO">
        select t1.*,t2.nick_name as nickName,t2.phonenumber,t3.template_name as templateName,count(*) as num2,
        SUM(CASE WHEN t1.status = 5 or t1.status=6 THEN 1 ELSE 0 END) AS num3
        from t_task t1
        left join sys_user t2 on t1.user_id = t2.user_id
        left join t_template t3 on t1.template_id = t3.id
        where 1=1
        and t1.`disabled` = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
        <if test="query.templateIds != null and query.templateIds.size()>0">
            AND t1.template_id IN
            <foreach collection="query.templateIds" separator="," item="id" open="(" close=")">
                #{id}
            </foreach>
        </if>
        <if test="query.patrolInspectorIds != null and query.patrolInspectorIds.size()>0">
            AND t1.user_id IN
            <foreach collection="query.patrolInspectorIds" separator="," item="id" open="(" close=")">
                #{id}
            </foreach>
        </if>
        group by t1.user_id,t1.template_id
    </select>
</mapper>