src/main/java/org/springblade/common/param/GridSet.java
New file @@ -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; } } 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 = "") 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 = "") 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()); } } } 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){