From 764d883b5ea3bdc06abbec548b6df0511e567978 Mon Sep 17 00:00:00 2001
From: linwe <872216996@qq.com>
Date: Tue, 03 Sep 2024 09:46:05 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/binlog' into binlog
---
src/main/java/org/springblade/common/param/GridSet.java | 98 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 98 insertions(+), 0 deletions(-)
diff --git a/src/main/java/org/springblade/common/param/GridSet.java b/src/main/java/org/springblade/common/param/GridSet.java
new file mode 100644
index 0000000..61e81a7
--- /dev/null
+++ b/src/main/java/org/springblade/common/param/GridSet.java
@@ -0,0 +1,98 @@
+package org.springblade.common.param;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.util.Strings;
+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.modules.grid.entity.GridEntity;
+import org.springblade.modules.grid.service.IGridService;
+import org.springblade.modules.police.entity.PoliceAffairsGridEntity;
+import org.springblade.modules.police.service.IPoliceAffairsGridService;
+import org.springblade.modules.system.service.IRegionService;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+
+public class GridSet<T> {
+
+
+ /**
+ * 获取警格网格的信息
+ * @param clazz 类对象
+ * @param t 对象数据
+ * @param lngKey 经度属性key
+ * @param latKey 纬度属性key
+ * @param gridCodeKey 网格属性key
+ * @param jwGirdCodeKey 警格属性key
+ * @param <U>
+ * @return
+ */
+ public <U> GridSet invoke(Class<U> clazz, T t,String lngKey,String latKey,String gridCodeKey,String jwGirdCodeKey) {
+ //获取传入对象信息
+ U u = clazz.cast(t);
+ try {
+ Field lngField = null;
+ Field latField = null;
+ try {
+ lngField = u.getClass().getDeclaredField(lngKey);
+ latField = u.getClass().getDeclaredField(latKey);
+ } catch (NoSuchFieldException e) {
+ lngField = u.getClass().getSuperclass().getDeclaredField(lngKey);
+ latField = u.getClass().getSuperclass().getDeclaredField(latKey);
+ }
+ // 获取点信息
+ lngField.setAccessible(true);
+ latField.setAccessible(true);
+ String lng = lngField.get(t).toString();
+ String lat = latField.get(t).toString();
+ if (!Strings.isBlank(lng)) {
+ // 拼接点
+ String point = "'POINT(" + lng +" " + lat + ")'";
+ // 判断是否分析网格
+ if (!Strings.isBlank(gridCodeKey)) {
+ // 根据位置设置网格,警格编号
+ IGridService gridService = SpringUtils.getBean(IGridService.class);
+ Field gridCodeField = null;
+ try {
+ gridCodeField = u.getClass().getDeclaredField(gridCodeKey);
+ } catch (NoSuchFieldException e) {
+ gridCodeField = u.getClass().getSuperclass().getDeclaredField(gridCodeKey);
+ }
+ //点坐标解析网格
+ List<GridEntity> gridEntityList = gridService.spatialAnalysis(point);
+ if (gridEntityList.size() > 0) {
+ GridEntity gridEntity = gridEntityList.get(0);
+ gridCodeField.setAccessible(true);
+ gridCodeField.set(t, gridEntity.getGridCode());
+ }
+ }
+ // 判断是否分析警格
+ if (!Strings.isBlank(jwGirdCodeKey)) {
+ IPoliceAffairsGridService policeAffairsGridService = SpringUtils.getBean(IPoliceAffairsGridService.class);
+ Field jwGridCodeField = null;
+ try {
+ jwGridCodeField = u.getClass().getDeclaredField(jwGirdCodeKey);
+ } catch (NoSuchFieldException e) {
+ jwGridCodeField = u.getClass().getSuperclass().getDeclaredField(jwGirdCodeKey);
+ }
+ //点坐标解析警格
+ List<PoliceAffairsGridEntity> policeAffairsGridEntityList = policeAffairsGridService.spatialAnalysis(point);
+ if (policeAffairsGridEntityList.size() > 0) {
+ PoliceAffairsGridEntity policeAffairsGridEntity = policeAffairsGridEntityList.get(0);
+ jwGridCodeField.setAccessible(true);
+ jwGridCodeField.set(t, policeAffairsGridEntity.getJwGridCode());
+ }
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return this;
+ }
+
+
+}
--
Gitblit v1.9.3