Преглед на файлове

重构实时报警和历史报警

konghl преди 4 години
родител
ревизия
6809ddead2

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

@ -17,7 +17,6 @@ import org.springframework.web.bind.annotation.ResponseBody;
17 17
import com.ai.abc.api.model.CommonRequest;
18 18
import com.ai.abc.api.model.CommonResponse;
19 19
import com.ai.bss.components.common.model.PageBean;
20
import com.ai.bss.components.common.model.PageInfo;
21 20
import com.ai.bss.location.rescue.service.interfaces.AlarmManagementService;
22 21
import com.ai.bss.location.rescue.util.EbcConstant;
23 22
import com.ai.bss.work.rescue.model.WorkTaskRescue;
@ -42,7 +41,7 @@ public class AlarmManagementController {
42 41
	 */
43 42
	@ResponseBody
44 43
	@RequestMapping("/loadAlarmDetails")
45
	public CommonResponse<Map<String, Object>> loadAlarmDetails() throws Exception {
44
	public CommonResponse<List<Map<String,Object>>> loadAlarmDetails() throws Exception {
46 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,6 +9,7 @@ import org.slf4j.Logger;
9 9
import org.slf4j.LoggerFactory;
10 10
import org.springframework.beans.factory.annotation.Autowired;
11 11
import org.springframework.stereotype.Service;
12
import org.springframework.util.CollectionUtils;
12 13
13 14
import com.ai.abc.api.model.CommonRequest;
14 15
import com.ai.abc.api.model.CommonResponse;
@ -16,7 +17,6 @@ import com.ai.bss.characteristic.spec.model.CharacteristicSpec;
16 17
import com.ai.bss.characteristic.spec.model.CharacteristicSpecValue;
17 18
import com.ai.bss.characteristic.spec.service.api.CharacteristicSpecService;
18 19
import com.ai.bss.components.common.model.PageBean;
19
import com.ai.bss.components.common.model.PageInfo;
20 20
import com.ai.bss.location.rescue.service.interfaces.AlarmManagementService;
21 21
import com.ai.bss.location.rescue.util.DateUtil;
22 22
import com.ai.bss.location.rescue.util.EbcConstant;
@ -25,13 +25,12 @@ import com.ai.bss.position.service.api.MapAreaQuery;
25 25
import com.ai.bss.work.rescue.model.WorkTaskRescue;
26 26
import com.ai.bss.work.rescue.service.api.RescueCommand;
27 27
import com.ai.bss.work.rescue.service.api.RescueQueryService;
28
import com.ai.bss.work.task.model.common.WorkTask;
28 29
import com.ai.bss.work.tool.model.ResourceToolType;
29 30
import com.ai.bss.work.tool.service.api.ResourceToolQuery;
30 31
import com.ai.bss.worker.service.api.MapAreaTagQuery;
31 32
import com.alibaba.fastjson.JSONObject;
32 33
33
import org.springframework.util.CollectionUtils;
34
35 34
@Service
36 35
public class AlarmManagementServiceImpl implements AlarmManagementService {
37 36
	Logger logger = LoggerFactory.getLogger(AlarmManagementServiceImpl.class);
@ -61,11 +60,53 @@ public class AlarmManagementServiceImpl implements AlarmManagementService {
61 60
	 * @throws Exception
62 61
	 */
63 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,8 +187,7 @@ public class AlarmManagementServiceImpl implements AlarmManagementService {
146 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 192
		for (Map<String, Object> responseMap : response.getData().getData()) {
153 193
			Map<String, Object> alarmMap=new HashMap<String, Object>();
@ -155,15 +195,39 @@ public class AlarmManagementServiceImpl implements AlarmManagementService {
155 195
			
156 196
			alarmMap.put("workTaskId",responseMap.get("workTaskId"));
157 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 201
			alarmMap.put("targetUserId",responseMap.get("targetEmployeeRoleId"));
159 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 232
		return response;
169 233
	}
@ -178,7 +242,7 @@ public class AlarmManagementServiceImpl implements AlarmManagementService {
178 242
		CharacteristicSpec characteristicSpec = characteristicSpecService
179 243
				.findBusinessSpecByCharSpecCode(EbcConstant.BUSINESS_SPEC_MAP_AREA_TYPE);
180 244
181
		if (characteristicSpec == null) {
245
		if (characteristicSpec == null||CollectionUtils.isEmpty(characteristicSpec.getCharacteristicSpecValues())) {
182 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,8 +152,8 @@ public class LocationManagementServiceImpl implements LocationManagementService
152 152
		String[][] resultArray = new String[traceList.size()][3];
153 153
		for (int i = 0; i < traceList.size(); i++) {
154 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 157
			coordArray[2] = String.valueOf(traceList.get(i).get("createDate"));
158 158
			resultArray[i] = coordArray;
159 159
		}

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

@ -4,10 +4,8 @@ import java.util.HashMap;
4 4
import java.util.List;
5 5
import java.util.Map;
6 6
7
import com.ai.abc.api.model.CommonRequest;
8 7
import com.ai.abc.api.model.CommonResponse;
9 8
import com.ai.bss.components.common.model.PageBean;
10
import com.ai.bss.components.common.model.PageInfo;
11 9
import com.ai.bss.work.rescue.model.WorkTaskRescue;
12 10
13 11
/**
@ -22,7 +20,7 @@ public interface AlarmManagementService {
22 20
	 * @return
23 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,15 +1,22 @@
1 1
package com.ai.bss.location.rescue.service.task;
2 2
3
import java.util.HashMap;
3 4
import java.util.Map;
4 5
5 6
import org.apache.commons.collections4.map.HashedMap;
6 7
import org.slf4j.Logger;
7 8
import org.slf4j.LoggerFactory;
9
import org.springframework.beans.factory.annotation.Autowired;
8 10
import org.springframework.stereotype.Component;
11
import org.springframework.util.CollectionUtils;
9 12
10 13
import com.ai.abc.api.model.CommonRequest;
11 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 18
import com.ai.bss.location.rescue.util.DateUtil;
19
import com.ai.bss.location.rescue.util.EbcConstant;
13 20
import com.ai.bss.work.task.model.common.WorkTask;
14 21
import com.ai.bss.worker.service.api.EntityAlarmHandle;
15 22
import com.alibaba.fastjson.JSON;
@ -19,6 +26,9 @@ import com.alibaba.fastjson.JSONObject;
19 26
public class AlarmMirrorTask implements EntityAlarmHandle {
20 27
	Logger logger = LoggerFactory.getLogger(AlarmMirrorTask.class);
21 28
29
	@Autowired
30
	private CharacteristicSpecService characteristicSpecService;
31
	
22 32
	/**
23 33
	 * 镜屏推送实时报警信息
24 34
	 *
@ -30,15 +40,30 @@ public class AlarmMirrorTask implements EntityAlarmHandle {
30 40
		logger.debug("实时报警接收镜屏数据: " + JSON.toJSONString(workTask));
31 41
		try {
32 42
			String charValueSet = workTask.getData().getCharValueSet();
33
			JSONObject alarmInfJsonObj = JSONObject.parseObject(charValueSet);
43
			JSONObject alarmJsonObj = JSONObject.parseObject(charValueSet);
34 44
35 45
			Map<String, String> resultMap = new HashedMap<String, String>();
46
47
			resultMap.put("workTaskId", workTask.getData().getWorkTaskId());
36 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 67
			String msg = JSON.toJSONString(CommonResponse.ok(resultMap));
43 68
			logger.info("实时报警推送镜屏数据: " + msg);
44 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,7 +17,7 @@ public class MirrorManagement {
17 17
	private static final Logger logger = LoggerFactory.getLogger(MirrorManagement.class);
18 18
19 19
	// 定位topic
20
	public static final String TOPIC_LOCATION = "location";
20
	public static final String TOPIC_LOCATION = "personnel";
21 21
22 22
	// 报警topic
23 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,7 +213,7 @@ public class DateUtil {
213 213
		SimpleDateFormat formatter = new SimpleDateFormat(pattern);
214 214
		return formatter.format(date);
215 215
	}
216
	
216
217 217
	/**
218 218
	 * 时间戳转字符串 
219 219
	 * @param date
@ -230,7 +230,7 @@ public class DateUtil {
230 230
	 * @return
231 231
	 */
232 232
	public static String formatDate(long timestamp, String pattern) {
233
		Date date=new Date(timestamp);
233
		Date date = new Date(timestamp);
234 234
		SimpleDateFormat formatter = new SimpleDateFormat(pattern);
235 235
		return formatter.format(date);
236 236
	}
@ -326,15 +326,36 @@ public class DateUtil {
326 326
	}
327 327
328 328
	/**
329
	 * 计算两个时间差,返回字符串(endDate-beginDate)
330
	 * @param beginDateStr
331
	 * @param endDateStr
329
	 * 计算两个时间差,返回字符串
330
	 * @param dateStr1
331
	 * @param dateStr2
332 332
	 * @return
333 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 359
		if (diffMillisecond <= 60000) {
339 360
			return "0分钟";
340 361
		}