linjiawei 1 ay önce
ebeveyn
işleme
af6c0e8886

+ 2 - 2
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforceOrgAverageTimeDto.java

@@ -18,8 +18,8 @@ public class EnforceOrgAverageTimeDto {
     @ApiModelProperty("支队平均时长")
     private String orgAvgTime;
 
-    @Excel(name = "总队平均时长")
-    @ApiModelProperty("总队平均时长")
+    @Excel(name = "视频时长")
+    @ApiModelProperty("视频时长")
     private String headCorpsAvgTime;
 
     @ApiModelProperty("视频时长与检查终端时长的比值")

+ 11 - 5
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforceOrgTimeoutDto.java

@@ -17,17 +17,23 @@ public class EnforceOrgTimeoutDto {
 
     @Excel(name = "双随机超期数")
     @ApiModelProperty("双随机超期数")
-    private Integer normalCount;
+    private Integer normalCount=0;
 
     @Excel(name = "复查超期数")
     @ApiModelProperty("复查超期数")
-    private Integer reviewCount;
+    private Integer reviewCount=0;
 
     @Excel(name = "举报投诉超期数")
-    @ApiModelProperty("举报投诉超期")
-    private Integer reportCount;
+    @ApiModelProperty("举报投诉超期")
+    private Integer reportCount=0;
 
     @Excel(name = "超期总数")
     @ApiModelProperty("超期总数")
-    private Integer allCount;
+    private Integer allCount=0;
+
+    @ApiModelProperty("任务类型")
+    private String jobType;
+
+    @ApiModelProperty("任务数量")
+    private Integer jobCount=0;
 }

+ 5 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/enforce/job/EnforcementJobProcessQuery.java

@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 @ApiModel("高楼码查询建筑的查询条件")
 public class EnforcementJobProcessQuery extends PageQuery {
@@ -12,6 +14,9 @@ public class EnforcementJobProcessQuery extends PageQuery {
     @ApiModelProperty(value = "执法机构ID")
     private String enforceOrgId;
 
+    @ApiModelProperty(value = "执法机构ID")
+    private List<String> enforceOrgIds;
+
     @ApiModelProperty(value = "检察员id")
     private String executorId;
 

+ 47 - 20
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/enforce/job/EnforceSuperviseController.java

@@ -1,6 +1,7 @@
 package com.zfjg.manage.controller.enforce.job;
 
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.zfjg.common.core.domain.R;
 import com.zfjg.common.core.utils.poi.ExcelUtil;
@@ -14,7 +15,8 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 import static com.zfjg.common.core.utils.PageUtils.startPage;
 
@@ -44,11 +46,11 @@ public class EnforceSuperviseController {
     @GetMapping(value = "/enforcement/process/export")
     public void selectEnforcementProcessExport(HttpServletResponse response, EnforcementJobProcessQuery query) {
         List<EnforcementOrgProcess> enforcementProcess = enforceSuperviseMapper.selectEnforcementProcess(query);
-        if(com.zfjg.common.core.utils.StringUtils.isEmpty(enforcementProcess)){
+        if (com.zfjg.common.core.utils.StringUtils.isEmpty(enforcementProcess)) {
             return;
         }
         ExcelUtil<EnforcementOrgProcess> util = new ExcelUtil<EnforcementOrgProcess>(EnforcementOrgProcess.class);
-        enforcementProcess.forEach(e->{
+        enforcementProcess.forEach(e -> {
             e.setRelationRatePercent(e.getRelationRatePercent());
         });
         util.exportExcel(response, enforcementProcess, "执法全过程记录", "执法全过程记录");
@@ -67,10 +69,10 @@ public class EnforceSuperviseController {
     public void getEnforcementJobProcessListExport(HttpServletResponse response, EnforcementJobProcessQuery query) {
         startPage();
         List<EnforcementJobProcessDTO> list = enforceSuperviseMapper.getEnforcementJobProcessList(query);
-        if(com.zfjg.common.core.utils.StringUtils.isEmpty(list)){
+        if (com.zfjg.common.core.utils.StringUtils.isEmpty(list)) {
             return;
         }
-        list.forEach(e->{
+        list.forEach(e -> {
             e.setRelate(e.getRelate());
         });
         ExcelUtil<EnforcementJobProcessDTO> util = new ExcelUtil<EnforcementJobProcessDTO>(EnforcementJobProcessDTO.class);
@@ -90,10 +92,10 @@ public class EnforceSuperviseController {
     public void getEnforcementJobTimeOutListExport(HttpServletResponse response, EnforcementJobProcessQuery query) {
         startPage();
         List<EnforceJobTimeoutDto> list = enforceSuperviseMapper.getEnforcementJobTimeOutList(query);
-        if(com.zfjg.common.core.utils.StringUtils.isEmpty(list)){
+        if (com.zfjg.common.core.utils.StringUtils.isEmpty(list)) {
             return;
         }
-        list.forEach(e->{
+        list.forEach(e -> {
             e.setEnforceResultName(e.getEnforceResultName());
             e.setJobTypeName(e.getJobTypeName());
         });
@@ -105,15 +107,41 @@ public class EnforceSuperviseController {
     @ApiOperation(value = "检查超期")
     @GetMapping("/enforcement/timeout")
     public R<List<EnforceOrgTimeoutDto>> selectEnforceTimeout(EnforcementJobProcessQuery query) {
+        List<EnforcementOrgInfo> orglist = enforceSuperviseMapper.selectOrgInfoList(query.getEnforceOrgId(),query.getEnforceOrgIds());
+        Map<String, String> orgmap = orglist.stream() .collect(Collectors.toMap( EnforcementOrgInfo::getOrgId, EnforcementOrgInfo::getOrgName));
+        List<EnforceOrgTimeoutDto> enforceOrgTimeoutDtos = new ArrayList<>();
         List<EnforceOrgTimeoutDto> enforceTimeouts = enforceSuperviseMapper.selectEnforceTimeout(query);
-        return R.ok(enforceTimeouts);
+        Map<String, List<EnforceOrgTimeoutDto>> map = enforceTimeouts.stream().collect(Collectors.groupingBy(EnforceOrgTimeoutDto::getOrgId));
+        orglist.forEach(e -> {
+            List<EnforceOrgTimeoutDto> list = map.get(e.getOrgId());
+            if (ObjectUtils.isNotEmpty(list)) {
+                EnforceOrgTimeoutDto dto = new EnforceOrgTimeoutDto();
+                list.forEach(l -> {
+                    if (Objects.equals("复查", l.getJobType())) {
+                        dto.setReviewCount(l.getJobCount());
+                    }
+                    if (Objects.equals("举报", l.getJobType())) {
+                        dto.setReportCount(l.getJobCount());
+                    }
+                    if (Objects.equals("日常检查", l.getJobType())) {
+                        dto.setNormalCount(l.getJobCount());
+                    }
+                    dto.setOrgId(l.getOrgId());
+                    dto.setAllCount(l.getReviewCount()+l.getReportCount()+ l.getNormalCount());
+                    dto.setOrgName(orgmap.get(l.getOrgId()));
+                    enforceOrgTimeoutDtos.add(dto);
+                });
+            }
+        });
+        enforceOrgTimeoutDtos.sort(Comparator.comparing(EnforceOrgTimeoutDto::getAllCount).thenComparing(EnforceOrgTimeoutDto::getOrgId));
+        return R.ok(enforceOrgTimeoutDtos);
     }
 
     @ApiOperation(value = "检查超期导出")
     @GetMapping(value = "/enforcement/timeout/export")
     public void selectEnforceTimeoutExport(HttpServletResponse response, EnforcementJobProcessQuery query) {
         List<EnforceOrgTimeoutDto> enforceTimeouts = enforceSuperviseMapper.selectEnforceTimeout(query);
-        if(com.zfjg.common.core.utils.StringUtils.isEmpty(enforceTimeouts)){
+        if (com.zfjg.common.core.utils.StringUtils.isEmpty(enforceTimeouts)) {
             return;
         }
         ExcelUtil<EnforceOrgTimeoutDto> util = new ExcelUtil<EnforceOrgTimeoutDto>(EnforceOrgTimeoutDto.class);
@@ -141,11 +169,11 @@ public class EnforceSuperviseController {
             }
         }
         if (CollectionUtils.isNotEmpty(enforceAverageTimes)) {
-            enforceAverageTimeDto.setOrgAvgTime(String.format("%.2f", orgAvgTime/enforceAverageTimes.size()));
-            enforceAverageTimeDto.setHeadCorpsAvgTime(String.format("%.2f", headCorpsAvgTime/enforceAverageTimes.size()));
-            enforceAverageTimeDto.setRate(String.format("%.2f", rate/enforceAverageTimes.size()));
+            enforceAverageTimeDto.setOrgAvgTime(String.format("%.2f", orgAvgTime / enforceAverageTimes.size()));
+            enforceAverageTimeDto.setHeadCorpsAvgTime(String.format("%.2f", headCorpsAvgTime / enforceAverageTimes.size()));
+            enforceAverageTimeDto.setRate(String.format("%.2f", rate / enforceAverageTimes.size()));
         }
-        enforceAverageTimes.add(0,enforceAverageTimeDto);
+        enforceAverageTimes.add(0, enforceAverageTimeDto);
         return R.ok(enforceAverageTimes);
     }
 
@@ -170,13 +198,13 @@ public class EnforceSuperviseController {
             }
         }
         if (CollectionUtils.isNotEmpty(enforceAverageTimes)) {
-            enforceAverageTimeDto.setOrgAvgTime(String.format("%.2f", orgAvgTime/enforceAverageTimes.size()));
-            enforceAverageTimeDto.setHeadCorpsAvgTime(String.format("%.2f", headCorpsAvgTime/enforceAverageTimes.size()));
-            enforceAverageTimeDto.setRate(String.format("%.2f", rate/enforceAverageTimes.size()));
+            enforceAverageTimeDto.setOrgAvgTime(String.format("%.2f", orgAvgTime / enforceAverageTimes.size()));
+            enforceAverageTimeDto.setHeadCorpsAvgTime(String.format("%.2f", headCorpsAvgTime / enforceAverageTimes.size()));
+            enforceAverageTimeDto.setRate(String.format("%.2f", rate / enforceAverageTimes.size()));
         }
-        enforceAverageTimes.add(0,enforceAverageTimeDto);
+        enforceAverageTimes.add(0, enforceAverageTimeDto);
 
-        enforceAverageTimes.forEach(e->{
+        enforceAverageTimes.forEach(e -> {
             e.setRatePercent(e.getRatePercent());
         });
 
@@ -185,7 +213,6 @@ public class EnforceSuperviseController {
     }
 
 
-
     @ApiOperation(value = "检查时长列表(分页)")
     @GetMapping("/enforcement/org/average-time")
     public TableInfo<EnforcementJobAverageTimeDTO> selectEnforceJobAverageTime(EnforcementJobProcessQuery query) {
@@ -201,7 +228,7 @@ public class EnforceSuperviseController {
         startPage();
         List<EnforcementJobAverageTimeDTO> list = enforceSuperviseMapper.selectEnforceJobAverageTime(query);
         ExcelUtil<EnforcementJobAverageTimeDTO> util = new ExcelUtil<EnforcementJobAverageTimeDTO>(EnforcementJobAverageTimeDTO.class);
-        list.forEach(e->{
+        list.forEach(e -> {
             e.setRatePercent(e.getRatePercent());
         });
 

+ 5 - 3
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/enforce/job/EnforceSuperviseMapper.java

@@ -14,16 +14,18 @@ import java.util.List;
  */
 @Mapper
 public interface EnforceSuperviseMapper {
-    List<EnforcementOrgInfo> selectOrgInfoList(@Param("enforceOrgId")String enforceOrgId);
+    List<EnforcementOrgInfo> selectOrgInfoList(@Param("enforceOrgId")String enforceOrgId,@Param("enforceOrgIds")List<String> enforceOrgIds);
 
     List<EnforcementOrgProcess> selectEnforcementProcess(@Param("pm") EnforcementJobProcessQuery query);
 
     List<EnforceOrgTimeoutDto>  selectEnforceTimeout(@Param("pm") EnforcementJobProcessQuery query);
 
-    List<EnforceJobTimeoutDto> getEnforcementJobTimeOutList(@Param("pm")EnforcementJobProcessQuery query);
-
     List<EnforceOrgAverageTimeDto> selectEnforceAverageTime(@Param("pm")EnforcementJobProcessQuery query);
 
+
+
+    List<EnforceJobTimeoutDto> getEnforcementJobTimeOutList(@Param("pm")EnforcementJobProcessQuery query);
+
     List<EnforcementJobProcessDTO> getEnforcementJobProcessList(@Param("pm")EnforcementJobProcessQuery query);
 
     List<EnforcementJobAverageTimeDTO> selectEnforceJobAverageTime(@Param("pm")EnforcementJobProcessQuery query);

+ 135 - 153
zfjg-modules/zfjg-manage/src/main/resources/mapper/enforce/job/EnforceSuperviseMapper.xml

@@ -4,11 +4,11 @@
 
 
     <resultMap id="EnforcementProcessResultMap" type="com.zfjg.manage.api.dto.enforce.job.EnforcementOrgProcess">
-        <id property="orgId" column="orgId"/>
-        <result property="orgName" column="orgName"/>
-        <result property="checkNumber" column="checkNumber"/>
-        <result property="relationNumber" column="relationNumber"/>
-        <result property="relationRate" column="relationRate"/>
+        <id property="orgId" column="执法机构id"/>
+        <result property="orgName" column="执法机构"/>
+        <result property="checkNumber" column="检查数量"/>
+        <result property="relationNumber" column="关联数"/>
+        <result property="relationRate" column="关联率"/>
     </resultMap>
 
     <resultMap id="EnforceTimeoutDtoResultMap" type="com.zfjg.manage.api.dto.enforce.job.EnforceOrgTimeoutDto">
@@ -22,10 +22,10 @@
 
 
     <resultMap id="EnforceAverageTimeDtoResultMap" type="com.zfjg.manage.api.dto.enforce.job.EnforceOrgAverageTimeDto">
-        <id property="orgId" column="orgId"/>
-        <result property="orgName" column="orgName"/>
-        <result property="orgAvgTime" column="orgAvgTime"/>
-        <result property="headCorpsAvgTime" column="headCorpsAvgTime"/>
+        <id property="orgId" column="执法机构id"/>
+        <result property="orgName" column="执法机构"/>
+        <result property="orgAvgTime" column="支队平均时长"/>
+        <result property="headCorpsAvgTime" column="视频时长"/>
         <result property="rate" column="rate"/>
     </resultMap>
 
@@ -40,41 +40,56 @@
             <if test="enforceOrgId  != null  and enforceOrgId != ''">
                 and enforce_org_id = #{enforceOrgId}
             </if>
+            <if test="enforceOrgIds !=null and enforceOrgIds.size>0">
+                and enforce_org_id in
+                <foreach item="item" index="i" collection="enforceOrgIds" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
     </select>
     <select id="selectEnforcementProcess" resultMap="EnforcementProcessResultMap">
         SELECT
-            enforce_org_id orgId,
-            enforce_org_name orgName,
-            count( * ) checkNumber,
-            sum( relationNumber ) relationNumber,
-            round( sum( relationNumber ) / count( * ) * 100, 2 ) relationRate
+        执法机构id,
+        ( SELECT enforce_org_name FROM enforce_organize WHERE enforce_org_id = 执法机构id ) 执法机构,
+        count( * ) 检查数量,
+        sum( 关联数 ) 关联数,
+        round( sum( 关联数 ) / count( * ) * 100, 2 ) 关联率
         FROM
-            (
-                SELECT
-                    a.ID,
-                    a.enforce_org_id,
-                    a.enforce_org_name,
-                    (CASE WHEN ( SELECT count( * ) FROM enforce_video C WHERE c.is_deleted = 0 AND c.enfore_job_id = a.id ) <![CDATA[ > ]]> 0
-                     THEN '1' ELSE '0' END ) relationNumber
-                FROM
-                    enforce_job a
-                WHERE
-                    a.is_deleted = '0'
-                  AND a.enforce_org_id not in ('55c99876ec0f425aac6925a92cceeb17','256069491270746112')
-	             AND job_status = 'ARCHIVED'
-                <if test="pm.enforceOrgId  != null  and pm.enforceOrgId != ''">
-                    and a.enforce_org_id = #{pm.enforceOrgId}
-                </if>
-                <if test="pm.startDate != null and pm.startDate !=''">
-                    AND a.finish_time <![CDATA[ >= ]]> #{pm.startDate}
-                </if>
-                <if test="pm.endDate != null and pm.endDate !=''">
-                    AND a.finish_time <![CDATA[ <= ]]> #{pm.endDate}
-                </if>
-            ) r
+        (
+        SELECT
+        执法机构id,
+        a.ID,
+        a.`检查对象名称`,
+        (
+        CASE
+        WHEN ( SELECT count( * ) FROM enforce_video C WHERE c.is_deleted = 0 AND c.enfore_job_id = a.id ) > 0 THEN
+        '1' ELSE '0'
+        END
+        ) 关联数
+        FROM
+        v_rw a
+        WHERE 是否删除 = '正常'
+        AND 执法机构id not in ('55c99876ec0f425aac6925a92cceeb17','256069491270746112')
+        <if test="pm.enforceOrgId  != null  and pm.enforceOrgId != ''">
+            and 执法机构id = #{pm.enforceOrgId}
+        </if>
+        <if test="pm.enforceOrgIds !=null and pm.enforceOrgIds.size>0">
+            and 执法机构id in
+            <foreach item="item" index="i" collection="pm.enforceOrgIds" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="pm.startDate != null and pm.startDate !=''">
+            AND 检查期限 <![CDATA[ >= ]]> #{pm.startDate}
+        </if>
+        <if test="pm.endDate != null and pm.endDate !=''">
+            AND 检查期限 <![CDATA[ <= ]]> #{pm.endDate}
+        </if>
+        AND 状态 = '已归档'
+        ) r
         GROUP BY
-            enforce_org_id
-        order by relationRate,enforce_org_id
+        执法机构id
+        order by 关联率,执法机构id
     </select>
 
     <select id="getEnforcementJobProcessList" resultType="com.zfjg.manage.api.dto.enforce.job.EnforcementJobProcessDTO">
@@ -101,6 +116,12 @@
             <if test="pm.enforceOrgId  != null  and pm.enforceOrgId != ''">
                 and ej.enforce_org_id = #{pm.enforceOrgId}
             </if>
+            <if test="pm.enforceOrgIds !=null and pm.enforceOrgIds.size>0">
+                and ej.enforce_org_id in
+                <foreach item="item" index="i" collection="pm.enforceOrgIds" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
             <if test="pm.executorId  != null  and pm.executorId != ''">
                 and ${pm.executorId} in (ej.executor_ids)
             </if>
@@ -123,79 +144,28 @@
         order by t.videoNum,finish_time desc
     </select>
 
-    <select id="selectEnforceTimeout" resultMap="EnforceTimeoutDtoResultMap">
-        SELECT
-            *,
-            ( normalCount + reviewCount + reportCount ) AS allCount
+    <select id="selectEnforceTimeout" resultType="com.zfjg.manage.api.dto.enforce.job.EnforceOrgTimeoutDto">
+        SELECT 执法机构id orgId,任务类型 jobType,
+        count( * ) jobCount
         FROM
-            (
-                SELECT
-                    eo.id,
-                    eo.enforce_org_id orgId,
-                    eo.enforce_org_name orgName,
-                    (
-                        SELECT
-                            count( 1 )
-                        FROM
-                            enforce_job a
-                        WHERE
-                            a.enforce_org_id = eo.enforce_org_id
-                          AND job_type = 'NORMAL'
-                          AND time_out = 1
-                          AND a.is_deleted = 0
-                        <if test="pm.startDate != null and pm.startDate !=''">
-                            AND a.last_enforce_date <![CDATA[ >= ]]> #{pm.startDate}
-                        </if>
-                        <if test="pm.endDate != null and pm.endDate !=''">
-                            AND a.last_enforce_date <![CDATA[ <= ]]> #{pm.endDate}
-                        </if>
-                    ) normalCount,
-                    (
-                        SELECT
-                            count( 1 )
-                        FROM
-                            enforce_job a
-                        WHERE
-                            a.enforce_org_id = eo.enforce_org_id
-                          AND job_type = 'REVIEW'
-                          AND time_out = 1
-                          AND a.is_deleted = 0
-                        <if test="pm.startDate != null and pm.startDate !=''">
-                            AND a.last_enforce_date <![CDATA[ >= ]]> #{pm.startDate}
-                        </if>
-                        <if test="pm.endDate != null and pm.endDate !=''">
-                            AND a.last_enforce_date <![CDATA[ <= ]]> #{pm.endDate}
-                        </if>
-                    ) reviewCount,
-                    (
-                        SELECT
-                            count( 1 )
-                        FROM
-                            enforce_job a
-                        WHERE
-                            a.enforce_org_id = eo.enforce_org_id
-                          AND job_type = 'REPORT'
-                          AND time_out = 1
-                          AND a.is_deleted = 0
-                            <if test="pm.startDate != null and pm.startDate !=''">
-                                AND a.last_enforce_date <![CDATA[ >= ]]> #{pm.startDate}
-                            </if>
-                            <if test="pm.endDate != null and pm.endDate !=''">
-                                AND a.last_enforce_date <![CDATA[ <= ]]> #{pm.endDate}
-                            </if>
-                    ) reportCount
-                FROM
-                    enforce_organize eo
-                WHERE
-                    eo.is_deleted = 0
-                  AND eo.enforce_org_id not in ('55c99876ec0f425aac6925a92cceeb17','256069491270746112')
-                <if test="pm.enforceOrgId  != null  and pm.enforceOrgId != ''">
-                    and ej.enforce_org_id = #{pm.enforceOrgId}
-                </if>
-            ) t
-        ORDER BY
-        allCount DESC,
-            orgId
+        v_rw
+        WHERE
+        是否已超时 = '已超时'
+        AND 是否删除 = '正常'
+        and 任务类型 in ('专项','复查','日常检查')
+        <if test="pm.startDate != null and pm.startDate !=''">
+            and 检查期限 <![CDATA[ >= ]]> #{pm.startDate}
+        </if>
+        <if test="pm.endDate != null and pm.endDate !=''">
+            and 检查期限 <![CDATA[ <= ]]> #{pm.endDate}
+        </if>
+        <if test="pm.enforceOrgIds !=null and pm.enforceOrgIds.size>0">
+            and 执法机构id in
+            <foreach item="item" index="i" collection="pm.enforceOrgIds" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        group by 任务类型,执法机构id
     </select>
 
 
@@ -225,6 +195,12 @@
         <if test="pm.enforceOrgId  != null  and pm.enforceOrgId != ''">
             and ej.enforce_org_id = #{pm.enforceOrgId}
         </if>
+        <if test="pm.enforceOrgIds !=null and pm.enforceOrgIds.size>0">
+            and ej.enforce_org_id in
+            <foreach item="item" index="i" collection="pm.enforceOrgIds" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="pm.executorId  != null  and pm.executorId != ''">
             and ${pm.executorId} in (ej.executor_ids)
         </if>
@@ -242,51 +218,51 @@
     </select>
 
     <select id="selectEnforceAverageTime" resultMap="EnforceAverageTimeDtoResultMap">
+        SELECT *, round( ( 视频时长 / 支队平均时长 ) * 100, 2 ) rate from  (SELECT
+        执法机构id,
+        ( SELECT enforce_org_name FROM enforce_organize WHERE enforce_org_id = 执法机构id ) 执法机构,
+        round( sum( 检查耗时 / 1000 / 60 ) / count( * ), 2 ) 支队平均时长,
+        round(
+        sum(
+        (
         SELECT
-            *,
-            round( ( headCorpsAvgTime / orgAvgTime ) * 100, 2 ) rate
+        sum( CASE WHEN media_id = '-1' THEN duration ELSE TIMESTAMPDIFF( SECOND, video_begin_time, video_end_time ) END ) zfzsc
         FROM
-            (
-                SELECT
-                    a.enforce_org_id orgId,
-                     a.enforce_org_name orgName,
-                    round( sum( a.time_consuming / 1000 / 60 ) / count( * ), 2 ) orgAvgTime,
-                    round(
-                                sum(
-                                        (
-                                            SELECT
-                                                sum( CASE WHEN media_id = '-1' THEN duration ELSE TIMESTAMPDIFF( SECOND, video_begin_time, video_end_time ) END ) zfzsc
-                                            FROM
-                                                enforce_video C
-                                            WHERE
-                                                c.is_deleted = 0
-                                              AND c.enfore_job_id = a.id
-                                        )
-                                    ) / count( * ) / 60,
-                                2
-                        ) headCorpsAvgTime
-                FROM
-                    enforce_job a
-                WHERE
-                    a.is_deleted = '0'
-                  AND a.job_status = 'ARCHIVED'
-                  AND a.enforce_org_id not in ('55c99876ec0f425aac6925a92cceeb17','256069491270746112')
-                  AND a.job_type = 'NORMAL'
-                  and a.time_consuming <![CDATA[ <= ]]> 28800000
-                <if test="pm.enforceOrgId  != null  and pm.enforceOrgId != ''">
-                    and a.enforce_org_id = #{pm.enforceOrgId}
-                </if>
-                <if test="pm.startDate != null and pm.startDate !=''">
-                    AND a.finish_time <![CDATA[ >= ]]> #{pm.startDate}
-                </if>
-                <if test="pm.endDate != null and pm.endDate !=''">
-                    AND a.finish_time <![CDATA[ <= ]]> #{pm.endDate}
-                </if>
-                GROUP BY
-                a.enforce_org_id
-            ) t
+        enforce_video C
+        WHERE
+        c.is_deleted = 0
+        AND c.enfore_job_id = a.id
+        )
+        ) / count( * ) / 60,
+        2
+        ) 视频时长
+        FROM
+        v_rw a
+        WHERE
+        状态 = '已归档'
+        <if test="pm.enforceOrgId  != null  and pm.enforceOrgId != ''">
+            and 执法机构id = #{pm.enforceOrgId}
+        </if>
+        <if test="pm.enforceOrgIds !=null and pm.enforceOrgIds.size>0">
+            and 执法机构id in
+            <foreach item="item" index="i" collection="pm.enforceOrgIds" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        <if test="pm.startDate != null and pm.startDate !=''">
+            AND `开始执行任务时间` <![CDATA[ >= ]]> #{pm.startDate}
+        </if>
+        <if test="pm.endDate != null and pm.endDate !=''">
+            AND 开始执行任务时间 <![CDATA[ <= ]]> #{pm.endDate}
+        </if>
+        AND 是否删除 = '正常'
+        AND 检查耗时 <![CDATA[ <= ]]> 28800000
+        AND 执法机构id not in ('55c99876ec0f425aac6925a92cceeb17','256069491270746112')
+        AND 任务类型 = '日常检查'
+        GROUP BY
+        执法机构id) t
         ORDER BY
-            rate,orgId
+        rate,执法机构id
     </select>
 
 
@@ -328,6 +304,12 @@
         <if test="pm.enforceOrgId  != null  and pm.enforceOrgId != ''">
             and ej.enforce_org_id = #{pm.enforceOrgId}
         </if>
+        <if test="pm.enforceOrgIds !=null and pm.enforceOrgIds.size>0">
+            and ej.enforce_org_id in
+            <foreach item="item" index="i" collection="pm.enforceOrgIds" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
         <if test="pm.executorId  != null  and pm.executorId != ''">
             and ${pm.executorId} in (ej.executor_ids)
         </if>