src/main/java/org/springblade/modules/grid/mapper/GridMapper.java
@@ -55,7 +55,7 @@ * @param houseCode * @return */ GridVO getGridDetailByHouseCode(@Param("houseCode") String houseCode); GridVO getPlaceGridDetailByHouseCode(@Param("houseCode") String houseCode); /** * 根据用户id(网格员)查询对应的房屋地址code @@ -113,4 +113,11 @@ * @return */ List<GridVO> getGridListByAoiCode(@Param("aoiCode") String aoiCode); /** * 查询对应网格人对应的网格 * @param userId * @return */ GridEntity getGridByUserId(@Param("userId") Long userId); } src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml
@@ -44,16 +44,16 @@ </select> <!--根据地址编号查询网格数据--> <select id="getGridDetailByHouseCode" resultType="org.springblade.modules.grid.vo.GridVO"> <select id="getPlaceGridDetailByHouseCode" resultType="org.springblade.modules.grid.vo.GridVO"> select jg.id,jg.grid_name,br.town_name AS townStreetName,br.name AS community_name, bu.real_name as realName,bu.phone as gridPhone from jczz_grid jg left join jczz_grid_range jgr on jg.id = jgr.grid_id left join jczz_gridman jgm on jg.id = jgm.grid_id and jgm.is_deleted = 0 left join jczz_place jp on jp.grid_code = jg.grid_code and jp.is_deleted = 0 left join jczz_gridman jgm on jg.grid_code = jgm.grid_code and jgm.is_deleted = 0 left join blade_user bu on bu.id = jgm.user_id and bu.is_deleted = 0 left join blade_region br ON br.code = jg.community_code where jg.is_deleted = 0 and jgr.house_code = #{houseCode} and jp.house_code = #{houseCode} limit 1 </select> @@ -172,4 +172,15 @@ GROUP BY jg.grid_name </select> <!--查询对应网格人对应的网格--> <select id="getGridByUserId" resultType="org.springblade.modules.grid.entity.GridEntity"> select jg.* from jczz_grid jg where jg.grid_code in ( select * from (select grid_code from jczz_gridman where is_deleted = 0 and user_id = #{userId} limit 1) a ) </select> </mapper> src/main/java/org/springblade/modules/grid/service/IGridService.java
@@ -56,7 +56,7 @@ * @param houseCode * @return */ GridVO getGridDetailByHouseCode(String houseCode); GridVO getPlaceGridDetailByHouseCode(String houseCode); /** * 根据用户id(网格员)查询对应的房屋地址code @@ -116,4 +116,11 @@ * @return */ List<GridVO> getGridListByAoiCode(String aoiCode); /** * 查询对应网格人对应的网格 * @param userId * @return */ GridEntity getGridByUserId(Long userId); } src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java
@@ -129,8 +129,8 @@ * @return */ @Override public GridVO getGridDetailByHouseCode(String houseCode) { return baseMapper.getGridDetailByHouseCode(houseCode); public GridVO getPlaceGridDetailByHouseCode(String houseCode) { return baseMapper.getPlaceGridDetailByHouseCode(houseCode); } /** @@ -307,4 +307,14 @@ public List<GridVO> getGridListByAoiCode(String aoiCode) { return baseMapper.getGridListByAoiCode(aoiCode); } /** * 查询对应网格人对应的网格 * @param userId * @return */ @Override public GridEntity getGridByUserId(Long userId) { return baseMapper.getGridByUserId(userId); } } src/main/java/org/springblade/modules/place/entity/PlaceEntity.java
@@ -111,10 +111,10 @@ private String imageUrls; /** * 网格id * 网格编号 */ @ApiModelProperty(value = "网格id") private Integer gridId; @ApiModelProperty(value = "网格编号") private String gridCode; /** * 状态 1:待完善 2:已完善 src/main/java/org/springblade/modules/place/mapper/PlaceMapper.java
@@ -43,7 +43,6 @@ */ List<PlaceVO> selectPlacePage(IPage page, @Param("place") PlaceVO place, @Param("houseCodeList") List<String> houseCodeList, @Param("regionChildCodesList") List<String> regionChildCodesList, @Param("isAdministrator") Integer isAdministrator); src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
@@ -18,15 +18,13 @@ jp.*, jpe.id as placeExtId, bu.real_name as username,bu.phone as phone, bx.real_name as createUserName, br.town_name as townStreetName,br.name as neiName, jpe.confirm_flag confirmFlag jpe.confirm_flag confirmFlag, jg.grid_name as gridName from jczz_place jp left join blade_user bu on bu.id = jp.principal_user_id and bu.is_deleted = 0 left join blade_user bx on bx.id = jp.create_user and bx.is_deleted = 0 LEFT JOIN jczz_place_ext jpe on jpe.place_id=jp.id left join jczz_grid_range jgr on jgr.house_code = jp.house_code left join jczz_grid jg on jg.id = jgr.grid_id and jg.is_deleted = 0 left join jczz_place_ext jpe on jpe.place_id=jp.id and jpe.is_deleted = 0 left join jczz_grid jg on jg.grid_code = jp.grid_code and jg.is_deleted = 0 left join blade_region br on br.code = jg.community_code left join ( select a.* from jczz_place_poi_label a inner join @@ -35,12 +33,6 @@ ) b on a.id = b.id ) jppl on jppl.place_id = jp.id where jp.is_deleted = 0 and jp.source!=3 <if test="houseCodeList != null and houseCodeList.size()>0"> and jp.house_code in <foreach collection="houseCodeList" item="houseCode" separator ="," open="(" close=")"> #{houseCode} </foreach> </if> <if test="place.placeName!=null and place.placeName!=''"> and jp.place_name like concat('%',#{place.placeName},'%') </if> @@ -139,13 +131,12 @@ jppl.color, jppl.remark as cremark, jc.category_name as labelName, br.code as neiCode,jg.id as gridId br.code as neiCode from jczz_place jp left join blade_user bu on bu.id = jp.principal_user_id and bu.is_deleted = 0 left join jczz_place_poi_label jppl on jppl.place_id = jp.id left join jczz_category jc on jc.category_no = jppl.poi_code left join jczz_grid_range jgr on jgr.house_code = jp.house_code left join jczz_grid jg on jg.id = jgr.grid_id and jg.is_deleted = 0 left join jczz_grid jg on jp.grid_code = jg.grid_code and jg.is_deleted = 0 left join blade_region br on br.code = jg.community_code where jp.is_deleted = 0 <if test="place.houseCode!=null and place.houseCode!=''"> src/main/java/org/springblade/modules/place/service/impl/PlaceServiceImpl.java
@@ -107,22 +107,7 @@ public IPage<PlaceVO> selectPlacePage(IPage<PlaceVO> page, PlaceVO place) { List<String> regionChildCodesList = SysCache.getRegionChildCodesByDeptId(AuthUtil.getDeptId()); Integer isAdministrator = AuthUtil.isAdministrator()==true?1:2; List<String> list = new ArrayList<>(); if (null!=place.getRoleName() && !place.getRoleName().equals("")){ if (place.getRoleName().equals("网格员")){ // 查询对应的房屋地址code list = gridService.getAddressCodeListByUserId(AuthUtil.getUserId()); } } List<PlaceVO> placeVOS = baseMapper.selectPlacePage(page, place, list,regionChildCodesList,isAdministrator); // 遍历 for (PlaceVO placeVO : placeVOS) { // 设置对应的网格名称 GridVO gridVO = gridService.getGridDetailByHouseCode(placeVO.getHouseCode()); if (null!= gridVO){ placeVO.setGridName(gridVO.getGridName()); } } List<PlaceVO> placeVOS = baseMapper.selectPlacePage(page, place,regionChildCodesList,isAdministrator); // 返回 return page.setRecords(placeVOS); } @@ -163,12 +148,6 @@ setPlaceStatus(placeVO); // 更新场所信息 flag = updateById(placeVO); // 保存场所详情及任务信息 savePlaceExtAndTaskInfo(placeVO); // 场所标签信息绑定(更新,调整) placeLabelBind(placeVO); // 网格绑定 gridBind(placeVO); }else { // 设置基础数据 placeVO.setCreateUser(AuthUtil.getUserId()); @@ -183,14 +162,15 @@ setPlaceStatus(placeVO); // 新增场所信息 flag = save(placeVO); // 保存场所详情及任务信息 savePlaceExtAndTaskInfo(placeVO); // 场所标签信息绑定 placeLabelBind(placeVO); // 网格绑定 gridBind(placeVO); } // 位置绑定,通过定位去匹配所在网格 // 保存场所详情及任务信息 savePlaceExtAndTaskInfo(placeVO); // 场所标签信息绑定(更新,调整) placeLabelBind(placeVO); // 网格绑定 gridBind(placeVO); // 网格编号绑定场所-新 gridCodeBind(placeVO); // 返回结果 return flag; } @@ -249,10 +229,27 @@ } /** * 网格员角色位置绑定 * 网格编号绑定 * @param placeVO */ private void gridmanPositionHandle(PlaceVO placeVO) { public void gridCodeBind(PlaceVO placeVO) { // 无网格编号时 if (Strings.isBlank(placeVO.getGridCode())){ // 判断角色,如果是网格员则直接使用网格员的网格id,如果是民警则采用点落面的方式进行获取网格的id if (!Strings.isBlank(placeVO.getRoleName())) { // 网格员场所网格编号绑定-新 gridmanGridCodePositionHandle(placeVO); // 民警角色时通过位置绑定网格-新 policeGridCodePositionHandle(placeVO); } } } /** * 网格员角色位置绑定-grid_id * @param placeVO */ public void gridmanPositionHandle(PlaceVO placeVO) { if (placeVO.getRoleName().equals("网格员")) { // 判断网格员,查询对应网格人对应的网格id Integer gridId = gridmanService.getGridIdByUserId(AuthUtil.getUserId()); @@ -274,6 +271,23 @@ // 修改 gridRangeService.updateById(one); } } } } /** * 网格员角色位置绑定-grid_code * @param placeVO */ public void gridmanGridCodePositionHandle(PlaceVO placeVO) { if (placeVO.getRoleName().equals("网格员")) { // 判断网格员,查询对应网格人对应的网格 GridEntity grid = gridService.getGridByUserId(AuthUtil.getUserId()); if (null != grid && !Strings.isBlank(grid.getGridCode())) { // 场所编号绑定 placeVO.setGridCode(grid.getGridCode()); // 更新场所信息 updateById(placeVO); } } } @@ -307,6 +321,26 @@ // 修改 gridRangeService.updateById(one); } } } } /** * 民警角色时通过位置绑定网格 * @param placeVO */ private void policeGridCodePositionHandle(PlaceVO placeVO) { // 是民警且位置信息存在 if (placeVO.getRoleName().equals("民警") && !Strings.isBlank(placeVO.getLng())) { //点坐标解析 String point = "'POINT(" + placeVO.getLng() + " " + placeVO.getLat() +")'"; // String point = "'POINT(" + villageInfoExcel.getLatitude() + " " + villageInfoExcel.getLongitude() +")'"; GridEntity gridEntity = gridMapper.spatialAnalysis(point); if (null != gridEntity && !Strings.isBlank(gridEntity.getGridCode())) { // 场所编号绑定 placeVO.setGridCode(gridEntity.getGridCode()); // 更新场所信息 updateById(placeVO); } } } @@ -557,49 +591,37 @@ public PlaceVO getDetail(PlaceVO place) { // 查询场所信息 PlaceVO placeVO = baseMapper.getDetail(place); // 门牌信息 if (null!= place.getAddressType() && place.getAddressType()==4){ if (null != placeVO) { // 查询地址编码信息(社区派出所相关信息) DoorplateAddressEntity addressEntity = placeRelService.getDoorplateAddressEntity(placeVO); placeVO.setDoorplateAddressEntity(addressEntity); // 查询网格信息 // 查询网格信息--商超 placeVO.setGrid(gridService.getGridDetailByParam(placeVO)); } }else { if (null != placeVO) { if (null != placeVO.getHouseCode() && !placeVO.getHouseCode().equals("")) { place.setHouseCode(placeVO.getHouseCode()); } if (placeVO.getPlacePoiLabelVOList().size()>0){ PlacePoiLabelVO placePoiLabelVO = placeVO.getPlacePoiLabelVOList().get(0); if (!Strings.isBlank(placePoiLabelVO.getColor())){ placeVO.setColor(placePoiLabelVO.getColor()); } } // 查询门牌地址信息 if (null != place.getHouseCode() && !place.getHouseCode().equals("")) { QueryWrapper<DoorplateAddressEntity> wrapper = new QueryWrapper<>(); wrapper.eq("address_code", place.getHouseCode()); List<DoorplateAddressEntity> list = doorplateAddressService.list(wrapper); if (list.size() > 0) { placeVO.setDoorplateAddressEntity(list.get(0)); placeVO.setNeiCode(list.get(0).getNeiCode()); } // 查询网格数据 GridVO gridVO = gridService.getGridDetailByHouseCode(place.getHouseCode()); if (null!= gridVO) { placeVO.setGrid(gridVO); place.setGridId(gridVO.getId()); } // 设置详情信息 QueryWrapper<PlaceExtEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("is_deleted",0).eq("place_id",placeVO.getId()); placeVO.setPlaceExtEntity(placeExtService.getOne(queryWrapper)); } else { // 通过定位点落面分析网格位置,反向推出社区派出所相关数据 // 管理后台查询赋值颜色 if (placeVO.getPlacePoiLabelVOList().size()>0){ PlacePoiLabelVO placePoiLabelVO = placeVO.getPlacePoiLabelVOList().get(0); if (!Strings.isBlank(placePoiLabelVO.getColor())){ placeVO.setColor(placePoiLabelVO.getColor()); } } // 查询地址门牌信息 QueryWrapper<DoorplateAddressEntity> wrapper = new QueryWrapper<>(); wrapper.eq("address_code", placeVO.getHouseCode()); List<DoorplateAddressEntity> list = doorplateAddressService.list(wrapper); if (list.size() > 0) { placeVO.setDoorplateAddressEntity(list.get(0)); placeVO.setNeiCode(list.get(0).getNeiCode()); } // 查询场所对应的网格数据 placeVO.setGrid(gridService.getPlaceGridDetailByHouseCode(placeVO.getHouseCode())); // 设置详情信息 QueryWrapper<PlaceExtEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("is_deleted",0).eq("place_id",placeVO.getId()); placeVO.setPlaceExtEntity(placeExtService.getOne(queryWrapper)); } // 返回 return placeVO; src/main/java/org/springblade/modules/place/vo/PlaceVO.java
@@ -123,4 +123,10 @@ * 颜色 */ private String color; /** * 网格id */ private Integer gridId; }