From 26f881f1bb49a1304c71aa7212075f0056dfa0ae Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Fri, 22 Mar 2024 12:02:25 +0800
Subject: [PATCH] 反诈宣传和预警保存修改调整,可以通过经纬度设置匹配对应的警格网格

---
 src/main/java/org/springblade/common/param/GridSet.java                                          |   81 +++++++++++++++++++++++++++
 src/main/java/org/springblade/modules/backblast/entity/BackblastWarnHanRecEntity.java            |   28 ++++++++
 src/main/java/org/springblade/modules/backblast/service/impl/BackblastWarnHanRecServiceImpl.java |    5 +
 src/main/java/org/springblade/modules/backblast/entity/BackblastPubRecordEntity.java             |   28 ++++++++
 src/main/java/org/springblade/modules/backblast/service/impl/BackblastPubRecordServiceImpl.java  |   33 +++++++++++
 5 files changed, 171 insertions(+), 4 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..4f8748f
--- /dev/null
+++ b/src/main/java/org/springblade/common/param/GridSet.java
@@ -0,0 +1,81 @@
+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 = u.getClass().getDeclaredField(lngKey);
+			Field latField = u.getClass().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 = u.getClass().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 = u.getClass().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;
+	}
+
+
+}
diff --git a/src/main/java/org/springblade/modules/backblast/entity/BackblastPubRecordEntity.java b/src/main/java/org/springblade/modules/backblast/entity/BackblastPubRecordEntity.java
index e714a25..c7177f8 100644
--- a/src/main/java/org/springblade/modules/backblast/entity/BackblastPubRecordEntity.java
+++ b/src/main/java/org/springblade/modules/backblast/entity/BackblastPubRecordEntity.java
@@ -30,7 +30,7 @@
 	 * 房屋编码
 	 */
 	@ApiModelProperty(value = "房屋编码")
-	private Long houseCode;
+	private String houseCode;
 	/**
 	 * 记录民警姓名
 	 */
@@ -51,7 +51,31 @@
 	 */
 	@ApiModelProperty(value = "宣传现场照片")
 	private String pubUrls;
-
+	/**
+	 * 网格编号
+	 */
+	@ApiModelProperty(value = "网格编号")
+	private String gridCode;
+	/**
+	 * 警务网格编号
+	 */
+	@ApiModelProperty(value = "警务网格编号")
+	private String jwGridCode;
+	/**
+	 * 经度
+	 */
+	@ApiModelProperty(value = "经度")
+	private String lng;
+	/**
+	 * 纬度
+	 */
+	@ApiModelProperty(value = "纬度")
+	private String lat;
+	/**
+	 * 地址
+	 */
+	@ApiModelProperty(value = "地址")
+	private String address;
 
 	/** 创建人 */
 	@ApiModelProperty(value = "创建人", example = "")
diff --git a/src/main/java/org/springblade/modules/backblast/entity/BackblastWarnHanRecEntity.java b/src/main/java/org/springblade/modules/backblast/entity/BackblastWarnHanRecEntity.java
index d202370..8107389 100644
--- a/src/main/java/org/springblade/modules/backblast/entity/BackblastWarnHanRecEntity.java
+++ b/src/main/java/org/springblade/modules/backblast/entity/BackblastWarnHanRecEntity.java
@@ -25,12 +25,11 @@
 	@ApiModelProperty(value = "主键ID", example = "")
 	@TableId(value = "id", type = IdType.ASSIGN_ID)
 	private Long id;
-
 	/**
 	 * 房屋编码
 	 */
 	@ApiModelProperty(value = "房屋编码")
-	private Long houseCode;
+	private String houseCode;
 	/**
 	 * 记录民警姓名
 	 */
@@ -51,6 +50,31 @@
 	 */
 	@ApiModelProperty(value = "现场照片")
 	private String sceUrls;
+	/**
+	 * 网格编号
+	 */
+	@ApiModelProperty(value = "网格编号")
+	private String gridCode;
+	/**
+	 * 警务网格编号
+	 */
+	@ApiModelProperty(value = "警务网格编号")
+	private String jwGridCode;
+	/**
+	 * 经度
+	 */
+	@ApiModelProperty(value = "经度")
+	private String lng;
+	/**
+	 * 纬度
+	 */
+	@ApiModelProperty(value = "纬度")
+	private String lat;
+	/**
+	 * 地址
+	 */
+	@ApiModelProperty(value = "地址")
+	private String address;
 
 	/** 创建人 */
 	@ApiModelProperty(value = "创建人", example = "")
diff --git a/src/main/java/org/springblade/modules/backblast/service/impl/BackblastPubRecordServiceImpl.java b/src/main/java/org/springblade/modules/backblast/service/impl/BackblastPubRecordServiceImpl.java
index 908f485..c0da064 100644
--- a/src/main/java/org/springblade/modules/backblast/service/impl/BackblastPubRecordServiceImpl.java
+++ b/src/main/java/org/springblade/modules/backblast/service/impl/BackblastPubRecordServiceImpl.java
@@ -2,16 +2,23 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.common.param.CommonParamSet;
+import org.springblade.common.param.GridSet;
 import org.springblade.common.utils.SpringUtils;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.modules.backblast.entity.BackblastPubRecordEntity;
 import org.springblade.modules.backblast.vo.BackblastPubRecordVO;
 import org.springblade.modules.backblast.mapper.BackblastPubRecordMapper;
 import org.springblade.modules.backblast.service.IBackblastPubRecordService;
+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.entity.User;
 import org.springblade.modules.system.service.IUserService;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.util.List;
 
 /**
  * 反炸宣传记录表 服务实现类
@@ -45,6 +52,9 @@
 	 */
 	@Override
 	public boolean addOrUpdateBackblastPubRecordEntity(BackblastPubRecordEntity backblastPubRecord) {
+		// 点落面计算警格,网格,警格
+		GridSet invoke = new GridSet().invoke(BackblastPubRecordEntity.class, backblastPubRecord,
+			"lng", "lat", "gridCode", "jwGridCode");
 		// 设置民警姓名电话(非民警暂时也记录)
 		User user = SpringUtils.getBean(IUserService.class).getById(AuthUtil.getUserId());
 		if (null!=user){
@@ -58,4 +68,27 @@
 		// 新增
 		return save(backblastPubRecord);
 	}
+
+	/**
+	 * 设置警格网格信息
+	 * @param backblastPubRecord
+	 */
+	public void setGridInfo(BackblastPubRecordEntity backblastPubRecord) {
+		// 根据位置设置网格,警格编号
+		IGridService gridService = SpringUtils.getBean(IGridService.class);
+		IPoliceAffairsGridService policeAffairsGridService = SpringUtils.getBean(IPoliceAffairsGridService.class);
+		String point = "'POINT(" + backblastPubRecord.getLng() + " " + backblastPubRecord.getLat() + ")'";
+		//点坐标解析网格
+		List<GridEntity> gridEntityList = gridService.spatialAnalysis(point);
+		if (gridEntityList.size()>0){
+			GridEntity gridEntity = gridEntityList.get(0);
+			backblastPubRecord.setGridCode(gridEntity.getGridCode());
+		}
+		//点坐标解析警格
+		List<PoliceAffairsGridEntity> policeAffairsGridEntityList = policeAffairsGridService.spatialAnalysis(point);
+		if (policeAffairsGridEntityList.size()>0){
+			PoliceAffairsGridEntity policeAffairsGridEntity = policeAffairsGridEntityList.get(0);
+			backblastPubRecord.setJwGridCode(policeAffairsGridEntity.getJwGridCode());
+		}
+	}
 }
diff --git a/src/main/java/org/springblade/modules/backblast/service/impl/BackblastWarnHanRecServiceImpl.java b/src/main/java/org/springblade/modules/backblast/service/impl/BackblastWarnHanRecServiceImpl.java
index 861407e..42d8e30 100644
--- a/src/main/java/org/springblade/modules/backblast/service/impl/BackblastWarnHanRecServiceImpl.java
+++ b/src/main/java/org/springblade/modules/backblast/service/impl/BackblastWarnHanRecServiceImpl.java
@@ -2,8 +2,10 @@
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springblade.common.param.CommonParamSet;
+import org.springblade.common.param.GridSet;
 import org.springblade.common.utils.SpringUtils;
 import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.modules.backblast.entity.BackblastPubRecordEntity;
 import org.springblade.modules.backblast.entity.BackblastWarnHanRecEntity;
 import org.springblade.modules.backblast.vo.BackblastWarnHanRecVO;
 import org.springblade.modules.backblast.mapper.BackblastWarnHanRecMapper;
@@ -45,6 +47,9 @@
 	 */
 	@Override
 	public boolean saveOrUpdateBackblastWarnHanRecEntity(BackblastWarnHanRecEntity backblastWarnHanRec) {
+		// 点落面计算警格,网格,警格
+		GridSet invoke = new GridSet().invoke(BackblastWarnHanRecEntity.class, backblastWarnHanRec,
+			"lng", "lat", "gridCode", "jwGridCode");
 		// 设置民警姓名电话(非民警暂时也记录)
 		User user = SpringUtils.getBean(IUserService.class).getById(AuthUtil.getUserId());
 		if (null!=user){

--
Gitblit v1.9.3