|  | @ -38,6 +38,7 @@ import com.yihu.jw.restmodel.emergency.EmergencyOrderVO;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.PageEnvelop;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.common.GpsUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.common.IdCardUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.common.LatitudeUtils;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.date.DateUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.entity.EntityUtils;
 | 
	
		
			
				|  |  | import com.yihu.mysql.query.BaseJpaService;
 | 
	
	
		
			
				|  | @ -237,6 +238,9 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
 | 
	
		
			
				|  |  |         message.put("content_type",40);
 | 
	
		
			
				|  |  |         for (BaseDoctorDO doctorDO:doctorDOS){
 | 
	
		
			
				|  |  |             try {
 | 
	
		
			
				|  |  |                 if (StringUtils.isNotBlank(doctorDO.getMobile())){
 | 
	
		
			
				|  |  |                     messageUtil.sendTXYSJson("1099807",doctorDO.getMobile(),orderDO.getPatientName(),orderDO.getServeDesc());
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 imUtil.sendMDTSocketMessageToDoctor(doctorDO.getId(),message.toString());
 | 
	
		
			
				|  |  |             }catch (Exception e){
 | 
	
		
			
				|  |  |                 e.printStackTrace();
 | 
	
	
		
			
				|  | @ -255,8 +259,8 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
 | 
	
		
			
				|  |  |         return jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public List<Map<String , Object>> getActionTrack(String deviceSn){
 | 
	
		
			
				|  |  |         String sql = "SELECT * FROM base_yxdevice_index WHERE sn = '"+deviceSn+"' AND lon != 0 AND lat != 0 ORDER BY create_time DESC LIMIT 0,20";
 | 
	
		
			
				|  |  |     public List<Map<String , Object>> getActionTrack(String deviceSn,String day){
 | 
	
		
			
				|  |  |         String sql = "SELECT * FROM base_yxdevice_index WHERE sn = '"+deviceSn+"' AND lon != 0 AND lat != 0  and create_time like '"+day+"%' ORDER BY create_time DESC LIMIT 0,20";
 | 
	
		
			
				|  |  |         return jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
	
		
			
				|  | @ -354,13 +358,13 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         //附加信息 电子围栏状态
 | 
	
		
			
				|  |  |         if (orderDO.getOrderSource()==2){
 | 
	
		
			
				|  |  |         if (2==orderDO.getOrderSource()||8==orderDO.getOrderSource()){//手表/拐杖
 | 
	
		
			
				|  |  |             Map<String,Object> map = new HashMap<>();
 | 
	
		
			
				|  |  |             map.put("inFenceStatus",false);
 | 
	
		
			
				|  |  |             map.put("inFenceName","疑似超出安全区域");
 | 
	
		
			
				|  |  |             emergencyOrderVO.setInformation(map);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(4==orderDO.getOrderSource()){
 | 
	
		
			
				|  |  |         if(4==orderDO.getOrderSource()){//报警器
 | 
	
		
			
				|  |  |             List<DevicePatientDevice> devicePatientDeviceDos = patientDeviceDao.findByUserAndCategoryCode(orderDO.getPatient(),"12");
 | 
	
		
			
				|  |  |             if (devicePatientDeviceDos.size()==0){
 | 
	
		
			
				|  |  |             }
 | 
	
	
		
			
				|  | @ -396,7 +400,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
 | 
	
		
			
				|  |  |                 }else {
 | 
	
		
			
				|  |  |                     monitorInfo.put("sleepPlan",false);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 monitorInfo = patientSignTopicInfo(monitorInfo,orderDO.getPatient(),"preventFall");
 | 
	
		
			
				|  |  |                 monitorInfo = patientSignTopicInfo(monitorInfo,orderDO.getPatient(),"preventFall",null);
 | 
	
		
			
				|  |  |                 emergencyOrderVO.setInformation(monitorInfo);
 | 
	
		
			
				|  |  |             }catch (Exception e){
 | 
	
		
			
				|  |  |                 e.printStackTrace();
 | 
	
	
		
			
				|  | @ -405,7 +409,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
 | 
	
		
			
				|  |  |         if (6==orderDO.getOrderSource()){//气感工单
 | 
	
		
			
				|  |  |             try {
 | 
	
		
			
				|  |  |                 JSONObject monitorInfo = JSONObject.parseObject(orderDO.getWarnInfo());
 | 
	
		
			
				|  |  |                 monitorInfo = patientSignTopicInfo(monitorInfo,orderDO.getPatient(),"preventFall");
 | 
	
		
			
				|  |  |                 monitorInfo = patientSignTopicInfo(monitorInfo,orderDO.getPatient(),"preventFall",null);
 | 
	
		
			
				|  |  |                 emergencyOrderVO.setInformation(monitorInfo);
 | 
	
		
			
				|  |  |             }catch (Exception e){
 | 
	
		
			
				|  |  |                 e.printStackTrace();
 | 
	
	
		
			
				|  | @ -414,7 +418,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
 | 
	
		
			
				|  |  |         if (7==orderDO.getOrderSource()){//烟感工单
 | 
	
		
			
				|  |  |             try {
 | 
	
		
			
				|  |  |                 JSONObject monitorInfo = JSONObject.parseObject(orderDO.getWarnInfo());
 | 
	
		
			
				|  |  |                 monitorInfo = patientSignTopicInfo(monitorInfo,orderDO.getPatient(),"preventFall");
 | 
	
		
			
				|  |  |                 monitorInfo = patientSignTopicInfo(monitorInfo,orderDO.getPatient(),"preventFall",null);
 | 
	
		
			
				|  |  |                 emergencyOrderVO.setInformation(monitorInfo);
 | 
	
		
			
				|  |  |             }catch (Exception e){
 | 
	
		
			
				|  |  |                 e.printStackTrace();
 | 
	
	
		
			
				|  | @ -1302,57 +1306,152 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
 | 
	
		
			
				|  |  |                     break;
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         result = patientSignTopicInfo(result,patient,topicItem);
 | 
	
		
			
				|  |  |         result = patientSignTopicInfo(result,patient,topicItem,null);
 | 
	
		
			
				|  |  |         return result;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public void preventLost(JSONObject result,String patient){
 | 
	
		
			
				|  |  |         List<DevicePatientDevice> devicePatientDeviceDos = patientDeviceDao.findByUserAndCategoryCode(patient,"4");
 | 
	
		
			
				|  |  |         if (devicePatientDeviceDos.size()==0){
 | 
	
		
			
				|  |  |             return;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         DevicePatientDevice device = devicePatientDeviceDos.get(0);
 | 
	
		
			
				|  |  |         result.put("deviceSn",device.getDeviceSn());
 | 
	
		
			
				|  |  |     public void preventLost(JSONObject result,String patient,String deviceSn){
 | 
	
		
			
				|  |  |         //手表与拐杖同时绑定时优先手表,围栏状态其中一个超出围栏即为超出围栏
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             JSONObject response= patientDeviceService.getAqgDeviceInfo(device.getDeviceSn());
 | 
	
		
			
				|  |  |             if (response!=null){
 | 
	
		
			
				|  |  |                 //定位信息
 | 
	
		
			
				|  |  |                 if (response.containsKey("last_location")&&response.get("last_location")!=null){
 | 
	
		
			
				|  |  |                     JSONObject locationTmp = response.getJSONObject("last_location");
 | 
	
		
			
				|  |  |                     Double lon = locationTmp.getJSONArray("coordinates").getDouble(0);
 | 
	
		
			
				|  |  |                     Double lat = locationTmp.getJSONArray("coordinates").getDouble(1);
 | 
	
		
			
				|  |  |                     JSONObject tmp = gpsUtil.gcj02_To_Bd09(lat,lon);
 | 
	
		
			
				|  |  |                     tmp.put("city",response.getString("last_city"));
 | 
	
		
			
				|  |  |                     tmp.put("province",response.getString("last_province"));
 | 
	
		
			
				|  |  |                     tmp.put("address",response.getString("last_address"));
 | 
	
		
			
				|  |  |                     result.put("location",tmp);
 | 
	
		
			
				|  |  |             Integer categoryCode=0;
 | 
	
		
			
				|  |  |             List<DevicePatientDevice> devicePatientDeviceDos = new ArrayList<>();
 | 
	
		
			
				|  |  |             List<DevicePatientDevice> devicePatientDeviceDos2 = new ArrayList<>();
 | 
	
		
			
				|  |  |             if (StringUtils.isNotBlank(deviceSn)){//查看指定设备详情
 | 
	
		
			
				|  |  |                 List<DevicePatientDevice> devices = patientDeviceDao.findByDeviceSn(deviceSn);
 | 
	
		
			
				|  |  |                 if (devices.size()>0){
 | 
	
		
			
				|  |  |                    String categoryCodeTmp = devices.get(0).getCategoryCode();
 | 
	
		
			
				|  |  |                     categoryCode = StringUtils.isBlank(categoryCodeTmp)?-1:Integer.parseInt(categoryCodeTmp);
 | 
	
		
			
				|  |  |                     if (4==categoryCode){
 | 
	
		
			
				|  |  |                         devicePatientDeviceDos = devices;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     if (16==categoryCode){
 | 
	
		
			
				|  |  |                         devicePatientDeviceDos2 = devices;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 //围栏信息
 | 
	
		
			
				|  |  |                 if (response.containsKey("fences")&&response.get("fences")!=null){
 | 
	
		
			
				|  |  |                     JSONArray fencesArr = response.getJSONArray("fences");
 | 
	
		
			
				|  |  |                     JSONArray fencesEnables = new JSONArray();
 | 
	
		
			
				|  |  |                     for (int i=0;i<fencesArr.size();i++){
 | 
	
		
			
				|  |  |                         JSONObject tmp = fencesArr.getJSONObject(i);
 | 
	
		
			
				|  |  |                         if (tmp.getBooleanValue("enable")){//围栏生效
 | 
	
		
			
				|  |  |                             JSONObject fenceTmp = new JSONObject();
 | 
	
		
			
				|  |  |                             fenceTmp.put("fenceNO",tmp.getInteger("seqid").toString());
 | 
	
		
			
				|  |  |                             fenceTmp.put("name",tmp.getString("name"));
 | 
	
		
			
				|  |  |                             JSONArray fenceLocationTmp = tmp.getJSONObject("safe_area").getJSONArray("coordinates").getJSONArray(0);
 | 
	
		
			
				|  |  |                             JSONArray fenceLocation = new JSONArray();
 | 
	
		
			
				|  |  |                             for (int j=0;j<fenceLocationTmp.size();j++){
 | 
	
		
			
				|  |  |                                 Double lon = fenceLocationTmp.getJSONArray(j).getDouble(0);
 | 
	
		
			
				|  |  |                                 Double lat = fenceLocationTmp.getJSONArray(j).getDouble(1);
 | 
	
		
			
				|  |  |                                 JSONObject positionTmp = gpsUtil.gcj02_To_Bd09(lat,lon);
 | 
	
		
			
				|  |  |                                 fenceLocation.add(positionTmp);
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 devicePatientDeviceDos = patientDeviceDao.findByUserAndCategoryCode(patient,"4");
 | 
	
		
			
				|  |  |                 devicePatientDeviceDos2 = patientDeviceDao.findByUserAndCategoryCode(patient,"16");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (devicePatientDeviceDos.size()>0&&(4==categoryCode||0==categoryCode)){
 | 
	
		
			
				|  |  |                 DevicePatientDevice device = devicePatientDeviceDos.get(0);
 | 
	
		
			
				|  |  |                 result.put("deviceSn",device.getDeviceSn());
 | 
	
		
			
				|  |  |                 JSONObject response= patientDeviceService.getAqgDeviceInfo(device.getDeviceSn());
 | 
	
		
			
				|  |  |                 if (response!=null){
 | 
	
		
			
				|  |  |                     //定位信息
 | 
	
		
			
				|  |  |                     if (response.containsKey("last_location")&&response.get("last_location")!=null){
 | 
	
		
			
				|  |  |                         JSONObject locationTmp = response.getJSONObject("last_location");
 | 
	
		
			
				|  |  |                         Double lon = locationTmp.getJSONArray("coordinates").getDouble(0);
 | 
	
		
			
				|  |  |                         Double lat = locationTmp.getJSONArray("coordinates").getDouble(1);
 | 
	
		
			
				|  |  |                         JSONObject tmp = gpsUtil.gcj02_To_Bd09(lat,lon);
 | 
	
		
			
				|  |  |                         tmp.put("city",response.getString("last_city"));
 | 
	
		
			
				|  |  |                         tmp.put("province",response.getString("last_province"));
 | 
	
		
			
				|  |  |                         tmp.put("address",response.getString("last_address"));
 | 
	
		
			
				|  |  |                         result.put("location",tmp);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     //围栏信息
 | 
	
		
			
				|  |  |                     if (response.containsKey("fences")&&response.get("fences")!=null){
 | 
	
		
			
				|  |  |                         JSONArray fencesArr = response.getJSONArray("fences");
 | 
	
		
			
				|  |  |                         JSONArray fencesEnables = new JSONArray();
 | 
	
		
			
				|  |  |                         for (int i=0;i<fencesArr.size();i++){
 | 
	
		
			
				|  |  |                             JSONObject tmp = fencesArr.getJSONObject(i);
 | 
	
		
			
				|  |  |                             if (tmp.getBooleanValue("enable")){//围栏生效
 | 
	
		
			
				|  |  |                                 JSONObject fenceTmp = new JSONObject();
 | 
	
		
			
				|  |  |                                 fenceTmp.put("fenceNO",tmp.getInteger("seqid").toString());
 | 
	
		
			
				|  |  |                                 fenceTmp.put("name",tmp.getString("name"));
 | 
	
		
			
				|  |  |                                 JSONArray fenceLocationTmp = tmp.getJSONObject("safe_area").getJSONArray("coordinates").getJSONArray(0);
 | 
	
		
			
				|  |  |                                 JSONArray fenceLocation = new JSONArray();
 | 
	
		
			
				|  |  |                                 for (int j=0;j<fenceLocationTmp.size();j++){
 | 
	
		
			
				|  |  |                                     Double lon = fenceLocationTmp.getJSONArray(j).getDouble(0);
 | 
	
		
			
				|  |  |                                     Double lat = fenceLocationTmp.getJSONArray(j).getDouble(1);
 | 
	
		
			
				|  |  |                                     JSONObject positionTmp = gpsUtil.gcj02_To_Bd09(lat,lon);
 | 
	
		
			
				|  |  |                                     fenceLocation.add(positionTmp);
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                                 fenceTmp.put("location",fenceLocation);
 | 
	
		
			
				|  |  |                                 fenceTmp.put("inFenceStatus",countDistance.isInPolygon(result.getJSONObject("location").getDouble("lon"),result.getJSONObject("location").getDouble("lat"),fenceLocation));
 | 
	
		
			
				|  |  |                                 fencesEnables.add(fenceTmp);
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                             fenceTmp.put("location",fenceLocation);
 | 
	
		
			
				|  |  |                             fenceTmp.put("inFenceStatus",countDistance.isInPolygon(result.getJSONObject("location").getDouble("lon"),result.getJSONObject("location").getDouble("lat"),fenceLocation));
 | 
	
		
			
				|  |  |                             fencesEnables.add(fenceTmp);
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         if (fencesEnables.size()>0){
 | 
	
		
			
				|  |  |                             result.put("fences",fencesEnables);
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     if (fencesEnables.size()>0){
 | 
	
		
			
				|  |  |                         result.put("fences",fencesEnables);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (devicePatientDeviceDos2.size()>0&&(16==categoryCode||0==categoryCode)) {
 | 
	
		
			
				|  |  |                 DevicePatientDevice deviceDO = devicePatientDeviceDos2.get(0);
 | 
	
		
			
				|  |  |                 double dulat = 0l;
 | 
	
		
			
				|  |  |                 double dulon = 0l;
 | 
	
		
			
				|  |  |                 //获取当前定位
 | 
	
		
			
				|  |  |                 String sql = " SELECT * FROM base_yxdevice_index WHERE sn = '" + deviceDO.getDeviceSn() + "' " +
 | 
	
		
			
				|  |  |                         "AND create_time LIKE '" + DateUtil.getStringDateShort() + "%' AND lon != 0 AND lat != 0 ORDER BY create_time DESC  ";
 | 
	
		
			
				|  |  |                 List<Map<String, Object>> pointTmp = jdbcTemplate.queryForList(sql);
 | 
	
		
			
				|  |  |                 if (pointTmp.size() > 0) {
 | 
	
		
			
				|  |  |                     dulat = Double.parseDouble(pointTmp.get(0).get("lat").toString());
 | 
	
		
			
				|  |  |                     dulon = Double.parseDouble(pointTmp.get(0).get("lon").toString());
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 if ((dulat == 0.0 && dulon == 0.0)) {
 | 
	
		
			
				|  |  |                     BasePatientDO patientDO = basePatientDao.findById(deviceDO.getUser());
 | 
	
		
			
				|  |  |                     String points = patientDO.getLatLon();
 | 
	
		
			
				|  |  |                     if (StringUtils.isNotBlank(points)) {
 | 
	
		
			
				|  |  |                         String[] pointss = points.split(",");
 | 
	
		
			
				|  |  |                         if (2 == pointss.length) {
 | 
	
		
			
				|  |  |                             if (StringUtils.isNotBlank(pointss[0])) {
 | 
	
		
			
				|  |  |                                 dulat = Double.parseDouble(pointss[0]);
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                             if (StringUtils.isNotBlank(pointss[1])) {
 | 
	
		
			
				|  |  |                                 dulat = Double.parseDouble(pointss[1]);
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 if (!(dulat == 0.0 && dulon == 0.0)) {
 | 
	
		
			
				|  |  |                     String safeArea = deviceDO.getSafeAreaGz();
 | 
	
		
			
				|  |  |                     JSONArray fenceLocation = new JSONArray();
 | 
	
		
			
				|  |  |                     String address = LatitudeUtils.getLocationAddress(dulat + "", dulon + "");
 | 
	
		
			
				|  |  |                     if (StringUtils.isNotBlank(safeArea)) {
 | 
	
		
			
				|  |  |                         String[] safeAreas = safeArea.split(";");
 | 
	
		
			
				|  |  |                         for (String area : safeAreas) {
 | 
	
		
			
				|  |  |                             String[] areaPoint = area.split(",");
 | 
	
		
			
				|  |  |                             JSONObject positionTmp = new JSONObject();
 | 
	
		
			
				|  |  |                             Double areaLon = Double.parseDouble(areaPoint[0]);
 | 
	
		
			
				|  |  |                             Double areaLat = Double.parseDouble(areaPoint[1]);
 | 
	
		
			
				|  |  |                             positionTmp.put("lat", areaLat);
 | 
	
		
			
				|  |  |                             positionTmp.put("lon", areaLon);
 | 
	
		
			
				|  |  |                             fenceLocation.add(positionTmp);
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         if (devicePatientDeviceDos2.size() > 0 && 0 == categoryCode) {
 | 
	
		
			
				|  |  |                             JSONObject obj = result.getJSONArray("fences").getJSONObject(0);
 | 
	
		
			
				|  |  |                             if (!obj.getBooleanValue("inFenceStatus")) {
 | 
	
		
			
				|  |  |                                 if (!countDistance.isInPolygon(dulon, dulat, fenceLocation)) {
 | 
	
		
			
				|  |  |                                     obj.put("inFenceStatus", false);
 | 
	
		
			
				|  |  |                                     obj = result.getJSONObject("location");
 | 
	
		
			
				|  |  |                                     obj.put("address", address);
 | 
	
		
			
				|  |  |                                     obj.put("lon", dulon);
 | 
	
		
			
				|  |  |                                     obj.put("lat", dulat);
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         if (devicePatientDeviceDos2.size() > 0 && 16 == categoryCode) {
 | 
	
		
			
				|  |  |                             if (StringUtils.isNotBlank(safeArea)) {
 | 
	
		
			
				|  |  |                                 result.put("deviceSn", deviceDO.getDeviceSn());
 | 
	
		
			
				|  |  |                                 JSONObject location = new JSONObject();
 | 
	
		
			
				|  |  |                                 location.put("address",address);
 | 
	
		
			
				|  |  |                                 location.put("province","");
 | 
	
		
			
				|  |  |                                 location.put("city","");
 | 
	
		
			
				|  |  |                                 location.put("lon",dulon);
 | 
	
		
			
				|  |  |                                 location.put("lat",dulat);
 | 
	
		
			
				|  |  |                                 result.put("location",location);
 | 
	
		
			
				|  |  |                                 JSONArray fences = new JSONArray();
 | 
	
		
			
				|  |  |                                 JSONObject fence = new JSONObject();
 | 
	
		
			
				|  |  |                                 fence.put("fenceNO","1");
 | 
	
		
			
				|  |  |                                 fence.put("name","安全区域1");
 | 
	
		
			
				|  |  |                                 fence.put("inFenceStatus", countDistance.isInPolygon(dulon, dulat, fenceLocation));
 | 
	
		
			
				|  |  |                                 fence.put("location", fenceLocation);
 | 
	
		
			
				|  |  |                                 fences.add(fence);
 | 
	
		
			
				|  |  |                                 result.put("fences",fences);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
	
		
			
				|  | @ -1512,12 +1611,12 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public JSONObject patientSignTopicInfo(JSONObject result,String patient,String topicItem){
 | 
	
		
			
				|  |  |     public JSONObject patientSignTopicInfo(JSONObject result,String patient,String topicItem,String deviceSn){
 | 
	
		
			
				|  |  |         if (null==result){
 | 
	
		
			
				|  |  |             result = new JSONObject();
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if ("preventLost".equals(topicItem)||StringUtils.isBlank(topicItem)){
 | 
	
		
			
				|  |  |             preventLost(result, patient);
 | 
	
		
			
				|  |  |             preventLost(result, patient,deviceSn);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if ("preventFall".equals(topicItem)||StringUtils.isBlank(topicItem)){
 | 
	
		
			
				|  |  |             monitorInfo(result, patient);
 |