Quellcode durchsuchen

添加执法监督三个接口

xuxiaodong vor 3 Monaten
Ursprung
Commit
65aa49d575

+ 31 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/statistics/EnforceAverageTimeDto.java

@@ -0,0 +1,31 @@
+package com.zfjg.manage.api.dto.statistics;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.text.NumberFormat;
+
+@Data
+public class EnforceAverageTimeDto {
+    //执法机构
+    private String orgName;
+
+    //支队平均时长
+    private String orgAvgTime;
+
+    //总队平均时长
+    private String headCorpsAvgTime;
+
+
+    public String getOrgAvgTime() {
+        NumberFormat percentInstance = NumberFormat.getNumberInstance();
+        BigDecimal bigDecimal = new BigDecimal(this.orgAvgTime);
+        return percentInstance.format(bigDecimal);
+    }
+
+    public String getHeadCorpsAvgTime() {
+        NumberFormat percentInstance = NumberFormat.getNumberInstance();
+        BigDecimal bigDecimal = new BigDecimal(this.headCorpsAvgTime);
+        return percentInstance.format(bigDecimal);
+    }
+}

+ 10 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/statistics/EnforceTimeoutDto.java

@@ -0,0 +1,10 @@
+package com.zfjg.manage.api.dto.statistics;
+
+import lombok.Data;
+
+@Data
+public class EnforceTimeoutDto {
+    private String orgName;
+    private String taskCategory;
+    private Integer taskCount;
+}

+ 12 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/statistics/EnforcementProcess.java

@@ -0,0 +1,12 @@
+package com.zfjg.manage.api.dto.statistics;
+
+
+import lombok.Data;
+
+@Data
+public class EnforcementProcess {
+    private String orgName;
+    private Long checkNumber;
+    private String relationNumber;
+    private String relationRate;
+}

+ 20 - 0
zfjg-api/zfjg-api-manage/src/main/java/com/zfjg/manage/api/dto/statistics/vo/EnforceTimeoutVo.java

@@ -0,0 +1,20 @@
+package com.zfjg.manage.api.dto.statistics.vo;
+
+import com.zfjg.manage.api.dto.statistics.EnforceTimeoutDto;
+import lombok.Data;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.function.Function;
+
+@Data
+public class EnforceTimeoutVo {
+    private List<HashMap<String, String>> tableHead;
+
+    private List<HashMap<String, String>> tableData;
+
+    public void setTableData(Function<List<EnforceTimeoutDto>, List<HashMap<String, String>>> items, List<EnforceTimeoutDto> enforceTimeoutDtos) {
+        this.tableData = items.apply(enforceTimeoutDtos);
+    }
+}
+

+ 80 - 7
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/controller/statistics/StatisticsController.java

@@ -1,19 +1,25 @@
 package com.zfjg.manage.controller.statistics;
 
+import com.alibaba.fastjson.JSON;
 import com.zfjg.common.core.domain.R;
 import com.zfjg.manage.api.dto.statistics.CommonQueryDto;
+import com.zfjg.manage.api.dto.statistics.EnforceAverageTimeDto;
+import com.zfjg.manage.api.dto.statistics.EnforceTimeoutDto;
+import com.zfjg.manage.api.dto.statistics.EnforcementProcess;
+import com.zfjg.manage.api.dto.statistics.vo.EnforceTimeoutVo;
 import com.zfjg.manage.api.vo.DeptVo;
+import com.zfjg.manage.mapper.StatisticsMapper;
 import com.zfjg.manage.service.statistics.StatisticsService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
-import java.util.List;
+import javax.annotation.Resource;
+import java.sql.Array;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Author: Mr.Yang
@@ -26,6 +32,8 @@ import java.util.List;
 @Slf4j
 public class StatisticsController {
 
+    @Resource
+    private StatisticsMapper statisticsMapper;
 
     @Autowired
     private StatisticsService statisticsServiceImpl;
@@ -46,6 +54,7 @@ public class StatisticsController {
 
     /**
      * 监督抽查(专项、日常)
+     *
      * @param commonQueryDto
      * @return
      */
@@ -57,10 +66,9 @@ public class StatisticsController {
     }
 
 
-
-
     /**
      * 限改通知(份)
+     *
      * @param commonQueryDto
      * @return
      */
@@ -73,6 +81,7 @@ public class StatisticsController {
 
     /**
      * 执法人员
+     *
      * @param commonQueryDto
      * @return
      */
@@ -82,4 +91,68 @@ public class StatisticsController {
         int count = statisticsServiceImpl.zfry(commonQueryDto);
         return R.ok(count);
     }
+
+    @ApiOperation(value = "获取执法记录全过程")
+    @GetMapping("/enforcement/process")
+    public R<List<EnforcementProcess>> selectEnforcementProcess() {
+        List<EnforcementProcess> enforcementProcess = statisticsMapper.selectEnforcementProcess();
+        return R.ok(enforcementProcess);
+    }
+
+    @ApiOperation(value = "检查超期")
+    @GetMapping("/enforcement/timeout")
+    public R<EnforceTimeoutVo> selectEnforceTimeout() {
+//        //todo: enforceTimeouts本地没有数据,所以注释它,增加演示数据给前端测试
+//        List<EnforceTimeoutDto> enforceTimeouts = statisticsMapper.selectEnforceTimeout();
+
+        List<EnforceTimeoutDto> enforceTimeouts = new ArrayList<>();
+        EnforceTimeoutDto dto1 = new EnforceTimeoutDto();
+        dto1.setOrgName("重庆市荣昌区消防救援支队");
+        dto1.setTaskCategory("举报");
+        dto1.setTaskCount(2);
+
+        EnforceTimeoutDto dto2 = new EnforceTimeoutDto();
+        dto2.setOrgName("重庆市长寿区消防救援支队");
+        dto2.setTaskCategory("复查");
+        dto2.setTaskCount(3);
+
+        enforceTimeouts.add(dto1);
+        enforceTimeouts.add(dto2);
+
+
+        EnforceTimeoutVo enforceTimeoutVo = new EnforceTimeoutVo();
+        Set<HashMap<String, String>> collected = enforceTimeouts.stream().map(it -> {
+            HashMap<String, String> hashMap = new HashMap<>();
+            hashMap.put("filed", it.getTaskCategory());
+            hashMap.put("name", it.getTaskCategory());
+            return hashMap;
+        }).collect(Collectors.toSet());
+        ArrayList<HashMap<String, String>> arrayList = new ArrayList<>(collected);
+
+        HashMap<String, String> hashMap = new HashMap<>();
+        hashMap.put("filed", "orgName");
+        hashMap.put("name", "支大队");
+        arrayList.add(0, hashMap);
+
+        enforceTimeoutVo.setTableHead(arrayList);
+        enforceTimeoutVo.setTableData((ets) -> {
+            List<HashMap<String, String>> result = new ArrayList<>();
+            for (EnforceTimeoutDto et : ets) {
+                HashMap<String, String> etMap = new HashMap<>();
+                etMap.put("orgName", et.getOrgName());
+                etMap.put(et.getTaskCategory(), et.getTaskCount().toString());
+                result.add(etMap);
+            }
+            return result;
+        }, enforceTimeouts);
+
+        return R.ok(enforceTimeoutVo);
+    }
+
+    @ApiOperation(value = "检查时长")
+    @GetMapping("/enforcement/average-time")
+    public R<List<EnforceAverageTimeDto>> selectEnforceAverageTime() {
+        List<EnforceAverageTimeDto> enforceAverageTimes = statisticsMapper.selectEnforceAverageTime();
+        return R.ok(enforceAverageTimes);
+    }
 }

+ 8 - 0
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/mapper/StatisticsMapper.java

@@ -1,6 +1,9 @@
 package com.zfjg.manage.mapper;
 
 import com.zfjg.manage.api.dto.statistics.CommonQueryDto;
+import com.zfjg.manage.api.dto.statistics.EnforceAverageTimeDto;
+import com.zfjg.manage.api.dto.statistics.EnforceTimeoutDto;
+import com.zfjg.manage.api.dto.statistics.EnforcementProcess;
 import com.zfjg.manage.api.vo.DeptVo;
 import org.apache.ibatis.annotations.Mapper;
 
@@ -40,6 +43,7 @@ public interface StatisticsMapper {
 
     /**
      * 举报投诉核查(次)
+     *
      * @param commonQueryDto
      * @return int
      */
@@ -63,5 +67,9 @@ public interface StatisticsMapper {
      */
     int selectZfry(CommonQueryDto commonQueryDto);
 
+    List<EnforcementProcess> selectEnforcementProcess();
+
+    List<EnforceTimeoutDto>  selectEnforceTimeout();
 
+    List<EnforceAverageTimeDto> selectEnforceAverageTime();
 }

+ 0 - 3
zfjg-modules/zfjg-manage/src/main/java/com/zfjg/manage/sync/remote/DefaultLjZfjgSyncDataService.java

@@ -7,7 +7,6 @@ import cn.hutool.core.util.ReflectUtil;
 import cn.hutool.http.HttpUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.zfjg.common.core.constant.CacheConstants;
 import com.zfjg.common.core.enums.JobTypeEnum;
@@ -18,7 +17,6 @@ import com.zfjg.manage.api.domain.device.Device;
 import com.zfjg.manage.api.domain.enforce.job.EnforceJob;
 import com.zfjg.manage.api.domain.enforce.job.EnforceJobReport;
 import com.zfjg.manage.api.domain.enforce.obj.EnforceObj;
-import com.zfjg.manage.api.domain.enforce.obj.EnforceObjArchitecture;
 import com.zfjg.manage.api.domain.enforce.obj.EnforceObjTag;
 import com.zfjg.manage.api.domain.enforce.obj.Tag;
 import com.zfjg.manage.api.domain.enforce.video.EnforceVideo;
@@ -42,7 +40,6 @@ import com.zfjg.system.api.domain.SysDictData;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpEntity;
 import org.springframework.http.HttpHeaders;

+ 51 - 12
zfjg-modules/zfjg-manage/src/main/resources/mapper/StatisticsMapper.xml

@@ -4,12 +4,15 @@
 
 
     <select id="deptList" resultType="com.zfjg.manage.api.vo.DeptVo">
-        SELECT enforce_org_id, dept_name FROM sys_dept WHERE dept_name!='测试支队'
+        SELECT enforce_org_id, dept_name
+        FROM sys_dept
+        WHERE dept_name != '测试支队'
     </select>
 
 
     <select id="selectJdcc" resultType="int" parameterType="com.zfjg.manage.api.dto.statistics.CommonQueryDto">
-        SELECT COUNT(DISTINCT enforce_obj_id ) countObj FROM enforce_job  WHERE is_deleted = 0 AND job_type IN ('NORMAL','SPECIAL')
+        SELECT COUNT(DISTINCT enforce_obj_id ) countObj FROM enforce_job WHERE is_deleted = 0 AND job_type IN
+        ('NORMAL','SPECIAL')
         <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
             and DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') between #{startTime} and #{endTime}
         </if>
@@ -23,29 +26,65 @@
         </if>
     </select>
 
-<!--    举报投诉核查(次)-->
+    <!--    举报投诉核查(次)-->
     <select id="selectJbtsjc" resultType="int">
-        SELECT COUNT(id) countObj FROM enforce_job  WHERE is_deleted = 0 AND job_type IN ('REPORT')
+        SELECT COUNT(id) countObj FROM enforce_job WHERE is_deleted = 0 AND job_type IN ('REPORT')
         <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
             and DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') between #{startTime} and #{endTime}
         </if>
     </select>
 
 
-
-
-
-
-
-
     <select id="selectXgtz" resultType="int">
-            SELECT COUNT(id) FROM enforce_job WHERE immediately_file_id IS NOT NULL AND is_deleted = 0
+        SELECT COUNT(id) FROM enforce_job WHERE immediately_file_id IS NOT NULL AND is_deleted = 0
         <if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
             and DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') between #{startTime} and #{endTime}
         </if>
     </select>
 
     <select id="selectZfry" resultType="int">
-        SELECT COUNT(user_id) FROM sys_user WHERE `status` = 0 AND del_flag = 0
+        SELECT COUNT(user_id)
+        FROM sys_user
+        WHERE `status` = 0
+          AND del_flag = 0
     </select>
+
+    <resultMap id="EnforcementProcessResultMap" type="com.zfjg.manage.api.dto.statistics.EnforcementProcess">
+        <id 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.statistics.EnforceTimeoutDto">
+        <id property="orgName" column="执法机构"/>
+        <result property="taskCategory" column="任务类型"/>
+        <result property="taskCount" column="数量"/>
+    </resultMap>
+
+
+    <resultMap id="EnforceAverageTimeDtoResultMap" type="com.zfjg.manage.api.dto.statistics.EnforceAverageTimeDto">
+        <id property="orgName" column="执法机构"/>
+        <result property="orgAvgTime" column="支队平均时长"/>
+        <result property="headCorpsAvgTime" column="总队平均时长"/>
+    </resultMap>
+
+    <select id="selectEnforcementProcess" resultMap="EnforcementProcessResultMap">
+        select (select  enforce_org_name from enforce_organize where enforce_org_id = 执法机构id ) 执法机构,count(*) 检查数量,sum(关联数) 关联数,round(sum(关联数)/count(*)*100,2) 关联率   from (
+        SELECT 执法机构id,a.ID,a.`检查对象名称`,(SELECT count(*) FROM enforce_video  C WHERE c.is_deleted = 0 AND c.enfore_job_id = a.id) 视频数量,(case when (SELECT count(*) FROM enforce_video  C WHERE c.is_deleted = 0 AND c.enfore_job_id = a.id) &gt; 0 then '1' else '0' end)
+        关联数
+        FROM v_rw a  where 检查期限 &gt;= '2024-10-01' and 检查期限 &lt;= '2024-10-31' and 是否删除 = '正常'  and 执法机构id != '55c99876ec0f425aac6925a92cceeb17' and 状态= '已归档'
+        ) r  group by 执法机构id
+    </select>
+
+    <select id="selectEnforceTimeout" resultMap="EnforceTimeoutDtoResultMap">
+        select (select  enforce_org_name from enforce_organize where enforce_org_id = 执法机构id ) 执法机构,任务类型,count(*) 数量 from v_rw  where 是否已超时  = '已超时' and 检查期限 &gt;= '2024-10-01' and 检查期限 &lt;= '2024-10-31' and 是否删除 = '正常'   group by 任务类型,执法机构id
+    </select>
+
+    <select id="selectEnforceAverageTime" resultMap="EnforceAverageTimeDtoResultMap">
+        select * from (select  (select  enforce_org_name from enforce_organize where enforce_org_id = 执法机构id ) 执法机构,round(sum(检查耗时/1000/60)/count(*),2) 支队平均时长 from v_rw     where 状态= '已归档'  and 检查期限 &gt;= '2024-10-01' and 检查期限 &lt;= '2024-10-31' and 是否删除 = '正常' and 任务类型 = '日常检查'
+        group by 执法机构id) m  left join
+        (select round(sum(检查耗时/1000/60)/count(*),2)  总队平均时长  from v_rw     where 状态= '已归档'  and 检查期限 &gt;= '2024-10-01' and 检查期限 &lt;= '2024-10-31' and 是否删除 = '正常' and 任务类型 = '日常检查' and 检查耗时 &lt; 28800000) r   on 1=1
+    </select>
+
 </mapper>