Browse Source

北尚诉办-通过经纬度获取所属社区

feature/dangjian
Jackwang 4 years ago
parent
commit
6158ba6c7b
  1. 19
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptAreaDetailResultDTO.java
  2. 18
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptAreaResultDTO.java
  3. 29
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptItudeFormDTO.java
  4. 19
      esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptItudeResultDTO.java
  5. 12
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java
  6. 9
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java
  7. 6
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysDeptEntity.java
  8. 9
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
  9. 87
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java
  10. 6
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/AppMenuDao.xml
  11. 6
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml
  12. 18
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAdminController.java
  13. 10
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java
  14. 5
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java
  15. 13
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java
  16. 9
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java

19
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptAreaDetailResultDTO.java

@ -0,0 +1,19 @@
package com.elink.esua.epdc.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @program: esua-epdc
* @description:
* @author: wangtong
* @create: 2022-08-31 10:03
**/
@Data
public class DeptAreaDetailResultDTO implements Serializable {
private String xmlns;
private String content;
}

18
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptAreaResultDTO.java

@ -0,0 +1,18 @@
package com.elink.esua.epdc.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @program: esua-epdc
* @description: 部门编码获取结果
* @author: wangtong
* @create: 2022-08-31 09:57
**/
@Data
public class DeptAreaResultDTO implements Serializable {
private DeptAreaDetailResultDTO string;
}

29
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptItudeFormDTO.java

@ -0,0 +1,29 @@
package com.elink.esua.epdc.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
/**
* @program: esua-epdc
* @description:
* @author: wangtong
* @create: 2022-08-31 10:53
**/
@Data
public class DeptItudeFormDTO implements Serializable {
/**
* 经度
*/
@NotBlank(message = "经度不可为空")
private String longitude;
/**
* 纬度
*/
@NotBlank(message = "纬度不可为空")
private String latitude;
}

19
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptItudeResultDTO.java

@ -0,0 +1,19 @@
package com.elink.esua.epdc.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @program: esua-epdc
* @description:
* @author: wangtong
* @create: 2022-08-31 11:16
**/
@Data
public class DeptItudeResultDTO implements Serializable {
private Long communityId;
private Long streetId;
}

12
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysDeptController.java

@ -414,4 +414,16 @@ public class SysDeptController {
public Result<List<SysDeptResultDTO>> getAllDeptTree() {
return sysDeptService.getAllDeptTree();
}
/**
* @describe: 通过经纬度获取社区及街道id
* @author wangtong
* @date 2022/8/31 11:19
* @params [dto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptItudeResultDTO>
*/
@GetMapping("getDeptIdByItude")
public Result<DeptItudeResultDTO> getDeptIdByItude(@RequestBody DeptItudeFormDTO dto) {
return sysDeptService.getDeptIdByItude(dto);
}
}

9
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/dao/SysDeptDao.java

@ -268,4 +268,13 @@ public interface SysDeptDao extends BaseDao<SysDeptEntity> {
* @return java.util.List<com.elink.esua.epdc.dto.SysDeptResultDTO>
*/
List<SysDeptResultDTO> selectAllDeptTree();
/**
* @describe: 通过地区编码查询
* @author wangtong
* @date 2022/8/31 13:57
* @params [areaCode]
* @return com.elink.esua.epdc.entity.SysDeptEntity
*/
SysDeptEntity selectByAreaCode(@Param("areaCode") String areaCode);
}

6
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/entity/SysDeptEntity.java

@ -13,7 +13,6 @@ import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.elink.esua.epdc.commons.mybatis.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -100,4 +99,9 @@ public class SysDeptEntity extends BaseEntity {
*/
private String latitude;
/**
* 所属地区码所属组织地区码
*/
private String areaCode;
}

9
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java

@ -338,4 +338,13 @@ public interface SysDeptService extends BaseService<SysDeptEntity> {
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.lang.String>
*/
Result<List<SysDeptResultDTO>> getAllDeptTree();
/**
* @describe: 通过经纬度获取社区及街道id
* @author wangtong
* @date 2022/8/31 11:19
* @params [dto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptItudeResultDTO>
*/
Result<DeptItudeResultDTO> getDeptIdByItude(DeptItudeFormDTO dto);
}

87
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java

@ -9,6 +9,7 @@
package com.elink.esua.epdc.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.XML;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -54,7 +55,13 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@ -1332,6 +1339,86 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
return new Result<List<SysDeptResultDTO>>().ok(childSortMenu);
}
@Override
public Result<DeptItudeResultDTO> getDeptIdByItude(DeptItudeFormDTO dto) {
String communityCode = getDeptAreaCodeByItude(dto);
if(StringUtils.isBlank(communityCode)){
throw new RenException("暂未获取到相关社区信息,请重新选择地址后重试!");
}
SysDeptEntity community = baseDao.selectByAreaCode(communityCode);
DeptItudeResultDTO result = new DeptItudeResultDTO();
result.setCommunityId(community.getId());
result.setStreetId(community.getPid());
return new Result<DeptItudeResultDTO>().ok(result);
}
/**
* @describe: 访问外部接口获取部门社区地区编码
* @author wangtong
* @date 2022/8/31 13:47
* @params [dto]
* @return java.lang.String
*/
private String getDeptAreaCodeByItude(DeptItudeFormDTO dto){
String responseBody = "";
try {
// 1 指定WebService服务的请求地址:
String wsUrl = "http://120.221.72.15:9089/WebService1.asmx/JW2DSJ?x="+dto.getLatitude()+"&y="+dto.getLongitude();
// 2 创建URL:
URL url = new URL(wsUrl);
// 3 建立连接,并将连接强转为Http连接
URLConnection conn = url.openConnection();
HttpURLConnection con = (HttpURLConnection) conn;
//设置请求方式和请求头:
con.setDoInput(true); // 是否有入参
con.setDoOutput(true); // 是否有出参
con.setRequestMethod("GET"); // 设置请求方式
con.setRequestProperty("content-type", "text/xml;charset=UTF-8");
// 7,服务端返回正常:
int code = con.getResponseCode();
if (code == 200) {// 服务端返回正常
InputStream is = con.getInputStream();
byte[] b = new byte[1024];
StringBuffer sb = new StringBuffer();
int len = 0;
while ((len = is.read(b)) != -1) {
String str = new String(b, 0, len, "UTF-8");
sb.append(str);
}
responseBody = sb.toString();
// responseBody中的数据格式为xml
is.close();
}
con.disconnect();
//使用hutool工具类,取出在xml结点中的最终数据
cn.hutool.json.JSONObject json = XML.toJSONObject(responseBody);
DeptAreaResultDTO reobject = json.toBean(DeptAreaResultDTO.class);
String restring = reobject.getString().getContent();
return restring.substring(getFromIndex(restring,",",3)+1,getFromIndex(restring,",",4));
} catch (Exception e) {
e.printStackTrace();
throw new RenException("暂未获取到相关社区信息,请重新选择地址!");
}
}
//子字符串modelStr在字符串str中第count次出现时的下标
public static int getFromIndex(String str, String modelStr, Integer count) {
//对子字符串进行匹配
Matcher slashMatcher = Pattern.compile(modelStr).matcher(str);
int index = 0;
//matcher.find();尝试查找与该模式匹配的输入序列的下一个子序列
while(slashMatcher.find()) {
index++;
//当modelStr字符第count次出现的位置
if(index == count){
break;
}
}
//matcher.start();返回以前匹配的初始索引。
return slashMatcher.start();
}
/**
* 构建树节点
*/

6
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/AppMenuDao.xml

@ -110,7 +110,8 @@
LEFT JOIN sys_language lc ON lc.table_id = mc.id
LEFT JOIN sys_app_menu_template t ON mp.template_id = t.id
WHERE
mc.id IN (
mp.del_flag=0
and mc.id IN (
SELECT
m.id meauId
FROM
@ -122,7 +123,8 @@
u.mobile =#{value}
AND am.menu_id IS NOT NULL
AND m.pid != 0
)order by mp.sort asc,mc.sort asc
)
order by mp.sort asc,mc.sort asc
</select>
<resultMap id="AnalysisIndexPanelResultDTOMap" type="com.elink.esua.epdc.dto.epdc.result.EpdcAppChildNavResultDTO">
<id column="label" property="label"/>

6
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml

@ -474,5 +474,11 @@
and del_flag='0'
order by sort asc
</select>
<select id="selectByAreaCode" resultType="com.elink.esua.epdc.entity.SysDeptEntity">
select *
from sys_dept
where area_code=#{areaCode}
and del_flag='0'
</select>
</mapper>

18
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiAdminController.java

@ -3,9 +3,8 @@ package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.annotation.LoginUser;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.AppUserIdMenuDTO;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.SysDeptResultDTO;
import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils;
import com.elink.esua.epdc.dto.*;
import com.elink.esua.epdc.dto.epdc.form.CityAreaFormDTO;
import com.elink.esua.epdc.service.AdminService;
import org.springframework.beans.factory.annotation.Autowired;
@ -79,4 +78,17 @@ public class ApiAdminController {
public Result<List<SysDeptResultDTO>> getAllDeptTree() {
return adminService.getAllDeptTree();
}
/**
* @describe: 通过经纬度获取社区及街道id
* @author wangtong
* @date 2022/8/31 11:19
* @params [dto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptItudeResultDTO>
*/
@GetMapping("dept/getDeptIdByItude")
public Result<DeptItudeResultDTO> getDeptIdByItude(DeptItudeFormDTO dto) {
ValidatorUtils.validateEntity(dto);
return adminService.getDeptIdByItude(dto);
}
}

10
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java

@ -182,4 +182,14 @@ public interface AdminFeignClient {
*/
@GetMapping(value = "sys/dept/getAllDeptTree", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<List<SysDeptResultDTO>> getAllDeptTree();
/**
* @describe: 通过经纬度获取社区及街道id
* @author wangtong
* @date 2022/8/31 13:39
* @params [dto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptItudeResultDTO>
*/
@GetMapping(value = "sys/dept/getDeptIdByItude", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<DeptItudeResultDTO> getDeptIdByItude(DeptItudeFormDTO dto);
}

5
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java

@ -95,4 +95,9 @@ public class AdminFeignClientFallback implements AdminFeignClient {
public Result<List<SysDeptResultDTO>> getAllDeptTree() {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getAllDeptTree");
}
@Override
public Result<DeptItudeResultDTO> getDeptIdByItude(DeptItudeFormDTO dto) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getDeptIdByItude",dto);
}
}

13
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java

@ -2,9 +2,7 @@ package com.elink.esua.epdc.service;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.AppUserIdMenuDTO;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.SysDeptResultDTO;
import com.elink.esua.epdc.dto.*;
import com.elink.esua.epdc.dto.epdc.form.CityAreaFormDTO;
import java.util.List;
@ -63,4 +61,13 @@ public interface AdminService {
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.lang.String>
*/
Result<List<SysDeptResultDTO>> getAllDeptTree();
/**
* @describe: 通过经纬度获取社区及街道id
* @author wangtong
* @date 2022/8/31 11:19
* @params [dto]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptItudeResultDTO>
*/
Result<DeptItudeResultDTO> getDeptIdByItude(DeptItudeFormDTO dto);
}

9
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java

@ -2,9 +2,7 @@ package com.elink.esua.epdc.service.impl;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.AppUserIdMenuDTO;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.SysDeptResultDTO;
import com.elink.esua.epdc.dto.*;
import com.elink.esua.epdc.dto.epdc.form.CityAreaFormDTO;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.service.AdminService;
@ -65,4 +63,9 @@ public class AdminServiceImpl implements AdminService {
public Result<List<SysDeptResultDTO>> getAllDeptTree() {
return adminFeignClient.getAllDeptTree();
}
@Override
public Result<DeptItudeResultDTO> getDeptIdByItude(DeptItudeFormDTO dto) {
return adminFeignClient.getDeptIdByItude(dto);
}
}

Loading…
Cancel
Save