浏览代码

新增定位推送,修改枚举类的位置

konghl 4 年之前
父节点
当前提交
004b6f9498
共有 30 个文件被更改,包括 1262 次插入141 次删除
  1. 23 0
      ebc-sea-platform/.project
  2. 18 1
      ebc-sea-platform/src/main/java/com/ai/ipu/server/controller/DeviceManageController.java
  3. 13 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/controller/EquipmentManageController.java
  4. 63 51
      ebc-sea-platform/src/main/java/com/ai/ipu/server/controller/ReceiveSubscribeController.java
  5. 122 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/controller/RescueController.java
  6. 48 14
      ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/impl/AreaInOutRecordDaoImpl.java
  7. 38 11
      ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/impl/DeviceManageDaoImpl.java
  8. 33 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/impl/EquipmentManageDaoImpl.java
  9. 46 42
      ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/impl/MapTagManageDaoImpl.java
  10. 84 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/impl/RescueDaoImpl.java
  11. 13 4
      ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/interfaces/AreaInOutRecordDao.java
  12. 2 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/interfaces/DeviceManageDao.java
  13. 2 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/interfaces/EquipmentManageDao.java
  14. 3 3
      ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/interfaces/MapTagManageDao.java
  15. 57 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/interfaces/RescueDao.java
  16. 33 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/enums/IotUrlEnums.java
  17. 76 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/enums/ProductEnums.java
  18. 164 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/enums/UserEnums.java
  19. 24 8
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/impl/DeviceManageServiceImpl.java
  20. 5 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/impl/EquipmentManageServiceImpl.java
  21. 264 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/impl/ReceiveSubscribeServiceImpl.java
  22. 38 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/impl/RescueServiceImpl.java
  23. 3 1
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/interfaces/DeviceManageService.java
  24. 2 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/interfaces/EquipmentManageService.java
  25. 2 3
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/interfaces/ExportService.java
  26. 0 2
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/interfaces/GisTokenService.java
  27. 10 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/interfaces/ReceiveSubscribeService.java
  28. 41 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/service/interfaces/RescueService.java
  29. 30 0
      ebc-sea-platform/src/main/java/com/ai/ipu/server/util/EbcConstant.java
  30. 5 1
      ebc-sea-platform/src/main/resources/sql/ipu/MapTagManageDao.xml

+ 23 - 0
ebc-sea-platform/.project

@ -0,0 +1,23 @@
1
<?xml version="1.0" encoding="UTF-8"?>
2
<projectDescription>
3
	<name>ebc-sea-platform</name>
4
	<comment></comment>
5
	<projects>
6
	</projects>
7
	<buildSpec>
8
		<buildCommand>
9
			<name>org.eclipse.jdt.core.javabuilder</name>
10
			<arguments>
11
			</arguments>
12
		</buildCommand>
13
		<buildCommand>
14
			<name>org.eclipse.m2e.core.maven2Builder</name>
15
			<arguments>
16
			</arguments>
17
		</buildCommand>
18
	</buildSpec>
19
	<natures>
20
		<nature>org.eclipse.jdt.core.javanature</nature>
21
		<nature>org.eclipse.m2e.core.maven2Nature</nature>
22
	</natures>
23
</projectDescription>

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

@ -59,7 +59,7 @@ public class DeviceManageController {
59 59
		// 每页条数
60 60
		int pageSize = EbcConstant.comboBox_maxNum;
61 61
62
		List<Map<String, Object>> resultList = deviceManageService.queryListDeviceInfo(params, pageNum, pageSize);
62
		List<Map<String, String>> resultList = deviceManageService.queryListDeviceInfo(params, pageNum, pageSize);
63 63
		result.put("dataList", resultList);
64 64
		return result;
65 65
	}
@ -239,6 +239,23 @@ public class DeviceManageController {
239 239
		result.put("result", associatMap);
240 240
		return result;
241 241
	}
242
	
243
	/**
244
	 * 获取当前终端定位信息
245
	 * 
246
	 * @param params
247
	 * @return
248
	 * @throws Exception
249
	 */
250
	@ResponseBody
251
	@RequestMapping("/queryCurrentDeviceLocationInfo")
252
	public JMap queryCurrentDeviceLocationInfo(JMap params) throws Exception {
253
		JMap result = new JsonMap();
254
255
		List<Map<String, Object>> resultList = deviceManageService.queryCurrentDeviceLocationInfo(params);
256
		result.put("dataList", resultList);
257
		return result;
258
	}
242 259
243 260
	/**
244 261
	 * 导入终端信息

+ 13 - 0
ebc-sea-platform/src/main/java/com/ai/ipu/server/controller/EquipmentManageController.java

@ -119,6 +119,19 @@ public class EquipmentManageController {
119 119
    }
120 120
121 121
    /**
122
     * 获取所有设备信息
123
     */
124
    @ResponseBody
125
    @RequestMapping("/queryAllEquipmentInfo")
126
    public JMap queryAllEquipmentInfo(JMap params) throws Exception {
127
    	JMap result = new JsonMap();
128
    	
129
		List<Map<String, Object>> resultList = equipmentManageService.queryAllEquipmentInfo(params);
130
		result.put("dataList", resultList);
131
		return result;
132
    }
133
    
134
    /**
122 135
     * 导入设备信息
123 136
     */
124 137
    @ResponseBody

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

@ -11,7 +11,8 @@ import com.ai.ipu.basic.log.ILogger;
11 11
import com.ai.ipu.basic.log.IpuLoggerFactory;
12 12
import com.ai.ipu.data.JMap;
13 13
import com.ai.ipu.data.impl.JsonMap;
14
import com.ai.ipu.server.service.interfaces.AreaInOutRecordService;
14
import com.ai.ipu.server.service.interfaces.ReceiveSubscribeService;
15
import com.ai.ipu.server.util.EbcConstant;
15 16
import com.ai.ipu.server.util.JingPingSendDateUtil;
16 17
import com.alibaba.fastjson.JSON;
17 18
import com.alibaba.fastjson.JSONObject;
@ -27,7 +28,7 @@ public class ReceiveSubscribeController {
27 28
	private static final ILogger logger = IpuLoggerFactory.createLogger(ReceiveSubscribeController.class);
28 29
	
29 30
	@Autowired
30
	AreaInOutRecordService areaInOutRecordService;
31
	ReceiveSubscribeService receiveSubscribeService;
31 32
	
32 33
	/**
33 34
	 * 接收定位消息
@ -35,33 +36,24 @@ public class ReceiveSubscribeController {
35 36
	 * @return
36 37
	 */
37 38
	@ResponseBody
38
	@RequestMapping(value = "/receiveLocationData", method = RequestMethod.POST)
39
	public String receiveLocationData(@RequestBody String msg) {
39
	@RequestMapping(value = "/receiveIotLocationData", method = RequestMethod.POST)
40
	public String receiveIotLocationData(@RequestBody String msg) {
40 41
		logger.info("已接收定位消息,消息为:" +msg);
41
42
		try {
43
			//解析数据
44
			JSONObject msgJson=JSON.parseObject(msg);
45
			JSONObject detailInfo=msgJson.getJSONObject("detailInfo");
46
			JMap dataMap=new JsonMap();
47
			dataMap.put("id",msgJson.getString("resourceId"));//设备id
48
			dataMap.put("latitude",detailInfo.getJSONObject("latitude").getString("value"));//经度
49
			dataMap.put("longitude",detailInfo.getJSONObject("longitude").getString("value"));//纬度
50
			dataMap.put("msgDate",detailInfo.getJSONObject("msgDate").getString("value"));//时间
51
			
52
			//推送镜屏
53
			String jingpingData=JSON.toJSONString(dataMap);
54
			logger.debug("推送镜屏数据:" +jingpingData);
55
			JingPingSendDateUtil.sendData(JingPingSendDateUtil.topic_personnel,jingpingData);
56
			
57
			//TODO 记录围栏
58
			areaInOutRecordService.addAreaInOutRecord(dataMap);
59
			
60
			return msg;
61
		} catch (Exception ex) {
62
			logger.error(ex.getMessage());
63
			return ex.getMessage();
64
		}
42
		
43
		//解析数据
44
		JSONObject msgJson=JSON.parseObject(msg);
45
		JSONObject detailInfo=msgJson.getJSONObject("detailInfo");
46
		JMap dataMap=new JsonMap();
47
		dataMap.put("deviceId",msgJson.getString("resourceId"));//设备id
48
		dataMap.put("deviceNo",msgJson.getString("resourceId"));//设备编码
49
		dataMap.put("longitude",detailInfo.getJSONObject("longitude").getString("value"));//经度
50
		dataMap.put("latitude",detailInfo.getJSONObject("latitude").getString("value"));//纬度
51
		dataMap.put("newDate",detailInfo.getJSONObject("msgDate").getString("value"));//最新定位时间
52
		
53
		//分析并推送定位数据
54
		receiveSubscribeService.receiveIotLocationData(dataMap);
55
		
56
		return msg;
65 57
	}
66 58
67 59
	/**
@ -70,30 +62,50 @@ public class ReceiveSubscribeController {
70 62
	 * @return
71 63
	 */
72 64
	@ResponseBody
73
	@RequestMapping(value = "/receiveAlarmData", method = RequestMethod.POST)
74
	public String receiveAlarmData(@RequestBody String msg) {
75
		try {
76
			System.out.println("已接收告警消息,消息为:\n" + JSON.toJSON(msg));
77
			return msg;
78
		} catch (Exception ex) {
79
			return ex.getMessage();
80
		}
81
	}
82
83
	/**
84
	 * 接收在线离线消息
85
	 * @param msg
86
	 * @return
87
	 */
88
	@ResponseBody
89
	@RequestMapping(value = "/receiveOnOfflineData", method = RequestMethod.POST)
90
	public String receiveOnOfflineData(@RequestBody String msg) {
91
		try {
92
			System.out.println("已接收在线离线消息,消息为:\n" + JSON.toJSON(msg));
93
			return msg;
94
		} catch (Exception ex) {
95
			return ex.getMessage();
65
	@RequestMapping(value = "/receiveIotAlarmData", method = RequestMethod.POST)
66
	public String receiveIotAlarmData(@RequestBody String msg) {
67
		logger.info("已接收告警消息,消息为:" +msg);
68
		
69
		//解析数据
70
		JSONObject msgJson=JSON.parseObject(msg);
71
		JSONObject detailInfo=msgJson.getJSONObject("detailInfo");
72
		JMap dataMap=new JsonMap();
73
		dataMap.put("deviceId",msgJson.getString("resourceId"));//设备id
74
		dataMap.put("deviceNo",msgJson.getString("resourceId"));//设备编码
75
		dataMap.put("longitude",detailInfo.getJSONObject("longitude").getString("value"));//经度
76
		dataMap.put("latitude",detailInfo.getJSONObject("latitude").getString("value"));//纬度
77
		dataMap.put("newDate",detailInfo.getJSONObject("msgDate").getString("value"));//最新定位时间
78
		
79
		String topic="";
80
		switch (detailInfo.getJSONObject("alarmType").getString("value")) {
81
		case "1": //自动报警
82
			dataMap.put("alarmType",EbcConstant.location_status_autosos);//报警类型
83
			dataMap.put("alarmTypeZH",EbcConstant.location_status_autosos_ZH);//报警类型
84
			topic=JingPingSendDateUtil.topic_alarm;
85
			break;
86
		case "2": //手动报警
87
			dataMap.put("alarmType",EbcConstant.location_status_jogsos);//报警类型
88
			dataMap.put("alarmTypeZH",EbcConstant.location_status_jogsos_ZH);//报警类型
89
			topic=JingPingSendDateUtil.topic_alarm;
90
			break;
91
		case "4": //离线
92
			dataMap.put("alarmType",EbcConstant.location_status_offline);//报警类型
93
			dataMap.put("alarmTypeZH",EbcConstant.location_status_offline_ZH);//报警类型
94
			topic=JingPingSendDateUtil.topic_offline;
95
			break;
96
		default:
97
			break;
96 98
		}
99
		
100
		//推送镜屏
101
		String jingpingData=JSON.toJSONString(dataMap);
102
		logger.debug("推送镜屏数据:" +jingpingData);
103
		JingPingSendDateUtil.sendData(topic,jingpingData);
104
		
105
		//保存报警数据
106
		receiveSubscribeService.receiveIotAlarmData(dataMap);
107
		
108
		return msg;
97 109
	}
98 110
99 111
}

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

@ -0,0 +1,122 @@
1
package com.ai.ipu.server.controller;
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.github.pagehelper.PageInfo;
8
9
import java.util.List;
10
import java.util.Map;
11
12
import org.slf4j.Logger;
13
import org.slf4j.LoggerFactory;
14
import org.springframework.beans.factory.annotation.Autowired;
15
import org.springframework.stereotype.Controller;
16
import org.springframework.web.bind.annotation.RequestMapping;
17
import org.springframework.web.bind.annotation.ResponseBody;
18
19
20
/**
21
 * 报警救援
22
 */
23
@Controller
24
@RequestMapping("/rescue")
25
public class RescueController {
26
27
    @Autowired
28
    RescueService rescueService;
29
    
30
    /**
31
	 * 分页查询报警救援日志
32
	 * 
33
	 * @param params
34
	 * @return
35
	 * @throws Exception
36
	 */
37
	@ResponseBody
38
	@RequestMapping("/queryPageRescueLog")
39
	public JMap queryPageRescueLog(JMap params) throws Exception {
40
41
		// 当前页数
42
		int pageNum = params.getInt("pageNum") < 1 ? 1 : params.getInt("pageNum");
43
		// 每页条数
44
		int pageSize = params.getInt("pageSize") < 1 ? 10 : params.getInt("pageSize");
45
46
		JMap result = rescueService.queryPageRescueLog(params, pageNum, pageSize);
47
48
		result.put("pageNum", pageNum);
49
		result.put("pageSize", pageSize);
50
		return result;
51
	}
52
53
	/**
54
	 * 查询单个报警救援日志
55
	 * 
56
	 * @param params
57
	 * @return
58
	 * @throws Exception
59
	 */
60
	@ResponseBody
61
	@RequestMapping("/queryOneRescueLog")
62
	public JMap queryOneRescueLog(JMap params) throws Exception {
63
		JMap result = new JsonMap();
64
65
		if (params == null || params.get("rescueLogId") == null) {
66
			result.put("result", false);
67
			result.put("errMsg", "操作失败");
68
			return result;
69
		}
70
71
		Map<String, Object> resultMap = rescueService.queryOneRescueLog(params);
72
		result.put("resultData", resultMap);
73
		return result;
74
	}
75
76
	/**
77
	 * 指派救援
78
	 * 
79
	 * @param params
80
	 * @return
81
	 * @throws Exception
82
	 */
83
	@ResponseBody
84
	@RequestMapping("/assignRescuer")
85
	public JMap assignRescuer(JMap params) throws Exception {
86
		JMap result = new JsonMap();
87
88
		if (params == null || params.get("rescueLogId") == null||params.get("rescuerCode") == null) {
89
			result.put("result", false);
90
			result.put("errMsg", "指派失败");
91
			return result;
92
		}
93
94
		boolean resultMap = rescueService.assignRescuer(params);
95
		result.put("result", resultMap);
96
		return result;
97
	}
98
	
99
	/**
100
	 * 关闭救援
101
	 * 
102
	 * @param params
103
	 * @return
104
	 * @throws Exception
105
	 */
106
	@ResponseBody
107
	@RequestMapping("/closeRescuer")
108
	public JMap closeRescuer(JMap params) throws Exception {
109
		JMap result = new JsonMap();
110
		
111
		if (params == null || params.get("rescueLogId") == null) {
112
			result.put("result", false);
113
			result.put("errMsg", "关闭失败");
114
			return result;
115
		}
116
		
117
		boolean resultMap = rescueService.closeRescuer(params);
118
		result.put("result", resultMap);
119
		return result;
120
	}
121
122
}

+ 48 - 14
ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/impl/AreaInOutRecordDaoImpl.java

@ -2,6 +2,7 @@ package com.ai.ipu.server.dao.impl;
2 2
3 3
import java.io.IOException;
4 4
import java.util.HashMap;
5
import java.util.List;
5 6
import java.util.Map;
6 7
7 8
import org.springframework.stereotype.Component;
@ -39,23 +40,25 @@ public class AreaInOutRecordDaoImpl extends AbstractBizDao implements AreaInOutR
39 40
	}
40 41
41 42
	@Override
42
	public JMap getBeforeAreaInfo(JMap params) throws Exception {
43
		// TODO Auto-generated method stub
44
		return null;
43
	public List<Map<String, Object>> getBeforeAreaInfo(JMap params) throws Exception {
44
		Map<String, Object> dataMap=new HashMap<String, Object>();
45
		
46
		StringBuilder sql=new StringBuilder();
47
		sql.append(" SELECT a.RECORD_ID,a.MAP_TAG_ID,a.IN_DATE, ");
48
		sql.append(" m.MAP_TAG_NAME,m.MAP_TAG_TYPE,m.RESIDENCE_TIME_LENGTH ");
49
		sql.append(" FROM LR_AREA_IN_OUT_RECORD a ");
50
		sql.append(" LEFT JOIN LR_MAP_TAG m ON m.MAP_TAG_ID=a.MAP_TAG_ID ");
51
		sql.append(" WHERE 1=1 ");
52
		sql.append(" AND a.OUT_DATE IS NULL ");
53
		
54
		sql.append(" AND a.DEVICE_ID = #{deviceId} ");
55
		dataMap.put("deviceId", params.get("deviceId"));
56
		
57
		return dao.executeSelect(sql.toString(), dataMap);
45 58
	}
46 59
	
47 60
	@Override
48
	public boolean addAreaInOutRecord(JMap params) throws Exception {
49
		Map<String, Object> dataMap=new HashMap<String, Object>();
50
		dataMap.put("MAP_TAG_ID", params.get("mapTagId"));
51
		dataMap.put("EMPLOYEE_ID", params.get("employeeId"));
52
		dataMap.put("DEVICE_ID", params.get("deviceId"));
53
		dataMap.put("LONGITUDE", params.get("longitude"));
54
		dataMap.put("LATITUDE", params.get("latitude"));
55
		dataMap.put("RECORD_LOCATION", params.get("recordLocation"));
56
		dataMap.put("IN_DATE", params.get("inDate"));
57
		dataMap.put("OUT_DATE", params.get("outDate"));
58
		dataMap.put("REMARKS", params.get("remarks"));
61
	public boolean addAreaInRecord(Map<String, Object> dataMap) throws Exception {
59 62
		dataMap.put("DATA_STATUS", "1");
60 63
		//TODO 创建人和操作人的编号和部门
61 64
		dataMap.put("CREATE_DATE", TimeUtil.getSysTime());
@ -67,5 +70,36 @@ public class AreaInOutRecordDaoImpl extends AbstractBizDao implements AreaInOutR
67 70
		
68 71
		return dao.insert("LR_AREA_IN_OUT_RECORD", dataMap) > 0;
69 72
	}
73
	
74
	@Override
75
	public boolean updateAreaOutRecord(Map<String, Object> dataMap) throws Exception {
76
		//TODO 操作人的编号和部门
77
		dataMap.put("doneDate", TimeUtil.getSysTime());
78
		dataMap.put("opId", "");
79
		dataMap.put("orgId", "");
80
		
81
		StringBuffer sql=new StringBuffer();
82
		sql.append(" UPDATE LR_AREA_IN_OUT_RECORD SET ");
83
		sql.append(" OUT_DATE = #{outDate},  ");
84
		sql.append(" DONE_DATE = #{doneDate}, ");
85
		sql.append(" OP_ID = #{opId},  ");
86
		sql.append(" ORG_ID = #{orgId} ");
87
		sql.append(" WHERE 1=1 ");
88
		
89
		
90
		if (dataMap.get("recordId") instanceof List) {
91
			List<String> recordIdList=(List<String>) dataMap.get("recordId");
92
			sql.append(" AND RECORD_ID in ( ");
93
			for (int i = 0; i < recordIdList.size(); i++) {
94
				sql.append("'").append(recordIdList.get(i)).append("'");
95
				if (i<recordIdList.size()-1) sql.append(",");
96
			}
97
			sql.append(" ) ");
98
		}else {
99
			sql.append(" AND RECORD_ID = #{recordId} ");
100
		}
101
		
102
		return dao.executeUpdate(sql.toString(), dataMap)>0;
103
	}
70 104
71 105
}

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

@ -6,19 +6,18 @@ import java.util.HashMap;
6 6
import java.util.List;
7 7
import java.util.Map;
8 8
9
import com.ai.ipu.sql.mgmt.ISqlMgmtDao;
10
import com.ai.ipu.sql.mgmt.SqlMgmtDaoFactory;
11 9
import org.springframework.stereotype.Component;
12 10
13 11
import com.ai.ipu.data.JMap;
14 12
import com.ai.ipu.data.impl.JsonMap;
15
import com.ai.ipu.database.dao.IpuDaoManager;
16 13
import com.ai.ipu.database.dao.impl.AbstractBizDao;
17 14
import com.ai.ipu.server.dao.interfaces.DeviceManageDao;
18
import com.ai.ipu.server.model.IotUrlEnum;
15
import com.ai.ipu.server.enums.IotUrlEnums;
16
import com.ai.ipu.server.enums.ProductEnums;
19 17
import com.ai.ipu.server.util.EbcConstant;
20 18
import com.ai.ipu.server.util.NorthboundInterfaceUtil;
21
import com.ai.ipu.server.util.ProductEnum;
19
import com.ai.ipu.sql.mgmt.ISqlMgmtDao;
20
import com.ai.ipu.sql.mgmt.SqlMgmtDaoFactory;
22 21
import com.alibaba.fastjson.JSONObject;
23 22
24 23
@Component
@ -41,7 +40,7 @@ public class DeviceManageDaoImpl extends AbstractBizDao implements DeviceManageD
41 40
		paramsMap.put("businessParams", params.get("businessParams"));
42 41
43 42
		// 拼接接口地址
44
		String url = IotUrlEnum.queryPageDevice.getUrl();
43
		String url = IotUrlEnums.queryPageDevice.getUrl();
45 44
		Map<String, String> map = NorthboundInterfaceUtil.iotPostCallUtil(url, paramsMap);
46 45
		return map;
47 46
	}
@ -52,7 +51,7 @@ public class DeviceManageDaoImpl extends AbstractBizDao implements DeviceManageD
52 51
53 52
		sql.append(" SELECT FACILITY_NAME NAME,DEVICE_ID FROM LR_FACILITY ");
54 53
		sql.append(" WHERE 1=1 ");
55
		sql.append(" AND FACILITY_TYPE ='").append(ProductEnum.ship.getProductId()).append("' ");
54
		sql.append(" AND FACILITY_TYPE ='").append(ProductEnums.ship.getProductId()).append("' ");
56 55
		sql.append(" AND DEVICE_ID IS NOT NULL ");
57 56
58 57
		sql.append(" UNION ALL ");
@ -69,7 +68,7 @@ public class DeviceManageDaoImpl extends AbstractBizDao implements DeviceManageD
69 68
	@Override
70 69
	public JMap queryOneDeviceInfo(JMap params) throws Exception {
71 70
		// 拼接接口地址
72
		String url = IotUrlEnum.queryOneDevice.getUrl() + params.getString("deviceId");
71
		String url = IotUrlEnums.queryOneDevice.getUrl() + params.getString("deviceId");
73 72
		Map<String, String> map = NorthboundInterfaceUtil.iotGetCallUtil(url);
74 73
75 74
		JMap deviceInfoMap = new JsonMap(JSONObject.toJSONString(map.get("result")));
@ -91,7 +90,7 @@ public class DeviceManageDaoImpl extends AbstractBizDao implements DeviceManageD
91 90
		paramsMap.put("remarks", params.getString("remarks")); // 备注
92 91
93 92
		// 拼接接口地址
94
		String url = IotUrlEnum.addDevice.getUrl();
93
		String url = IotUrlEnums.addDevice.getUrl();
95 94
		Map<String, String> map = NorthboundInterfaceUtil.iotPostCallUtil(url, paramsMap);
96 95
		return map;
97 96
	}
@ -108,7 +107,7 @@ public class DeviceManageDaoImpl extends AbstractBizDao implements DeviceManageD
108 107
		paramsMap.put("remarks", params.getString("remarks")); // 备注
109 108
110 109
		// 拼接接口地址
111
		String url = IotUrlEnum.updateDevice.getUrl();
110
		String url = IotUrlEnums.updateDevice.getUrl();
112 111
		Map<String, String> map = NorthboundInterfaceUtil.iotPostCallUtil(url, paramsMap);
113 112
		return map;
114 113
	}
@ -116,7 +115,7 @@ public class DeviceManageDaoImpl extends AbstractBizDao implements DeviceManageD
116 115
	@Override
117 116
	public Map<String, String> deleteDeviceInfo(JMap params) throws Exception {
118 117
		// 拼接接口地址
119
		String url = IotUrlEnum.deleteDevice.getUrl() + params.getString("deviceId");
118
		String url = IotUrlEnums.deleteDevice.getUrl() + params.getString("deviceId");
120 119
		Map<String, String> map = NorthboundInterfaceUtil.iotGetCallUtil(url);
121 120
		return map;
122 121
	}
@ -184,4 +183,32 @@ public class DeviceManageDaoImpl extends AbstractBizDao implements DeviceManageD
184 183
185 184
	}
186 185
186
	@Override
187
	public List<Map<String, Object>> queryCurrentDeviceLocationInfo(JMap params) throws Exception {
188
		// TODO 调用北向接口获取当前终端位置
189
		
190
		List<Map<String, Object>> list=new ArrayList<Map<String, Object>>();
191
		
192
		Map<String, Object> map1=new HashMap<String, Object>();
193
		map1.put("PARTY_NAME", "张三");//人员姓名
194
		map1.put("LOCATION_STATUS", EbcConstant.location_status_normal);//状态: 0定位
195
		map1.put("DEVICE_ID", "23128");//终端ID
196
		map1.put("DEVICE_NO", "23128");//终端编号
197
		map1.put("LONGITUDE", "123.7709438548");//经度
198
		map1.put("LATITUDE", "31.58477450849");//纬度
199
		map1.put("LOCATION_DATE", "2020-10-26 10:12:24");//最新定位时间
200
		list.add(map1);
201
		
202
		Map<String, Object> map2=new HashMap<String, Object>();
203
		map2.put("PARTY_NAME", "李四");//人员姓名
204
		map2.put("LOCATION_STATUS", EbcConstant.location_status_autosos);//状态:4自动报警
205
		map2.put("DEVICE_ID", "23125");//终端ID
206
		map2.put("DEVICE_NO", "23125");//终端编号
207
		map2.put("LONGITUDE", "126.422192652");//经度
208
		map2.put("LATITUDE", "32.045333123");//纬度
209
		map2.put("LOCATION_DATE", "2020-10-26 11:22:33");//最新定位时间
210
		list.add(map2);
211
		
212
		return list;
213
	}
187 214
}

+ 33 - 0
ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/impl/EquipmentManageDaoImpl.java

@ -77,6 +77,38 @@ public class EquipmentManageDaoImpl extends AbstractBizDao implements EquipmentM
77 77
    }
78 78
79 79
    @Override
80
	public List<Map<String, Object>> queryAllEquipmentInfo(JMap params) throws Exception {
81
		Map<String, Object> dataMap=new HashMap<String, Object>();
82
		
83
		StringBuilder sql = new StringBuilder();
84
		sql.append(" SELECT FACILITY_ID,FACILITY_TYPE,FACILITY_CODE,FACILITY_NAME,LONGITUDE,LATITUDE ");
85
		sql.append(" FROM LR_FACILITY ");
86
		sql.append(" WHERE 1=1 ");
87
88
		//标记类型:可传多个,用逗号隔开
89
		String facilityType=params.getString("facilityType");
90
		if (facilityType != null) {
91
			if (facilityType.indexOf(",")>0) {
92
				String[] facilityTypeArray=facilityType.split(",");
93
				sql.append(" AND FACILITY_TYPE IN ( ");
94
				for (int i = 0; i < facilityTypeArray.length; i++) {
95
					sql.append(" '").append(facilityTypeArray[i]).append("' ");
96
					if (i!=facilityTypeArray.length-1) {
97
						sql.append(" , ");
98
					}
99
				}
100
				sql.append(" ) ");
101
			}else {
102
				sql.append(" AND MAP_TAG_TYPE = #{facilityType} ");
103
				dataMap.put("facilityType", facilityType);
104
			}
105
		}
106
107
		return dao.executeSelect(sql.toString(), dataMap);
108
		
109
	}
110
    
111
    @Override
80 112
    public Map<String, Object> verifyEquipmentInfoRepetition(JMap params) throws Exception {
81 113
        List<Map<String, Object>> verifyList=new ArrayList<>();
82 114
        //验证修改重复
@ -101,4 +133,5 @@ public class EquipmentManageDaoImpl extends AbstractBizDao implements EquipmentM
101 133
            return verifyList.get(0);
102 134
        }
103 135
    }
136
104 137
}

+ 46 - 42
ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/impl/MapTagManageDaoImpl.java

@ -26,11 +26,11 @@ public class MapTagManageDaoImpl extends AbstractBizDao implements MapTagManageD
26 26
27 27
	@Override
28 28
	public JMap queryPageMapTagInfo(JMap params, int pageNum, int pageSize) throws Exception {
29
		Map<String, Object> dataMap=new HashMap<String, Object>();
30
		
29
		Map<String, Object> dataMap = new HashMap<String, Object>();
30
31 31
		StringBuilder sql = new StringBuilder();
32 32
		sql.append(" SELECT MAP_TAG_ID,DEPARTMENT_ID,MAP_TAG_NAME,MAP_TAG_TYPE,MAP_TAG_CONTENT, ");
33
		sql.append(" ASTEXT(MAP_TAG_SHAPE) MAP_TAG_SHAPE,REMARKS,CREATE_DATE ");
33
		sql.append(" ASTEXT(MAP_TAG_SHAPE) MAP_TAG_SHAPE,RESIDENCE_TIME_LENGTH,REMARKS,CREATE_DATE ");
34 34
		sql.append(" FROM LR_MAP_TAG WHERE 1=1 ");
35 35
36 36
		if (params.get("mapTagType") != null) {
@ -45,44 +45,44 @@ public class MapTagManageDaoImpl extends AbstractBizDao implements MapTagManageD
45 45
46 46
		sql.append(" ORDER BY CREATE_DATE DESC ");
47 47
48
		//获取数据列表
49
		List<Map<String, Object>> data=dao.executeSelect(sql.toString(), dataMap, pageNum, pageSize);
50
		
51
		//获取总条数
52
		sql.insert(0,"select count(1) dataNum from ( ");
48
		// 获取数据列表
49
		List<Map<String, Object>> data = dao.executeSelect(sql.toString(), dataMap, pageNum, pageSize);
50
51
		// 获取总条数
52
		sql.insert(0, "select count(1) dataNum from ( ");
53 53
		sql.append(" ) a ");
54
		
55
		Map map=dao.executeSelectOne(sql.toString(), dataMap);
56
		
54
55
		Map map = dao.executeSelectOne(sql.toString(), dataMap);
56
57 57
		JMap result = new JsonMap();
58 58
		result.put("dataList", data);
59 59
		result.put("dataNum", map.get("dataNum"));
60
		return result ;
60
		return result;
61 61
	}
62 62
63 63
	@Override
64 64
	public List<Map<String, Object>> queryListMapTagInfo(JMap params) throws Exception {
65
		Map<String, Object> dataMap=new HashMap<String, Object>();
66
		
65
		Map<String, Object> dataMap = new HashMap<String, Object>();
66
67 67
		StringBuilder sql = new StringBuilder();
68 68
		sql.append(" SELECT MAP_TAG_ID,DEPARTMENT_ID,MAP_TAG_NAME,MAP_TAG_TYPE,MAP_TAG_CONTENT, ");
69
		sql.append(" ASTEXT(MAP_TAG_SHAPE) MAP_TAG_SHAPE,REMARKS,CREATE_DATE ");
69
		sql.append(" ASTEXT(MAP_TAG_SHAPE) MAP_TAG_SHAPE,RESIDENCE_TIME_LENGTH,REMARKS,CREATE_DATE ");
70 70
		sql.append(" FROM LR_MAP_TAG WHERE 1=1 ");
71 71
72
		//标记类型:可传多个,用逗号隔开
73
		String mapTagType=params.getString("mapTagType");
72
		// 标记类型:可传多个,用逗号隔开
73
		String mapTagType = params.getString("mapTagType");
74 74
		if (mapTagType != null) {
75
			if (mapTagType.indexOf(",")>0) {
76
				String[] mapTagTypeArray=mapTagType.split(",");
75
			if (mapTagType.indexOf(",") > 0) {
76
				String[] mapTagTypeArray = mapTagType.split(",");
77 77
				sql.append(" AND MAP_TAG_TYPE IN ( ");
78 78
				for (int i = 0; i < mapTagTypeArray.length; i++) {
79 79
					sql.append(" '").append(mapTagTypeArray[i]).append("' ");
80
					if (i!=mapTagTypeArray.length-1) {
80
					if (i != mapTagTypeArray.length - 1) {
81 81
						sql.append(" , ");
82 82
					}
83 83
				}
84 84
				sql.append(" ) ");
85
			}else {
85
			} else {
86 86
				sql.append(" AND MAP_TAG_TYPE = #{mapTagType} ");
87 87
				dataMap.put("mapTagType", mapTagType);
88 88
			}
@ -95,21 +95,22 @@ public class MapTagManageDaoImpl extends AbstractBizDao implements MapTagManageD
95 95
	public Map<String, Object> queryOneMapTagInfo(JMap params) throws Exception {
96 96
		StringBuilder sql = new StringBuilder();
97 97
		sql.append(" SELECT MAP_TAG_ID,DEPARTMENT_ID,MAP_TAG_NAME,MAP_TAG_TYPE,MAP_TAG_CONTENT, ");
98
		sql.append(" ASTEXT(MAP_TAG_SHAPE) MAP_TAG_SHAPE,REMARKS,CREATE_DATE  ");
98
		sql.append(" ASTEXT(MAP_TAG_SHAPE) MAP_TAG_SHAPE,RESIDENCE_TIME_LENGTH,REMARKS,CREATE_DATE  ");
99 99
		sql.append(" FROM LR_MAP_TAG WHERE MAP_TAG_ID=#{mapTagId} ");
100 100
		return dao.executeSelectOne(sql.toString(), params);
101 101
	}
102 102
103 103
	@Override
104 104
	public boolean addMapTagInfo(JMap params) throws Exception {
105
		//拼接经纬度函数
106
		params.put("mapTagShape", "POLYGON (("+params.getString("mapTagShape")+"))");
107
		
108
		params.put("mapTagContent", params.get("mapTagContent")==null?"": params.get("mapTagContent"));
109
		params.put("remarks", params.get("remarks")==null?"": params.get("remarks"));
110
		
105
		// 拼接经纬度函数
106
		params.put("mapTagShape", "POLYGON ((" + params.getString("mapTagShape") + "))");
107
108
		params.put("residenceTimeLength", params.get("residenceTimeLength") == null ? null : params.get("residenceTimeLength"));
109
		params.put("mapTagContent", params.get("mapTagContent") == null ? null : params.get("mapTagContent"));
110
		params.put("remarks", params.get("remarks") == null ? null : params.get("remarks"));
111
111 112
		params.put("dataStatus", "1");
112
		//TODO 创建人和操作人的编号和部门
113
		// TODO 创建人和操作人的编号和部门
113 114
		params.put("departmentId", 1);
114 115
		params.put("createDate", TimeUtil.getSysTime());
115 116
		params.put("createOpId", "");
@ -125,11 +126,11 @@ public class MapTagManageDaoImpl extends AbstractBizDao implements MapTagManageD
125 126
126 127
	@Override
127 128
	public boolean modifyMapTagInfo(JMap params) throws Exception {
128
		//拼接经纬度函数
129
		params.put("mapTagShape", "POLYGON (("+params.getString("mapTagShape")+"))");
130
		
129
		// 拼接经纬度函数
130
		params.put("mapTagShape", "POLYGON ((" + params.getString("mapTagShape") + "))");
131
131 132
		params.put("doneDate", TimeUtil.getSysTime());
132
		//TODO 操作人的编号和部门
133
		// TODO 操作人的编号和部门
133 134
		params.put("opId", "");
134 135
		params.put("orgId", "");
135 136
@ -140,25 +141,28 @@ public class MapTagManageDaoImpl extends AbstractBizDao implements MapTagManageD
140 141
141 142
	@Override
142 143
	public boolean deleteMapTagInfo(JMap params) throws Exception {
143
		Map<String, Object> dataMap=new HashMap<String, Object>();
144
		Map<String, Object> dataMap = new HashMap<String, Object>();
144 145
		dataMap.put("MAP_TAG_ID", params.get("mapTagId"));
145
		
146
146 147
		return dao.delete("LR_MAP_TAG", dataMap) > 0;
147 148
	}
148 149
149 150
	@Override
150
	public JMap getInAreaInfo(String latitude,String longitude) throws Exception {
151
		Map<String, Object> dataMap=new HashMap<String, Object>();
152
		dataMap.put("coordinate", "POINT("+longitude+" "+latitude+")");
153
		
154
		String sql = "SELECT t.MAP_TAG_ID,t.MAP_TAG_NAME,t.MAP_TAG_TYPE,t.MAP_TAG_CONTENT "
151
	public JMap getInAreaInfo(String longitude, String latitude) throws Exception {
152
		Map<String, Object> dataMap = new HashMap<String, Object>();
153
		dataMap.put("coordinate", "POINT(" + longitude + " " + latitude + ")");
154
155
		String sql = "SELECT t.MAP_TAG_ID,t.MAP_TAG_NAME,t.MAP_TAG_TYPE,t.MAP_TAG_CONTENT,t.RESIDENCE_TIME_LENGTH "
155 156
				+ " FROM LR_MAP_TAG t WHERE ST_Within(PolygonFromText(#{coordinate}),t.MAP_TAG_SHAPE)=1";
156 157
		List<Map<String, Object>> resultList = dao.executeSelect(sql, dataMap);
157
		
158
		JMap result=new JsonMap();
158
159
		JMap result = new JsonMap();
159 160
		if (resultList != null && !resultList.isEmpty()) {
160 161
			result.put("mapTagNum", resultList.size());
161 162
			result.put("resultList", resultList);
163
			result.put("mapTagId", resultList.get(0).get("MAP_TAG_ID"));
164
			result.put("mapTagName", resultList.get(0).get("MAP_TAG_NAME"));
165
			result.put("mapTagType", resultList.get(0).get("MAP_TAG_TYPE"));
162 166
		} else {
163 167
			result.put("mapTagNum", 0);
164 168
		}

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

@ -0,0 +1,84 @@
1
package com.ai.ipu.server.dao.impl;
2
3
import java.io.IOException;
4
import java.util.HashMap;
5
import java.util.List;
6
import java.util.Map;
7
8
import org.springframework.stereotype.Component;
9
10
import com.ai.ipu.common.date.TimeUtil;
11
import com.ai.ipu.data.JMap;
12
import com.ai.ipu.database.dao.impl.AbstractBizDao;
13
import com.ai.ipu.server.dao.interfaces.RescueDao;
14
15
@Component
16
public class RescueDaoImpl extends AbstractBizDao implements RescueDao {
17
18
	public RescueDaoImpl() throws IOException {
19
		super("ebc");
20
	}
21
22
	@Override
23
	public JMap queryPageRescueLog(JMap params, int pageNum, int pageSize) throws Exception {
24
		// TODO Auto-generated method stub
25
		return null;
26
	}
27
28
	@Override
29
	public Map<String, Object> queryNoCloseRescueLog(JMap params) throws Exception {
30
		Map<String, Object> dataMap=new HashMap<String, Object>();
31
32
		StringBuilder sql=new StringBuilder();
33
		sql.append(" SELECT l.LOG_ID,l.CALLER_ID,l.DEVICE_ID,l.PARTY_TYPE,l.PARTY_CODE, ");
34
		sql.append(" l.PARTY_NAME,l.ALARM_TYPE,l.CALLER_DATE, ");
35
		sql.append(" l.RESCUERS_DATE,l.REMARKS ");
36
		sql.append(" FROM LR_RESCUE_LOG l ");
37
		sql.append(" WHERE 1=1 ");
38
		sql.append(" AND RESCUERS_DATE IS NULL ");//TODO 救援时间为空
39
		sql.append(" AND DEVICE_ID = #{deviceId} ");
40
		dataMap.put("deviceId", params.get("deviceId"));
41
		
42
		return dao.executeSelectOne(sql.toString(), dataMap);
43
	}
44
45
	@Override
46
	public Map<String, Object> queryOneRescueLog(JMap params) throws Exception {
47
		// TODO Auto-generated method stub
48
		return null;
49
	}
50
51
	/**
52
	 * TODO 临时存放
53
	 * 添加救援日志
54
	 */
55
	@Override
56
	public boolean addRescueLog(Map<String, Object> dataMap) throws Exception {
57
		dataMap.put("dataStatus", "1");
58
		//TODO 创建人和操作人的编号和部门
59
		dataMap.put("departmentId", 1);
60
		dataMap.put("createDate", TimeUtil.getSysTime());
61
		dataMap.put("createOpId", "");
62
		dataMap.put("createOrgId", "");
63
		dataMap.put("doneDate", TimeUtil.getSysTime());
64
		dataMap.put("opId", "");
65
		dataMap.put("orgId", "");
66
67
		int num=dao.insert("LR_RESCUE_LOG", dataMap);
68
		
69
		return num > 0;
70
	}
71
72
	@Override
73
	public boolean assignRescuer(JMap params) throws Exception {
74
		// TODO Auto-generated method stub
75
		return false;
76
	}
77
78
	@Override
79
	public boolean closeRescuer(JMap params) throws Exception {
80
		// TODO Auto-generated method stub
81
		return false;
82
	}
83
84
}

+ 13 - 4
ebc-sea-platform/src/main/java/com/ai/ipu/server/dao/interfaces/AreaInOutRecordDao.java

@ -1,5 +1,6 @@
1 1
package com.ai.ipu.server.dao.interfaces;
2 2
3
import java.util.List;
3 4
import java.util.Map;
4 5
5 6
import com.ai.ipu.data.JMap;
@ -45,13 +46,21 @@ public interface AreaInOutRecordDao {
45 46
	 * @return 
46 47
	 * @throws Exception
47 48
	 */
48
	JMap getBeforeAreaInfo(JMap params) throws Exception;
49
	List<Map<String, Object>> getBeforeAreaInfo(JMap params) throws Exception;
49 50
50 51
	/**
51
	 * 插入进围栏日志
52
	 * @param params
52
	 * 插入进围栏日志
53
	 * @param dataMap
54
	 * @return
55
	 * @throws Exception
56
	 */
57
	boolean addAreaInRecord(Map<String, Object> dataMap) throws Exception;
58
	
59
	/**
60
	 * 修改出围栏的日志
61
	 * @param dataMap
53 62
	 * @return
54 63
	 * @throws Exception
55 64
	 */
56
	boolean addAreaInOutRecord(JMap params) throws Exception;
65
	boolean updateAreaOutRecord(Map<String, Object> dataMap) throws Exception;
57 66
}

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

@ -64,4 +64,6 @@ public interface DeviceManageDao {
64 64
	int bindDevice(Map params, String type) throws Exception;
65 65
66 66
	int unbindDevice(Map params, String type) throws Exception;
67
	
68
	List<Map<String, Object>> queryCurrentDeviceLocationInfo(JMap params) throws Exception;
67 69
}

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

@ -19,6 +19,8 @@ public interface EquipmentManageDao {
19 19
    boolean deleteEquipmentsInfo(List<Map<String, Object>> paramsList) throws Exception;
20 20
21 21
    boolean importEquipmentInfo(List<Map<String, Object>> paramsList) throws Exception;
22
    
23
    List<Map<String, Object>> queryAllEquipmentInfo(JMap params) throws Exception;
22 24
23 25
    Map<String, Object> verifyEquipmentInfoRepetition(JMap params) throws Exception;
24 26
}

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

@ -61,11 +61,11 @@ public interface MapTagManageDao {
61 61
	/**
62 62
	 * 获取坐标点所在的围栏
63 63
	 * 
64
	 * @param latitude 经度
65
	 * @param longitude 纬度
64
	 * @param longitude 经度
65
	 * @param latitude 纬度
66 66
	 * @return
67 67
	 * @throws Exception
68 68
	 */
69
	JMap getInAreaInfo(String latitude,String longitude) throws Exception;
69
	JMap getInAreaInfo(String longitude, String latitude) throws Exception;
70 70
71 71
}

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

@ -0,0 +1,57 @@
1
package com.ai.ipu.server.dao.interfaces;
2
3
import java.util.List;
4
import java.util.Map;
5
6
import com.ai.ipu.data.JMap;
7
8
public interface RescueDao {
9
10
	/**
11
	 * 分页查询报警救援日志
12
	 * @param params
13
	 * @param pageNum 当前页数
14
	 * @param pageSize 每页条数
15
	 * @return
16
	 * @throws Exception
17
	 */
18
	JMap queryPageRescueLog(JMap params, int pageNum, int pageSize) throws Exception;
19
20
	/**
21
	 * 根据终端标识获取未关闭的报警救援日志
22
	 * @param params
23
	 * @return
24
	 * @throws Exception
25
	 */
26
	Map<String, Object> queryNoCloseRescueLog(JMap params) throws Exception;
27
28
	/**
29
	 * 根据终端标识获取单个报警救援日志
30
	 * @param params
31
	 * @return
32
	 * @throws Exception
33
	 */
34
	Map<String, Object> queryOneRescueLog(JMap params) throws Exception;
35
36
	/**
37
	 * 添加报警救援日志
38
	 * @param dataMap
39
	 * @return
40
	 * @throws Exception
41
	 */
42
	boolean addRescueLog(Map<String, Object> dataMap) throws Exception;
43
44
	/**
45
	 * 指派救援
46
	 * @return
47
	 * @throws Exception
48
	 */
49
	boolean assignRescuer(JMap params) throws Exception;
50
51
	/**
52
	 * 关闭救援
53
	 * @return
54
	 * @throws Exception
55
	 */
56
	boolean closeRescuer(JMap params) throws Exception;
57
}

+ 33 - 0
ebc-sea-platform/src/main/java/com/ai/ipu/server/enums/IotUrlEnums.java

@ -0,0 +1,33 @@
1
package com.ai.ipu.server.enums;
2
3
import com.ai.ipu.server.model.UrlAddress;
4
5
/**
6
 * iot 北向接口业务数据的地址枚举
7
 * 
8
 * @author konghl@asiainfo.com
9
 * 2020-10-20
10
 */
11
public enum IotUrlEnums {
12
	// 分页查询终端
13
	queryPageDevice("findTerminal"),
14
	// 添加终端
15
	addDevice("device"),
16
	// 修改终端
17
	updateDevice("updateDevice"),
18
	// 删除终端
19
	deleteDevice("deleteDevice?deviceId="),
20
	// 查询单个设备
21
	queryOneDevice("deviceSimpleDetail?deviceId=");
22
23
	private String url;
24
25
	private IotUrlEnums(String url) {
26
		this.url = url;
27
	}
28
29
	public String getUrl() {
30
		return UrlAddress.IOT_URL1 + "/" + url;
31
	}
32
33
}

+ 76 - 0
ebc-sea-platform/src/main/java/com/ai/ipu/server/enums/ProductEnums.java

@ -0,0 +1,76 @@
1
package com.ai.ipu.server.enums;
2
3
import java.util.HashMap;
4
import java.util.Map;
5
6
/**
7
 * 设备类型枚举
8
 * 
9
 * @author konghl@asiainfo.com 
10
 * 2020-10-19
11
 */
12
public enum ProductEnums {
13
	// 船舶
14
	ship("001", "船舶", 1),
15
	// 风机
16
	fan("002", "风机", 2),
17
	// 升压站
18
	booster("003", "升压站", 2),
19
	// 测风塔
20
	anemometer("004", "测风塔", 2);
21
22
	private String productId;
23
	private String productName;
24
	private int productType;
25
26
	private ProductEnums(String productId, String productName, int productType) {
27
		this.productId = productId;
28
		this.productName = productName;
29
		this.productType = productType;
30
	}
31
32
	public String getProductId() {
33
		return productId;
34
	}
35
36
	public String getProductName() {
37
		return productName;
38
	}
39
40
	public int getProductType() {
41
		return productType;
42
	}
43
44
	/**
45
	 * 根据类型获取对应的产品类型列表
46
	 * 
47
	 * @param type 类型(1:绑定终端,2:不绑定终端)
48
	 * @return
49
	 */
50
	public static Map<String, Object> getProductByType(int type) {
51
		Map<String, Object> map = new HashMap<String, Object>();
52
53
		for (ProductEnums productEnum : ProductEnums.values()) {
54
			if (productEnum.getProductType() == type) {
55
				map.put("id", productEnum.getProductId());
56
				map.put("name", productEnum.getProductName());
57
			}
58
		}
59
		return map;
60
	}
61
62
	/**
63
	 * 获取所有的产品类型列表
64
	 * 
65
	 * @return
66
	 */
67
	public static Map<String, Object> getAllProduct() {
68
		Map<String, Object> map = new HashMap<String, Object>();
69
70
		for (ProductEnums productEnum : ProductEnums.values()) {
71
			map.put("id", productEnum.getProductId());
72
			map.put("name", productEnum.getProductName());
73
		}
74
		return map;
75
	}
76
}

+ 164 - 0
ebc-sea-platform/src/main/java/com/ai/ipu/server/enums/UserEnums.java

@ -0,0 +1,164 @@
1
package com.ai.ipu.server.enums;
2
3
import java.lang.reflect.InvocationTargetException;
4
import java.util.ArrayList;
5
import java.util.HashMap;
6
import java.util.List;
7
import java.lang.reflect.Field;
8
import java.lang.reflect.Method;
9
import java.util.Map;
10
11
import org.springframework.util.ReflectionUtils;
12
13
14
public enum UserEnums {
15
    oneUser(1, "张三", "1111", "搜救", "经理"),
16
    twoUser(2, "李四", "2222", "搜救", "员工"),
17
    threeUser(3, "王五", "3333", "搜救", "员工"),
18
    fiveUser(4, "赵六", "4444", "搜救", "员工"),
19
    sixUser(5, "田七", "5555", "搜救", "员工");
20
    public int id; //id
21
    public String userName;//姓名
22
    public String employeeNo;//员工编号
23
    public String department;//部门
24
    public String duty;//职务
25
26
    UserEnums() {
27
    }
28
29
    UserEnums(int id, String userName, String employeeNo, String department, String duty) {
30
        this.id = id;
31
        this.userName = userName;
32
        this.employeeNo = employeeNo;
33
        this.department = department;
34
        this.duty = duty;
35
    }
36
37
    public int getId() {
38
        return id;
39
    }
40
41
    public String getUserName() {
42
        return userName;
43
    }
44
45
    public String getEmployeeNo() {
46
        return employeeNo;
47
    }
48
49
    public String getDepartment() {
50
        return department;
51
    }
52
53
    public String getDuty() {
54
        return duty;
55
    }
56
57
    /**
58
     * 根据id返回枚举值
59
     * @param id
60
     * @return
61
     */
62
    public static UserEnums   getEumByid(int id){
63
        for(UserEnums userEnum: UserEnums.values()) {
64
            if(userEnum.getId()==id) {
65
                return userEnum;
66
            }
67
        }
68
        return null;
69
    }
70
71
    /**
72
     * 根据序号获取枚举数组中的值,序号必须从0开始
73
     * @param id
74
     * @return
75
     * @throws IllegalAccessException
76
     * @throws IllegalArgumentException
77
     * @throws InvocationTargetException
78
     * @throws InstantiationException
79
     */
80
    public static <T> List<T> getEumByKey(int id) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException {
81
        List<String> enumList=getEumValueList();
82
        List<T> enumList1=new ArrayList<T>();
83
        for(UserEnums testEnums: UserEnums.values()) {
84
            if(testEnums.getId()==id) {
85
                Class<?> clazz=testEnums.getClass();
86
                // 获取所有常量
87
                Object object = clazz.getEnumConstants()[id];
88
                Field[]  filedFields=clazz.getFields();
89
                for (Field field : filedFields) {
90
                    field.setAccessible(true);
91
                    Object sssObject=field.get(object);
92
                    if(enumList.contains(field.getName())) {
93
                        continue;
94
                    }else {
95
                        if(sssObject!=null)
96
                            enumList1.add((T) sssObject);
97
                    }
98
                }
99
                return enumList1;
100
            }
101
        }
102
        return null;
103
    }
104
    /**
105
     * 获取枚举值常量列表
106
     * @param
107
     * @return
108
     */
109
    public static List<String>  getEumValueList() {
110
        List<String> list=new ArrayList<String>();
111
        for(Object object:UserEnums.values()) {
112
            list.add(object.toString());
113
        }
114
        return list;
115
    }
116
    /**
117
     * 传入方法名称  values是值 ,field是 字段mingcheng
118
     * @param <T>
119
     * @param enumType
120
     * @param value
121
     * @param field
122
     * @return
123
     * @throws Exception
124
     */
125
    public static <T extends Enum<T>> T getEnumOnValue(Class<T> enumType, String value, String field) throws Exception {
126
127
        for (Object obj : enumType.getEnumConstants()) {
128
            Method m = obj.getClass().getDeclaredMethod("values", null);
129
            Object[] results = (Object[]) m.invoke(obj, null);
130
            for (Object result : results) {
131
                Field codeField = result.getClass().getDeclaredField(field);
132
                ReflectionUtils.makeAccessible(codeField);
133
                String fileValue = String.valueOf(ReflectionUtils.getField(codeField, result));
134
                if (fileValue.equals(value)) {
135
                    return (T) result;
136
                }
137
138
            }
139
        }
140
        return null;
141
    }
142
143
144
    /**
145
     * 获取所有的用户放到list里
146
     *
147
     * @return
148
     * @throws Exception
149
     */
150
151
    public static List<Map<String,Object>> getUserList(){
152
        ArrayList<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
153
        for(UserEnums userEnum : UserEnums .values()){
154
            Map<String,Object> userMap = new HashMap<String,Object>();
155
            userMap.put("id",userEnum.getId());
156
            userMap.put("userName",userEnum.getUserName());
157
            userMap.put("employeeNo",userEnum.getEmployeeNo());
158
            userMap.put("department",userEnum.getDepartment());
159
            userMap.put("duty",userEnum.getDuty());
160
            list.add(userMap);
161
        }
162
        return list;
163
    }
164
}

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

@ -13,7 +13,7 @@ import org.springframework.stereotype.Service;
13 13
import com.ai.ipu.data.JMap;
14 14
import com.ai.ipu.data.impl.JsonMap;
15 15
import com.ai.ipu.server.dao.interfaces.DeviceManageDao;
16
import com.ai.ipu.server.model.UserEnums;
16
import com.ai.ipu.server.enums.UserEnums;
17 17
import com.ai.ipu.server.service.interfaces.DeviceManageService;
18 18
import com.ai.ipu.server.util.EbcConstant;
19 19
import com.alibaba.fastjson.JSON;
@ -100,7 +100,7 @@ public class DeviceManageServiceImpl implements DeviceManageService {
100 100
	}
101 101
102 102
	@Override
103
	public List<Map<String, Object>> queryListDeviceInfo(JMap params, int pageNum, int pageSize) throws Exception {
103
	public List<Map<String, String>> queryListDeviceInfo(JMap params, int pageNum, int pageSize) throws Exception {
104 104
		// 查询条件
105 105
		Map<String, String> businessParams = new HashMap<String, String>();
106 106
		businessParams.put("specId", EbcConstant.beidouDevice_product_id); // 所属产品
@ -108,9 +108,21 @@ public class DeviceManageServiceImpl implements DeviceManageService {
108 108
		params.put("businessParams", businessParams);
109 109
110 110
		Map<String, String> deviceInfoMap = deviceManageDao.queryPageDeviceInfo(params, pageNum, pageSize);
111
		List<Map> deviceInfoList = JSON.parseArray(deviceInfoMap.get("result"), Map.class);
111
		List<Map> deviceInfoList = JSON.parseArray(JSON.toJSONString(deviceInfoMap.get("result")), Map.class);
112
113
		// 整理返回数据信息
114
		List<Map<String, String>> dataList = new ArrayList<Map<String, String>>();
115
		if (deviceInfoList != null && deviceInfoList.size() > 0) {
116
			for (Map map : deviceInfoList) {
117
				Map<String, String> dataMap = new HashMap<String, String>();
118
				String deviceId = String.valueOf(map.get("resourceId"));
119
				dataMap.put("deviceId", deviceId);
120
				dataMap.put("deviceNo", deviceId);
121
				dataList.add(dataMap);
122
			}
123
		}
112 124
113
		return queryListDeviceInfo(params, pageNum, pageSize);
125
		return dataList;
114 126
	}
115 127
116 128
	@Override
@ -137,14 +149,13 @@ public class DeviceManageServiceImpl implements DeviceManageService {
137 149
	public List<Map<String, Object>> queryAssociatInfo(JMap params) throws Exception {
138 150
		if (EbcConstant.bind_device_type_user.equals(params.get("type"))) {
139 151
			// 类型是用户,查询用户列表
140
			// 调用uspa接口获取人员信息 暂时用枚举
141
			List<Map<String, Object>> userList = UserEnums.getUserList();
142
			return userList;
152
			// TODO 调用uspa接口获取人员信息 暂时用枚举
153
			return UserEnums.getUserList();
143 154
		} else if (EbcConstant.bind_device_type_ship.equals(params.get("type"))) {
144 155
			// 类型是船舶,查询船舶列表
145 156
			return deviceManageDao.queryAssociatBoatInfo(params);
146 157
		}
147
		return null;
158
		return new ArrayList<Map<String, Object>>();
148 159
	}
149 160
150 161
	@Override
@ -166,4 +177,9 @@ public class DeviceManageServiceImpl implements DeviceManageService {
166 177
		return num > 0;
167 178
	}
168 179
180
	@Override
181
	public List<Map<String, Object>> queryCurrentDeviceLocationInfo(JMap params) throws Exception {
182
		return deviceManageDao.queryCurrentDeviceLocationInfo(params);
183
	}
184
169 185
}

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

@ -53,6 +53,11 @@ public class EquipmentManageServiceImpl implements EquipmentManageService {
53 53
    }
54 54
55 55
    @Override
56
	public List<Map<String, Object>> queryAllEquipmentInfo(JMap params) throws Exception {
57
		return equipmentManageDao.queryAllEquipmentInfo(params);
58
	}
59
    
60
    @Override
56 61
    public Map<String, Object> verifyEquipmentInfoRepetition(JMap params) throws Exception{
57 62
        return equipmentManageDao.verifyEquipmentInfoRepetition(params);
58 63
    }

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

@ -0,0 +1,264 @@
1
package com.ai.ipu.server.service.impl;
2
3
import java.math.BigDecimal;
4
import java.text.ParseException;
5
import java.text.SimpleDateFormat;
6
import java.util.ArrayList;
7
import java.util.HashMap;
8
import java.util.List;
9
import java.util.Map;
10
import java.util.concurrent.ExecutorService;
11
import java.util.concurrent.Executors;
12
13
import org.springframework.beans.factory.annotation.Autowired;
14
import org.springframework.stereotype.Service;
15
16
import com.ai.ipu.basic.log.ILogger;
17
import com.ai.ipu.basic.log.IpuLoggerFactory;
18
import com.ai.ipu.data.JMap;
19
import com.ai.ipu.server.dao.interfaces.AreaInOutRecordDao;
20
import com.ai.ipu.server.dao.interfaces.DeviceManageDao;
21
import com.ai.ipu.server.dao.interfaces.MapTagManageDao;
22
import com.ai.ipu.server.dao.interfaces.RescueDao;
23
import com.ai.ipu.server.service.interfaces.ReceiveSubscribeService;
24
import com.ai.ipu.server.util.EbcConstant;
25
import com.ai.ipu.server.util.JingPingSendDateUtil;
26
import com.alibaba.fastjson.JSON;
27
28
@Service
29
public class ReceiveSubscribeServiceImpl implements ReceiveSubscribeService {
30
	private static final ILogger logger = IpuLoggerFactory.createLogger(ReceiveSubscribeServiceImpl.class);
31
32
	@Autowired
33
	MapTagManageDao mapTagManageDao;
34
35
	@Autowired
36
	DeviceManageDao deviceManageDao;
37
38
	@Autowired
39
	RescueDao rescueDao;
40
41
	@Autowired
42
	AreaInOutRecordDao areaInOutRecordDao;
43
44
	ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
45
46
	@Override
47
	public void receiveIotLocationData(JMap dataMap) {
48
		executeReceiveIotLocationData(dataMap);
49
50
		/*ExecutorService cachedThreadPool = Executors.newCachedThreadPool();
51
		cachedThreadPool.execute(new Runnable() {
52
			 
53
			@Override
54
			public void run() {
55
				
56
			}
57
		});*/
58
	}
59
60
	@Override
61
	public void receiveIotAlarmData(JMap dataMap) {
62
		executeReceiveIotAlarmData(dataMap);
63
	}
64
65
	/**
66
	 * 处理定位数据
67
	 * @param dataMap
68
	 */
69
	private void executeReceiveIotLocationData(JMap params) {
70
		try {
71
			// 1、查询是否为需救援的人员
72
			Map<String, Object> alarmMap = rescueDao.queryNoCloseRescueLog(params);
73
74
			// 当前已为报警信息
75
			if (alarmMap != null) {
76
				// 执行对应方法
77
				beforeAlarmLocationData(params, alarmMap);
78
			}
79
80
			// 2、查询人员当前是否在围栏内
81
			JMap currentAreaInfoJMap = mapTagManageDao.getInAreaInfo(params.getString("longitude"),
82
					params.getString("latitude"));
83
84
			// 3、查询人员之前所在围栏信息
85
			List<Map<String, Object>> beforeAreaMapList = areaInOutRecordDao.getBeforeAreaInfo(params);
86
87
			if (currentAreaInfoJMap.getInt("mapTagNum") == 0) {
88
				// 当前未在围栏内
89
				currentNotInArea(params, beforeAreaMapList);
90
			} else {
91
				// 当前在围栏内
92
				// TODO 当前只判断一个围栏信息
93
				List<Map<String, Object>> currentAreaInfoList=(List<Map<String, Object>>)currentAreaInfoJMap.get("resultList");
94
				Map<String, Object> currentAreaInfoMap = currentAreaInfoList.get(0);
95
				currentInArea(params, currentAreaInfoMap, beforeAreaMapList);
96
			}
97
98
		} catch (Exception ex) {
99
			logger.error(ex.getMessage());
100
		}
101
	}
102
103
	/**
104
	 * 当前已为报警信息
105
	 * 
106
	 * @param params
107
	 * @param alarmMap
108
	 * @throws ParseException 
109
	 */
110
	private void beforeAlarmLocationData(JMap params, Map<String, Object> alarmMap) throws Exception {
111
		String newDate = params.getString("newDate");// 当前定位时间
112
		String alarmDate = String.valueOf(alarmMap.get("CALLER_DATE"));// 求救时间
113
		params.put("alarmDate", alarmDate);
114
115
		// 计算持续时长
116
		SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
117
		long newDateLong = simpleDateFormat.parse(newDate).getTime();
118
		long alarmDateLong = simpleDateFormat.parse(alarmDate).getTime();
119
		long alarmLong = newDateLong - alarmDateLong;
120
		BigDecimal alarmLongBigDecimal = new BigDecimal(alarmLong);
121
		// 单位为分,四舍五入不保留小数
122
		alarmLongBigDecimal = alarmLongBigDecimal.divide(new BigDecimal("60000L"), 0, BigDecimal.ROUND_HALF_UP);
123
		params.put("alarmLong", alarmLongBigDecimal.toString());
124
125
		// 推送镜屏
126
		String jingpingData = JSON.toJSONString(params);
127
		logger.debug("推送镜屏数据:" + jingpingData);
128
		JingPingSendDateUtil.sendData(JingPingSendDateUtil.topic_personnel, jingpingData);
129
	}
130
131
	/**
132
	 * 当前未在围栏内
133
	 * @param params
134
	 * @param beforeAreaMapList 之前进入围栏的信息
135
	 * @throws Exception 
136
	 */
137
	private void currentNotInArea(JMap params, List<Map<String, Object>> beforeAreaMapList) throws Exception {
138
		// 1、判断之前是否已在围栏内
139
		if (beforeAreaMapList != null) {
140
			List<String> recordIdList=new ArrayList<String>();
141
			for (Map<String, Object> beforeAreaMap : beforeAreaMapList) {
142
				recordIdList.add(String.valueOf(beforeAreaMap.get("RECORD_ID")));
143
			}
144
			
145
			Map<String, Object> dataMap = new HashMap<String, Object>();
146
			dataMap.put("recordId", recordIdList);// 进入围栏记录ID
147
			dataMap.put("outDate", params.get("newDate")); // 离开围栏时间
148
149
			// 记录离开围栏时间
150
			areaInOutRecordDao.updateAreaOutRecord(dataMap);
151
		}
152
153
		// 2、推送镜屏
154
		String jingpingData = JSON.toJSONString(params);
155
		logger.debug("推送镜屏数据:" + jingpingData);
156
		JingPingSendDateUtil.sendData(JingPingSendDateUtil.topic_personnel, jingpingData);
157
	}
158
159
	/**
160
	 * 进入围栏
161
	 * @param params
162
	 * @param currentAreaInfoMap 当前所在围栏信息
163
	 * @param beforeAreaMapList 之前进入围栏的信息
164
	 * @throws Exception 
165
	 */
166
	private void currentInArea(JMap params, Map<String, Object> currentAreaInfoMap,
167
			List<Map<String, Object>> beforeAreaMapList) throws Exception {
168
		// 围栏类型
169
		String mapTagType = String.valueOf(currentAreaInfoMap.get("MAP_TAG_TYPE"));
170
171
		if (beforeAreaMapList != null&&beforeAreaMapList.size()>0) {
172
			// 之前在围栏内
173
			// TODO 当前只判断一个围栏信息
174
			Map<String, Object> beforeAreaMap = beforeAreaMapList.get(0);
175
176
			if (String.valueOf(beforeAreaMap.get("MAP_TAG_ID"))
177
					.equals(String.valueOf(currentAreaInfoMap.get("mapTagId")))) {
178
				// 如果是定点围栏,则计算进入时长
179
				if (EbcConstant.area_type_temporariness.equals(mapTagType)) {
180
					// 计算已进入时长
181
					String newDate = params.getString("newDate");// 当前定位时间
182
					SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
183
					long newDateLong = simpleDateFormat.parse(newDate).getTime();
184
					long fixedLong = System.currentTimeMillis() - newDateLong;
185
					BigDecimal fixedLongBigDecimal = new BigDecimal(fixedLong);
186
					// 单位为分,四舍五入不保留小数
187
					long fixedMinute = fixedLongBigDecimal.divide(new BigDecimal("60000L"), 0, BigDecimal.ROUND_HALF_UP)
188
							.longValue();
189
					// 围栏要求定点时间
190
					long residenceTimeLength = Long
191
							.getLong(String.valueOf(currentAreaInfoMap.get("RESIDENCE_TIME_LENGTH")));
192
193
					if (residenceTimeLength < fixedMinute) {
194
						// 定点超过要求时间
195
						params.put("locationStatus", EbcConstant.location_status_violation);
196
					}
197
198
					params.put("fixedLong", fixedMinute);
199
				}
200
			}
201
		} else {
202
			// 之前不在围栏内
203
			Map<String, Object> dataMap = new HashMap<String, Object>();
204
205
			dataMap.put("MAP_TAG_ID", currentAreaInfoMap.get("MAP_TAG_ID"));
206
			dataMap.put("EMPLOYEE_ID", 0);// TODO 人员ID
207
			dataMap.put("DEVICE_ID", params.get("deviceId"));
208
			dataMap.put("LONGITUDE", params.get("longitude"));
209
			dataMap.put("LATITUDE", params.get("latitude"));
210
			dataMap.put("RECORD_LOCATION", currentAreaInfoMap.get("MAP_TAG_NAME"));
211
			dataMap.put("IN_DATE", params.get("newDate"));
212
213
			// 记录进入围栏日志
214
			areaInOutRecordDao.addAreaInRecord(dataMap);
215
		}
216
217
		// 2、推送镜屏
218
		String jingpingData = JSON.toJSONString(params);
219
		logger.debug("推送镜屏数据:" + jingpingData);
220
		JingPingSendDateUtil.sendData(JingPingSendDateUtil.topic_personnel, jingpingData);
221
	}
222
223
	/**
224
	 * 处理报警数据
225
	 * @param dataMap
226
	 */
227
	private void executeReceiveIotAlarmData(JMap params) {
228
		try {
229
			// 1、获取人员信息
230
			Map<String, Object> deviceAndUser = deviceManageDao.queryAssociatUser(params);
231
232
			// 2、获取围栏信息
233
			JMap currentAreaInfo = mapTagManageDao.getInAreaInfo(params.getString("longitude"),
234
					params.getString("latitude"));
235
236
			// 拼接添加数据
237
			Map<String, Object> dataMap = new HashMap<String, Object>();
238
			dataMap.put("CALLER_ID", deviceAndUser.get("PARTY_CODE")); // 报警人员标识
239
			dataMap.put("DEVICE_ID", params.get("deviceId")); // 终端标识
240
			dataMap.put("PARTY_TYPE", deviceAndUser.get("PARTY_TYPE")); // 参与人类型
241
			dataMap.put("PARTY_CODE", deviceAndUser.get("PARTY_CODE")); // 参与人业务编码
242
			dataMap.put("PARTY_NAME", deviceAndUser.get("PARTY_NAME")); // 参与人名称
243
			dataMap.put("ALARM_TYPE", params.get("alarmTypeZH")); // 告警类型
244
			dataMap.put("LONGITUDE", params.get("longitude")); // 报警经度
245
			dataMap.put("LATITUDE", params.get("latitude")); // 报警纬度
246
			dataMap.put("CALLER_DATE", params.get("msgDate")); // 报警时间
247
248
			// 报警位置
249
			if (currentAreaInfo.getInt("mapTagNum") > 0) {
250
				// TODO 只记录第一条围栏地址
251
				dataMap.put("CALLER_LOCATION", currentAreaInfo.get("mapTagName"));
252
			} else {
253
				dataMap.put("CALLER_LOCATION", "");
254
			}
255
256
			// 3、保存报警数据
257
			rescueDao.addRescueLog(dataMap);
258
259
		} catch (Exception e) {
260
			logger.error("保存报警数据失败");
261
		}
262
	}
263
264
}

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

@ -0,0 +1,38 @@
1
package com.ai.ipu.server.service.impl;
2
3
import java.util.Map;
4
5
import org.springframework.beans.factory.annotation.Autowired;
6
import org.springframework.stereotype.Service;
7
8
import com.ai.ipu.data.JMap;
9
import com.ai.ipu.server.dao.interfaces.RescueDao;
10
import com.ai.ipu.server.service.interfaces.RescueService;
11
12
@Service
13
public class RescueServiceImpl implements RescueService {
14
15
	@Autowired
16
	RescueDao rescueDao;
17
18
	@Override
19
	public JMap queryPageRescueLog(JMap params, int pageNum, int pageSize) throws Exception {
20
		return rescueDao.queryPageRescueLog(params, pageNum, pageSize);
21
	}
22
23
	@Override
24
	public Map<String, Object> queryOneRescueLog(JMap params) throws Exception {
25
		return rescueDao.queryOneRescueLog(params);
26
	}
27
28
	@Override
29
	public boolean assignRescuer(JMap params) throws Exception {
30
		return rescueDao.assignRescuer(params);
31
	}
32
33
	@Override
34
	public boolean closeRescuer(JMap params) throws Exception {
35
		return rescueDao.closeRescuer(params);
36
	}
37
38
}

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

@ -25,7 +25,7 @@ public interface DeviceManageService {
25 25
	 * @return
26 26
	 * @throws Exception
27 27
	 */
28
	List<Map<String, Object>> queryListDeviceInfo(JMap params, int pageNum, int pageSize) throws Exception;
28
	List<Map<String, String>> queryListDeviceInfo(JMap params, int pageNum, int pageSize) throws Exception;
29 29
30 30
	/**
31 31
	 * 获取单个终端信息
@ -66,4 +66,6 @@ public interface DeviceManageService {
66 66
	List<Map<String, Object>> queryAssociatInfo(JMap params) throws Exception;
67 67
68 68
	Map<String, Object> verifyUserOrBoatAssociatInfo(JMap params) throws Exception;
69
	
70
	List<Map<String, Object>> queryCurrentDeviceLocationInfo(JMap params) throws Exception;
69 71
}

+ 2 - 0
ebc-sea-platform/src/main/java/com/ai/ipu/server/service/interfaces/EquipmentManageService.java

@ -20,5 +20,7 @@ public interface EquipmentManageService {
20 20
21 21
    boolean importEquipmentInfo(List<Map<String,Object>> paramsList) throws Exception;
22 22
23
    List<Map<String, Object>> queryAllEquipmentInfo(JMap params) throws Exception;
24
    
23 25
    Map<String, Object> verifyEquipmentInfoRepetition(JMap params) throws Exception;
24 26
}

+ 2 - 3
ebc-sea-platform/src/main/java/com/ai/ipu/server/service/interfaces/ExportService.java

@ -1,11 +1,10 @@
1 1
package com.ai.ipu.server.service.interfaces;
2 2
3
import com.ai.ipu.data.JMap;
4
import org.springframework.http.ResponseEntity;
5
6 3
import javax.servlet.http.HttpServletRequest;
7 4
import javax.servlet.http.HttpServletResponse;
8 5
6
import org.springframework.http.ResponseEntity;
7
9 8
public interface ExportService {
10 9
11 10
    ResponseEntity<byte[]> exportMapTagInfoToExcel(HttpServletRequest request, HttpServletResponse response, Object object);

+ 0 - 2
ebc-sea-platform/src/main/java/com/ai/ipu/server/service/interfaces/GisTokenService.java

@ -1,7 +1,5 @@
1 1
package com.ai.ipu.server.service.interfaces;
2 2
3
import com.ai.ipu.data.JMap;
4
5 3
import java.util.Map;
6 4
7 5
public interface GisTokenService {

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

@ -0,0 +1,10 @@
1
package com.ai.ipu.server.service.interfaces;
2
3
import com.ai.ipu.data.JMap;
4
5
public interface ReceiveSubscribeService {
6
	
7
	void receiveIotLocationData(JMap dataMap);
8
	
9
	void receiveIotAlarmData(JMap dataMap);
10
}

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

@ -0,0 +1,41 @@
1
package com.ai.ipu.server.service.interfaces;
2
3
import java.util.Map;
4
5
import com.ai.ipu.data.JMap;
6
7
public interface RescueService {
8
9
	/**
10
	 * 分页查询报警救援日志
11
	 * @param params
12
	 * @param pageNum 当前页数
13
	 * @param pageSize 每页条数
14
	 * @return
15
	 * @throws Exception
16
	 */
17
	JMap queryPageRescueLog(JMap params, int pageNum, int pageSize) throws Exception;
18
19
	/**
20
	 * 获取单个报警救援日志
21
	 * @param params
22
	 * @return
23
	 * @throws Exception
24
	 */
25
	Map<String, Object> queryOneRescueLog(JMap params) throws Exception;
26
27
	/**
28
	 * 指派救援
29
	 * @return
30
	 * @throws Exception
31
	 */
32
	boolean assignRescuer(JMap params) throws Exception;
33
34
	/**
35
	 * 关闭救援
36
	 * @return
37
	 * @throws Exception
38
	 */
39
	boolean closeRescuer(JMap params) throws Exception;
40
41
}

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

@ -42,4 +42,34 @@ public class EbcConstant {
42 42
	// 围栏标记类型:定点
43 43
	public static final String area_type_temporariness = "4";
44 44
45
	//定位状态:正常
46
	public static final String location_status_normal="0";
47
	
48
	//定位状态:离线
49
	public static final String location_status_offline="1";
50
	
51
	//定位状态:违规
52
	public static final String location_status_violation="2";
53
	
54
	//人员状态:SOS(手动)
55
	public static final String location_status_jogsos="3";
56
	
57
	//人员状态:SOS(自动)
58
	public static final String location_status_autosos="4";
59
	
60
	//人员状态:救援人员
61
	public static final String location_status_rescuers="5";
62
	
63
	//人员状态:离线
64
	public static final String location_status_offline_ZH="离线告警";
65
	
66
	//人员状态:违规
67
	public static final String location_status_violation_ZH="违规告警";
68
	
69
	//人员状态:SOS(手动)
70
	public static final String location_status_jogsos_ZH="手动告警";
71
	
72
	//人员状态:SOS(自动)
73
	public static final String location_status_autosos_ZH="落水告警";
74
	
45 75
}

+ 5 - 1
ebc-sea-platform/src/main/resources/sql/ipu/MapTagManageDao.xml

@ -4,7 +4,7 @@
4 4
		<![CDATA[
5 5
		<insert id="addMapTagInfo" resultType="java.util.Map" useGeneratedKeys="true" keyProperty="MAP_TAG_ID">
6 6
			INSERT INTO LR_MAP_TAG(		
7
			DEPARTMENT_ID,MAP_TAG_NAME,MAP_TAG_TYPE,MAP_TAG_CONTENT,MAP_TAG_SHAPE,REMARKS,
7
			DEPARTMENT_ID,MAP_TAG_NAME,MAP_TAG_TYPE,MAP_TAG_CONTENT,MAP_TAG_SHAPE,RESIDENCE_TIME_LENGTH,REMARKS,
8 8
			DATA_STATUS,CREATE_DATE,CREATE_OP_ID,CREATE_ORG_ID,DONE_DATE,OP_ID,ORG_ID
9 9
		   )VALUES (
10 10
			#{departmentId},
@ -12,6 +12,7 @@
12 12
			#{mapTagType},
13 13
			#{mapTagContent},
14 14
			POLYGONFROMTEXT(#{mapTagShape}),
15
			#{residenceTimeLength},
15 16
			#{remarks},
16 17
			
17 18
			#{dataStatus},
@ -44,6 +45,9 @@
44 45
				<if test="mapTagContent != null">
45 46
					MAP_TAG_CONTENT = #{mapTagContent},
46 47
				</if>
48
				<if test="residenceTimeLength != null">
49
					RESIDENCE_TIME_LENGTH = #{residenceTimeLength},
50
				</if>
47 51
				<if test="remarks != null">
48 52
					REMARKS = #{remarks},
49 53
				</if>