From 3ca382419700698bf69d30b6f20d0fb493bd2c2d Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 13 Mar 2024 10:40:01 +0800
Subject: [PATCH] app使用统计添加行政区划筛选

---
 skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java              |    7 +++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java |   13 ++++++
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/vo/AppStatisticsVO.java                            |    2 +
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.java                      |    2 
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.xml                       |   21 ++++++++--
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/impl/ISmLogManageServiceImpl.java          |   29 ++++++++++++--
 6 files changed, 63 insertions(+), 11 deletions(-)

diff --git a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java
index 8f90767..3be238c 100644
--- a/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java
+++ b/skjcmanager/skjcmanager-service-api/skjcmanager-user-api/src/main/java/cn/gistack/system/user/feign/IUserClient.java
@@ -57,6 +57,10 @@
 	String GET_ALL_USER_LIST = API_PREFIX+ "/get-all-user-list";
 
 	String ENCRYPT_USER = API_PREFIX + "/encrypt-user";
+
+
+	String GET_SYS_USER_NUM = API_PREFIX + "/getSysUserNum";
+
 	/**
 	 * 获取用户信息
 	 *
@@ -157,4 +161,7 @@
 	 */
 	@GetMapping(ENCRYPT_USER)
     String encryptUser();
+
+	@GetMapping(GET_SYS_USER_NUM)
+	int getSysUserNum(@RequestParam("adCode") String adCode);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.java
index 1f355a7..3bcf058 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.java
@@ -20,7 +20,7 @@
 public interface SmLogManageMapper extends BaseMapper<SmLogManage> {
 	List<AppStatistics> getAppStatistics(@Param("vo") AppStatisticsVO appStatisticsVO);
 
-	Integer getAppUserNum();
+	Integer getAppUserNum(@Param("adCode") String adCode);
 
     List<SmLogManageVO> selectMyPage(IPage<SmLogManageVO> page, @Param("vo") SmLogManageVO smLogManage);
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.xml
index 71045ac..2f17db8 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/mapper/SmLogManageMapper.xml
@@ -3,11 +3,22 @@
 <mapper namespace="cn.gistack.sm.log.mapper.SmLogManageMapper">
     <select id="getAppUserNum"  resultType="java.lang.Integer">
         SELECT SUM(CASE WHEN useTimes !=0 THEN 1 ELSE 0 END) FROM (
-            SELECT COUNT(*) as useTimes
-            FROM SM_LOG_MANAGE SLM
-            WHERE SLM.SOURCE = 'APP' AND SLM.IS_DELETED = 0
-            GROUP BY SLM.CREATE_USER
-        )
+              SELECT
+                  COUNT(*) as useTimes
+              FROM YWXT.SM_LOG_MANAGE SLM
+                       LEFT JOIN YWXT.BLADE_USER BU ON BU.ID = SLM.CREATE_USER
+                       LEFT JOIN YWXT.BLADE_DEPT BD ON CAST (BD.ID AS VARCHAR) = BU.DEPT_ID
+              WHERE
+                  SLM.SOURCE = 'APP'
+                AND SLM.IS_DELETED = 0
+                AND SLM.CREATE_USER IS NOT NULL
+                <if test="adCode != null and adCode != ''">
+                    AND CONCAT(BU.DEPT_ID,BD.AD_CODE) LIKE #{adCode}
+                </if>
+
+              GROUP BY SLM.CREATE_USER
+          )
+
     </select>
     <select id="getAppStatistics" resultType="cn.gistack.sm.log.vo.AppStatistics">
         SELECT COUNT(A.useTime) AS useCount,A.useTime as useTime FROM
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/impl/ISmLogManageServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/impl/ISmLogManageServiceImpl.java
index 53041e4..24af6b5 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/impl/ISmLogManageServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/service/impl/ISmLogManageServiceImpl.java
@@ -15,8 +15,10 @@
 import lombok.AllArgsConstructor;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -35,13 +37,32 @@
 	@Override
 	public AppStatisticsVO getAppStatistics(AppStatisticsVO appStatisticsVO) {
 
-		Integer appUserNum = baseMapper.getAppUserNum();
-		Integer sysUserNum = userClient.getAllUserList().getData().size();
+		String adCode = "";
+		if (StringUtil.isNotBlank(appStatisticsVO.getAdCode())){
+			String paramAd = appStatisticsVO.getAdCode();
+
+			if (paramAd.substring(0,4).indexOf("00") > -1) {
+				//前四位包含00说明是湖北省      4200/00000000
+				adCode =StringUtil.format("%{}%",paramAd.substring(0,2));
+			} else if (paramAd.substring(0,6).indexOf("00") > -1) {
+				//前六位包含00说明是市级    420100/000000
+//				adCode = paramAd.substring(0,4);
+				adCode =StringUtil.format("%{}%",paramAd.substring(0,4));
+			}else if (paramAd.substring(0,8).indexOf("00") > -1){
+				//前8位包含00 说明是区级     42011700/0000
+//				adCode = paramAd.substring(0,6);
+				adCode =StringUtil.format("%{}%",paramAd.substring(0,6));
+			}
+		}
+
+		int appUserNum = baseMapper.getAppUserNum(adCode);
+		int sysUserNum =userClient.getSysUserNum(appStatisticsVO.getAdCode());
+
 		appStatisticsVO.setSysUserNum(sysUserNum);
 		appStatisticsVO.setAppUserNum(appUserNum);
 
-		List<AppStatistics> appStatistics = baseMapper.getAppStatistics(appStatisticsVO);
-		appStatisticsVO.setList(appStatistics);
+//		List<AppStatistics> appStatistics = baseMapper.getAppStatistics(appStatisticsVO);
+//		appStatisticsVO.setList(appStatistics);
 		return appStatisticsVO;
 	}
 
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/vo/AppStatisticsVO.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/vo/AppStatisticsVO.java
index 7bba8a9..12918aa 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/vo/AppStatisticsVO.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/log/vo/AppStatisticsVO.java
@@ -31,4 +31,6 @@
 	 * 结束时间
 	 */
 	private String endTime;
+
+	private String adCode;
 }
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java
index 3f9e60f..43c08ca 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/sjztmd/service/impl/AttResManagePersonServiceImpl.java
@@ -279,7 +279,18 @@
 				deptUser.forEach(p->{
 					p.setRoleName("市州管理员");
 				});
-			}else if (StringUtil.isNotBlank(townName)){
+			}else if (townName != null &&(townName.equals("县直管") || townName.equals("区直管"))){
+				//如果是区直管,找区县管理员
+				String townCode = resAd.getTownCode();
+
+				deptUser = baseMapper.getPersonByRoleAndAd("qxswjgly",townCode);
+				deptUser.forEach(p->{
+					p.setRoleName("区县管理员");
+				});
+			}
+
+
+			else if (StringUtil.isNotBlank(townName)){
 				//镇不是空的,找乡镇管理员
 				String townCode = resAd.getTownCode();
 				deptUser = baseMapper.getPersonByRoleAndAd("xzgly",townCode);

--
Gitblit v1.9.3