lin
2024-02-28 92a3b953f2da493e68afb9ae73a15b6513a6c18a
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,6 +292,7 @@
    * @param placeVO
    */
   public void houseCodeBindHandle(PlaceVO placeVO) {
      if (!Strings.isBlank(placeVO.getHouseCodeBinds())) {
      List<String> list = Arrays.asList(placeVO.getHouseCodeBinds().split(","));
      // 先删除原有的绑定
      QueryWrapper<PlaceDoorEntity> removeQw = new QueryWrapper<>();
@@ -318,8 +322,9 @@
            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);
            // 民警角色位置绑定
//      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);
         }
      }
   }
   /**
@@ -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);
            }