Explorar el Código

达沃特大屏修改

lazhaoqian hace 3 años
padre
commit
a451733861

+ 4 - 0
blade-common/pom.xml

@@ -32,6 +32,10 @@
             <groupId>commons-fileupload</groupId>
             <artifactId>commons-fileupload</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+        </dependency>
     </dependencies>
 
     <build>

+ 57 - 0
blade-common/src/main/java/org/springblade/common/utils/AddressUtil.java

@@ -0,0 +1,57 @@
+package org.springblade.common.utils;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.math.BigDecimal;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+
+public class AddressUtil {
+
+	private final static  String AMAPkey = "giPPmuSUdzqr6IuvBEnSggHfUvVDORUC";
+	public static Map<String, BigDecimal> getLnglat(String address) {
+		//"http://restapi.amap.com/v3/geocode/geo?address=上海市东方明珠&output=JSON&key=xxxxxxxxx";
+		String geturl = "https://api.map.baidu.com/geocoding/v3/?address=" + address + "&output=json&ak=" + AMAPkey;
+		String location = "";
+		Map<String,BigDecimal> map = new HashMap<>();
+		try {
+			URL url = new URL(geturl);    // 把字符串转换为URL请求地址
+			HttpURLConnection connection = (HttpURLConnection) url.openConnection();// 打开连接
+			connection.connect();// 连接会话
+			// 获取输入流
+			BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+			String line;
+			StringBuilder sb = new StringBuilder();
+			while ((line = br.readLine()) != null) {// 循环读取流
+				sb.append(line);
+			}
+			br.close();// 关闭流
+			connection.disconnect();// 断开连接
+			JSONObject a = JSON.parseObject(sb.toString());
+			//判断输入的位置点是否存在
+			System.out.println(sb.toString());
+			if (a.getJSONObject("result").size() > 0) {
+				BigDecimal lng = (BigDecimal) a.getJSONObject("result").getJSONObject("location").get("lng");
+				BigDecimal lat = (BigDecimal)a.getJSONObject("result").getJSONObject("location").get("lat");
+				map.put("lng",lng);
+				map.put("lat",lat);
+				return map;
+			}
+			return null;
+		} catch (Exception e) {
+			System.out.println(address+"获取经纬度失败");
+			return null;
+		}
+	}
+
+	public static void main(String[] args) {
+		Map<String, BigDecimal> map = AddressUtil.getLnglat("丰台区");
+		System.out.println(map);
+	}
+}

+ 6 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/entity/CorpsDesc.java

@@ -349,4 +349,10 @@ public class CorpsDesc implements Serializable {
 	@ApiModelProperty(value = "使用车辆数量")
 	private Integer vehicleCount;
 
+	/**
+	 * 大屏获取地址数据
+	 */
+	@ApiModelProperty(value = "大屏获取地址数据")
+	private String addressLatLng;
+
 }

+ 41 - 0
blade-service-api/blade-client-api/src/main/java/org/springblade/client/vo/CorpAddressVo.java

@@ -0,0 +1,41 @@
+package org.springblade.client.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 数据大屏获取客户地址回显对象
+ */
+@Data
+public class CorpAddressVo implements Serializable {
+	private static final long serialVersionUID = 1L;
+
+	/**
+	 * 地址
+	 */
+	@ApiModelProperty(value = "地址")
+	private String name;
+	/**
+	 *
+	 */
+	@ApiModelProperty(value = "不知道")
+	private Long value;
+	/**
+	 * 纬度
+	 */
+	@ApiModelProperty(value = "纬度")
+	private BigDecimal lat;
+	/**
+	 * 经度
+	 */
+	@ApiModelProperty(value = "经度")
+	private BigDecimal lng;
+	/**
+	 *
+	 */
+	@ApiModelProperty(value = "不知道")
+	private Long zoom;
+}

+ 11 - 0
blade-service-api/blade-system-api/src/main/java/org/springblade/system/entity/Region.java

@@ -24,6 +24,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 
 /**
  * 行政区划表实体类
@@ -123,6 +124,16 @@ public class Region implements Serializable {
 	 */
 	@ApiModelProperty(value = "备注")
 	private String remark;
+	/**
+	 * 纬度
+	 */
+	@ApiModelProperty(value = "纬度")
+	private BigDecimal lat;
+	/**
+	 * 经度
+	 */
+	@ApiModelProperty(value = "经度")
+	private BigDecimal lng;
 
 
 }

+ 63 - 0
blade-service/blade-client/src/main/java/org/springblade/client/bigScreen/CorpAddressController.java

@@ -0,0 +1,63 @@
+package org.springblade.client.bigScreen;
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.client.corps.service.ICorpsDescService;
+import org.springblade.client.entity.CorpsDesc;
+import org.springblade.client.vo.CorpAddressVo;
+import org.springblade.core.boot.ctrl.BladeController;
+import org.springblade.core.secure.utils.SecureUtil;
+import org.springblade.core.tool.api.R;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 数据大屏获取客户分布
+ *
+ * @author BladeX
+ * @since 2021-09-13
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/corpAddress")
+@Api(value = "客户详情", tags = "客户详情接口")
+public class CorpAddressController extends BladeController {
+
+	private final ICorpsDescService corpsDescService;
+	/**
+	 * 分页 客户详情
+	 */
+	@GetMapping("/list")
+	@ApiOperationSupport(order = 1)
+	@ApiOperation(value = "数据大屏获取客户分布")
+	public R getCorpAddress(){
+		List<CorpAddressVo> list = new ArrayList<>();
+		LambdaQueryWrapper<CorpsDesc> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.eq(CorpsDesc::getIsDeleted,0);
+		lambdaQueryWrapper.eq(CorpsDesc::getTenantId, SecureUtil.getTenantId());
+		lambdaQueryWrapper.eq(CorpsDesc::getCorpType,"KH");
+		List<CorpsDesc> corpsDescList = corpsDescService.list(lambdaQueryWrapper);
+		if (CollectionUtils.isNotEmpty(corpsDescList)){
+			List<String> collect = corpsDescList.stream().filter(e -> StringUtils.isNotBlank(e.getAddressLatLng())).map(CorpsDesc::getAddressLatLng).collect(Collectors.toList());
+			if (CollectionUtils.isNotEmpty(collect)){
+				for (String s : collect) {
+					List<CorpAddressVo> corpAddressVoList = JSON.parseArray(s, CorpAddressVo.class);
+					list.addAll(corpAddressVoList);
+				}
+			}
+		}
+		return R.data(list);
+	}
+}

+ 86 - 0
blade-service/blade-system/src/main/java/org/springblade/system/controller/RegionController.java

@@ -18,10 +18,13 @@ package org.springblade.system.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
+import org.springblade.common.utils.AddressUtil;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.excel.util.ExcelUtil;
 import org.springblade.core.mp.support.Condition;
@@ -41,6 +44,7 @@ import springfox.documentation.annotations.ApiIgnore;
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -154,6 +158,35 @@ public class RegionController extends BladeController {
 	@ApiOperationSupport(order = 7)
 	@ApiOperation(value = "新增或修改", notes = "传入region")
 	public R submit(@Valid @RequestBody Region region) {
+		//获取地址经纬度
+		String address = "";
+		//省
+		if (StringUtils.isNotBlank(region.getProvinceName())){
+			address = address + region.getProvinceName();
+		}
+		//市
+		if (StringUtils.isNotBlank(region.getCityName())){
+			address = address + region.getCityName();
+		}
+		//区
+		if (StringUtils.isNotBlank(region.getDistrictName())){
+			address = address + region.getDistrictName();
+		}
+		//镇
+		if (StringUtils.isNotBlank(region.getTownName())){
+			address = address + region.getTownName();
+		}
+		//村
+		if (StringUtils.isNotBlank(region.getVillageName())){
+			address = address + region.getVillageName();
+		}
+		if (StringUtils.isNotBlank(address)){
+			Map<String, BigDecimal> map = AddressUtil.getLnglat(address);
+			if (map != null){
+				region.setLat(map.get("lat"));
+				region.setLng(map.get("lng"));
+			}
+		}
 		return R.status(regionService.submit(region));
 	}
 
@@ -213,6 +246,59 @@ public class RegionController extends BladeController {
 		List<RegionExcel> list = new ArrayList<>();
 		ExcelUtil.export(response, "行政区划模板", "行政区划表", list, RegionExcel.class);
 	}
+	/**
+	 * 批量获取经纬度
+	 */
+	@GetMapping("getAddress")
+	@ApiOperationSupport(order = 13)
+	@ApiOperation(value = "批量获取经纬度")
+	public R getAddress() {
+		List<Region> list = regionService.list();
+		if (CollectionUtils.isNotEmpty(list)){
+			for (Region region : list) {
+				//获取地址经纬度
+				String address = "";
+				//省
+				if (StringUtils.isNotBlank(region.getProvinceName())){
+					address = address + region.getProvinceName();
+				}
+				//市
+				if (StringUtils.isNotBlank(region.getCityName())){
+					address = address + region.getCityName();
+				}
+				//区
+				if (StringUtils.isNotBlank(region.getDistrictName())){
+					address = address + region.getDistrictName();
+				}
+				//镇
+				if (StringUtils.isNotBlank(region.getTownName())){
+					address = address + region.getTownName();
+				}
+				//村
+				if (StringUtils.isNotBlank(region.getVillageName())){
+					address = address + region.getVillageName();
+				}
+				if (StringUtils.isNotBlank(address)){
+					Map<String, BigDecimal> map = AddressUtil.getLnglat(address);
+					if (map != null){
+						region.setLat(map.get("lat"));
+						region.setLng(map.get("lng"));
+					}
+				}
+				regionService.updateById(region);
+			}
+		}
 
+		return R.success("操作成功");
+	}
+	/**
+	 * 获取经纬度
+	 */
+	@GetMapping("getAddressMessage")
+	@ApiOperationSupport(order = 14)
+	@ApiOperation(value = "获取经纬度")
+	public R getAddressMessage(@RequestParam("address") String address) {
+		return R.data(AddressUtil.getLnglat(address));
+	}
 
 }