From 22f138ca6a2141342387be6a1aa885503ccf78a7 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Mon, 13 Mar 2023 10:37:40 +0800
Subject: [PATCH] 大屏接口微服务合并

---
 blade-service/blade-dp/src/main/java/org/springblade/modules/DpApplication.java                                        |   12 
 blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java                          |    8 
 blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/IFireWarningService.java                       |    4 
 blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java                  |    6 
 blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/MilitaryLocalCoordinationMapper.xml             |   97 +++++++
 blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/MilitaryLocalCoordinationMapper.java            |   20 +
 pom.xml                                                                                                                |    1 
 blade-service/blade-dp/src/main/java/org/springblade/modules/dp/controller/ComprehensiveStatisticsController.java      |   97 +++++++
 blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/impl/ComprehensiveStatisticsServiceImpl.java   |   50 +++
 blade-service/blade-dp/src/main/java/org/springblade/modules/dp/controller/FireWarningController.java                  |   36 ++
 blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/impl/FireWarningServiceImpl.java               |   13 +
 blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java                                   |    7 
 blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/IMilitaryLocalCoordinationService.java         |   18 +
 blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/FireWarningMapper.xml                           |    6 
 blade-service/blade-dp/src/main/resources/application-dev.yml                                                          |   11 
 blade-service/blade-dp/src/main/java/org/springblade/modules/dp/controller/MilitaryLocalCoordinationController.java    |   94 +++++++
 blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/FireWarningMapper.java                          |    7 
 blade-service/blade-dp/pom.xml                                                                                         |   68 +++++
 blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/ComprehensiveStatisticsMapper.java              |   19 +
 blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/ComprehensiveStatisticsMapper.xml               |   80 ++++++
 blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/impl/MilitaryLocalCoordinationServiceImpl.java |   45 +++
 blade-service-api/blade-dp-api/pom.xml                                                                                 |   17 +
 blade-service/pom.xml                                                                                                  |    1 
 blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/IComprehensiveStatisticsService.java           |   37 ++
 blade-service-api/pom.xml                                                                                              |    1 
 25 files changed, 755 insertions(+), 0 deletions(-)

diff --git a/blade-service-api/blade-dp-api/pom.xml b/blade-service-api/blade-dp-api/pom.xml
new file mode 100644
index 0000000..162af78
--- /dev/null
+++ b/blade-service-api/blade-dp-api/pom.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>blade-service-api</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>blade-dp-api</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+</project>
diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java
index e791b3b..ab4e3c4 100644
--- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java
+++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClient.java
@@ -18,6 +18,7 @@
 
 import org.springblade.core.launch.constant.AppConstant;
 import org.springblade.core.tool.api.R;
+import org.springblade.system.dto.DeptDTO;
 import org.springblade.system.entity.*;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -283,4 +284,11 @@
 	@GetMapping(REGION)
 	R<Region> getRegion(@RequestParam("code") String code);
 
+	/**
+	 * 获取各个单位下的用户
+	 * @return
+	 */
+	@GetMapping("/getUserGroupByDept")
+	R<List<DeptDTO>> getUserGroupByDept();
+
 }
diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java
index 069878c..ae2e10c 100644
--- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java
+++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/feign/ISysClientFallback.java
@@ -17,6 +17,7 @@
 package org.springblade.system.feign;
 
 import org.springblade.core.tool.api.R;
+import org.springblade.system.dto.DeptDTO;
 import org.springblade.system.entity.*;
 import org.springframework.stereotype.Component;
 
@@ -150,5 +151,10 @@
 		return R.fail("获取数据失败");
 	}
 
+	@Override
+	public R<List<DeptDTO>> getUserGroupByDept() {
+		return R.fail("获取数据失败");
+	}
+
 
 }
diff --git a/blade-service-api/pom.xml b/blade-service-api/pom.xml
index 4d0a132..cafa6da 100644
--- a/blade-service-api/pom.xml
+++ b/blade-service-api/pom.xml
@@ -21,6 +21,7 @@
         <module>blade-scope-api</module>
         <module>blade-system-api</module>
         <module>blade-user-api</module>
+        <module>blade-dp-api</module>
     </modules>
 
     <dependencies>
diff --git a/blade-service/blade-dp/pom.xml b/blade-service/blade-dp/pom.xml
new file mode 100644
index 0000000..d325e65
--- /dev/null
+++ b/blade-service/blade-dp/pom.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>blade-service</artifactId>
+        <groupId>org.springblade</groupId>
+        <version>3.0.1.RELEASE</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>blade-dp</artifactId>
+    <name>${project.artifactId}</name>
+    <version>${bladex.project.version}</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-core-boot</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-starter-swagger</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-fire</artifactId>
+            <version>3.0.1.RELEASE</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-system-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springblade</groupId>
+            <artifactId>blade-dp-api</artifactId>
+            <version>${bladex.project.version}</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>dockerfile-maven-plugin</artifactId>
+                <configuration>
+                    <username>${docker.username}</username>
+                    <password>${docker.password}</password>
+                    <repository>${docker.registry.url}/${docker.namespace}/${project.artifactId}</repository>
+                    <tag>${project.version}</tag>
+                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
+                    <buildArgs>
+                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
+                    </buildArgs>
+                    <skip>false</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-antrun-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/DpApplication.java b/blade-service/blade-dp/src/main/java/org/springblade/modules/DpApplication.java
new file mode 100644
index 0000000..d1a4275
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/DpApplication.java
@@ -0,0 +1,12 @@
+package org.springblade.modules;
+
+import org.springblade.core.cloud.client.BladeCloudApplication;
+import org.springblade.core.launch.BladeApplication;
+import org.springblade.core.launch.constant.AppConstant;
+
+@BladeCloudApplication
+public class DpApplication {
+	public static void main(String[] args) {
+		BladeApplication.run(AppConstant.APPLICATION_NAME_PREFIX.concat("dp"), DpApplication.class, args);
+	}
+}
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/controller/ComprehensiveStatisticsController.java b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/controller/ComprehensiveStatisticsController.java
new file mode 100644
index 0000000..8a2be1c
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/controller/ComprehensiveStatisticsController.java
@@ -0,0 +1,97 @@
+package org.springblade.modules.dp.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.api.R;
+import org.springblade.modules.dp.service.IComprehensiveStatisticsService;
+import org.springblade.modules.fire.service.IFireService;
+import org.springblade.modules.fire.vo.FireVO;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * 大屏综合统计 控制器
+ *
+ * @author GuoShiLong
+ * @since 2023-03-08
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("dp/comprehensiveStatistics")
+@Api(value = "综合统计", tags = "综合统计接口")
+public class ComprehensiveStatisticsController extends BladeController {
+	private IComprehensiveStatisticsService comprehensiveStatisticsService;
+	private IFireService fireService;
+
+	/**
+	 * 数据概览
+	 */
+	@GetMapping("/dataOverview")
+	@ApiOperation(value = "数据概览", notes = "数据概览")
+	public R getDataOverview() {
+		List<HashMap<String,String>> dataStatistics = comprehensiveStatisticsService.getDataOverview();
+		return R.data(dataStatistics);
+	}
+
+	/**
+	 * 入驻单位统计
+	 */
+	@GetMapping("/deptStatistics")
+	@ApiOperation(value = "入驻单位统计", notes = "入驻单位统计")
+	public R getDeptStatistics() {
+		List<HashMap<String,String>> deptStatistics = comprehensiveStatisticsService.getDeptStatistics();
+		return R.data(deptStatistics);
+	}
+
+	/**
+	 * 实时火警事件
+	 * @param time 时间
+	 * @return
+	 */
+	@GetMapping("/realtimeFireAlarmIncident")
+	@ApiOperation(value = "实时火警事件", notes = "实时火警事件")
+	public R getRealtimeFireAlarmIncident(@RequestParam(name="time", defaultValue="48")String time) {
+		List<FireVO> fireList = fireService.getRealtime(time);
+		return R.data(fireList);
+	}
+
+	/**
+	 * 火警事件来源
+	 */
+	@GetMapping("/fireCallSource")
+	@ApiOperation(value = "火警事件来源", notes = "火警事件来源")
+	public R getFireCallSource() {
+		List fireCallSource = comprehensiveStatisticsService.getFireCallSource();
+		return R.data(fireCallSource);
+	}
+
+	/**
+	 * 易发区统计
+	 * @param regionCode 区域编码 36 3601 360124,三种任意一种
+	 * @param limit 限制前几
+	 * @return
+	 */
+	@GetMapping("/proneAreasStatistics")
+	@ApiOperation(value = "易发区统计", notes = "易发区统计")
+	public R getProneAreasStatistics(String regionCode, @RequestParam(name="limit", defaultValue="15")Integer limit) {
+		List proneAreasStatistics = comprehensiveStatisticsService.getProneAreasStatistics(regionCode,limit);
+		return R.data(proneAreasStatistics);
+	}
+
+	/**
+	 * 火警上报趋势
+	 */
+	@GetMapping("/fireReportingTrend")
+	@ApiOperation(value = "火警上报趋势", notes = "火警上报趋势")
+	public R getFireReportingTrend() {
+		List<HashMap<String,String>> FireReportingTrend = comprehensiveStatisticsService.getFireReportingTrend();
+		return R.data(FireReportingTrend);
+	}
+}
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/controller/FireWarningController.java b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/controller/FireWarningController.java
new file mode 100644
index 0000000..e89b644
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/controller/FireWarningController.java
@@ -0,0 +1,36 @@
+package org.springblade.modules.dp.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.tool.api.R;
+import org.springblade.modules.fire.service.IFireService;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 大屏防火预警 控制器
+ *
+ * @author GuoShiLong
+ * @since 2023-03-08
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("dp/fireWarning")
+@Api(value = "防火预警", tags = "防火预警接口")
+public class FireWarningController extends BladeController {
+//	private IFireWarningService fireWarningService;
+	private IFireService fireService;
+
+	/**
+	 * 预警台账
+	 */
+	@GetMapping("/earlyWarningLedger")
+	@ApiOperation(value = "预警台账", notes = "预警台账")
+	public R getEarlyWarningLedger() {
+
+		return null;
+	}
+}
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/controller/MilitaryLocalCoordinationController.java b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/controller/MilitaryLocalCoordinationController.java
new file mode 100644
index 0000000..5936405
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/controller/MilitaryLocalCoordinationController.java
@@ -0,0 +1,94 @@
+package org.springblade.modules.dp.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.modules.dp.service.IMilitaryLocalCoordinationService;
+import org.springblade.modules.fire.service.IFireService;
+import org.springblade.modules.fire.vo.FireVO;
+import org.springblade.modules.fireSupplement.entity.FireSupplementEntity;
+import org.springblade.modules.fireSupplement.service.IFireSupplementService;
+import org.springblade.system.dto.DeptDTO;
+import org.springblade.system.feign.ISysClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * 大屏军地协同 控制器
+ *
+ * @author GuoShiLong
+ * @since 2023-03-08
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("dp/militaryLocalCoordination")
+@Api(value = "军地协同", tags = "军地协同接口")
+public class MilitaryLocalCoordinationController extends BladeController {
+	private final IFireService fireService;
+	private final IFireSupplementService fireSupplementService;
+	private final IMilitaryLocalCoordinationService militaryLocalCoordinationService;
+
+	private final ISysClient sysClient;
+
+	/**
+	 * 火警事件
+	 */
+	@GetMapping("/fireAlarmIncident")
+	@ApiOperation(value = "火警事件", notes = "火警事件")
+	public R<IPage<FireVO>> getEarlyWarningLedger(FireVO fire, Query query) {
+		IPage<FireVO> pages = fireService.selectFirePage(Condition.getPage(query), fire);
+		return R.data(pages);
+	}
+
+	/**
+	 * 灾后评估
+	 */
+	@GetMapping("/disasterAssessment")
+	@ApiOperation(value = "详情", notes = "传入fireSupplement")
+	public R<FireSupplementEntity> detail(FireSupplementEntity fireSupplement) {
+		FireSupplementEntity detail = fireSupplementService.getOne(Condition.getQueryWrapper(fireSupplement));
+		return R.data(detail);
+	}
+
+	/**
+	 * 视频会商,传部门和部门下的人(远程调用)
+	 */
+	@GetMapping("/getUserGroupByDept")
+	@ApiOperation(value = "视频会商", notes = "视频会商")
+	public R getUserGroupByDept() {
+		return sysClient.getUserGroupByDept();
+	}
+
+	/**
+	 * 周边查询
+	 * @param lon 经度
+	 * @param lat 纬度
+	 * @param distance 查询范围
+	 * @return
+	 */
+	@GetMapping("/surroundingQuery")
+	@ApiOperation(value = "周边查询", notes = "周边查询")
+	public R getSurroundingQueryList(String lon,String lat,String distance) {
+		HashMap<String, List<HashMap<String, String>>> surroundingQueryList = militaryLocalCoordinationService.getSurroundingQueryList(lon,lat,distance);
+		return R.data(surroundingQueryList);
+	}
+
+	/**
+	 * 导出火灾报告
+	 */
+	@GetMapping("export-fire-report")
+	@ApiOperation(value = "导出火灾报告", notes = "传入火灾id")
+	public void exportUser(String fireId,HttpServletResponse response) {
+		militaryLocalCoordinationService.getFireAllDetail(fireId,response);
+	}
+}
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/ComprehensiveStatisticsMapper.java b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/ComprehensiveStatisticsMapper.java
new file mode 100644
index 0000000..2b7e4e3
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/ComprehensiveStatisticsMapper.java
@@ -0,0 +1,19 @@
+package org.springblade.modules.dp.mapper;
+
+import org.apache.ibatis.annotations.Param;
+
+import java.util.HashMap;
+import java.util.List;
+
+public interface ComprehensiveStatisticsMapper {
+
+	List<HashMap<String, String>> getDataOverview();
+
+	List<HashMap<String, String>> getDeptStatistics();
+
+	List<HashMap<String,String>> getFireCallSource();
+
+    List<HashMap<String, String>> getFireReportingTrend();
+
+	List<HashMap<String, String>> getProneAreasStatistics(@Param("regionCode") String regionCode,@Param("limit") Integer limit);
+}
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/ComprehensiveStatisticsMapper.xml b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/ComprehensiveStatisticsMapper.xml
new file mode 100644
index 0000000..6cad202
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/ComprehensiveStatisticsMapper.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.modules.dp.mapper.ComprehensiveStatisticsMapper">
+
+
+    <select id="getDataOverview" resultType="java.util.HashMap">
+        SELECT a.deptNumber,b.policeCarNumber,c.deviceNumber,d.outNumber
+        FROM(
+		    ( SELECT COUNT(*) AS deptNumber FROM blade_dept dept WHERE dept.is_deleted = 0 ) a,
+		    ( SELECT COUNT(*) AS policeCarNumber FROM sys_vehicle vehicle WHERE vehicle.is_deleted = 0 ) b,
+	        ( SELECT COUNT(*) AS deviceNumber FROM sys_device device WHERE device.is_deleted = 0 ) c,
+			( SELECT COUNT(*) AS outNumber FROM sys_fire fire WHERE fire.is_deleted = 0 AND fire.status !=1 ) d
+	    );
+    </select>
+
+    <select id="getDeptStatistics" resultType="java.util.HashMap">
+        SELECT DISTINCT a.city cityCode,a.cityNumber,region.city_name cityName
+        FROM
+        (
+            SELECT dept.city,COUNT(*) AS cityNumber
+            FROM blade_dept dept WHERE dept.is_deleted = 0
+            GROUP BY dept.city
+        ) a LEFT JOIN blade_region region ON region.city_code = a.city
+    </select>
+    <select id="getFireCallSource" resultType="java.util.HashMap">
+        SELECT
+            CONVERT(COUNT(*),CHAR) AS number,
+            fire.find_way findWay,
+            biz.dict_value findWayName
+        FROM
+            sys_fire fire
+            LEFT JOIN blade_dict_biz biz ON biz.dict_key = fire.find_way AND biz.`code` = 'fire_find_way'
+        WHERE
+            fire.is_deleted = 0
+        GROUP BY
+            fire.find_way
+    </select>
+    <select id="getFireReportingTrend" resultType="java.util.HashMap">
+        SELECT
+            m.id month,IFNULL(b.number,0) number
+        FROM
+            (
+            SELECT 1 AS id UNION
+            SELECT 2 UNION
+            SELECT 3 UNION
+            SELECT 4 UNION
+            SELECT 5 UNION
+            SELECT 6 UNION
+            SELECT 7 UNION
+            SELECT 8 UNION
+            SELECT 9 UNION
+            SELECT 10 UNION
+            SELECT 11 UNION
+            SELECT 12
+            ) m
+        LEFT JOIN
+        (
+            SELECT MONTH(fire.alarm_time) month,COUNT(*) number
+            FROM sys_fire fire
+            WHERE fire.is_deleted = 0
+            GROUP BY MONTH ( fire.alarm_time )
+        ) b ON b.`month` = m.id
+        ORDER BY month
+    </select>
+
+    <select id="getProneAreasStatistics" resultType="java.util.HashMap">
+        SELECT
+            address,COUNT(*) times
+        FROM
+            `sys_fire`
+        WHERE
+            is_deleted = 0
+            AND find_way = 1
+            AND FIND_IN_SET(#{regionCode},REPLACE(SUBSTRING_INDEX(SUBSTRING_INDEX(location,'[',-1),']',1),'"',''))
+        GROUP BY
+            address
+        ORDER BY times DESC
+	        LIMIT #{limit}
+    </select>
+</mapper>
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/FireWarningMapper.java b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/FireWarningMapper.java
new file mode 100644
index 0000000..1a41b1f
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/FireWarningMapper.java
@@ -0,0 +1,7 @@
+package org.springblade.modules.dp.mapper;
+
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface FireWarningMapper {
+}
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/FireWarningMapper.xml b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/FireWarningMapper.xml
new file mode 100644
index 0000000..0f7189a
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/FireWarningMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.modules.dp.mapper.FireWarningMapper">
+
+
+</mapper>
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/MilitaryLocalCoordinationMapper.java b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/MilitaryLocalCoordinationMapper.java
new file mode 100644
index 0000000..b1fb94e
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/MilitaryLocalCoordinationMapper.java
@@ -0,0 +1,20 @@
+package org.springblade.modules.dp.mapper;
+
+import org.apache.ibatis.annotations.Param;
+import org.springblade.modules.fireSupplement.vo.FireSupplementVO;
+import org.springframework.stereotype.Repository;
+
+import java.util.HashMap;
+import java.util.List;
+
+@Repository
+public interface MilitaryLocalCoordinationMapper {
+
+	List<HashMap<String, String>> gerSurroundingDeptList(@Param("lon") String lon, @Param("lat") String lat, @Param("distance") String distance);
+
+	List<HashMap<String, String>> gerSurroundingDeviceList(@Param("lon") String lon, @Param("lat") String lat, @Param("distance") String distance);
+
+	List<HashMap<String, String>> gerSurroundingVehicleList(@Param("lon") String lon, @Param("lat") String lat, @Param("distance") String distance);
+
+	FireSupplementVO getFireAllDetail(@Param("fireId") String fireId);
+}
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/MilitaryLocalCoordinationMapper.xml b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/MilitaryLocalCoordinationMapper.xml
new file mode 100644
index 0000000..05e938f
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/mapper/MilitaryLocalCoordinationMapper.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.modules.dp.mapper.MilitaryLocalCoordinationMapper">
+
+    <select id="gerSurroundingDeptList" resultType="java.util.HashMap">
+        SELECT id,dept_name,lon,lat,
+        round(6378.138 * 2 * asin(sqrt(pow( sin(( lat * pi() / 180 - #{lat} * pi() / 180 ) / 2 ), 2 ) + cos( lat * pi() / 180 ) * cos( #{lat} * pi() / 180 ) * pow( sin(( lon * pi() / 180 - #{lon} * pi() / 180 ) / 2 ), 2 ))) * 1000) distance
+        FROM `blade_dept`
+        WHERE is_deleted = 0
+        AND round(6378.138 * 2 * asin(sqrt(pow( sin(( lat * pi() / 180 - #{lat} * pi() / 180 ) / 2 ), 2 ) + cos( lat * pi() / 180 ) * cos( #{lat} * pi() / 180 ) * pow( sin(( lon * pi() / 180 - #{lon} * pi() / 180 ) / 2 ), 2 ))) * 1000)  &lt;= #{distance}
+    </select>
+
+    <select id="gerSurroundingDeviceList" resultType="java.util.HashMap">
+         SELECT id,name,lon,lat,
+        round(6378.138 * 2 * asin(sqrt(pow( sin(( lat * pi() / 180 - #{lat} * pi() / 180 ) / 2 ), 2 ) + cos( lat * pi() / 180 ) * cos( #{lat} * pi() / 180 ) * pow( sin(( lon * pi() / 180 - #{lon} * pi() / 180 ) / 2 ), 2 ))) * 1000) distance
+        FROM sys_device
+        WHERE is_deleted = 0
+        AND round(6378.138 * 2 * asin(sqrt(pow( sin(( lat * pi() / 180 - #{lat} * pi() / 180 ) / 2 ), 2 ) + cos( lat * pi() / 180 ) * cos( #{lat} * pi() / 180 ) * pow( sin(( lon * pi() / 180 - #{lon} * pi() / 180 ) / 2 ), 2 ))) * 1000)  &lt;= #{distance}
+    </select>
+
+    <select id="gerSurroundingVehicleList" resultType="java.util.HashMap">
+        SELECT id,license_plate,lon,lat,
+        round(6378.138 * 2 * asin(sqrt(pow( sin(( lat * pi() / 180 - #{lat} * pi() / 180 ) / 2 ), 2 ) + cos( lat * pi() / 180 ) * cos( #{lat} * pi() / 180 ) * pow( sin(( lon * pi() / 180 - #{lon} * pi() / 180 ) / 2 ), 2 ))) * 1000) distance
+        FROM sys_vehicle
+        WHERE is_deleted = 0
+        AND round(6378.138 * 2 * asin(sqrt(pow( sin(( lat * pi() / 180 - #{lat} * pi() / 180 ) / 2 ), 2 ) + cos( lat * pi() / 180 ) * cos( #{lat} * pi() / 180 ) * pow( sin(( lon * pi() / 180 - #{lon} * pi() / 180 ) / 2 ), 2 ))) * 1000)  &lt;= #{distance}
+    </select>
+
+    <resultMap id="fireAllDetail" type="org.springblade.modules.fireSupplement.vo.FireSupplementVO">
+        <result column="id" property="id"/>
+        <result column="fire_id" property="fireId"/>
+        <result column="lon" property="lon"/>
+        <result column="lat" property="lat"/>
+        <result column="alarm_time" property="alarmTime"/>
+        <result column="province_name" property="province"/>
+        <result column="city_name" property="city"/>
+        <result column="district_name" property="district"/>
+        <result column="sumInjuryPerson" property="sumInjuryPerson"/>
+        <result column="fire_reason" property="fireReason"/>
+        <result column="tree_species" property="treeSpecies"/>
+        <result column="extinguishing_time" property="extinguishingTime"/>
+        <result column="perpetrator" property="perpetrator"/>
+        <result column="sum_person" property="sumPerson"/>
+        <result column="punish_person" property="punishPerson"/>
+        <result column="situation" property="situation"/>
+        <result column="minor_injury_person" property="minorInjuryPerson"/>
+        <result column="serious_injury_person" property="seriousInjuryPerson"/>
+        <result column="death_person" property="deathPerson"/>
+        <result column="economic_loss" property="economicLoss" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
+        <result column="damage_area" property="damageArea" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
+        <result column="police_resources" property="policeResources" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
+    </resultMap>
+
+    <select id="getFireAllDetail" resultMap="fireAllDetail">
+        SELECT
+            sup.id,
+            sup.fire_id,
+            fire.location,
+            fire.lon,
+            fire.lat,
+            fire.alarm_time,
+
+            region.province_name,
+            region.city_name,
+            region.district_name,
+
+            sup.extinguishing_time,
+            sup.tree_species,
+            sup.fire_reason,
+            sup.perpetrator,
+            sup.damage_area,
+            sup.economic_loss,
+            (sup.minor_injury_person+sup.serious_injury_person+sup.death_person) as sumInjuryPerson,
+            sup.minor_injury_person,
+            sup.serious_injury_person,
+            sup.death_person,
+            sup.police_resources,
+            sup.situation,
+            sup.sum_person,
+            sup.punish_person
+        FROM
+            sys_fire fire
+            LEFT JOIN sys_fire_supplement sup ON sup.fire_id = fire.id
+            LEFT JOIN
+            (
+                    SELECT
+                            id,
+                            SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(SUBSTRING_INDEX(SUBSTRING_INDEX(location,'[',-1),']',1),'"',''),',',1),',',-1) provinceCode,
+                            SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(SUBSTRING_INDEX(SUBSTRING_INDEX(location,'[',-1),']',1),'"',''),',',2),',',-1) cityCode,
+                            SUBSTRING_INDEX(SUBSTRING_INDEX(REPLACE(SUBSTRING_INDEX(SUBSTRING_INDEX(location,'[',-1),']',1),'"',''),',',3),',',-1) districtCode
+                    FROM sys_fire WHERE is_deleted = 0 AND id = #{fireId}
+            ) r ON fire.id = r.id
+            LEFT JOIN blade_region region ON region.code = r.districtCode
+        WHERE
+            fire.id = #{fireId}
+    </select>
+</mapper>
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/IComprehensiveStatisticsService.java b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/IComprehensiveStatisticsService.java
new file mode 100644
index 0000000..81d8e62
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/IComprehensiveStatisticsService.java
@@ -0,0 +1,37 @@
+package org.springblade.modules.dp.service;
+
+import java.util.HashMap;
+import java.util.List;
+
+public interface IComprehensiveStatisticsService {
+	/**
+	 * 获取数据概览
+	 * @return
+	 */
+	List<HashMap<String, String>> getDataOverview();
+
+	/**
+	 * 获取入驻单位统计
+	 * @return
+	 */
+	List<HashMap<String, String>> getDeptStatistics();
+
+	/**
+	 * 获取火警事件来源
+	 * @return
+	 */
+	List getFireCallSource();
+
+	/**
+	 * 获取火警上报趋势
+	 * @return
+	 */
+	List<HashMap<String, String>> getFireReportingTrend();
+
+	/**
+	 * 获取易发区统计数据
+	 * @param regionCode 区域编号
+	 * @return
+	 */
+	List<HashMap<String, String>> getProneAreasStatistics(String regionCode,Integer limit);
+}
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/IFireWarningService.java b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/IFireWarningService.java
new file mode 100644
index 0000000..18b2b86
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/IFireWarningService.java
@@ -0,0 +1,4 @@
+package org.springblade.modules.dp.service;
+
+public interface IFireWarningService {
+}
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/IMilitaryLocalCoordinationService.java b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/IMilitaryLocalCoordinationService.java
new file mode 100644
index 0000000..227af4b
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/IMilitaryLocalCoordinationService.java
@@ -0,0 +1,18 @@
+package org.springblade.modules.dp.service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.HashMap;
+import java.util.List;
+
+public interface IMilitaryLocalCoordinationService {
+	/**
+	 * 获取周边数据
+	 * @param lon
+	 * @param lat
+	 * @param distance
+	 * @return
+	 */
+	HashMap<String, List<HashMap<String, String>>> getSurroundingQueryList(String lon,String lat,String distance);
+
+	void getFireAllDetail(String fireId, HttpServletResponse response);
+}
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/impl/ComprehensiveStatisticsServiceImpl.java b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/impl/ComprehensiveStatisticsServiceImpl.java
new file mode 100644
index 0000000..1a42dd9
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/impl/ComprehensiveStatisticsServiceImpl.java
@@ -0,0 +1,50 @@
+package org.springblade.modules.dp.service.impl;
+
+import lombok.AllArgsConstructor;
+import org.springblade.modules.dp.mapper.ComprehensiveStatisticsMapper;
+import org.springblade.modules.dp.service.IComprehensiveStatisticsService;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+@AllArgsConstructor
+public class ComprehensiveStatisticsServiceImpl  implements IComprehensiveStatisticsService {
+
+	private ComprehensiveStatisticsMapper comprehensiveStatisticsMapper;
+
+	@Override
+	public List<HashMap<String, String>> getDataOverview() {
+		return comprehensiveStatisticsMapper.getDataOverview();
+	}
+
+	@Override
+	public List<HashMap<String, String>> getDeptStatistics() {
+		return comprehensiveStatisticsMapper.getDeptStatistics();
+	}
+
+	@Override
+	public List getFireCallSource() {
+		List list = new ArrayList();
+		Map<String, Integer> m1 = new HashMap<>(16);
+		List<HashMap<String,String>> fireCallSource = comprehensiveStatisticsMapper.getFireCallSource();
+		int number = fireCallSource.stream().mapToInt(e -> Integer.parseInt(e.get("number"))).sum();
+		m1.put("sum",number);
+		list.add(fireCallSource);
+		list.add(m1);
+		return list;
+	}
+
+	@Override
+	public List<HashMap<String, String>> getFireReportingTrend() {
+		return comprehensiveStatisticsMapper.getFireReportingTrend();
+	}
+
+	@Override
+	public List getProneAreasStatistics(String regionCode,Integer limit) {
+		return comprehensiveStatisticsMapper.getProneAreasStatistics(regionCode,limit);
+	}
+}
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/impl/FireWarningServiceImpl.java b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/impl/FireWarningServiceImpl.java
new file mode 100644
index 0000000..b4250ea
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/impl/FireWarningServiceImpl.java
@@ -0,0 +1,13 @@
+package org.springblade.modules.dp.service.impl;
+
+import org.springblade.modules.dp.mapper.FireWarningMapper;
+import org.springblade.modules.dp.service.IFireWarningService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class FireWarningServiceImpl implements IFireWarningService {
+	@Autowired
+	private FireWarningMapper fireWarningMapper;
+
+}
diff --git a/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/impl/MilitaryLocalCoordinationServiceImpl.java b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/impl/MilitaryLocalCoordinationServiceImpl.java
new file mode 100644
index 0000000..5cbbec4
--- /dev/null
+++ b/blade-service/blade-dp/src/main/java/org/springblade/modules/dp/service/impl/MilitaryLocalCoordinationServiceImpl.java
@@ -0,0 +1,45 @@
+package org.springblade.modules.dp.service.impl;
+
+import org.springblade.modules.dp.mapper.MilitaryLocalCoordinationMapper;
+import org.springblade.modules.dp.service.IMilitaryLocalCoordinationService;
+import org.springblade.modules.fireSupplement.vo.FireSupplementVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+
+@Service
+public class MilitaryLocalCoordinationServiceImpl implements IMilitaryLocalCoordinationService {
+	@Autowired
+	private MilitaryLocalCoordinationMapper militaryLocalCoordinationMapper;
+
+	@Override
+	public HashMap<String, List<HashMap<String, String>>> getSurroundingQueryList(String lon, String lat, String distance) {
+		HashMap<String,List<HashMap<String,String>>> query = new HashMap<>();
+
+		List<HashMap<String,String>> deptList = militaryLocalCoordinationMapper.gerSurroundingDeptList(lon,lat,distance);
+		query.put("dept",deptList);
+
+		List<HashMap<String,String>> deviceList = militaryLocalCoordinationMapper.gerSurroundingDeviceList(lon,lat,distance);
+		query.put("device",deviceList);
+
+		List<HashMap<String,String>> vehicleList = militaryLocalCoordinationMapper.gerSurroundingVehicleList(lon,lat,distance);
+		query.put("vehicle",vehicleList);
+
+		return query;
+	}
+
+	@Override
+	public void getFireAllDetail(String fireId, HttpServletResponse response){
+		FireSupplementVO fireAllDetail = militaryLocalCoordinationMapper.getFireAllDetail(fireId);
+
+	}
+
+
+
+	public void excelExport(String fileName,HttpServletResponse response,List data) throws IOException {
+	}
+}
diff --git a/blade-service/blade-dp/src/main/resources/application-dev.yml b/blade-service/blade-dp/src/main/resources/application-dev.yml
new file mode 100644
index 0000000..69ea864
--- /dev/null
+++ b/blade-service/blade-dp/src/main/resources/application-dev.yml
@@ -0,0 +1,11 @@
+#服务器端口
+server:
+  port: 8222
+
+#数据源配置
+spring:
+  datasource:
+    url: ${blade.datasource.dev.url}
+    username: ${blade.datasource.dev.username}
+    password: ${blade.datasource.dev.password}
+
diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java b/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java
index 24898fa..99b9648 100644
--- a/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java
+++ b/blade-service/blade-system/src/main/java/org/springblade/system/feign/SysClient.java
@@ -19,6 +19,7 @@
 import lombok.AllArgsConstructor;
 import org.springblade.core.tenant.annotation.NonDS;
 import org.springblade.core.tool.api.R;
+import org.springblade.system.dto.DeptDTO;
 import org.springblade.system.entity.*;
 import org.springblade.system.service.*;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -191,5 +192,11 @@
 		return R.data(regionService.getById(code));
 	}
 
+	@Override
+	@GetMapping("/getUserGroupByDept")
+	public R<List<DeptDTO>> getUserGroupByDept() {
+		return R.data(deptService.getUserGroupByDept());
+	}
+
 
 }
diff --git a/blade-service/pom.xml b/blade-service/pom.xml
index 5b8b48a..dcfcbc9 100644
--- a/blade-service/pom.xml
+++ b/blade-service/pom.xml
@@ -22,6 +22,7 @@
         <module>blade-system</module>
         <module>blade-user</module>
         <module>blade-fire</module>
+        <module>blade-dp</module>
     </modules>
 
     <dependencies>
diff --git a/pom.xml b/pom.xml
index 7c83b8b..87ab641 100644
--- a/pom.xml
+++ b/pom.xml
@@ -39,6 +39,7 @@
         <module>blade-plugin-api</module>
         <module>blade-service</module>
         <module>blade-service-api</module>
+        <module>blade-dp</module>
     </modules>
 
     <dependencyManagement>

--
Gitblit v1.9.3