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