Przeglądaj źródła

修改人员定位功能数据订阅的解析

konghl 4 lat temu
rodzic
commit
510c6be0e7

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

@ -1,6 +1,8 @@
1 1
package com.ai.ipu.server.controller;
2 2
3 3
import java.math.BigDecimal;
4
import java.util.List;
5
import java.util.Map;
4 6
5 7
import org.springframework.beans.factory.annotation.Autowired;
6 8
import org.springframework.stereotype.Controller;
@ -42,25 +44,29 @@ public class ReceiveSubscribeController {
42 44
		logger.info("已接收定位消息,消息为:" + msg);
43 45
44 46
		// 解析数据
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
		// 分析并推送定位数据
63
		receiveSubscribeService.receiveIotLocationData(dataMap);
47
		List<Map> msgList = JSON.parseArray(msg, Map.class);
48
		for (Map msgMap : msgList) {
49
			String msgJson = (String) msgMap.get("dataPointValue");
50
			JSONObject detailInfo = JSONObject.parseObject(msgJson);
51
			JMap detailInfoMap = new JsonMap();
52
			detailInfoMap.put("deviceId", String.valueOf(msgMap.get("resourceId")));// 设备ID
53
			detailInfoMap.put("deviceNo", String.valueOf(msgMap.get("resourceId")));// 设备编码
54
			detailInfoMap.put("newDate", detailInfo.getJSONObject("msgDate").getString("value"));// 最新定位时间
55
56
			// 经度
57
			BigDecimal longitudeBigDecimal = detailInfo.getJSONObject("longitude").getBigDecimal("value");
58
			detailInfoMap.put("longitude",
59
					longitudeBigDecimal.setScale(EbcConstant.coord_scale, BigDecimal.ROUND_HALF_UP).toString());
60
61
			// 纬度
62
			BigDecimal latitudeBigDecimal = detailInfo.getJSONObject("latitude").getBigDecimal("value");
63
			detailInfoMap.put("latitude",
64
					latitudeBigDecimal.setScale(EbcConstant.coord_scale, BigDecimal.ROUND_HALF_UP).toString());
65
66
			// 分析并推送定位数据
67
			receiveSubscribeService.receiveIotLocationData(detailInfoMap);
68
69
		}
64 70
65 71
		return msg;
66 72
	}
@ -76,49 +82,54 @@ public class ReceiveSubscribeController {
76 82
		logger.info("已接收告警消息,消息为:" + msg);
77 83
78 84
		// 解析数据
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
		// 报警类型
97
		switch (detailInfo.getJSONObject("alarmType").getIntValue("value")) {
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);// 报警类型
102
			break;
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);// 报警类型
107
			break;
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);// 报警类型
112
			break;
113
		default:
114
			logger.error("告警消息的内容错误,消息为:" + msg);
115
			return msg;
116
		}
85
		List<Map> msgList = JSON.parseArray(msg, Map.class);
86
		for (Map msgMap : msgList) {
87
			String msgJson = (String) msgMap.get("dataPointValue");
88
			JSONObject detailInfo = JSONObject.parseObject(msgJson);
89
			JMap detailInfoMap = new JsonMap();
90
			detailInfoMap.put("deviceId", String.valueOf(msgMap.get("resourceId")));// 设备ID
91
			detailInfoMap.put("deviceNo", String.valueOf(msgMap.get("resourceId")));// 设备编码
92
			detailInfoMap.put("newDate", detailInfo.getJSONObject("msgDate").getString("value"));// 最新定位时间
93
94
			// 经度
95
			BigDecimal longitudeBigDecimal = detailInfo.getJSONObject("longitude").getBigDecimal("value");
96
			detailInfoMap.put("longitude",
97
					longitudeBigDecimal.setScale(EbcConstant.coord_scale, BigDecimal.ROUND_HALF_UP).toString());
98
99
			// 纬度
100
			BigDecimal latitudeBigDecimal = detailInfo.getJSONObject("latitude").getBigDecimal("value");
101
			detailInfoMap.put("latitude",
102
					latitudeBigDecimal.setScale(EbcConstant.coord_scale, BigDecimal.ROUND_HALF_UP).toString());
103
104
			// 报警类型
105
			switch (detailInfo.getJSONObject("alarmType").getIntValue("value")) {
106
			case EbcConstant.alarm_type_autosos_beidou:
107
				// 自动报警
108
				detailInfoMap.put("locationStatus", EbcConstant.location_status_autosos);// 定位状态
109
				detailInfoMap.put("alarmType", EbcConstant.alarm_type_autosos_ZH);// 报警类型
110
				break;
111
			case EbcConstant.alarm_type_jogsos_beidou:
112
				// 手动报警
113
				detailInfoMap.put("locationStatus", EbcConstant.location_status_jogsos);// 定位状态
114
				detailInfoMap.put("alarmType", EbcConstant.alarm_type_jogsos_ZH);// 报警类型
115
				break;
116
			case EbcConstant.alarm_type_offline_beidou:
117
				// 离线
118
				detailInfoMap.put("locationStatus", EbcConstant.location_status_offline);// 定位状态
119
				detailInfoMap.put("alarmType", EbcConstant.alarm_type_offline_ZH);// 报警类型
120
				break;
121
			default:
122
				logger.error("告警消息的内容错误,消息为:" + msg);
123
				return msg;
124
			}
125
126
			// 分析并推送报警数据
127
			receiveSubscribeService.receiveIotAlarmData(detailInfoMap);
117 128
118
		// 分析并推送报警数据
119
		receiveSubscribeService.receiveIotAlarmData(dataMap);
129
		}
120 130
121 131
		return msg;
132
122 133
	}
123 134
124 135
}

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

@ -224,10 +224,10 @@ public class DeviceManageDaoImpl extends AbstractBizDao implements DeviceManageD
224 224
225 225
		List<Map<String, String>> list = new ArrayList<Map<String, String>>();
226 226
		for (Map resultMap : resultList) {
227
			String object = (String) resultMap.get("dataPointValue");
228
			JSONObject detailInfo = JSONObject.parseObject(object);
227
			String msgJson = (String) resultMap.get("dataPointValue");
228
			JSONObject detailInfo = JSONObject.parseObject(msgJson);
229 229
			Map<String, String> detailInfoMap = new HashMap<String, String>();
230
			detailInfoMap.put("deviceId", String.valueOf(resultMap.get("resourceId")));// 设备id
230
			detailInfoMap.put("deviceId", String.valueOf(resultMap.get("resourceId")));// 设备ID
231 231
			detailInfoMap.put("deviceNo", String.valueOf(resultMap.get("resourceId")));// 设备编码
232 232
			detailInfoMap.put("newDate", detailInfo.getJSONObject("msgDate").getString("value"));// 最新定位时间
233 233
			

+ 1 - 1
ebc-sea-platform/src/main/java/com/ai/ipu/server/service/impl/ReceiveSubscribeServiceImpl.java

@ -110,7 +110,7 @@ public class ReceiveSubscribeServiceImpl implements ReceiveSubscribeService {
110 110
			logger.debug("定位信息的对象为人员: " + bindInfoMap.get("NAME"));
111 111
			params.put("userName", bindInfoMap.get("NAME"));
112 112
			params.put("userCode", bindInfoMap.get("CODE"));
113
			dataMap.put("locationStatus", EbcConstant.location_status_normal);// 定位状态
113
			params.put("locationStatus", EbcConstant.location_status_normal);// 定位状态
114 114
		} else {
115 115
			bindInfoMap = deviceManageDao.queryOneBindShip(params.getString("deviceId"), null);
116 116
			if (bindInfoMap != null) {