lin
2024-02-28 92a3b953f2da493e68afb9ae73a15b6513a6c18a
Merge remote-tracking branch 'origin/master'
5 files modified
175 ■■■■■ changed files
src/main/java/org/springblade/common/param/CommonParamSet.java 18 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml 2 ●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/grid/entity/GridRangeEntity.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml 8 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java 142 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/common/param/CommonParamSet.java
@@ -5,6 +5,7 @@
import org.springblade.common.utils.SpringUtils;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.modules.grid.service.IGridService;
import org.springblade.modules.police.service.IPoliceAffairsGridService;
import org.springblade.modules.system.service.IRegionService;
@@ -12,6 +13,8 @@
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import static org.springblade.core.secure.utils.AuthUtil.getUserRole;
public class CommonParamSet<T> {
    /**
@@ -57,7 +60,12 @@
                    communityCodeField.set(t,communityCode);
                }
            }
            isAdministrator = Strings.isBlank(roleName) && (AuthUtil.isAdministrator() == true || AuthUtil.isAdmin() == true) ? 1 : 2;
            // 超级管理员、系统管理员、公安管理员不过滤数据
            isAdministrator = Strings.isBlank(roleName) &&
                (AuthUtil.isAdministrator() == true ||
                    AuthUtil.isAdmin() == true ||
                    isGaAdmin() == true
                ) ? 1 : 2;
            if (isAdministrator==2) {
                // 获取当前用户的所属行政区划编号()
                regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId());
@@ -88,4 +96,12 @@
        }
        return this;
    }
    /**
     * 是否为公安管理员
     * @return
     */
    public boolean isGaAdmin() {
        return StringUtil.containsAny(getUserRole(), new CharSequence[]{"gagly"});
    }
}
src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.xml
@@ -568,7 +568,7 @@
        from jczz_doorplate_address jda
        left join jczz_grid_range jgr on jda.address_code = jgr.house_code
        where 1=1
        and (doorplate_type = '小门牌' or (doorplate_type = '中门牌' and address_level = 1))
--         and (doorplate_type = '小门牌' or (doorplate_type = '中门牌' and address_level = 1))
        <if test="doorplateAddress.addressName!=null and doorplateAddress.addressName!=''">
            and jda.address_name like concat('%',#{doorplateAddress.addressName},'%')
        </if>
src/main/java/org/springblade/modules/grid/entity/GridRangeEntity.java
@@ -55,6 +55,11 @@
    @ApiModelProperty(value = "网格ID")
    private Integer gridId;
    /**
     * 网格编号
     */
    @ApiModelProperty(value = "网格编号")
    private String gridCode;
    /**
     * 小区ID
     */
    @ApiModelProperty(value = "小区ID")
src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
@@ -323,6 +323,7 @@
        select
        jp.id,
        jp.house_code,
        jp.house_code_binds,
        jp.building_code,
        jp.principal_user_id,
        jp.principal,
@@ -361,7 +362,12 @@
        left join jczz_doorplate_address jda on jda.address_code = jp.house_code
        where jp.is_deleted = 0
        <if test="place.houseCode!=null and place.houseCode!=''">
            and jp.house_code like concat('%',#{place.houseCode},'%')
            and
            (
            jp.house_code = #{place.houseCode}
            or
            jp.house_code_binds like concat('%',#{place.houseCode},'%')
            )
        </if>
        <if test="place.id!=null">
            and jp.id = #{place.id}
src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
@@ -169,6 +169,8 @@
            if (null != one) {
                placeVO.setId(one.getId());
            } else {
                // 扫码来的默认绑定本身
                placeVO.setHouseCodeBinds(placeVO.getHouseCode());
                // 新增,地址表中没有或者地址表中有场所表中没有的(是房屋的),扫码进来的
                save(placeVO);
            }
@@ -177,7 +179,7 @@
            // 设置完善状态
            setPlaceStatus(placeVO);
            // 房屋编号绑定处理
//            houseCodeBindHandle(placeVO);
            houseCodeBindHandle(placeVO);
            // 更新场所信息
            flag = updateById(placeVO);
        } else {
@@ -197,14 +199,15 @@
            // 新增场所信息
            flag = save(placeVO);
        }
        // 获取请求头中的角色别名
        String roleName = SpringUtils.getRequestParam("roleName");
        placeVO.setRoleName(roleName);
        // 保存场所详情及任务信息
        savePlaceExtAndTaskInfo(placeVO);
        // 场所标签信息绑定(更新,调整)
        placeLabelBind(placeVO);
        // 网格绑定
        gridBind(placeVO);
        // 网格编号绑定场所-新
        gridCodeBind(placeVO);
        // 警务网格绑定
        jwGridCodeBind(placeVO);
        // 返回结果
@@ -289,37 +292,39 @@
     * @param placeVO
     */
    public void houseCodeBindHandle(PlaceVO placeVO) {
        List<String> list = Arrays.asList(placeVO.getHouseCodeBinds().split(","));
        // 先删除原有的绑定
        QueryWrapper<PlaceDoorEntity> removeQw = new QueryWrapper<>();
        removeQw.eq("place_id",placeVO.getId());
        // 删除
        placeDoorService.remove(removeQw);
        // 遍历更新
        for (String houseCode : list) {
            // 查询是否已存在关联关系
            QueryWrapper<PlaceDoorEntity> wrapper = new QueryWrapper<>();
            wrapper.eq("house_code",houseCode);
            // 查询
            List<PlaceDoorEntity> placeDoorEntityList = placeDoorService.list(wrapper);
            if (placeDoorEntityList.size()>0){
                // 该houseCode 已被绑定
        if (!Strings.isBlank(placeVO.getHouseCodeBinds())) {
            List<String> list = Arrays.asList(placeVO.getHouseCodeBinds().split(","));
            // 先删除原有的绑定
            QueryWrapper<PlaceDoorEntity> removeQw = new QueryWrapper<>();
            removeQw.eq("place_id", placeVO.getId());
            // 删除
            placeDoorService.remove(removeQw);
            // 遍历更新
            for (String houseCode : list) {
                // 查询是否已存在关联关系
                QueryWrapper<PlaceDoorEntity> wrapper = new QueryWrapper<>();
                wrapper.eq("house_code", houseCode);
                // 查询
                List<PlaceDoorEntity> placeDoorEntityList = placeDoorService.list(wrapper);
                if (placeDoorEntityList.size() > 0) {
                    // 该houseCode 已被绑定
//                errorList.add(houseCode);
                for (PlaceDoorEntity placeDoorEntity : placeDoorEntityList) {
                    for (PlaceDoorEntity placeDoorEntity : placeDoorEntityList) {
                        placeDoorEntity.setPlaceId(placeVO.getId());
                        // 更新
                        placeDoorService.updateById(placeDoorEntity);
                    }
                } else {
                    PlaceDoorEntity placeDoorEntity = new PlaceDoorEntity();
                    placeDoorEntity.setHouseCode(houseCode);
                    placeDoorEntity.setPlaceId(placeVO.getId());
                    // 更新
                    placeDoorService.updateById(placeDoorEntity);
                    // 对应插入到关联关系表中
                    placeDoorService.save(placeDoorEntity);
                }
            }else {
                PlaceDoorEntity placeDoorEntity = new PlaceDoorEntity();
                placeDoorEntity.setHouseCode(houseCode);
                placeDoorEntity.setPlaceId(placeVO.getId());
                // 对应插入到关联关系表中
                placeDoorService.save(placeDoorEntity);
            }
            // 处理原场所表houseCode 绑定数据-- 暂不处理原数据的删除
//        handlePlaceOne(list,placeVO);
        }
        // 处理原场所表houseCode 绑定数据
        handlePlaceOne(list,placeVO);
    }
    /**
@@ -380,33 +385,13 @@
     * @param placeVO
     */
    public void gridBind(PlaceVO placeVO) {
        if (null != placeVO.getGridId()) {
            // 判断关联关系表是否存在
            QueryWrapper<GridRangeEntity> wrapper = new QueryWrapper<>();
            wrapper.eq("house_code", placeVO.getHouseCode());
            GridRangeEntity one = gridRangeService.getOne(wrapper);
            if (null == one) {
                // 新增
                GridRangeEntity gridRangeEntity = new GridRangeEntity();
                gridRangeEntity.setHouseCode(placeVO.getHouseCode());
                gridRangeEntity.setGridId(placeVO.getGridId());
                // 插入
                gridRangeService.save(gridRangeEntity);
            } else {
                // 修改绑定
                one.setGridId(placeVO.getGridId());
                // 修改
                gridRangeService.updateById(one);
            }
        } else {
            // 判断角色,如果是网格员则直接使用网格员的网格id,如果是民警则采用点落面的方式进行获取网格的id
            if (!Strings.isBlank(placeVO.getRoleName())) {
                // 网格员角色位置绑定
                gridmanPositionHandle(placeVO);
                // 民警角色位置绑定
                policePositionHandle(placeVO);
            }
        }
        // 判断角色,如果是网格员则直接使用网格员的网格id,如果是民警则采用点落面的方式进行获取网格的id
//        if (!Strings.isBlank(placeVO.getRoleName()) && placeVO.getRoleName().equals("wgy")) {
//            // 网格员角色位置绑定
//            gridmanPositionHandle(placeVO);
//        }
        // 都是通过点落面方式,不区分角色
        policePositionHandle(placeVO);
    }
    /**
@@ -415,16 +400,13 @@
     * @param placeVO
     */
    public void gridCodeBind(PlaceVO placeVO) {
        // 无网格编号时
        if (Strings.isBlank(placeVO.getGridCode())) {
            // 判断角色,如果是网格员则直接使用网格员的网格id,如果是民警则采用点落面的方式进行获取网格的id
            if (!Strings.isBlank(placeVO.getRoleName())) {
                // 网格员场所网格编号绑定-新
                gridmanGridCodePositionHandle(placeVO);
                // 民警角色时通过位置绑定网格-新
                policeGridCodePositionHandle(placeVO);
            }
        // 判断角色,如果是网格员则直接使用网格员的网格id,如果是民警则采用点落面的方式进行获取网格的id
        if (!Strings.isBlank(placeVO.getRoleName())) {
            // 网格员场所网格编号绑定-新
            gridmanGridCodePositionHandle(placeVO);
        }
        // 民警角色时通过位置绑定网格-新
        policeGridCodePositionHandle(placeVO);
    }
    /**
@@ -433,10 +415,15 @@
     * @param placeVO
     */
    public void gridmanPositionHandle(PlaceVO placeVO) {
        if (placeVO.getRoleName().equals("网格员")) {
        if (!Strings.isBlank(placeVO.getRoleName()) && placeVO.getRoleName().equals("wgy")) {
            // 判断网格员,查询对应网格人对应的网格id
            Integer gridId = gridmanService.getGridIdByUserId(AuthUtil.getUserId());
            if (null != gridId) {
            GridEntity grid = gridService.getGridByUserId(AuthUtil.getUserId());
            if (null != grid) {
                // 场所编号绑定
                placeVO.setGridCode(grid.getGridCode());
                placeVO.setGridId(grid.getId());
                // 更新场所网格绑定信息
                updateById(placeVO);
                // 判断关联关系表是否存在
                QueryWrapper<GridRangeEntity> wrapper = new QueryWrapper<>();
                wrapper.eq("house_code", placeVO.getHouseCode());
@@ -445,12 +432,14 @@
                    // 新增
                    GridRangeEntity gridRangeEntity = new GridRangeEntity();
                    gridRangeEntity.setHouseCode(placeVO.getHouseCode());
                    gridRangeEntity.setGridId(gridId);
                    gridRangeEntity.setGridId(grid.getId());
                    gridRangeEntity.setGridCode(grid.getGridCode());
                    // 插入
                    gridRangeService.save(gridRangeEntity);
                } else {
                    // 修改绑定
                    one.setGridId(gridId);
                    one.setGridId(grid.getId());
                    one.setGridCode(grid.getGridCode());
                    // 修改
                    gridRangeService.updateById(one);
                }
@@ -470,6 +459,7 @@
            if (null != grid && !Strings.isBlank(grid.getGridCode())) {
                // 场所编号绑定
                placeVO.setGridCode(grid.getGridCode());
                placeVO.setGridId(grid.getId());
                // 更新场所信息
                updateById(placeVO);
            }
@@ -477,19 +467,24 @@
    }
    /**
     * 民警角色位置绑定
     * 其他角色时位置绑定
     *
     * @param placeVO
     */
    private void policePositionHandle(PlaceVO placeVO) {
        // 是民警且位置信息存在
        if (placeVO.getRoleName().equals("民警") && !Strings.isBlank(placeVO.getLng())) {
        if (!Strings.isBlank(placeVO.getLng())) {
            //点坐标解析
            String point = "'POINT(" + placeVO.getLng() + " " + placeVO.getLat() + ")'";
//            String point = "'POINT(" + villageInfoExcel.getLatitude() + " " + villageInfoExcel.getLongitude() +")'";
            List<GridEntity> gridEntityList = gridMapper.spatialAnalysis(point);
            if (gridEntityList.size() > 0) {
                GridEntity gridEntity = gridEntityList.get(0);
                // 场所编号绑定
                placeVO.setGridCode(gridEntity.getGridCode());
                placeVO.setGridId(gridEntity.getId());
                // 更新场所信息
                updateById(placeVO);
                // 判断关联关系表是否存在
                QueryWrapper<GridRangeEntity> wrapper = new QueryWrapper<>();
                wrapper.eq("house_code", placeVO.getHouseCode());
@@ -499,11 +494,13 @@
                    GridRangeEntity gridRangeEntity = new GridRangeEntity();
                    gridRangeEntity.setHouseCode(placeVO.getHouseCode());
                    gridRangeEntity.setGridId(gridEntity.getId());
                    gridRangeEntity.setGridCode(gridEntity.getGridCode());
                    // 插入
                    gridRangeService.save(gridRangeEntity);
                } else {
                    // 修改绑定
                    one.setGridId(gridEntity.getId());
                    one.setGridCode(gridEntity.getGridCode());
                    // 修改
                    gridRangeService.updateById(one);
                }
@@ -528,6 +525,7 @@
                if (null != gridEntity && !Strings.isBlank(gridEntity.getGridCode())) {
                    // 场所编号绑定
                    placeVO.setGridCode(gridEntity.getGridCode());
                    placeVO.setGridId(gridEntity.getId());
                    // 更新场所信息
                    updateById(placeVO);
                }