hanfucheng 7 月之前
父節點
當前提交
5b22ccd38f

+ 33 - 0
src/main/java/com/sooka/sponest/lawenforcement/record/controller/LawenforcementViewController.java

@@ -73,4 +73,37 @@ public class LawenforcementViewController extends BaseController {
         lawenforcementViewBO.setDates(getLastMonths(12));
         return R.ok(lawenforcementViewService.getRecordYearMonth(lawenforcementViewBO));
     }
+
+    /*
+    * 数量统计
+    *
+    * @author 韩福成
+    * @date 2024/10/25 上午9:22
+    */
+    @GetMapping("/getNumberStat")
+    public R getNumberStat(LawenforcementViewBO lawenforcementViewBO) {
+        return R.ok(lawenforcementViewService.getNumberStat(lawenforcementViewBO));
+    }
+
+    /*
+    * 设备近五次执法信息
+    *
+    * @author 韩福成
+    * @date 2024/10/25 上午11:15
+    */
+    @GetMapping("/getEquipmentDetails")
+    public R getEquipmentDetails(LawenforcementViewBO lawenforcementViewBO) {
+        return R.ok(lawenforcementViewService.getEquipmentDetails(lawenforcementViewBO));
+    }
+
+    /*
+     * 执法信息
+     *
+     * @author 韩福成
+     * @date 2024/10/25 上午10:22
+     */
+    @GetMapping("/getLawenforcement")
+    public R getLawenforcement(LawenforcementViewBO lawenforcementViewBO) {
+        return R.ok(lawenforcementViewService.getLawenforcement(lawenforcementViewBO));
+    }
 }

+ 4 - 0
src/main/java/com/sooka/sponest/lawenforcement/record/domain/bo/LawenforcementViewBO.java

@@ -27,4 +27,8 @@ public class LawenforcementViewBO extends BaseBusinessEntity {
     private String endDate;// 结束日期
 
     private List<String> dates;
+
+    private String deviceId;//设备id
+
+    private String recordId;//工单id
 }

+ 9 - 0
src/main/java/com/sooka/sponest/lawenforcement/record/mapper/LawenforcementViewMapper.java

@@ -16,4 +16,13 @@ public interface LawenforcementViewMapper {
     List<Map<String, Object>> getRecordReport(LawenforcementViewBO lawenforcementViewBO);
 
     List<Map<String, Object>> getRecordYearMonth(LawenforcementViewBO lawenforcementViewBO);
+
+    List<Map<String, Object>> getNumberStat(LawenforcementViewBO lawenforcementViewBO);
+
+    Map<String, Object> getLawenforcement(LawenforcementViewBO lawenforcementViewBO);
+
+    List<Map<String, Object>> getPersonByRecordId(String recordId);
+
+    List<Map<String, Object>> getEquipmentDetails(LawenforcementViewBO lawenforcementViewBO);
+
 }

+ 6 - 0
src/main/java/com/sooka/sponest/lawenforcement/record/service/ILawenforcementViewService.java

@@ -16,4 +16,10 @@ public interface ILawenforcementViewService {
     List<Map<String, Object>> getRecordReport(LawenforcementViewBO lawenforcementViewBO);
 
     List<Map<String, Object>> getRecordYearMonth(LawenforcementViewBO lawenforcementViewBO);
+
+    List<Map<String, Object>> getNumberStat(LawenforcementViewBO lawenforcementViewBO);
+
+    Map<String, Object> getLawenforcement(LawenforcementViewBO lawenforcementViewBO);
+
+    List<Map<String, Object>> getEquipmentDetails(LawenforcementViewBO lawenforcementViewBO);
 }

+ 27 - 0
src/main/java/com/sooka/sponest/lawenforcement/record/service/impl/LawenforcementViewServiceImpl.java

@@ -1,5 +1,6 @@
 package com.sooka.sponest.lawenforcement.record.service.impl;
 
+import com.ruoyi.common.datascope.annotation.DataScopeMutiDept;
 import com.ruoyi.common.datascope.base.service.BaseService;
 import com.sooka.sponest.lawenforcement.record.domain.bo.LawenforcementViewBO;
 import com.sooka.sponest.lawenforcement.record.mapper.LawenforcementViewMapper;
@@ -33,4 +34,30 @@ public class LawenforcementViewServiceImpl extends BaseService implements ILawen
         setSookaDataBase(lawenforcementViewBO);
         return lawenforcementViewMapper.getRecordYearMonth(lawenforcementViewBO);
     }
+
+    @Override
+    @DataScopeMutiDept(deptAlias = "d")
+    public List<Map<String, Object>> getNumberStat(LawenforcementViewBO lawenforcementViewBO) {
+        setSookaDataBase(lawenforcementViewBO);
+        return lawenforcementViewMapper.getNumberStat(lawenforcementViewBO);
+    }
+
+    @Override
+    @DataScopeMutiDept(deptAlias = "d")
+    public Map<String, Object> getLawenforcement(LawenforcementViewBO lawenforcementViewBO) {
+        setSookaDataBase(lawenforcementViewBO);
+        Map<String, Object> lawenforcement = lawenforcementViewMapper.getLawenforcement(lawenforcementViewBO);
+        List<Map<String,Object>> personList = lawenforcementViewMapper.getPersonByRecordId(lawenforcementViewBO.getRecordId());
+        if (lawenforcement != null) {
+            lawenforcement.put("personList", personList);
+        }
+        return lawenforcement;
+    }
+
+    @Override
+    @DataScopeMutiDept(deptAlias = "d")
+    public List<Map<String, Object>> getEquipmentDetails(LawenforcementViewBO lawenforcementViewBO) {
+        setSookaDataBase(lawenforcementViewBO);
+        return lawenforcementViewMapper.getEquipmentDetails(lawenforcementViewBO);
+    }
 }

+ 100 - 1
src/main/resources/mapper/lawenforcement/LawenforcementViewMapper.xml

@@ -133,4 +133,103 @@
             GROUP BY d
         ) c ON c.d = a.d
     </select>
-</mapper>
+
+    <select id="getNumberStat" parameterType="LawenforcementViewBO" resultType="map">
+        SELECT
+            '备案数' NAME,
+            count( id ) num
+        FROM
+            lawenforcement_record a
+            left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        where 1 = 1  ${params.dataScope} UNION ALL
+        SELECT
+            '已执法' NAME,
+            count( id ) num
+        FROM
+            lawenforcement_record a
+            left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        WHERE record_status not IN ( 'lawenforcement_type_1', 'lawenforcement_type_9')
+        ${params.dataScope} UNION ALL
+        SELECT
+            '转立案' NAME,
+            count( id ) num
+        FROM
+            lawenforcement_case a
+            left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        where 1 = 1 ${params.dataScope} UNION ALL
+        SELECT
+            '受理完成' NAME,
+            count( id ) num
+        FROM
+            lawenforcement_case a
+            left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        WHERE state IN ( 'state_3', 'state_4' )
+            ${params.dataScope} UNION ALL
+        SELECT
+            '协商一致' NAME,
+            count( id ) num
+        FROM
+            lawenforcement_case a
+            left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        WHERE
+            state = 'state_5'
+            ${params.dataScope}
+    </select>
+
+    <select id="getLawenforcement" parameterType="LawenforcementViewBO" resultType="map">
+        SELECT
+            a.id,
+            a.job_type jobType,
+            b.dict_label jobTypeLabel,
+            a.job_name jobName,
+            a.check_object_name checkObjectName,
+            FROM_UNIXTIME( a.check_start_time / 1000, '%Y-%m-%d %h:%m:%s' ) checkStartTime,
+            FROM_UNIXTIME( a.check_end_time / 1000, '%Y-%m-%d %h:%m:%s' ) checkEndTime,
+            a.scan_name scanName,
+            FROM_UNIXTIME( a.scan_time / 1000, '%Y-%m-%d %h:%m:%s' ) scanTime,
+            case WHEN a.is_last = 0 then '否' WHEN a.is_last = 1 THEN '是' end isLast,
+            case WHEN a.is_cross_dept = 0 then '否' WHEN a.is_cross_dept = 1 THEN '是' end isCrossDept
+        FROM
+            lawenforcement_record a
+            LEFT JOIN ${database_system}.sys_dict_data b ON a.job_type = b.dict_value AND b.dict_type = 'lawenforcement_jobType'
+            left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        where
+             a.id = #{recordId}
+    </select>
+
+    <select id="getPersonByRecordId" parameterType="LawenforcementViewBO" resultType="map">
+        SELECT
+            a.id,
+            a.person_name personName,
+            a.person_code personCode,
+            a.dept_name deptName,
+            case WHEN a.main_person = 0 then '否' WHEN a.main_person = 1 THEN '是' end mainPerson
+        FROM
+            lawenforcement_person a
+        WHERE record_id = #{recordId}
+    </select>
+
+    <select id="getEquipmentDetails" parameterType="LawenforcementViewBO" resultType="map">
+        SELECT
+            a.id,
+            a.check_object_name checkObjectName,
+            b.dept_name deptName,
+            b.person_name personName,
+            FROM_UNIXTIME( a.check_start_time / 1000, '%Y-%m-%d %h:%m:%s' ) checkStartTime,
+            case WHEN a.is_last = 0 then '否' WHEN a.is_last = 1 THEN '是' end isLast,
+            case WHEN a.is_cross_dept = 0 then '否' WHEN a.is_cross_dept = 1 THEN '是' end isCrossDept
+        FROM
+            lawenforcement_record a
+            left join lawenforcement_person b on a.id = b.record_id and b.main_person = '1'
+            left join ${database_system}.sys_dept d on d.dept_id = a.dept_id
+        WHERE 1=1
+        <choose>
+            <when test="deviceId != null and deviceId != ''">
+                and a.device_id = #{deviceId}
+            </when>
+            <otherwise>and a.record_status in ('lawenforcement_type_4','lawenforcement_type_6')</otherwise>
+        </choose>
+            ${params.dataScope}
+        <if test="deviceId != null  and deviceId != ''"> LIMIT 5 </if>
+    </select>
+</mapper>