From c10d6358b9f014375a13821465bc978d0c0da22e Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Wed, 29 May 2024 17:17:08 +0800
Subject: [PATCH] 通过E呼即办数据统计

---
 src/main/java/org/springblade/common/param/CommonParamSet.java |  119 +++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 107 insertions(+), 12 deletions(-)

diff --git a/src/main/java/org/springblade/common/param/CommonParamSet.java b/src/main/java/org/springblade/common/param/CommonParamSet.java
index 55448d5..8822b4e 100644
--- a/src/main/java/org/springblade/common/param/CommonParamSet.java
+++ b/src/main/java/org/springblade/common/param/CommonParamSet.java
@@ -1,10 +1,14 @@
 package org.springblade.common.param;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.util.Strings;
+import org.apache.poi.hssf.record.DVALRecord;
 import org.springblade.common.cache.SysCache;
+import org.springblade.common.utils.AuthUtils;
 import org.springblade.common.utils.SpringUtils;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.modules.grid.service.IGridService;
 import org.springblade.modules.police.service.IPoliceAffairsGridService;
 import org.springblade.modules.system.service.IRegionService;
@@ -12,12 +16,15 @@
 import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+
+import static org.springblade.core.secure.utils.AuthUtil.getUserRole;
 
 public class CommonParamSet<T> {
 	/**
 	 * 区域编号集合
 	 */
-	private List<String> regionChildCodesList;
+	private List<String> regionChildCodesList = new ArrayList<>();
 	/**
 	 * 是否为超级管理员
 	 */
@@ -25,7 +32,12 @@
 	/**
 	 * 网格编号集合
 	 */
-	private List<String> gridCodeList;
+	private List<String> gridCodeList = new ArrayList<>();
+
+	/**
+	 *
+	 */
+	private String str = null;
 
 	public List<String> getRegionChildCodesList() {
 		return regionChildCodesList;
@@ -37,6 +49,10 @@
 
 	public List<String> getGridCodeList() {
 		return gridCodeList;
+	}
+
+	public String getStr() {
+		return str;
 	}
 
 	public <U> CommonParamSet invoke(Class<U> clazz, T t) {
@@ -54,26 +70,40 @@
 				if (null != SpringUtils.getBean(IRegionService.class).getById(communityCode)) {
 					// 设置社区编号
 					communityCodeField.setAccessible(true);
-					communityCodeField.set(t,communityCode);
+					communityCodeField.set(t, communityCode);
 				}
 			}
-			isAdministrator = Strings.isBlank(roleName) && (AuthUtil.isAdministrator() == true || AuthUtil.isAdmin() == true) ? 1 : 2;
-			if (isAdministrator==2) {
-				// 获取当前用户的所属行政区划编号
-				regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
+			// 超级管理员、系统管理员、公安管理员不过滤数据
+//			isAdministrator = AuthUtils.isAdmin(roleName) || AuthUtils.isAdmin() ||
+//				AuthUtils.isAdministrator() || AuthUtils.isGaAdmin() ? 1 : 2;
+			if (StringUtils.isNotBlank(roleName)) {
+				isAdministrator = AuthUtils.isAdmin(roleName) ? 1 : 2;
+			} else {
+				isAdministrator = AuthUtils.isAdmin() ||
+					AuthUtils.isAdministrator() || AuthUtils.isGaAdmin() ? 1 : 2;
+			}
+
+			if (isAdministrator == 2) {
+				if (!Strings.isBlank(communityCode)) {
+					// 请求头带了后直接使用过滤
+					regionChildCodesList.add(communityCode);
+				}else {
+					// 获取当前用户的所属行政区划编号()
+					regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId(), communityCode);
+					// 民警角色
+					if (!Strings.isBlank(roleName) && roleName.equals("mj")) {
+						regionChildCodesList = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(),communityCode,roleName);
+					}
+				}
 				// 获取网格编号集合
 				gridCodeList = new ArrayList<>();
 				if (!Strings.isBlank(roleName)) {
 					// 设置角色别名
 					roleNameField.setAccessible(true);
 					roleNameField.set(t, roleName);
-					// 民警角色
-					if (roleName.equals("mj")) {
-						regionChildCodesList = SpringUtil.getBean(IPoliceAffairsGridService.class).getCommunityCodeListByUserId(AuthUtil.getUserId());
-					}
 					// 网格员角色
 					if (roleName.equals("wgy")) {
-						gridCodeList = SpringUtil.getBean(IGridService.class).getGridListByUserId(AuthUtil.getUserId());
+						gridCodeList = SysCache.getGridRegionChildCodesByDeptId(AuthUtil.getDeptId(),communityCode,roleName);
 					}
 				}
 				// 特定账号设置
@@ -88,4 +118,69 @@
 		}
 		return this;
 	}
+
+	/**
+	 * 设置对应的属性值
+	 * @param clazz
+	 * @param t
+	 * @param list 字段属性集合
+	 * @param pre 字段拼接
+	 * @return
+	 */
+	public <U> CommonParamSet setFieldValue(Class<U> clazz, T t,List<String> list,String pre) {
+		//获取传入对象信息
+		U u = clazz.cast(t);
+		try {
+			StringBuilder builder = new StringBuilder(pre);
+			for (String fieldName : list) {
+				if (!fieldName.equals("tableName")) {
+					if (fieldName.equals("tableId")) {
+						fieldName = "id";
+					}
+					Field field = u.getClass().getDeclaredField(fieldName);
+					field.setAccessible(true);
+					builder.append(field.get(t).toString()).append(",");
+				}
+			}
+			String toString = builder.toString();
+			str = toString.substring(0,toString.length()-1);
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return this;
+	}
+
+	/**
+	 * 设置对应的属性值
+	 * @param clazz
+	 * @param t
+	 * @param list 字段属性集合
+	 * @param map
+	 * @return
+	 */
+	public <U> CommonParamSet setFieldValueByMap(Class<U> clazz, T t, List<String> list, Map<String,Object> map) {
+		//获取传入对象信息
+		U u = clazz.cast(t);
+		try {
+			for (String fieldName : list) {
+				if (!fieldName.equals("tableName")){
+					if (fieldName.equals("tableId")){
+						fieldName = "id";
+					}
+					Field field = u.getClass().getDeclaredField(fieldName);
+					field.setAccessible(true);
+					String value = field.get(t).toString();
+					if (fieldName.equals("id")){
+						fieldName = "tableId";
+					}
+					map.put(fieldName,value);
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+		return this;
+	}
+
+
 }

--
Gitblit v1.9.3