src/main/java/org/springblade/modules/doorplateAddress/entity/DoorplateAddressEntity.java
@@ -17,6 +17,7 @@ package org.springblade.modules.doorplateAddress.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.databind.annotation.JsonSerialize; @@ -77,6 +78,19 @@ */ @ApiModelProperty(value = "纬度") private String Y; /** * x84经度 */ @ApiModelProperty(value = "x84经度") @TableField("x_84") private String x84; /** * y84纬度 */ @ApiModelProperty(value = "y84纬度") @TableField("y_84") private String y84; /** * 行政区编码 */ src/main/java/org/springblade/modules/doorplateAddress/mapper/DoorplateAddressMapper.java
@@ -138,4 +138,11 @@ * @return */ DoorplateAddressVO getDoorplateAddressList(@Param("vo") DoorplateAddressVO doorplateAddressVO); /** * 查询社区信息 * @param name * @return */ List<DoorplateAddressEntity> getAllDoorplateAddress(@Param("name") String name); } src/main/java/org/springblade/modules/doorplateAddress/service/IDoorplateAddressService.java
@@ -78,4 +78,11 @@ * @return */ Object getHouseType(String code); /** * 查询社区信息 * @param name * @return */ List<DoorplateAddressEntity> getAllDoorplateAddress(String name); } src/main/java/org/springblade/modules/doorplateAddress/service/impl/DoorplateAddressServiceImpl.java
@@ -462,4 +462,14 @@ } return 0; } /** * 查询社区信息 * @param name * @return */ @Override public List<DoorplateAddressEntity> getAllDoorplateAddress(String name) { return baseMapper.getAllDoorplateAddress(name); } } src/main/java/org/springblade/modules/grid/controller/GridController.java
@@ -136,5 +136,13 @@ return R.success("操作成功"); } /** * 空间分析 */ @GetMapping("/spatialAnalysis") public R spatialAnalysis() { return R.data(gridService.spatialAnalysis()); } } src/main/java/org/springblade/modules/grid/entity/GridRangeEntity.java
@@ -70,4 +70,10 @@ @ApiModelProperty(value = "幢") private String building; /** * 门牌地址编码 */ @ApiModelProperty(value = "门牌地址编码") private String houseCode; } src/main/java/org/springblade/modules/grid/excel/GridExcel.java
@@ -1,33 +1,15 @@ /* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill 庄骞 (smallchill@163.com) */ package org.springblade.modules.grid.excel; import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alibaba.excel.annotation.write.style.HeadRowHeight; import lombok.Data; import java.io.Serializable; import java.util.Date; /** * UserExcel * GridExcel * * @author Chill */ @@ -39,59 +21,11 @@ private static final long serialVersionUID = 1L; @ColumnWidth(15) @ExcelProperty("租户编号") private String tenantId; @ExcelProperty("社区网格名称") private String gridName; @ExcelIgnore @ExcelProperty("用户平台") private String userType; @ColumnWidth(20) @ExcelProperty("用户平台名称") private String userTypeName; @ColumnWidth(15) @ExcelProperty("账户") private String account; @ColumnWidth(10) @ExcelProperty("昵称") private String name; @ColumnWidth(10) @ExcelProperty("姓名") private String realName; @ExcelProperty("邮箱") private String email; @ColumnWidth(15) @ExcelProperty("手机") private String phone; @ExcelIgnore @ExcelProperty("角色ID") private String roleId; @ExcelIgnore @ExcelProperty("部门ID") private String deptId; @ExcelIgnore @ExcelProperty("岗位ID") private String postId; @ExcelProperty("角色名称") private String roleName; @ExcelProperty("部门名称") private String deptName; @ExcelProperty("岗位名称") private String postName; @ColumnWidth(20) @ExcelProperty("生日") private Date birthday; @ColumnWidth(100) @ExcelProperty("区域") private String geom; } src/main/java/org/springblade/modules/grid/mapper/GridMapper.java
@@ -53,4 +53,9 @@ * @return */ List<String> getAddressCodeListByUserId(@Param("userId") Long userId); /** * 空间分析 mysql 5.7 点落面 */ GridEntity spatialAnalysis(@Param("point")String point); } src/main/java/org/springblade/modules/grid/mapper/GridMapper.xml
@@ -23,5 +23,10 @@ and jg.user_id = #{userId} </select> <!--判断该小区点在哪个派出所--> <select id="spatialAnalysis" resultType="org.springblade.modules.grid.entity.GridEntity"> SELECT * FROM jczz_grid WHERE ST_Intersects(geom, ST_GeomFromText(${point},0)) </select> </mapper> src/main/java/org/springblade/modules/grid/service/IGridService.java
@@ -62,4 +62,9 @@ * @return */ List<String> getAddressCodeListByUserId(Long userId); /** * 空间分析 */ Object spatialAnalysis(); } src/main/java/org/springblade/modules/grid/service/impl/GridServiceImpl.java
@@ -16,18 +16,25 @@ */ package org.springblade.modules.grid.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.utils.BeanUtil; import org.springblade.modules.doorplateAddress.entity.DoorplateAddressEntity; import org.springblade.modules.doorplateAddress.service.IDoorplateAddressService; import org.springblade.modules.grid.entity.GridEntity; import org.springblade.modules.grid.entity.GridRangeEntity; import org.springblade.modules.grid.excel.GridExcel; import org.springblade.modules.grid.service.IGridRangeService; import org.springblade.modules.grid.vo.GridVO; import org.springblade.modules.grid.mapper.GridMapper; import org.springblade.modules.grid.service.IGridService; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.modules.system.entity.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.Date; @@ -42,6 +49,12 @@ */ @Service public class GridServiceImpl extends ServiceImpl<GridMapper, GridEntity> implements IGridService { @Autowired private IDoorplateAddressService doorplateAddressService; @Autowired private IGridRangeService gridRangeService; @Override public IPage<GridVO> selectGridPage(IPage<GridVO> page, GridVO grid) { @@ -58,7 +71,12 @@ List<GridEntity> list = new ArrayList<>(); // 遍历 for (GridExcel gridExcel : data) { GridEntity gridEntity = Objects.requireNonNull(BeanUtil.copy(gridExcel, GridEntity.class)); // 取出名称分隔 String[] split = gridExcel.getGridName().split("居民委员会"); GridEntity gridEntity = new GridEntity(); gridEntity.setCommunityName(split[0] + "居民委员会"); gridEntity.setGridName(split[1]); gridEntity.setGeom(gridExcel.getGeom()); gridEntity.setCreateUser(AuthUtil.getUserId()); gridEntity.setCreateTime(new Date()); gridEntity.setUpdateUser(AuthUtil.getUserId()); @@ -88,4 +106,39 @@ public List<String> getAddressCodeListByUserId(Long userId) { return baseMapper.getAddressCodeListByUserId(userId); } /** * 空间分析 mysql 5.7 */ @Override @Transactional(rollbackFor = Exception.class) public Object spatialAnalysis() { // 按社区 // String name = "万达社区居民委员会"; String name = "茶山路社区居民委员会"; //查询社区信息 List<DoorplateAddressEntity> doorplateAddressEntities = doorplateAddressService.getAllDoorplateAddress(name); //遍历 for (DoorplateAddressEntity doorplateAddressEntity : doorplateAddressEntities) { //点坐标解析 String point = "'POINT(" + doorplateAddressEntity.getX84() + " " + doorplateAddressEntity.getY84() +")'"; // String point = "'POINT(" + villageInfoExcel.getLatitude() + " " + villageInfoExcel.getLongitude() +")'"; GridEntity gridEntity = baseMapper.spatialAnalysis(point); if (null!=gridEntity){ QueryWrapper<GridRangeEntity> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("grid_id",gridEntity.getId()).eq("house_code",doorplateAddressEntity.getAddressCode()); GridRangeEntity one = gridRangeService.getOne(queryWrapper); if (null==one) { GridRangeEntity gridRangeEntity = new GridRangeEntity(); gridRangeEntity.setGridId(gridEntity.getId()); gridRangeEntity.setHouseCode(doorplateAddressEntity.getAddressCode()); gridRangeEntity.setDistrictCode(doorplateAddressEntity.getAoiCode()); gridRangeEntity.setDistrictName(doorplateAddressEntity.getAoiName()); // 保存 gridRangeService.save(gridRangeEntity); } } } return null; } } src/main/java/org/springblade/modules/place/mapper/PlaceMapper.xml
@@ -13,8 +13,13 @@ <!--自定义分页查询--> <select id="selectPlacePage" resultType="org.springblade.modules.place.vo.PlaceVO"> select jp.*,bu.real_name as username,bu.phone as phone from jczz_place jp select jp.*, bu.real_name as username,bu.phone as phone, bx.real_name as createUserName 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 ( select a.* from jczz_place_poi_label a inner join (