叶松
2023-11-30 b69ca5e06f8f5c56f8b1270370a81bcecf57bfe7
hd/pipe/secure/src/main/resources/mapping/RegionInspectionRecordMapper.xml
@@ -199,9 +199,13 @@
                        <if test="regionInspectionId !=null and regionInspectionId !=''">
                            and t.regionInspectionId = #{regionInspectionId}
                        </if>
                        <if test="userId !=null and userId !=''">
                            and t.userId = #{userId}
                        </if>
                        <if test="startTime != null and endTime != null and startTime !='' and endTime != ''">
                            and t.inspectionTime BETWEEN str_to_date(#{startTime}, "%Y-%m-%d %H:%i:%s") and str_to_date(#{endTime}, "%Y-%m-%d %H:%i:%s")
                        </if>
        GROUP BY t.regionInspectionId,t.userId
                     )a
        WHERE 1=1
@@ -296,27 +300,42 @@
    </select>
    <select id="selectAppList" resultType="java.util.Map">
        select * from (
        SELECT
                a.id,
                MIN( b.inspectionTime ) inspectionTime,
                a.`status`,
                a.task,
                GROUP_CONCAT(DISTINCT d.region) region
        FROM
                t_region_inspection a
                        LEFT JOIN t_region_inspection_record b ON b.regionInspectionId = a.id
                        LEFT JOIN t_region_inspection_hazard_inform c ON c.regionInspectionId = a.id
                        LEFT JOIN t_region_hazard_inform d ON c.regionHazardInformId = d.id
                        LEFT JOIN t_region_inspection_user e on e.regionInspectionId = a.id
        WHERE a.companyId = #{companyId} and  e.userId = #{userId}
        <if test="status != null and status != ''">
            and a.status = #{status}
        tri.id,
        t.userId ,
        t.regionInspectionId,
        MIN(t.inspectionTime) inspectionTime,
        tri.task task,
        GROUP_CONCAT(DISTINCT trhi.region) region,
        spu.real_name realName,
        if(
        SUM(t.`status`)/(SELECT count(regionInspectionId) FROM t_region_inspection_hazard_inform WHERE
        regionInspectionId = t.regionInspectionId)
        =
        (SELECT count(regionInspectionId) FROM t_region_inspection_hazard_inform WHERE regionInspectionId =
        t.regionInspectionId)
        ,1,0) status
        from
        t_region_inspection_record t
        LEFT JOIN t_region_inspection tri on tri.id = t.regionInspectionId
        LEFT JOIN t_region_inspection_hazard_inform trihi on trihi.regionInspectionId = t.regionInspectionId
        LEFT JOIN t_region_hazard_inform trhi on trhi.id = trihi.regionHazardInformId
        LEFT JOIN sys_plat_user spu on spu.user_id = t.userId
        WHERE 1=1
        <if test="userId != null and userId != ''">
            and t.userId = #{userId}
        </if>
        <if test="startTime != null and endTime != null and startTime !='' and endTime != ''">
            and t.inspectionTime BETWEEN str_to_date(#{startTime}, "%Y-%m-%d %H:%i:%s") and str_to_date(#{endTime}, "%Y-%m-%d %H:%i:%s")
            and t.inspectionTime BETWEEN str_to_date(#{startTime}, "%Y-%m-%d %H:%i:%s") and str_to_date(#{endTime},
            "%Y-%m-%d %H:%i:%s")
        </if>
        GROUP BY
                a.id
        GROUP BY t.regionInspectionId,t.userId
    ) entity where 1=1
        <if test="status != null and status != ''">
            and entity.status = #{status}
        </if>
    </select>
    <select id="selectPlatUserId" resultType="java.lang.String">