Pārlūkot izejas kodu

修改镜屏名称、新增查询历史报警救援等

konghl 4 gadi atpakaļ
vecāks
revīzija
9afed3d1cd
17 mainītis faili ar 313 papildinājumiem un 130 dzēšanām
  1. 2 2
      ebc-sea-platform/src/main/java/com/ai/ipu/server/controller/DeviceManageController.java
  2. 86 45
      ebc-sea-platform/src/main/java/com/ai/ipu/server/controller/RescueController.java
  3. 72 21
      ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/impl/RescueDaoImpl.java
  4. 10 2
      ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/interfaces/RescueDao.java
  5. 13 2
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/impl/DeviceManageServiceImpl.java
  6. 5 5
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/impl/ReceiveSubscribeServiceImpl.java
  7. 38 10
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/impl/RescueServiceImpl.java
  8. 1 1
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/interfaces/DeviceManageService.java
  9. 26 10
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/interfaces/RescueService.java
  10. 5 5
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/iotData/ManageIotInAreaData.java
  11. 9 6
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/iotData/ManageIotNewAlarmData.java
  12. 15 7
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/iotData/ManageIotNoCloseAlarmData.java
  13. 5 5
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/iotData/ManageIotNoInAreaData.java
  14. 5 5
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/iotData/ManageIotToolData.java
  15. 12 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/util/EbcConstant.java
  16. 2 2
      ebc-sea-platform/src/main/java/com/ai/ipu/server/util/JingPingSendDateUtil.java
  17. 7 2
      ebc-sea-platform/src/main/resources/sql/ipu/RescueDao.xml

+ 2 - 2
ebc-sea-platform/src/main/java/com/ai/ipu/server/controller/DeviceManageController.java

@ -258,7 +258,7 @@ public class DeviceManageController {
258 258
	}
259 259
	
260 260
	/**
261
	 * 按时间段获取终端的定位信息
261
	 * 按时间段获取终端的定位信息(轨迹回放)
262 262
	 * 
263 263
	 * @param params
264 264
	 * @return
@ -278,7 +278,7 @@ public class DeviceManageController {
278 278
		// 当前页码
279 279
		int pageNum = params.getInt("pageNum") < 1 ? 1 : params.getInt("pageNum");
280 280
		// 每页条数
281
		int pageSize = params.getInt("pageSize") < 1 ? EbcConstant.default_page_size : params.getInt("pageSize");
281
		int pageSize = params.getInt("pageSize") < 1 ? EbcConstant.track_playback_size : params.getInt("pageSize");
282 282
283 283
		result = deviceManageService.queryOneDeviceLocationInfo(params, pageNum, pageSize);
284 284
		return result;

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

@ -1,22 +1,17 @@
1 1
package com.ai.ipu.server.controller;
2 2
3
import com.ai.ipu.data.JMap;
4
import com.ai.ipu.data.impl.JsonMap;
5
import com.ai.ipu.server.service.interfaces.ExportService;
6
import com.ai.ipu.server.service.interfaces.RescueService;
7
import com.ai.ipu.server.util.EbcConstant;
8
import com.github.pagehelper.PageInfo;
9
10 3
import java.util.List;
11 4
import java.util.Map;
12 5
13
import org.slf4j.Logger;
14
import org.slf4j.LoggerFactory;
15 6
import org.springframework.beans.factory.annotation.Autowired;
16 7
import org.springframework.stereotype.Controller;
17 8
import org.springframework.web.bind.annotation.RequestMapping;
18 9
import org.springframework.web.bind.annotation.ResponseBody;
19 10
11
import com.ai.ipu.data.JMap;
12
import com.ai.ipu.data.impl.JsonMap;
13
import com.ai.ipu.server.service.interfaces.RescueService;
14
import com.ai.ipu.server.util.EbcConstant;
20 15
21 16
/**
22 17
 * 报警救援
@ -25,98 +20,144 @@ import org.springframework.web.bind.annotation.ResponseBody;
25 20
@RequestMapping("/rescue")
26 21
public class RescueController {
27 22
28
    @Autowired
29
    RescueService rescueService;
30
    
31
    /**
32
	 * 分页查询报警救援日志
23
	@Autowired
24
	RescueService rescueService;
25
26
	/**
27
	 * 获取当前终端最新定位信息
33 28
	 * 
34 29
	 * @param params
35 30
	 * @return
36 31
	 * @throws Exception
37 32
	 */
38 33
	@ResponseBody
39
	@RequestMapping("/queryPageRescueLog")
40
	public JMap queryPageRescueLog(JMap params) throws Exception {
34
	@RequestMapping("/queryCurrentRescueLocationInfo")
35
	public JMap queryCurrentRescueLocationInfo(JMap params) throws Exception {
36
		JMap result = new JsonMap();
41 37
42
		// 当前页数
43
		int pageNum = params.getInt("pageNum") < 1 ? 1 : params.getInt("pageNum");
44
		// 每页条数
45
		int pageSize = params.getInt("pageSize") < 1 ? EbcConstant.default_page_size : params.getInt("pageSize");
38
		List<Map<String, String>> resultList = rescueService.queryCurrentRescueLocationInfo(params);
39
		result.put("dataList", resultList);
40
		return result;
41
	}
46 42
47
		JMap result = rescueService.queryPageRescueLog(params, pageNum, pageSize);
43
	/**
44
	 * 指派救援
45
	 * 
46
	 * @param params
47
	 * @return
48
	 * @throws Exception
49
	 */
50
	@ResponseBody
51
	@RequestMapping("/assignRescuer")
52
	public JMap assignRescuer(JMap params) throws Exception {
53
		JMap result = new JsonMap();
48 54
49
		result.put("pageNum", pageNum);
50
		result.put("pageSize", pageSize);
55
		if (params == null || params.get("rescueLogId") == null || params.get("rescuerCode") == null) {
56
			result.put("result", false);
57
			result.put("errMsg", "指派失败");
58
			return result;
59
		}
60
61
		boolean resultMap = rescueService.assignRescuer(params);
62
		result.put("result", resultMap);
51 63
		return result;
52 64
	}
53 65
54 66
	/**
55
	 * 查询单个报警救援日志
67
	 * 关闭救援
56 68
	 * 
57 69
	 * @param params
58 70
	 * @return
59 71
	 * @throws Exception
60 72
	 */
61 73
	@ResponseBody
62
	@RequestMapping("/queryOneRescueLog")
63
	public JMap queryOneRescueLog(JMap params) throws Exception {
74
	@RequestMapping("/closeRescue")
75
	public JMap closeRescue(JMap params) throws Exception {
64 76
		JMap result = new JsonMap();
65 77
66 78
		if (params == null || params.get("rescueLogId") == null) {
67 79
			result.put("result", false);
68
			result.put("errMsg", "操作失败");
80
			result.put("errMsg", "关闭失败");
69 81
			return result;
70 82
		}
71 83
72
		Map<String, Object> resultMap = rescueService.queryOneRescueLog(params);
73
		result.put("resultData", resultMap);
84
		// TODO 修改人员的状态
85
		boolean resultMap = rescueService.closeRescue(params);
86
87
		result.put("result", resultMap);
74 88
		return result;
75 89
	}
76 90
77 91
	/**
78
	 * 指派救援
92
	 * 分页查询报警救援日志
79 93
	 * 
80 94
	 * @param params
81 95
	 * @return
82 96
	 * @throws Exception
83 97
	 */
84 98
	@ResponseBody
85
	@RequestMapping("/assignRescuer")
86
	public JMap assignRescuer(JMap params) throws Exception {
99
	@RequestMapping("/queryPageRescueLog")
100
	public JMap queryPageRescueLog(JMap params) throws Exception {
101
102
		// 当前页数
103
		int pageNum = params.getInt("pageNum") < 1 ? 1 : params.getInt("pageNum");
104
		// 每页条数
105
		int pageSize = params.getInt("pageSize") < 1 ? EbcConstant.default_page_size : params.getInt("pageSize");
106
107
		JMap result = rescueService.queryPageRescueLog(params, pageNum, pageSize);
108
109
		result.put("pageNum", pageNum);
110
		result.put("pageSize", pageSize);
111
		return result;
112
	}
113
114
	/**
115
	 * 删除报警救援日志
116
	 * 
117
	 * @param params
118
	 * @return
119
	 * @throws Exception
120
	 */
121
	@ResponseBody
122
	@RequestMapping("/deleteRescueLog")
123
	public JMap deleteRescueLog(JMap params) throws Exception {
87 124
		JMap result = new JsonMap();
88 125
89
		if (params == null || params.get("rescueLogId") == null||params.get("rescuerCode") == null) {
126
		if (params == null || params.get("alarmLogId") == null) {
90 127
			result.put("result", false);
91
			result.put("errMsg", "指派失败");
128
			result.put("errMsg", "删除失败");
92 129
			return result;
93 130
		}
94 131
95
		boolean resultMap = rescueService.assignRescuer(params);
132
		boolean resultMap = rescueService.deleteRescueLog(params);
96 133
		result.put("result", resultMap);
97 134
		return result;
98 135
	}
99
	
136
100 137
	/**
101
	 * 关闭救援
138
	 *  救援回放
102 139
	 * 
103 140
	 * @param params
104 141
	 * @return
105 142
	 * @throws Exception
106 143
	 */
107 144
	@ResponseBody
108
	@RequestMapping("/closeRescue")
109
	public JMap closeRescue(JMap params) throws Exception {
145
	@RequestMapping("/queryOneRescuePlayback")
146
	public JMap queryOneRescuePlayback(JMap params) throws Exception {
110 147
		JMap result = new JsonMap();
111
		
112
		if (params == null || params.get("rescueLogId") == null) {
148
149
		if (params == null || params.get("alarmLogId") == null) {
113 150
			result.put("result", false);
114
			result.put("errMsg", "关闭失败");
151
			result.put("errMsg", "回放失败");
115 152
			return result;
116 153
		}
117
		
118
		boolean resultMap = rescueService.closeRescue(params);
119
		result.put("result", resultMap);
154
155
		// 当前页码
156
		int pageNum = params.getInt("pageNum") < 1 ? 1 : params.getInt("pageNum");
157
		// 每页条数
158
		int pageSize = params.getInt("pageSize") < 1 ? EbcConstant.track_playback_size : params.getInt("pageSize");
159
160
		result = rescueService.queryOneRescuePlayback(params, pageNum, pageSize);
120 161
		return result;
121 162
	}
122 163

+ 72 - 21
ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/impl/RescueDaoImpl.java

@ -9,6 +9,7 @@ import org.springframework.stereotype.Component;
9 9
10 10
import com.ai.ipu.common.date.TimeUtil;
11 11
import com.ai.ipu.data.JMap;
12
import com.ai.ipu.data.impl.JsonMap;
12 13
import com.ai.ipu.database.dao.impl.AbstractBizDao;
13 14
import com.ai.ipu.server.dao.interfaces.RescueDao;
14 15
import com.ai.ipu.server.util.EbcConstant;
@ -17,40 +18,84 @@ import com.ai.ipu.sql.mgmt.SqlMgmtDaoFactory;
17 18
18 19
@Component
19 20
public class RescueDaoImpl extends AbstractBizDao implements RescueDao {
20
	
21
21 22
	private String connName = "ebc";
22
	
23
23 24
	public RescueDaoImpl() throws IOException {
24 25
		super("ebc");
25 26
	}
26 27
27 28
	@Override
28 29
	public JMap queryPageRescueLog(JMap params, int pageNum, int pageSize) throws Exception {
29
		// TODO Auto-generated method stub
30
		return null;
30
		Map<String, Object> dataMap = new HashMap<String, Object>();
31
32
		StringBuilder sql = new StringBuilder();
33
34
		sql.append(" SELECT l.LOG_ID,l.CALLER_ID,l.DEVICE_ID CALLER_DEVICE_ID,l.RESCUERS_ID,l.ALARM_TYPE, ");
35
		sql.append(
36
				" l.PARTY_CODE CALLER_CODE,l.PARTY_NAME CALLER_NAME,l.LONGITUDE CALLER_LONGITUDE,l.LATITUDE CALLER_LATITUDE, ");
37
		sql.append(" l.CALLER_DATE,l.LAST_LOCATION_DATE,l.RESCUERS_DATE, ");
38
		sql.append(" r.PARTY_CODE RESCUER_CODE,r.PARTY_NAME RESCUER_NAME,t.DEVICE_ID RESCUER_DEVICE_ID ");
39
40
		sql.append(" FROM LR_RESCUE_LOG l ");
41
		sql.append(" LEFT JOIN LR_RESCUERS r ON l.RESCUERS_ID=r.RESCUERS_ID ");
42
		sql.append(" LEFT JOIN LR_PARTY_TERMINAL t ON t.PARTY_TYPE=r.PARTY_TYPE AND t.PARTY_CODE=r.PARTY_CODE ");
43
44
		sql.append(" WHERE 1=1 ");
45
		sql.append(" AND l.DATA_STATUS = '").append(EbcConstant.data_status_close).append("' ");
46
		
47
		if (params.get("alarmType") != null) {
48
			sql.append(" AND ALARM_TYPE = #{alarmType} ");
49
			dataMap.put("alarmType", params.get("alarmType"));
50
		}
51
52
		if (params.get("callerName") != null) {
53
			sql.append(" AND l.PARTY_NAME like CONCAT('%', #{callerName}, '%') ");
54
			dataMap.put("callerName", params.get("callerName"));
55
		}
56
57
		sql.append(" ORDER BY l.CREATE_DATE DESC ");
58
59
		// 获取数据列表
60
		List<Map<String, Object>> data = dao.executeSelect(sql.toString(), dataMap, pageNum, pageSize);
61
62
		// 获取总条数
63
		sql.insert(0, "select count(1) dataNum from ( ");
64
		sql.append(" ) a ");
65
66
		Map map = dao.executeSelectOne(sql.toString(), dataMap);
67
68
		JMap result = new JsonMap();
69
		result.put("dataList", data);
70
		result.put("dataNum", map.get("dataNum"));
71
		return result;
31 72
	}
32 73
33 74
	@Override
34 75
	public List<Map<String, Object>> queryNoCloseRescueLog(List<String> deviceIdsList) throws Exception {
35
		Map<String, Object> dataMap=new HashMap<String, Object>();
36
		dataMap.put("deviceIdsList", deviceIdsList);//设备ID
37
		dataMap.put("offlineType", EbcConstant.alarm_type_offline_ZH);//不属于离线告警
38
		dataMap.put("alarmDataStatus", EbcConstant.data_status_valid);//数据状态
39
		
76
		Map<String, Object> dataMap = new HashMap<String, Object>();
77
		dataMap.put("deviceIdsList", deviceIdsList);// 设备ID
78
		dataMap.put("offlineType", EbcConstant.alarm_type_offline_ZH);// 不属于离线告警
79
		dataMap.put("alarmDataStatus", EbcConstant.data_status_valid);// 数据状态
80
40 81
		ISqlMgmtDao mgmtDao = SqlMgmtDaoFactory.createFileSqlMgmtDao(connName);
41
		return mgmtDao.executeSelect("ipu.RescueDao",  "queryNoCloseRescueLog", dataMap);
82
		return mgmtDao.executeSelect("ipu.RescueDao", "queryNoCloseRescueLog", dataMap);
42 83
	}
43 84
44 85
	@Override
45
	public Map<String, Object> queryOneRescueLog(JMap params) throws Exception {
46
		// TODO Auto-generated method stub
47
		return null;
86
	public Map<String, Object> queryOneRescueLog(Map<String, Object> dataMap) throws Exception {
87
		List<Map<String, Object>> list = dao.selectByCond("LR_RESCUE_LOG", dataMap);
88
		if (list == null) {
89
			return new HashMap<String, Object>();
90
		} else {
91
			return list.get(0);
92
		}
48 93
	}
49 94
50 95
	@Override
51 96
	public String addRescueLog(Map<String, Object> dataMap) throws Exception {
52 97
		dataMap.put("dataStatus", EbcConstant.data_status_valid);
53
		//TODO 创建人和操作人的编号和部门
98
		// TODO 创建人和操作人的编号和部门
54 99
		dataMap.put("remarks", null);
55 100
		dataMap.put("createDate", TimeUtil.getSysTime());
56 101
		dataMap.put("createOpId", "");
@ -60,20 +105,26 @@ public class RescueDaoImpl extends AbstractBizDao implements RescueDao {
60 105
		dataMap.put("orgId", "");
61 106
62 107
		ISqlMgmtDao mgmtDao = SqlMgmtDaoFactory.createFileSqlMgmtDao(connName);
63
		mgmtDao.executeInsert("ipu.RescueDao","addRescueLog", dataMap);
64
		
65
		//TODO 返回新增记录的ID
108
		mgmtDao.executeInsert("ipu.RescueDao", "addRescueLog", dataMap);
109
110
		// TODO 返回新增记录的ID
66 111
		return String.valueOf(dataMap.get("LOG_ID"));
67 112
	}
68
	
113
69 114
	@Override
70 115
	public boolean modifyRescueRecord(Map<String, Object> dataMap) throws Exception {
71
		//TODO 操作人的编号和部门
116
		// TODO 操作人的编号和部门
72 117
		dataMap.put("DONE_DATE", TimeUtil.getSysTime());
73 118
		dataMap.put("OP_ID", "");
74 119
		dataMap.put("ORG_ID", "");
75
		
76
		return dao.update("LR_RESCUE_LOG", dataMap)>0;
120
121
		return dao.update("LR_RESCUE_LOG", dataMap) > 0;
77 122
	}
78 123
124
	@Override
125
	public boolean deleteRescueLog(JMap params) throws Exception {
126
		Map<String, Object> dataMap = new HashMap<String, Object>();
127
		dataMap.put("LOG_ID", params.getString("alarmLogId"));
128
		return dao.delete("LR_RESCUE_LOG", dataMap) > 0;
129
	}
79 130
}

+ 10 - 2
ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/interfaces/RescueDao.java

@ -26,12 +26,12 @@ public interface RescueDao {
26 26
	List<Map<String, Object>> queryNoCloseRescueLog(List<String> deviceIdsList) throws Exception;
27 27
28 28
	/**
29
	 * 根据终端标识获取单个报警救援日志
29
	 * 查询单个报警救援日志
30 30
	 * @param params
31 31
	 * @return
32 32
	 * @throws Exception
33 33
	 */
34
	Map<String, Object> queryOneRescueLog(JMap params) throws Exception;
34
	Map<String, Object> queryOneRescueLog(Map<String, Object> dataMap) throws Exception;
35 35
36 36
	/**
37 37
	 * 添加报警救援日志
@ -49,4 +49,12 @@ public interface RescueDao {
49 49
	 */
50 50
	boolean modifyRescueRecord(Map<String, Object> dataMap) throws Exception;
51 51
	
52
	/**
53
	 * 删除报警救援日志
54
	 * @param params
55
	 * @return
56
	 * @throws Exception
57
	 */
58
	boolean deleteRescueLog(JMap params) throws Exception;
59
	
52 60
}

+ 13 - 2
ebc-sea-platform/src/main/java/com/ai/ipu/server/service/impl/DeviceManageServiceImpl.java

@ -208,7 +208,7 @@ public class DeviceManageServiceImpl implements DeviceManageService {
208 208
		// 获取终端当前位置信息
209 209
		List<Map<String, String>> list = deviceManageDao.queryCurrentDeviceLocationInfo(deviceIdsList);
210 210
211
		// 查询是否为需救援的人员
211
		// 查询当前所有未关闭的求救信息
212 212
		List<Map<String, Object>> alarmMapList = rescueDao.queryNoCloseRescueLog(deviceIdsList);
213 213
214 214
		// 查询人员所在围栏信息
@ -254,6 +254,17 @@ public class DeviceManageServiceImpl implements DeviceManageService {
254 254
						int alarmLong = DateUtil.getDifferenceMinute(alarmDate, map.get("newDate"));
255 255
						map.put("alarmLong", String.valueOf(alarmLong));
256 256
						
257
						if (alarmMap.get("RESCUERS_ID")==null) {
258
							//未指派救援人员
259
							params.put("isNewAlarm", EbcConstant.alarm_status_needassign);
260
						}else {
261
							//已指派救援人员
262
							params.put("isNewAlarm", EbcConstant.alarm_status_needclose);
263
						}
264
						
265
						//求救记录ID
266
						params.put("alarmLogId", alarmMap.get("LOG_ID"));
267
257 268
						//定位状态
258 269
						switch (String.valueOf(alarmMap.get("ALARM_TYPE"))) {
259 270
						case EbcConstant.alarm_type_autosos_ZH:
@ -312,7 +323,7 @@ public class DeviceManageServiceImpl implements DeviceManageService {
312 323
					}
313 324
				}
314 325
315
				// 判断是否违规
326
				// 判断是否违规
316 327
				if (maxMapTagGrade == 5) {
317 328
					// 进入电子围栏(禁区),需显示进入时间
318 329
					map.put("inDate", simpleDateFormat.format(areaInfoMap.get("IN_DATE"))); // 进入时间

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

@ -15,11 +15,11 @@ import com.ai.ipu.database.conn.SqlSessionManager;
15 15
import com.ai.ipu.server.dao.interfaces.DeviceManageDao;
16 16
import com.ai.ipu.server.dao.interfaces.MapTagManageDao;
17 17
import com.ai.ipu.server.service.interfaces.ReceiveSubscribeService;
18
import com.ai.ipu.server.service.iotData.ManageIotInAreaData;
19
import com.ai.ipu.server.service.iotData.ManageIotNewAlarmData;
20
import com.ai.ipu.server.service.iotData.ManageIotNoCloseAlarmData;
21
import com.ai.ipu.server.service.iotData.ManageIotNoInAreaData;
22
import com.ai.ipu.server.service.iotData.ManageIotToolData;
18
import com.ai.ipu.server.service.iotdata.ManageIotInAreaData;
19
import com.ai.ipu.server.service.iotdata.ManageIotNewAlarmData;
20
import com.ai.ipu.server.service.iotdata.ManageIotNoCloseAlarmData;
21
import com.ai.ipu.server.service.iotdata.ManageIotNoInAreaData;
22
import com.ai.ipu.server.service.iotdata.ManageIotToolData;
23 23
24 24
@Service
25 25
public class ReceiveSubscribeServiceImpl implements ReceiveSubscribeService {

+ 38 - 10
ebc-sea-platform/src/main/java/com/ai/ipu/server/service/impl/RescueServiceImpl.java

@ -1,12 +1,14 @@
1 1
package com.ai.ipu.server.service.impl;
2 2
3 3
import java.util.HashMap;
4
import java.util.List;
4 5
import java.util.Map;
5 6
6 7
import org.springframework.beans.factory.annotation.Autowired;
7 8
import org.springframework.stereotype.Service;
8 9
9 10
import com.ai.ipu.data.JMap;
11
import com.ai.ipu.server.dao.interfaces.DeviceManageDao;
10 12
import com.ai.ipu.server.dao.interfaces.RescueDao;
11 13
import com.ai.ipu.server.service.interfaces.RescueService;
12 14
import com.ai.ipu.server.util.EbcConstant;
@ -16,16 +18,9 @@ public class RescueServiceImpl implements RescueService {
16 18
17 19
	@Autowired
18 20
	RescueDao rescueDao;
19
20
	@Override
21
	public JMap queryPageRescueLog(JMap params, int pageNum, int pageSize) throws Exception {
22
		return rescueDao.queryPageRescueLog(params, pageNum, pageSize);
23
	}
24
25
	@Override
26
	public Map<String, Object> queryOneRescueLog(JMap params) throws Exception {
27
		return rescueDao.queryOneRescueLog(params);
28
	}
21
	
22
	@Autowired
23
	DeviceManageDao deviceManageDao;
29 24
30 25
	@Override
31 26
	public boolean assignRescuer(JMap params) throws Exception {
@ -45,4 +40,37 @@ public class RescueServiceImpl implements RescueService {
45 40
		return rescueDao.modifyRescueRecord(dataMap);
46 41
	}
47 42
43
	@Override
44
	public JMap queryPageRescueLog(JMap params, int pageNum, int pageSize) throws Exception {
45
		//TODO 计算求救时间、按时间查询
46
		
47
		
48
		return rescueDao.queryPageRescueLog(params, pageNum, pageSize);
49
	}
50
51
	@Override
52
	public boolean deleteRescueLog(JMap params) throws Exception {
53
		return rescueDao.deleteRescueLog(params);
54
	}
55
56
	@Override
57
	public List<Map<String, String>> queryCurrentRescueLocationInfo(JMap params) {
58
59
		//TODO
60
		
61
		
62
		
63
		return null;
64
	}
65
	
66
	@Override
67
	public JMap queryOneRescuePlayback(JMap params, int pageNum, int pageSize) {
68
		//TODO
69
		
70
		
71
		
72
		
73
		return null;
74
	}
75
48 76
}

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

@ -82,7 +82,7 @@ public interface DeviceManageService {
82 82
83 83
	/**
84 84
	 * 获取终端的最新事件
85
	 * @param deviceIds
85
	 * @param params
86 86
	 * @return
87 87
	 * @throws Exception
88 88
	 */

+ 26 - 10
ebc-sea-platform/src/main/java/com/ai/ipu/server/service/interfaces/RescueService.java

@ -1,5 +1,6 @@
1 1
package com.ai.ipu.server.service.interfaces;
2 2
3
import java.util.List;
3 4
import java.util.Map;
4 5
5 6
import com.ai.ipu.data.JMap;
@ -7,6 +8,20 @@ import com.ai.ipu.data.JMap;
7 8
public interface RescueService {
8 9
9 10
	/**
11
	 * 指派救援
12
	 * @return
13
	 * @throws Exception
14
	 */
15
	boolean assignRescuer(JMap params) throws Exception;
16
17
	/**
18
	 * 关闭救援
19
	 * @return
20
	 * @throws Exception
21
	 */
22
	boolean closeRescue(JMap params) throws Exception;
23
24
	/**
10 25
	 * 分页查询报警救援日志
11 26
	 * @param params
12 27
	 * @param pageNum 当前页数
@ -17,25 +32,26 @@ public interface RescueService {
17 32
	JMap queryPageRescueLog(JMap params, int pageNum, int pageSize) throws Exception;
18 33
19 34
	/**
20
	 * 获取单个报警救援日志
35
	 * 删除报警救援日志
21 36
	 * @param params
22 37
	 * @return
23
	 * @throws Exception
24 38
	 */
25
	Map<String, Object> queryOneRescueLog(JMap params) throws Exception;
39
	boolean deleteRescueLog(JMap params) throws Exception;
26 40
27 41
	/**
28
	 * 指派救援
42
	 * 获取当前终端最新定位信息
43
	 * @param params
29 44
	 * @return
30
	 * @throws Exception
31 45
	 */
32
	boolean assignRescuer(JMap params) throws Exception;
46
	List<Map<String, String>> queryCurrentRescueLocationInfo(JMap params);
33 47
48
	
34 49
	/**
35
	 * 关闭救援
50
	 * 救援回放
51
	 * @param params
52
	 * @param pageNum
53
	 * @param pageSize
36 54
	 * @return
37
	 * @throws Exception
38 55
	 */
39
	boolean closeRescue(JMap params) throws Exception;
40
56
	JMap queryOneRescuePlayback(JMap params, int pageNum, int pageSize);
41 57
}

+ 5 - 5
ebc-sea-platform/src/main/java/com/ai/ipu/server/service/iotData/ManageIotInAreaData.java

@ -1,4 +1,4 @@
1
package com.ai.ipu.server.service.iotData;
1
package com.ai.ipu.server.service.iotdata;
2 2
3 3
import java.text.ParseException;
4 4
import java.text.SimpleDateFormat;
@ -17,7 +17,7 @@ import com.ai.ipu.data.JMap;
17 17
import com.ai.ipu.server.dao.interfaces.AreaInOutRecordDao;
18 18
import com.ai.ipu.server.util.DateUtil;
19 19
import com.ai.ipu.server.util.EbcConstant;
20
import com.ai.ipu.server.util.JingPingSendDateUtil;
20
import com.ai.ipu.server.util.MirrorSendDateUtil;
21 21
22 22
@Component
23 23
public class ManageIotInAreaData {
@ -71,7 +71,7 @@ public class ManageIotInAreaData {
71 71
		}
72 72
73 73
		// 推送镜屏
74
		sendJingpingData(params, currentAreaInfoList);
74
		sendMirrorData(params, currentAreaInfoList);
75 75
76 76
		// 保存进出围栏记录
77 77
		saveOutAreaRecord(params, beforeAreaMapList);
@ -80,7 +80,7 @@ public class ManageIotInAreaData {
80 80
		return true;
81 81
	}
82 82
83
	private void sendJingpingData(JMap params, List<Map<String, Object>> currentAreaInfoList) throws ParseException {
83
	private void sendMirrorData(JMap params, List<Map<String, Object>> currentAreaInfoList) throws ParseException {
84 84
85 85
		int maxMapTagGrade = 0; // 围栏优先级(电子围栏5>定点3>考勤1、作业1)
86 86
		long minInAreaLong = System.currentTimeMillis();// 进入围栏最早的时间戳
@ -152,7 +152,7 @@ public class ManageIotInAreaData {
152 152
		}
153 153
154 154
		// 推送镜屏
155
		JingPingSendDateUtil.sendData(JingPingSendDateUtil.topic_personnel, params);
155
		MirrorSendDateUtil.sendData(MirrorSendDateUtil.topic_personnel, params);
156 156
	}
157 157
158 158
	private boolean saveOutAreaRecord(JMap params, List<Map<String, Object>> outAreaList) throws Exception {

+ 9 - 6
ebc-sea-platform/src/main/java/com/ai/ipu/server/service/iotData/ManageIotNewAlarmData.java

@ -1,4 +1,4 @@
1
package com.ai.ipu.server.service.iotData;
1
package com.ai.ipu.server.service.iotdata;
2 2
3 3
import java.util.HashMap;
4 4
import java.util.List;
@ -13,7 +13,7 @@ import com.ai.ipu.data.JMap;
13 13
import com.ai.ipu.server.dao.interfaces.MapTagManageDao;
14 14
import com.ai.ipu.server.dao.interfaces.RescueDao;
15 15
import com.ai.ipu.server.util.EbcConstant;
16
import com.ai.ipu.server.util.JingPingSendDateUtil;
16
import com.ai.ipu.server.util.MirrorSendDateUtil;
17 17
18 18
@Component
19 19
public class ManageIotNewAlarmData {
@ -32,12 +32,12 @@ public class ManageIotNewAlarmData {
32 32
		String logId = saveAlarmData(params, bindInfoMap);
33 33
34 34
		// 推送镜屏
35
		sendJingpingData(params, logId);
35
		sendMirrorData(params, logId);
36 36
37 37
		return true;
38 38
	}
39 39
40
	private void sendJingpingData(JMap params, String logId) {
40
	private void sendMirrorData(JMap params, String logId) {
41 41
		// 报警类型
42 42
		switch (params.getInt("alarmType")) {
43 43
		case EbcConstant.alarm_type_autosos_beidou:
@ -62,10 +62,13 @@ public class ManageIotNewAlarmData {
62 62
		params.put("alarmDate", params.getString("newDate"));// 求救时间
63 63
		params.put("alarmLong", "0");// 求救时长
64 64
65
		// 未指派救援人员
66
		params.put("isNewAlarm", EbcConstant.alarm_status_new);
67
68
		// 求救记录ID
65 69
		params.put("alarmLogId", logId);
66
		params.put("isNewAlarm", "1");
67 70
68
		JingPingSendDateUtil.sendData(JingPingSendDateUtil.topic_personnel, params);
71
		MirrorSendDateUtil.sendData(MirrorSendDateUtil.topic_personnel, params);
69 72
	}
70 73
71 74
	private String saveAlarmData(JMap params, Map<String, Object> deviceAndUser) throws Exception {

+ 15 - 7
ebc-sea-platform/src/main/java/com/ai/ipu/server/service/iotData/ManageIotNoCloseAlarmData.java

@ -1,4 +1,4 @@
1
package com.ai.ipu.server.service.iotData;
1
package com.ai.ipu.server.service.iotdata;
2 2
3 3
import java.text.ParseException;
4 4
import java.util.ArrayList;
@ -15,7 +15,7 @@ import com.ai.ipu.data.JMap;
15 15
import com.ai.ipu.server.dao.interfaces.RescueDao;
16 16
import com.ai.ipu.server.util.DateUtil;
17 17
import com.ai.ipu.server.util.EbcConstant;
18
import com.ai.ipu.server.util.JingPingSendDateUtil;
18
import com.ai.ipu.server.util.MirrorSendDateUtil;
19 19
20 20
@Component
21 21
public class ManageIotNoCloseAlarmData {
@ -37,7 +37,7 @@ public class ManageIotNoCloseAlarmData {
37 37
		logger.info("定位信息为已报警人员: " + params.get("userName"));
38 38
39 39
		// 推送镜屏
40
		sendJingpingData(params, alarmList.get(0));
40
		sendMirrorData(params, alarmList.get(0));
41 41
42 42
		// 修改最后定位时间
43 43
		updateLastLocationRecord(params, alarmList.get(0));
@ -45,7 +45,7 @@ public class ManageIotNoCloseAlarmData {
45 45
		return true;
46 46
	}
47 47
48
	private void sendJingpingData(JMap params, Map<String, Object> alarmMap) throws ParseException {
48
	private void sendMirrorData(JMap params, Map<String, Object> alarmMap) throws ParseException {
49 49
		// 求救时间
50 50
		String alarmDate = String.valueOf(alarmMap.get("CALLER_DATE"));
51 51
		params.put("alarmDate", DateUtil.formatStrDate(alarmDate));
@ -62,10 +62,18 @@ public class ManageIotNoCloseAlarmData {
62 62
			params.put("locationStatus", EbcConstant.location_status_autosos);// 报警类型
63 63
		}
64 64
65
		params.put("isNewAlarm", "0");
66
		params.put("logId", alarmMap.get("LOG_ID"));
65
		if (alarmMap.get("RESCUERS_ID")==null) {
66
			//未指派救援人员
67
			params.put("isNewAlarm", EbcConstant.alarm_status_needassign);
68
		}else {
69
			//已指派救援人员
70
			params.put("isNewAlarm", EbcConstant.alarm_status_needclose);
71
		}
72
		
73
		//求救记录ID
74
		params.put("alarmLogId", alarmMap.get("LOG_ID"));
67 75
68
		JingPingSendDateUtil.sendData(JingPingSendDateUtil.topic_personnel, params);
76
		MirrorSendDateUtil.sendData(MirrorSendDateUtil.topic_personnel, params);
69 77
	}
70 78
71 79
	private boolean updateLastLocationRecord(JMap params, Map<String, Object> alarmMap) throws Exception {

+ 5 - 5
ebc-sea-platform/src/main/java/com/ai/ipu/server/service/iotData/ManageIotNoInAreaData.java

@ -1,4 +1,4 @@
1
package com.ai.ipu.server.service.iotData;
1
package com.ai.ipu.server.service.iotdata;
2 2
3 3
import java.util.ArrayList;
4 4
import java.util.List;
@ -12,7 +12,7 @@ import com.ai.ipu.basic.log.IpuLoggerFactory;
12 12
import com.ai.ipu.data.JMap;
13 13
import com.ai.ipu.server.dao.interfaces.AreaInOutRecordDao;
14 14
import com.ai.ipu.server.util.EbcConstant;
15
import com.ai.ipu.server.util.JingPingSendDateUtil;
15
import com.ai.ipu.server.util.MirrorSendDateUtil;
16 16
17 17
@Component
18 18
public class ManageIotNoInAreaData {
@ -23,7 +23,7 @@ public class ManageIotNoInAreaData {
23 23
24 24
	public boolean executeReceiveIotData(JMap params) throws Exception {
25 25
		// 推送镜屏数据
26
		sendJingpingData(params);
26
		sendMirrorData(params);
27 27
28 28
		// 查询人员之前所在围栏信息
29 29
		List<Map<String, Object>> beforeAreaMapList = areaInOutRecordDao
@ -42,10 +42,10 @@ public class ManageIotNoInAreaData {
42 42
		return true;
43 43
	}
44 44
45
	private void sendJingpingData(JMap params) {
45
	private void sendMirrorData(JMap params) {
46 46
		params.put("locationStatus", EbcConstant.location_status_normal);// 定位状态
47 47
48
		JingPingSendDateUtil.sendData(JingPingSendDateUtil.topic_personnel, params);
48
		MirrorSendDateUtil.sendData(MirrorSendDateUtil.topic_personnel, params);
49 49
	}
50 50
51 51
	private boolean updateOutAreaRecord(JMap params, List<Map<String, Object>> beforeAreaMapList) throws Exception {

+ 5 - 5
ebc-sea-platform/src/main/java/com/ai/ipu/server/service/iotData/ManageIotToolData.java

@ -1,4 +1,4 @@
1
package com.ai.ipu.server.service.iotData;
1
package com.ai.ipu.server.service.iotdata;
2 2
3 3
import java.util.Map;
4 4
@ -9,7 +9,7 @@ import com.ai.ipu.basic.log.ILogger;
9 9
import com.ai.ipu.basic.log.IpuLoggerFactory;
10 10
import com.ai.ipu.data.JMap;
11 11
import com.ai.ipu.server.dao.interfaces.DeviceManageDao;
12
import com.ai.ipu.server.util.JingPingSendDateUtil;
12
import com.ai.ipu.server.util.MirrorSendDateUtil;
13 13
14 14
@Component
15 15
public class ManageIotToolData {
@ -30,16 +30,16 @@ public class ManageIotToolData {
30 30
		logger.info("定位信息的对象为船舶: " + bindInfoMap.get("NAME"));
31 31
32 32
		// 推送镜屏
33
		sendJingpingData(params, bindInfoMap);
33
		sendMirrorData(params, bindInfoMap);
34 34
35 35
		return true;
36 36
	}
37 37
38
	private void sendJingpingData(JMap params, Map<String, Object> bindInfoMap) {
38
	private void sendMirrorData(JMap params, Map<String, Object> bindInfoMap) {
39 39
		params.put("shipName", bindInfoMap.get("NAME"));
40 40
		params.put("shipCode", bindInfoMap.get("CODE"));
41 41
42
		JingPingSendDateUtil.sendData(JingPingSendDateUtil.topic_ship, params);
42
		MirrorSendDateUtil.sendData(MirrorSendDateUtil.topic_ship, params);
43 43
	}
44 44
45 45
}

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

@ -11,6 +11,9 @@ public class EbcConstant {
11 11
12 12
	// 每页默认查询条数
13 13
	public static final int default_page_size = 20;
14
	
15
	// 轨迹回放单次查询条数
16
	public static final int track_playback_size = 100;
14 17
15 18
	// 经纬度的精度
16 19
	public static final int coord_scale = 7;
@ -87,6 +90,15 @@ public class EbcConstant {
87 90
	// 告警类型:离线
88 91
	public static final String alarm_type_offline_ZH = "离线告警";
89 92
93
	//报警状态:新报警,未指派
94
	public static final String alarm_status_new = "1";
95
	
96
	//报警状态:未指派
97
	public static final String alarm_status_needassign = "1";
98
	
99
	//报警状态:已指派,未关闭
100
	public static final String alarm_status_needclose = "2";
101
	
90 102
	// 数据状态:有效(未关闭)
91 103
	public static final String data_status_valid = "1";
92 104

+ 2 - 2
ebc-sea-platform/src/main/java/com/ai/ipu/server/util/JingPingSendDateUtil.java

@ -7,7 +7,7 @@ import com.ai.ipu.server.connect.ps.EventChannelTool;
7 7
import com.ai.ipu.server.connect.ps.EventChannelTool.PublisherEvent;
8 8
import com.ai.ipu.server.connect.ps.ISubscriber;
9 9
import com.ai.ipu.server.connect.ps.impl.Publisher;
10
import com.ai.ipu.server.service.iotData.ManageIotNoInAreaData;
10
import com.ai.ipu.server.service.iotdata.ManageIotNoInAreaData;
11 11
import com.alibaba.fastjson.JSON;
12 12
13 13
/**
@ -15,7 +15,7 @@ import com.alibaba.fastjson.JSON;
15 15
 * @author konghl@asiainfo.com
16 16
 * 2020-10-21
17 17
 */
18
public class JingPingSendDateUtil {
18
public class MirrorSendDateUtil {
19 19
	private static final ILogger logger = IpuLoggerFactory.createLogger(ManageIotNoInAreaData.class);
20 20
21 21
	// 人员定位topic

+ 7 - 2
ebc-sea-platform/src/main/resources/sql/ipu/RescueDao.xml

@ -4,9 +4,14 @@
4 4
	<sql name="queryNoCloseRescueLog">
5 5
		<![CDATA[
6 6
		<select id="queryNoCloseRescueLog" resultType="java.util.Map" >
7
	        SELECT l.LOG_ID,l.CALLER_ID,l.DEVICE_ID,l.PARTY_TYPE,l.PARTY_CODE,
8
	        l.PARTY_NAME,l.ALARM_TYPE,l.CALLER_DATE,l.RESCUERS_DATE,l.REMARKS
7
	        SELECT l.LOG_ID,l.CALLER_ID,l.DEVICE_ID,l.RESCUERS_ID,l.PARTY_TYPE,l.PARTY_CODE,
8
	        l.PARTY_NAME,l.ALARM_TYPE,l.CALLER_DATE,l.RESCUERS_DATE,l.REMARKS,
9
	        r.PARTY_CODE RESCUER_CODE,r.PARTY_NAME RESCUER_NAME,t.DEVICE_ID RESCUER_DEVICE_ID
10
	        
9 11
	        FROM LR_RESCUE_LOG l
12
	        LEFT JOIN LR_RESCUERS r ON l.RESCUERS_ID=r.RESCUERS_ID
13
	        LEFT JOIN LR_PARTY_TERMINAL t ON t.PARTY_TYPE=r.PARTY_TYPE AND t.PARTY_CODE=r.PARTY_CODE
14
	        
10 15
	        <where>
11 16
	        l.RESCUERS_DATE IS NULL
12 17
	        AND l.ALARM_TYPE <> #{offlineType}