反诈宣传和预警保存修改调整,可以通过经纬度设置匹配对应的警格网格
4 files modified
1 files added
175 ■■■■■ changed files
src/main/java/org/springblade/common/param/GridSet.java 81 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/backblast/entity/BackblastPubRecordEntity.java 28 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/backblast/entity/BackblastWarnHanRecEntity.java 28 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/backblast/service/impl/BackblastPubRecordServiceImpl.java 33 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/backblast/service/impl/BackblastWarnHanRecServiceImpl.java 5 ●●●●● patch | view | raw | blame | history
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){