无关风月
2025-06-17 9e2da8d29be2a513ceab812d279534814dc545bb
ruoyi-system/src/main/resources/mapper/system/TTaskMapper.xml
@@ -56,7 +56,58 @@
            and t1.status = #{query.status}
        </if>
        <if test="query.startTime != null and startTime != ''">
            and (t1.implement_time between #{startTime} and #{endTime})
            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,
        t5.clear_status as clearStatus,
        t4.nick_name as patrolInspectorName,
        t4.phonenumber as phonenumber,
        ROUND(
        6378.138 * 2 * ASIN(
        SQRT(
        POW(
        SIN(
        (
        #{query.lat} * PI() / 180 - t2.location_lat * PI() / 180
        ) / 2
        ),
        2
        ) + COS(#{query.lat} * PI() / 180) * COS(t2.location_lat * PI() / 180) * POW(
        SIN(
        (
        #{query.lon} * PI() / 180 - t2.location_lon * PI() / 180
        ) / 2
        ),
        2
        )
        )
        ) * 1000
        ) AS distance
        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
        LEFT JOIN (SELECT t1.*
        FROM t_task_detail t1
        JOIN (
        SELECT task_id, MAX(create_time) AS max_time
        FROM t_task_detail
        GROUP BY task_id
        ) AS t2 ON t1.task_id = t2.task_id AND t1.create_time = t2.max_time
        ) t5 on t1.id = t5.task_id
        where 1=1
        and t1.`disabled` = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
        <if test="query.clearStatus != null">
            and t2.status = #{query.clearStatus}
        </if>
          <if test="query.userId != null and query.userId != ''">
            and t1.patrol_inspector = #{query.userId}
        </if>
        <if test="query.startTime != null and startTime != ''">
            and (t1.implement_time between #{query.startTime} and #{query.endTime})
        </if>
    </select>