From a2fb06f8f5f685d753780b3d5befc5417f15af3a Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Tue, 10 Aug 2021 16:14:21 +0800
Subject: [PATCH] 问题修复

---
 src/main/java/org/springblade/modules/system/mapper/UserMapper.xml             |   27 ++++++++++++-
 src/main/java/org/springblade/modules/system/vo/UserDistrictStatisVO.java      |   20 ++++++++++
 src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java |    7 +++
 src/main/java/org/springblade/modules/system/controller/UserController.java    |    8 +++
 src/main/java/org/springblade/modules/system/entity/User.java                  |    6 +++
 src/main/java/org/springblade/modules/system/mapper/UserMapper.java            |    5 ++
 src/main/java/org/springblade/modules/system/service/IUserService.java         |    3 +
 7 files changed, 70 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/springblade/modules/system/controller/UserController.java b/src/main/java/org/springblade/modules/system/controller/UserController.java
index d65a174..f53a9fe 100644
--- a/src/main/java/org/springblade/modules/system/controller/UserController.java
+++ b/src/main/java/org/springblade/modules/system/controller/UserController.java
@@ -461,5 +461,11 @@
 	}
 
 
-
+	/**
+	 * 按行政区统计六大队伍
+	 */
+	@GetMapping("/getUserDistrictTypeCount")
+	public R getUserDistrictTypeCount() {
+		return R.data(userService.getUserDistrictTypeCount());
+	}
 }
diff --git a/src/main/java/org/springblade/modules/system/entity/User.java b/src/main/java/org/springblade/modules/system/entity/User.java
index 8a5245e..70562a7 100644
--- a/src/main/java/org/springblade/modules/system/entity/User.java
+++ b/src/main/java/org/springblade/modules/system/entity/User.java
@@ -111,4 +111,10 @@
 	@ApiModelProperty(value = "辖区id")
 	private String jurisdiction;
 
+	/**
+	 * 行政区
+	 */
+	@ApiModelProperty(value = "行政区")
+	private String district;
+
 }
diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.java b/src/main/java/org/springblade/modules/system/mapper/UserMapper.java
index 32beaec..04c9c93 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.java
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.java
@@ -20,8 +20,9 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
-import org.springblade.modules.system.excel.UserExcel;
 import org.springblade.modules.system.entity.User;
+import org.springblade.modules.system.excel.UserExcel;
+import org.springblade.modules.system.vo.UserDistrictStatisVO;
 import org.springblade.modules.system.vo.UserRegisterStatisVO;
 import org.springblade.modules.system.vo.UsersVo;
 
@@ -107,4 +108,6 @@
 
     List<UserRegisterStatisVO> getUserTypeCount();
 
+    List<UserDistrictStatisVO> getUserDistrictTypeCount();
+
 }
diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
index 60cc750..83cf1b4 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -29,6 +29,7 @@
         <result column="work_status" property="work_status"/>
         <result column="examination_type" property="examination_type"/>
         <result column="examination_mx" property="examination_mx"/>
+        <result column="district" property="district"/>
     </resultMap>
     <resultMap id="userResultMaps" type="org.springblade.modules.system.vo.UsersVo">
         <result column="id" property="id"/>
@@ -243,9 +244,9 @@
             left join
         blade_region br
             on
-        bu.region_id = br.code
-            where bu.region_id is not null
-        group by bu.region_id
+        bu.district = br.code
+            where bu.district is not null
+        group by bu.district
     </select>
 
     <!-- 统计六大队伍数量 -->
@@ -304,4 +305,24 @@
         WHERE
             dept.id = '1424616047083905026'
     </select>
+
+    <select id="getUserDistrictTypeCount" resultType="org.springblade.modules.system.vo.UserDistrictStatisVO">
+        SELECT
+            br.NAME AS region,
+            count( * ) num ,
+            count( CASE WHEN dept.dept_name = '治保会队伍' THEN 1 END) as zbh,
+            count( CASE WHEN dept.dept_name = '内保干部队伍' THEN 1 END) as nbgb,
+            count( CASE WHEN dept.dept_name = '治安巡防队伍' THEN 1 END) as zaxf,
+            count( CASE WHEN dept.dept_name = '信息员队伍' THEN 1 END) as xxy,
+            count( CASE WHEN dept.dept_name = '保安员队伍' THEN 1 END) as bay,
+            count( CASE WHEN dept.dept_name = '警务辅助队伍' THEN 1 END) as jwfz
+        FROM
+            blade_user bu
+            LEFT JOIN blade_region br ON bu.district = br.CODE
+            LEFT JOIN blade_dept dept ON substring_index( substring_index( bu.dept_id, ',', 3 ), ',',- 1 ) = dept.id
+        WHERE
+            bu.district IS NOT NULL
+        GROUP BY
+            bu.district
+    </select>
 </mapper>
diff --git a/src/main/java/org/springblade/modules/system/service/IUserService.java b/src/main/java/org/springblade/modules/system/service/IUserService.java
index 7600308..6952a57 100644
--- a/src/main/java/org/springblade/modules/system/service/IUserService.java
+++ b/src/main/java/org/springblade/modules/system/service/IUserService.java
@@ -28,6 +28,7 @@
 import org.springblade.modules.system.entity.UserInfo;
 import org.springblade.modules.system.entity.UserOauth;
 import org.springblade.modules.system.excel.UserExcel;
+import org.springblade.modules.system.vo.UserDistrictStatisVO;
 import org.springblade.modules.system.vo.UserRegisterStatisVO;
 import org.springblade.modules.system.vo.UserVO;
 import org.springblade.modules.system.vo.UsersVo;
@@ -267,4 +268,6 @@
 	 * 统计六大队伍
 	 */
 	List<UserRegisterStatisVO> getUserTypeCount();
+
+	List<UserDistrictStatisVO> getUserDistrictTypeCount();
 }
diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
index c0aad74..ce2e8f7 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -17,7 +17,6 @@
 package org.springblade.modules.system.service.impl;
 
 
-import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -49,6 +48,7 @@
 import org.springblade.modules.system.service.IUserDeptService;
 import org.springblade.modules.system.service.IUserOauthService;
 import org.springblade.modules.system.service.IUserService;
+import org.springblade.modules.system.vo.UserDistrictStatisVO;
 import org.springblade.modules.system.vo.UserRegisterStatisVO;
 import org.springblade.modules.system.vo.UserVO;
 import org.springblade.modules.system.vo.UsersVo;
@@ -501,4 +501,9 @@
 	public List<UserRegisterStatisVO> getUserTypeCount() {
 		return baseMapper.getUserTypeCount();
 	}
+
+	@Override
+	public List<UserDistrictStatisVO> getUserDistrictTypeCount() {
+		return baseMapper.getUserDistrictTypeCount();
+	}
 }
diff --git a/src/main/java/org/springblade/modules/system/vo/UserDistrictStatisVO.java b/src/main/java/org/springblade/modules/system/vo/UserDistrictStatisVO.java
new file mode 100644
index 0000000..61b1df4
--- /dev/null
+++ b/src/main/java/org/springblade/modules/system/vo/UserDistrictStatisVO.java
@@ -0,0 +1,20 @@
+package org.springblade.modules.system.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class UserDistrictStatisVO implements Serializable {
+
+	private String region;
+
+
+	private Integer num;
+	private Integer zbh;
+	private Integer nbgb;
+	private Integer zaxf;
+	private Integer xxy;
+	private Integer bay;
+	private Integer jwfz;
+}

--
Gitblit v1.9.3