浏览代码

重构实时报警和历史报警

konghl 4 年之前
父节点
当前提交
6809ddead2

+ 1 - 2
location-rescue-service/src/main/java/com/ai/bss/location/rescue/controller/AlarmManagementController.java

17
import com.ai.abc.api.model.CommonRequest;
17
import com.ai.abc.api.model.CommonRequest;
18
import com.ai.abc.api.model.CommonResponse;
18
import com.ai.abc.api.model.CommonResponse;
19
import com.ai.bss.components.common.model.PageBean;
19
import com.ai.bss.components.common.model.PageBean;
20
import com.ai.bss.components.common.model.PageInfo;
21
import com.ai.bss.location.rescue.service.interfaces.AlarmManagementService;
20
import com.ai.bss.location.rescue.service.interfaces.AlarmManagementService;
22
import com.ai.bss.location.rescue.util.EbcConstant;
21
import com.ai.bss.location.rescue.util.EbcConstant;
23
import com.ai.bss.work.rescue.model.WorkTaskRescue;
22
import com.ai.bss.work.rescue.model.WorkTaskRescue;
42
	 */
41
	 */
43
	@ResponseBody
42
	@ResponseBody
44
	@RequestMapping("/loadAlarmDetails")
43
	@RequestMapping("/loadAlarmDetails")
45
	public CommonResponse<Map<String, Object>> loadAlarmDetails() throws Exception {
44
	public CommonResponse<List<Map<String,Object>>> loadAlarmDetails() throws Exception {
46
		return alarmManagementService.loadAlarmDetails();
45
		return alarmManagementService.loadAlarmDetails();
47
	}
46
	}
48
47

+ 79 - 15
location-rescue-service/src/main/java/com/ai/bss/location/rescue/service/impl/AlarmManagementServiceImpl.java

9
import org.slf4j.LoggerFactory;
9
import org.slf4j.LoggerFactory;
10
import org.springframework.beans.factory.annotation.Autowired;
10
import org.springframework.beans.factory.annotation.Autowired;
11
import org.springframework.stereotype.Service;
11
import org.springframework.stereotype.Service;
12
import org.springframework.util.CollectionUtils;
12
13
13
import com.ai.abc.api.model.CommonRequest;
14
import com.ai.abc.api.model.CommonRequest;
14
import com.ai.abc.api.model.CommonResponse;
15
import com.ai.abc.api.model.CommonResponse;
16
import com.ai.bss.characteristic.spec.model.CharacteristicSpecValue;
17
import com.ai.bss.characteristic.spec.model.CharacteristicSpecValue;
17
import com.ai.bss.characteristic.spec.service.api.CharacteristicSpecService;
18
import com.ai.bss.characteristic.spec.service.api.CharacteristicSpecService;
18
import com.ai.bss.components.common.model.PageBean;
19
import com.ai.bss.components.common.model.PageBean;
19
import com.ai.bss.components.common.model.PageInfo;
20
import com.ai.bss.location.rescue.service.interfaces.AlarmManagementService;
20
import com.ai.bss.location.rescue.service.interfaces.AlarmManagementService;
21
import com.ai.bss.location.rescue.util.DateUtil;
21
import com.ai.bss.location.rescue.util.DateUtil;
22
import com.ai.bss.location.rescue.util.EbcConstant;
22
import com.ai.bss.location.rescue.util.EbcConstant;
25
import com.ai.bss.work.rescue.model.WorkTaskRescue;
25
import com.ai.bss.work.rescue.model.WorkTaskRescue;
26
import com.ai.bss.work.rescue.service.api.RescueCommand;
26
import com.ai.bss.work.rescue.service.api.RescueCommand;
27
import com.ai.bss.work.rescue.service.api.RescueQueryService;
27
import com.ai.bss.work.rescue.service.api.RescueQueryService;
28
import com.ai.bss.work.task.model.common.WorkTask;
28
import com.ai.bss.work.tool.model.ResourceToolType;
29
import com.ai.bss.work.tool.model.ResourceToolType;
29
import com.ai.bss.work.tool.service.api.ResourceToolQuery;
30
import com.ai.bss.work.tool.service.api.ResourceToolQuery;
30
import com.ai.bss.worker.service.api.MapAreaTagQuery;
31
import com.ai.bss.worker.service.api.MapAreaTagQuery;
31
import com.alibaba.fastjson.JSONObject;
32
import com.alibaba.fastjson.JSONObject;
32
33
33
import org.springframework.util.CollectionUtils;
34
35
@Service
34
@Service
36
public class AlarmManagementServiceImpl implements AlarmManagementService {
35
public class AlarmManagementServiceImpl implements AlarmManagementService {
37
	Logger logger = LoggerFactory.getLogger(AlarmManagementServiceImpl.class);
36
	Logger logger = LoggerFactory.getLogger(AlarmManagementServiceImpl.class);
61
	 * @throws Exception
60
	 * @throws Exception
62
	 */
61
	 */
63
	@Override
62
	@Override
64
	public CommonResponse<Map<String, Object>> loadAlarmDetails() throws Exception {
65
66
		// CommonResponse<PageBean<WorkTaskRescue>> aaa=rescueQueryService.queryWorkTaskRescue(CommonRequest<Map<String,Object>> conditionMapRequest);
67
68
		return null;
63
	public CommonResponse<List<Map<String,Object>>> loadAlarmDetails() throws Exception {
64
		Map<String, Object> param = new HashMap<String, Object>();
65
		param.put("notStatus", WorkTask.END_STATUS);
66
		CommonRequest<Map<String, Object>> request =new CommonRequest(param);
67
		CommonResponse<List<Map<String,Object>>> response = rescueQueryService.queryWorkTaskRescue(request);
68
		
69
		if (CollectionUtils.isEmpty(response.getData())) {
70
			return CommonResponse.ok(new ArrayList<Map<String,Object>>());
71
		}
72
		
73
		CharacteristicSpec characteristicSpec = characteristicSpecService
74
				.findBusinessSpecByCharSpecCode(EbcConstant.BUSINESS_SPEC_MAP_AREA_TYPE);
75
		
76
		List<Map<String, Object>> alarmTaskList=new ArrayList<Map<String,Object>>();
77
		
78
		for (Map<String, Object> responseMap : response.getData()) {
79
			Map<String, Object> alarmMap=new HashMap<String, Object>();
80
			JSONObject alarmJsonObj=JSONObject.parseObject(responseMap.get("charValueSet").toString());
81
			
82
			alarmMap.put("workTaskId",responseMap.get("workTaskId"));
83
			long alarmTimeLong=Long.valueOf(alarmJsonObj.getString("alarmTime"));
84
			alarmMap.put("alarmTime",DateUtil.formatDate(alarmTimeLong));
85
			alarmMap.put("terminalId",responseMap.get("terminalId"));
86
			
87
			//alarmMap.put("businessType", alarmJsonObj.getString("businessType"));
88
			String businessType=alarmJsonObj.getString("businessType");
89
			for (CharacteristicSpecValue characteristicSpecValue : characteristicSpec.getCharacteristicSpecValues()) {
90
				if (characteristicSpecValue.getCode().equals(businessType)) {
91
					alarmMap.put("businessType", characteristicSpecValue.getCode());
92
					alarmMap.put("businessTypeZH", characteristicSpecValue.getValue());
93
					break;
94
				}
95
			}
96
			
97
			alarmMap.put("rescueTargetEntityPosition",responseMap.get("rescueTargetEntityPosition"));
98
			if (responseMap.get("rescueEntityPosition")==null) {
99
				alarmMap.put("rescueEntityPosition",null);
100
				alarmMap.put("isAssignAlarm",EbcConstant.IS_ASSIGN_RESCUER_FALSE);
101
			}else {
102
				alarmMap.put("rescueEntityPosition",responseMap.get("rescueEntityPosition"));
103
				alarmMap.put("isAssignAlarm",EbcConstant.IS_ASSIGN_RESCUER_TRUE);
104
			}
105
			
106
			alarmTaskList.add(alarmMap);
107
		}
108
		
109
		return CommonResponse.ok(alarmTaskList);
69
	}
110
	}
70
111
71
	/**
112
	/**
146
			return response;
187
			return response;
147
		}
188
		}
148
		
189
		
149
		List<Map<String, String>> AlarmTypeList=queryAlarmTypeList();
150
		List<Map<String, Object>> alarmTaskMap=new ArrayList<Map<String,Object>>();
190
		List<Map<String, Object>> alarmTaskList=new ArrayList<Map<String,Object>>();
151
		
191
		
152
		for (Map<String, Object> responseMap : response.getData().getData()) {
192
		for (Map<String, Object> responseMap : response.getData().getData()) {
153
			Map<String, Object> alarmMap=new HashMap<String, Object>();
193
			Map<String, Object> alarmMap=new HashMap<String, Object>();
155
			
195
			
156
			alarmMap.put("workTaskId",responseMap.get("workTaskId"));
196
			alarmMap.put("workTaskId",responseMap.get("workTaskId"));
157
			alarmMap.put("terminalId",responseMap.get("terminalId"));
197
			alarmMap.put("terminalId",responseMap.get("terminalId"));
198
			alarmMap.put("longitude",alarmJsonObj.getString("longitude"));
199
			alarmMap.put("latitude",alarmJsonObj.getString("latitude"));
200
			alarmMap.put("businessType", alarmJsonObj.getString("businessType"));
158
			alarmMap.put("targetUserId",responseMap.get("targetEmployeeRoleId"));
201
			alarmMap.put("targetUserId",responseMap.get("targetEmployeeRoleId"));
159
			alarmMap.put("targetUserName",responseMap.get("targetEmployeeRoleName"));
202
			alarmMap.put("targetUserName",responseMap.get("targetEmployeeRoleName"));
160
			alarmMap.put("rescueUserId",responseMap.get("rescueWorkEmployeeRoleId"));
161
			alarmMap.put("rescueUserName",responseMap.get("rescueWorkEmployeeRoleName"));
162
			alarmMap.put("alarmTime",DateUtil.formatDate(Long.valueOf(alarmJsonObj.getString("alarmTime"))));
163
			
203
			long alarmTimeLong=Long.valueOf(alarmJsonObj.getString("alarmTime"));
204
			alarmMap.put("alarmTime",DateUtil.formatDate(alarmTimeLong));
164
			
205
			
206
			if (responseMap.get("rescueWorkEmployeeRoleId")!=null) {
207
				alarmMap.put("rescueUserId",responseMap.get("rescueWorkEmployeeRoleId"));
208
				alarmMap.put("rescueUserName",responseMap.get("rescueWorkEmployeeRoleName"));
209
				if (responseMap.get("rescueCloseTime")!=null) {
210
					long rescueTimeLong=DateUtil.convertDate(responseMap.get("rescueCloseTime").toString()).getTime();
211
					alarmMap.put("rescueTime",responseMap.get("rescueCloseTime").toString());
212
					alarmMap.put("durationTime",DateUtil.getDifferenceString(alarmTimeLong, rescueTimeLong));
213
				}else {
214
					alarmMap.put("rescueTime","-");
215
					alarmMap.put("durationTime","-");
216
				}
217
				alarmMap.put("isFalseAlarm",EbcConstant.IS_ASSIGN_RESCUER_TRUE);
218
				
219
			}else {
220
				alarmMap.put("rescueUserId",null);
221
				alarmMap.put("rescueUserName","-");
222
				alarmMap.put("rescueTime","-");
223
				alarmMap.put("durationTime","-");
224
				alarmMap.put("isFalseAlarm",EbcConstant.IS_ASSIGN_RESCUER_FALSE);
225
			}
165
			
226
			
227
			alarmTaskList.add(alarmMap);
166
		}
228
		}
229
		
230
		response.getData().setData(alarmTaskList);
167
231
168
		return response;
232
		return response;
169
	}
233
	}
178
		CharacteristicSpec characteristicSpec = characteristicSpecService
242
		CharacteristicSpec characteristicSpec = characteristicSpecService
179
				.findBusinessSpecByCharSpecCode(EbcConstant.BUSINESS_SPEC_MAP_AREA_TYPE);
243
				.findBusinessSpecByCharSpecCode(EbcConstant.BUSINESS_SPEC_MAP_AREA_TYPE);
180
244
181
		if (characteristicSpec == null) {
245
		if (characteristicSpec == null||CollectionUtils.isEmpty(characteristicSpec.getCharacteristicSpecValues())) {
182
			return new ArrayList<Map<String, String>>();
246
			return new ArrayList<Map<String, String>>();
183
		}
247
		}
184
248

+ 2 - 2
location-rescue-service/src/main/java/com/ai/bss/location/rescue/service/impl/LocationManagementServiceImpl.java

152
		String[][] resultArray = new String[traceList.size()][3];
152
		String[][] resultArray = new String[traceList.size()][3];
153
		for (int i = 0; i < traceList.size(); i++) {
153
		for (int i = 0; i < traceList.size(); i++) {
154
			String[] coordArray = new String[3];
154
			String[] coordArray = new String[3];
155
			coordArray[0] = String.valueOf(traceList.get(i).get("longitude"));
156
			coordArray[1] = String.valueOf(traceList.get(i).get("latitude"));
155
			coordArray[0] = String.valueOf(traceList.get(i).get("latitude"));
156
			coordArray[1] = String.valueOf(traceList.get(i).get("longitude"));
157
			coordArray[2] = String.valueOf(traceList.get(i).get("createDate"));
157
			coordArray[2] = String.valueOf(traceList.get(i).get("createDate"));
158
			resultArray[i] = coordArray;
158
			resultArray[i] = coordArray;
159
		}
159
		}

+ 1 - 3
location-rescue-service/src/main/java/com/ai/bss/location/rescue/service/interfaces/AlarmManagementService.java

4
import java.util.List;
4
import java.util.List;
5
import java.util.Map;
5
import java.util.Map;
6
6
7
import com.ai.abc.api.model.CommonRequest;
8
import com.ai.abc.api.model.CommonResponse;
7
import com.ai.abc.api.model.CommonResponse;
9
import com.ai.bss.components.common.model.PageBean;
8
import com.ai.bss.components.common.model.PageBean;
10
import com.ai.bss.components.common.model.PageInfo;
11
import com.ai.bss.work.rescue.model.WorkTaskRescue;
9
import com.ai.bss.work.rescue.model.WorkTaskRescue;
12
10
13
/**
11
/**
22
	 * @return
20
	 * @return
23
	 * @throws Exception
21
	 * @throws Exception
24
	 */
22
	 */
25
	CommonResponse<Map<String, Object>> loadAlarmDetails() throws Exception;
23
	CommonResponse<List<Map<String,Object>>> loadAlarmDetails() throws Exception;
26
24
27
	/**
25
	/**
28
	 * 查询地图标记和设备信息
26
	 * 查询地图标记和设备信息

+ 30 - 5
location-rescue-service/src/main/java/com/ai/bss/location/rescue/service/task/AlarmMirrorTask.java

1
package com.ai.bss.location.rescue.service.task;
1
package com.ai.bss.location.rescue.service.task;
2
2
3
import java.util.HashMap;
3
import java.util.Map;
4
import java.util.Map;
4
5
5
import org.apache.commons.collections4.map.HashedMap;
6
import org.apache.commons.collections4.map.HashedMap;
6
import org.slf4j.Logger;
7
import org.slf4j.Logger;
7
import org.slf4j.LoggerFactory;
8
import org.slf4j.LoggerFactory;
9
import org.springframework.beans.factory.annotation.Autowired;
8
import org.springframework.stereotype.Component;
10
import org.springframework.stereotype.Component;
11
import org.springframework.util.CollectionUtils;
9
12
10
import com.ai.abc.api.model.CommonRequest;
13
import com.ai.abc.api.model.CommonRequest;
11
import com.ai.abc.api.model.CommonResponse;
14
import com.ai.abc.api.model.CommonResponse;
15
import com.ai.bss.characteristic.spec.model.CharacteristicSpec;
16
import com.ai.bss.characteristic.spec.model.CharacteristicSpecValue;
17
import com.ai.bss.characteristic.spec.service.api.CharacteristicSpecService;
12
import com.ai.bss.location.rescue.util.DateUtil;
18
import com.ai.bss.location.rescue.util.DateUtil;
19
import com.ai.bss.location.rescue.util.EbcConstant;
13
import com.ai.bss.work.task.model.common.WorkTask;
20
import com.ai.bss.work.task.model.common.WorkTask;
14
import com.ai.bss.worker.service.api.EntityAlarmHandle;
21
import com.ai.bss.worker.service.api.EntityAlarmHandle;
15
import com.alibaba.fastjson.JSON;
22
import com.alibaba.fastjson.JSON;
19
public class AlarmMirrorTask implements EntityAlarmHandle {
26
public class AlarmMirrorTask implements EntityAlarmHandle {
20
	Logger logger = LoggerFactory.getLogger(AlarmMirrorTask.class);
27
	Logger logger = LoggerFactory.getLogger(AlarmMirrorTask.class);
21
28
29
	@Autowired
30
	private CharacteristicSpecService characteristicSpecService;
31
	
22
	/**
32
	/**
23
	 * 镜屏推送实时报警信息
33
	 * 镜屏推送实时报警信息
24
	 *
34
	 *
30
		logger.debug("实时报警接收镜屏数据: " + JSON.toJSONString(workTask));
40
		logger.debug("实时报警接收镜屏数据: " + JSON.toJSONString(workTask));
31
		try {
41
		try {
32
			String charValueSet = workTask.getData().getCharValueSet();
42
			String charValueSet = workTask.getData().getCharValueSet();
33
			JSONObject alarmInfJsonObj = JSONObject.parseObject(charValueSet);
43
			JSONObject alarmJsonObj = JSONObject.parseObject(charValueSet);
34
44
35
			Map<String, String> resultMap = new HashedMap<String, String>();
45
			Map<String, String> resultMap = new HashedMap<String, String>();
46
47
			resultMap.put("workTaskId", workTask.getData().getWorkTaskId());
36
			resultMap.put("employeeName", workTask.getData().getTargetEmployeeRoleName());
48
			resultMap.put("employeeName", workTask.getData().getTargetEmployeeRoleName());
37
			resultMap.put("longitude", alarmInfJsonObj.getString("longitude"));
38
			resultMap.put("latitude", alarmInfJsonObj.getString("latitude"));
39
			resultMap.put("businessType", alarmInfJsonObj.getString("businessType"));
40
			resultMap.put("alarmTime", DateUtil.formatDate(Long.valueOf(alarmInfJsonObj.getString("alarmTime"))));
49
			resultMap.put("longitude", alarmJsonObj.getString("longitude"));
50
			resultMap.put("latitude", alarmJsonObj.getString("latitude"));
51
			resultMap.put("alarmTime", DateUtil.formatDate(Long.valueOf(alarmJsonObj.getString("alarmTime"))));
41
52
53
			//resultMap.put("businessType", alarmInfJsonObj.getString("businessType"));
54
			String businessType=alarmJsonObj.getString("businessType");
55
			CharacteristicSpec characteristicSpec = characteristicSpecService
56
					.findBusinessSpecByCharSpecCode(EbcConstant.BUSINESS_SPEC_MAP_AREA_TYPE);
57
			if (characteristicSpec!=null&&!CollectionUtils.isEmpty(characteristicSpec.getCharacteristicSpecValues())) {
58
				for (CharacteristicSpecValue characteristicSpecValue : characteristicSpec.getCharacteristicSpecValues()) {
59
					if (characteristicSpecValue.getCode().equals(businessType)) {
60
						resultMap.put("businessType", characteristicSpecValue.getCode());
61
						resultMap.put("businessTypeZH", characteristicSpecValue.getValue());
62
					}
63
					break;
64
				}
65
			}
66
			
42
			String msg = JSON.toJSONString(CommonResponse.ok(resultMap));
67
			String msg = JSON.toJSONString(CommonResponse.ok(resultMap));
43
			logger.info("实时报警推送镜屏数据: " + msg);
68
			logger.info("实时报警推送镜屏数据: " + msg);
44
			MirrorManagement.sendData(MirrorManagement.TOPIC_ALARM, msg);
69
			MirrorManagement.sendData(MirrorManagement.TOPIC_ALARM, msg);

+ 1 - 1
location-rescue-service/src/main/java/com/ai/bss/location/rescue/service/task/MirrorManagement.java

17
	private static final Logger logger = LoggerFactory.getLogger(MirrorManagement.class);
17
	private static final Logger logger = LoggerFactory.getLogger(MirrorManagement.class);
18
18
19
	// 定位topic
19
	// 定位topic
20
	public static final String TOPIC_LOCATION = "location";
20
	public static final String TOPIC_LOCATION = "personnel";
21
21
22
	// 报警topic
22
	// 报警topic
23
	public static final String TOPIC_ALARM = "alarm";
23
	public static final String TOPIC_ALARM = "alarm";

+ 28 - 7
location-rescue-service/src/main/java/com/ai/bss/location/rescue/util/DateUtil.java

213
		SimpleDateFormat formatter = new SimpleDateFormat(pattern);
213
		SimpleDateFormat formatter = new SimpleDateFormat(pattern);
214
		return formatter.format(date);
214
		return formatter.format(date);
215
	}
215
	}
216
	
216
217
	/**
217
	/**
218
	 * 时间戳转字符串 
218
	 * 时间戳转字符串 
219
	 * @param date
219
	 * @param date
230
	 * @return
230
	 * @return
231
	 */
231
	 */
232
	public static String formatDate(long timestamp, String pattern) {
232
	public static String formatDate(long timestamp, String pattern) {
233
		Date date=new Date(timestamp);
233
		Date date = new Date(timestamp);
234
		SimpleDateFormat formatter = new SimpleDateFormat(pattern);
234
		SimpleDateFormat formatter = new SimpleDateFormat(pattern);
235
		return formatter.format(date);
235
		return formatter.format(date);
236
	}
236
	}
326
	}
326
	}
327
327
328
	/**
328
	/**
329
	 * 计算两个时间差,返回字符串(endDate-beginDate)
330
	 * @param beginDateStr
331
	 * @param endDateStr
329
	 * 计算两个时间差,返回字符串
330
	 * @param dateStr1
331
	 * @param dateStr2
332
	 * @return
332
	 * @return
333
	 * @throws Exception 
333
	 * @throws Exception 
334
	 */
334
	 */
335
	public static String getDifferenceString(String beginDateStr, String endDateStr) throws Exception {
336
		long diffMillisecond = getDifferenceMillisecond(beginDateStr, endDateStr);
335
	public static String getDifferenceString(String dateStr1, String dateStr2) throws Exception {
336
		long diffMillisecond = Math.abs(getDifferenceMillisecond(dateStr1, dateStr2));
337
		return getDifferenceString(diffMillisecond);
338
	}
339
340
	/**
341
	 * 计算两个时间差,返回字符串
342
	 * @param dateLong1
343
	 * @param dateLong2
344
	 * @return
345
	 * @throws Exception 
346
	 */
347
	public static String getDifferenceString(long dateLong1, long dateLong2) throws Exception {
348
		long diffMillisecond = Math.abs(dateLong1 - dateLong2);
349
		return getDifferenceString(diffMillisecond);
350
	}
337
351
352
	/**
353
	 * 根据时间差,返回字符串(endDate-beginDate)
354
	 * @param diffMillisecond  时间差(毫秒)
355
	 * @return
356
	 * @throws Exception 
357
	 */
358
	public static String getDifferenceString(long diffMillisecond) throws Exception {
338
		if (diffMillisecond <= 60000) {
359
		if (diffMillisecond <= 60000) {
339
			return "0分钟";
360
			return "0分钟";
340
		}
361
		}