Parcourir la Source

增加经纬度的精度

konghl 4 ans auparavant
Parent
commit
1c699138e4

+ 63 - 45
ebc-sea-platform/src/main/java/com/ai/ipu/server/controller/ReceiveSubscribeController.java

@ -1,5 +1,7 @@
1 1
package com.ai.ipu.server.controller;
2 2
3
import java.math.BigDecimal;
4
3 5
import org.springframework.beans.factory.annotation.Autowired;
4 6
import org.springframework.stereotype.Controller;
5 7
import org.springframework.web.bind.annotation.RequestBody;
@ -25,10 +27,10 @@ import com.alibaba.fastjson.JSONObject;
25 27
@RequestMapping("/receiveSubscribe")
26 28
public class ReceiveSubscribeController {
27 29
	private static final ILogger logger = IpuLoggerFactory.createLogger(ReceiveSubscribeController.class);
28
	
30
29 31
	@Autowired
30 32
	ReceiveSubscribeService receiveSubscribeService;
31
	
33
32 34
	/**
33 35
	 * 接收定位消息
34 36
	 * @param msg
@ -37,21 +39,29 @@ public class ReceiveSubscribeController {
37 39
	@ResponseBody
38 40
	@RequestMapping(value = "/receiveIotLocationData", method = RequestMethod.POST)
39 41
	public String receiveIotLocationData(@RequestBody String msg) {
40
		logger.info("已接收定位消息,消息为:" +msg);
41
		
42
		//解析数据
43
		JSONObject msgJson=JSON.parseObject(msg);
44
		JSONObject detailInfo=msgJson.getJSONObject("detailInfo");
45
		JMap dataMap=new JsonMap();
46
		dataMap.put("deviceId",msgJson.getString("resourceId"));//设备id
47
		dataMap.put("deviceNo",msgJson.getString("resourceId"));//设备编码
48
		dataMap.put("longitude",detailInfo.getJSONObject("longitude").getString("value"));//经度
49
		dataMap.put("latitude",detailInfo.getJSONObject("latitude").getString("value"));//纬度
50
		dataMap.put("newDate",detailInfo.getJSONObject("msgDate").getString("value"));//最新定位时间
51
		
52
		//分析并推送定位数据
42
		logger.info("已接收定位消息,消息为:" + msg);
43
44
		// 解析数据
45
		JSONObject msgJson = JSON.parseObject(msg);
46
		JSONObject detailInfo = msgJson.getJSONObject("detailInfo");
47
		JMap dataMap = new JsonMap();
48
		dataMap.put("deviceId", msgJson.getString("resourceId"));// 设备id
49
		dataMap.put("deviceNo", msgJson.getString("resourceId"));// 设备编码
50
		dataMap.put("newDate", detailInfo.getJSONObject("msgDate").getString("value"));// 最新定位时间
51
52
		// 经度
53
		BigDecimal longitudeBigDecimal = detailInfo.getJSONObject("longitude").getBigDecimal("value");
54
		dataMap.put("longitude",
55
				longitudeBigDecimal.setScale(EbcConstant.coord_scale, BigDecimal.ROUND_HALF_UP).toString());
56
57
		// 纬度
58
		BigDecimal latitudeBigDecimal = detailInfo.getJSONObject("latitude").getBigDecimal("value");
59
		dataMap.put("latitude",
60
				latitudeBigDecimal.setScale(EbcConstant.coord_scale, BigDecimal.ROUND_HALF_UP).toString());
61
62
		// 分析并推送定位数据
53 63
		receiveSubscribeService.receiveIotLocationData(dataMap);
54
		
64
55 65
		return msg;
56 66
	}
57 67
@ -63,43 +73,51 @@ public class ReceiveSubscribeController {
63 73
	@ResponseBody
64 74
	@RequestMapping(value = "/receiveIotAlarmData", method = RequestMethod.POST)
65 75
	public String receiveIotAlarmData(@RequestBody String msg) {
66
		logger.info("已接收告警消息,消息为:" +msg);
67
		
68
		//解析数据
69
		JSONObject msgJson=JSON.parseObject(msg);
70
		JSONObject detailInfo=msgJson.getJSONObject("detailInfo");
71
		JMap dataMap=new JsonMap();
72
		dataMap.put("deviceId",msgJson.getString("resourceId"));//设备id
73
		dataMap.put("deviceNo",msgJson.getString("resourceId"));//设备编码
74
		dataMap.put("longitude",detailInfo.getJSONObject("longitude").getString("value"));//经度
75
		dataMap.put("latitude",detailInfo.getJSONObject("latitude").getString("value"));//纬度
76
		dataMap.put("newDate",detailInfo.getJSONObject("msgDate").getString("value"));//最新定位时间
77
		
78
		//报警类型
76
		logger.info("已接收告警消息,消息为:" + msg);
77
78
		// 解析数据
79
		JSONObject msgJson = JSON.parseObject(msg);
80
		JSONObject detailInfo = msgJson.getJSONObject("detailInfo");
81
		JMap dataMap = new JsonMap();
82
		dataMap.put("deviceId", msgJson.getString("resourceId"));// 设备id
83
		dataMap.put("deviceNo", msgJson.getString("resourceId"));// 设备编码
84
		dataMap.put("newDate", detailInfo.getJSONObject("msgDate").getString("value"));// 最新定位时间
85
86
		// 经度
87
		BigDecimal longitudeBigDecimal = detailInfo.getJSONObject("longitude").getBigDecimal("value");
88
		dataMap.put("longitude",
89
				longitudeBigDecimal.setScale(EbcConstant.coord_scale, BigDecimal.ROUND_HALF_UP).toString());
90
91
		// 纬度
92
		BigDecimal latitudeBigDecimal = detailInfo.getJSONObject("latitude").getBigDecimal("value");
93
		dataMap.put("latitude",
94
				latitudeBigDecimal.setScale(EbcConstant.coord_scale, BigDecimal.ROUND_HALF_UP).toString());
95
96
		// 报警类型
79 97
		switch (detailInfo.getJSONObject("alarmType").getIntValue("value")) {
80
		case EbcConstant.alarm_type_autosos_beidou: 
81
			//自动报警
82
			dataMap.put("locationStatus",EbcConstant.location_status_autosos);//定位状态
83
			dataMap.put("alarmType",EbcConstant.alarm_type_autosos_ZH);//报警类型
98
		case EbcConstant.alarm_type_autosos_beidou:
99
			// 自动报警
100
			dataMap.put("locationStatus", EbcConstant.location_status_autosos);// 定位状态
101
			dataMap.put("alarmType", EbcConstant.alarm_type_autosos_ZH);// 报警类型
84 102
			break;
85
		case EbcConstant.alarm_type_jogsos_beidou: 
86
			//手动报警
87
			dataMap.put("locationStatus",EbcConstant.location_status_jogsos);//定位状态
88
			dataMap.put("alarmType",EbcConstant.alarm_type_jogsos_ZH);//报警类型
103
		case EbcConstant.alarm_type_jogsos_beidou:
104
			// 手动报警
105
			dataMap.put("locationStatus", EbcConstant.location_status_jogsos);// 定位状态
106
			dataMap.put("alarmType", EbcConstant.alarm_type_jogsos_ZH);// 报警类型
89 107
			break;
90
		case EbcConstant.alarm_type_offline_beidou: 
91
			//离线
92
			dataMap.put("locationStatus",EbcConstant.location_status_offline);//定位状态
93
			dataMap.put("alarmType",EbcConstant.alarm_type_offline_ZH);//报警类型
108
		case EbcConstant.alarm_type_offline_beidou:
109
			// 离线
110
			dataMap.put("locationStatus", EbcConstant.location_status_offline);// 定位状态
111
			dataMap.put("alarmType", EbcConstant.alarm_type_offline_ZH);// 报警类型
94 112
			break;
95 113
		default:
96
			logger.error("告警消息的内容错误,消息为:" +msg);
114
			logger.error("告警消息的内容错误,消息为:" + msg);
97 115
			return msg;
98 116
		}
99
		
100
		//分析并推送报警数据
117
118
		// 分析并推送报警数据
101 119
		receiveSubscribeService.receiveIotAlarmData(dataMap);
102
		
120
103 121
		return msg;
104 122
	}
105 123

+ 9 - 2
ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/impl/DeviceManageDaoImpl.java

@ -1,6 +1,7 @@
1 1
package com.ai.ipu.server.dao.impl;
2 2
3 3
import java.io.IOException;
4
import java.math.BigDecimal;
4 5
import java.util.ArrayList;
5 6
import java.util.HashMap;
6 7
import java.util.List;
@ -228,10 +229,16 @@ public class DeviceManageDaoImpl extends AbstractBizDao implements DeviceManageD
228 229
			Map<String, String> detailInfoMap = new HashMap<String, String>();
229 230
			detailInfoMap.put("deviceId", String.valueOf(resultMap.get("resourceId")));// 设备id
230 231
			detailInfoMap.put("deviceNo", String.valueOf(resultMap.get("resourceId")));// 设备编码
231
			detailInfoMap.put("longitude", detailInfo.getJSONObject("longitude").getString("value"));// 经度
232
			detailInfoMap.put("latitude", detailInfo.getJSONObject("latitude").getString("value"));// 纬度
233 232
			detailInfoMap.put("newDate", detailInfo.getJSONObject("msgDate").getString("value"));// 最新定位时间
234 233
			
234
			// 经度
235
			BigDecimal longitudeBigDecimal=detailInfo.getJSONObject("longitude").getBigDecimal("value");
236
			detailInfoMap.put("longitude",longitudeBigDecimal.setScale(EbcConstant.coord_scale, BigDecimal.ROUND_HALF_UP).toString());
237
			
238
			// 纬度
239
			BigDecimal latitudeBigDecimal= detailInfo.getJSONObject("latitude").getBigDecimal("value");
240
			detailInfoMap.put("latitude",latitudeBigDecimal.setScale(EbcConstant.coord_scale, BigDecimal.ROUND_HALF_UP).toString());
241
			
235 242
			// 报警类型
236 243
			if (detailInfo.getJSONObject("alarmType")!=null) {
237 244
				detailInfoMap.put("alarmType", detailInfo.getJSONObject("alarmType").getString("value"));

+ 3 - 0
ebc-sea-platform/src/main/java/com/ai/ipu/server/util/EbcConstant.java

@ -9,6 +9,9 @@ public class EbcConstant {
9 9
	// 下拉列表最大查询条数
10 10
	public static final int comboBox_maxNum = 20;
11 11
12
	//经纬度的精度
13
	public static final int coord_scale=7;
14
	
12 15
	// 终端的产品id
13 16
	public static final String beidouDevice_product_id = "57700004344";
14 17