|  | @ -4,10 +4,7 @@ package com.yihu.jw.care.service.device;
 | 
	
		
			
				|  |  | import com.alibaba.fastjson.JSON;
 | 
	
		
			
				|  |  | import com.alibaba.fastjson.serializer.SerializerFeature;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.config.AqgConfig;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.dao.device.BaseSleepPlanDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.dao.device.DeviceDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.dao.device.DeviceDetailDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.dao.device.PatientDeviceDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.dao.device.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.service.assistance.EmergencyAssistanceService;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.service.contacts.ContactsService;
 | 
	
		
			
				|  |  | import com.yihu.jw.care.service.security.SecurityMonitoringOrderService;
 | 
	
	
		
			
				|  | @ -18,10 +15,7 @@ import com.yihu.jw.care.util.MyJdbcTemplate;
 | 
	
		
			
				|  |  | import com.yihu.jw.doctor.dao.BaseDoctorDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.base.patient.BasePatientDO;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.care.device.BaseSleepPlan;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.care.device.Device;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.care.device.DeviceDetail;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.care.device.DevicePatientDevice;
 | 
	
		
			
				|  |  | import com.yihu.jw.entity.care.device.*;
 | 
	
		
			
				|  |  | import com.yihu.jw.patient.dao.BasePatientDao;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.ResponseContant;
 | 
	
		
			
				|  |  | import com.yihu.jw.util.common.GpsUtil;
 | 
	
	
		
			
				|  | @ -119,6 +113,9 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
 | 
	
		
			
				|  |  |     private SecurityMonitoringOrderService securityMonitoringOrderService;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private CountDistance countDistance;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private PatientSafeAreaDao safeAreaDao;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @PostConstruct
 | 
	
		
			
				|  |  |     public void init() {
 | 
	
		
			
				|  |  |         relations.put(0, "其他");
 | 
	
	
		
			
				|  | @ -1351,54 +1348,89 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws Exception
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public com.alibaba.fastjson.JSONObject updateDeviceFenceArea(String deviceSn,Integer fenceNO,String enable,String name,String freq,
 | 
	
		
			
				|  |  |     @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  |     public String updateDeviceFenceArea(String patient,String deviceSn,Integer fenceNO,String enable,String name,String freq,
 | 
	
		
			
				|  |  |                                                                  String time_begin,String time_end,String safe_area ,String clear) throws Exception{
 | 
	
		
			
				|  |  |         List<DevicePatientDevice> devices = patientDeviceDao.findByDeviceSn(deviceSn);
 | 
	
		
			
				|  |  |         String url ="";
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if ("16".equals(devices.get(0).getCategoryCode())) {
 | 
	
		
			
				|  |  |             DevicePatientDevice patientDevice = devices.get(0);
 | 
	
		
			
				|  |  |             if (StringUtils.isNotBlank(safe_area)){
 | 
	
		
			
				|  |  |                 patientDevice.setSafeAreaGz(safe_area);
 | 
	
		
			
				|  |  |                 patientDeviceDao.save(patientDevice);
 | 
	
		
			
				|  |  |                 com.alibaba.fastjson.JSONObject object = new com.alibaba.fastjson.JSONObject();
 | 
	
		
			
				|  |  |                 object.put("success",true);
 | 
	
		
			
				|  |  |                 return object;
 | 
	
		
			
				|  |  |         if(StringUtils.isBlank(patient)){
 | 
	
		
			
				|  |  |             List<DevicePatientDevice> devices = patientDeviceDao.findByDeviceSn(deviceSn);
 | 
	
		
			
				|  |  |             if (devices.size()>0){
 | 
	
		
			
				|  |  |                 DevicePatientDevice deviceTmp = devices.get(0);
 | 
	
		
			
				|  |  |                 if ("4".equals(deviceTmp.getCategoryCode())||"16".equals(deviceTmp.getCategoryCode())){
 | 
	
		
			
				|  |  |                     patient = deviceTmp.getUser();
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         if ("4".equals(devices.get(0).getCategoryCode())){//手表
 | 
	
		
			
				|  |  |             Device device = deviceDao.findOne(devices.get(0).getDeviceId());
 | 
	
		
			
				|  |  |             if (device!=null){
 | 
	
		
			
				|  |  |                 if ("X1".equals(device.getModel())){
 | 
	
		
			
				|  |  |                     url = MessageFormat.format(AqgConfig.X1fence_area, deviceSn,fenceNO);
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |         List<DevicePatientDevice> devices = patientDeviceDao.findAllByUserAndCategoryCode(patient,"4");
 | 
	
		
			
				|  |  |         PatientSafeAreaDO safeAreaDO = new PatientSafeAreaDO();
 | 
	
		
			
				|  |  |         if (StringUtils.isNotBlank(patient)){
 | 
	
		
			
				|  |  |             List<PatientSafeAreaDO> safeAreaDOS = safeAreaDao.findByPatient(patient);
 | 
	
		
			
				|  |  |             // 1删除 空修改或删除
 | 
	
		
			
				|  |  |             if (safeAreaDOS.size()>0){
 | 
	
		
			
				|  |  |                 safeAreaDO = safeAreaDOS.get(0);
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 safeAreaDO.setPatient(patient);
 | 
	
		
			
				|  |  |                 safeAreaDO.setCreateTime(new Date());
 | 
	
		
			
				|  |  |                 safeAreaDO.setUpdateTime(new Date());
 | 
	
		
			
				|  |  |                 safeAreaDO.setSuccessFlag(-1);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (StringUtils.isNotBlank(clear)) {//删除
 | 
	
		
			
				|  |  |                 safeAreaDao.deleteByPatient(patient);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             else{//新增或修改
 | 
	
		
			
				|  |  |                 safeAreaDO.setSafeAreaGz(safe_area);
 | 
	
		
			
				|  |  |                 safeAreaDO.setUpdateTime(new Date());
 | 
	
		
			
				|  |  |                 safeAreaDO.setSuccessFlag(-1);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             url = MessageFormat.format(AqgConfig.S3fence_area, deviceSn,fenceNO);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         MultiValueMap<String, String> param = new LinkedMultiValueMap<>();
 | 
	
		
			
				|  |  |         if(StringUtils.isBlank(clear)){
 | 
	
		
			
				|  |  |             if (StringUtils.isNotBlank(safe_area)){
 | 
	
		
			
				|  |  |                 String[] position = safe_area.split(";");
 | 
	
		
			
				|  |  |                 safe_area = "";
 | 
	
		
			
				|  |  |                 for (String tmp:position){
 | 
	
		
			
				|  |  |                     String[] point = tmp.split(",");
 | 
	
		
			
				|  |  |                     safe_area+= gpsUtil.bd09_To_Gcj02_str(Double.parseDouble(point[1]),Double.parseDouble(point[0]))+";";
 | 
	
		
			
				|  |  |         if (devices.size()>0){
 | 
	
		
			
				|  |  |             DevicePatientDevice patientDevice = devices.get(0);
 | 
	
		
			
				|  |  |             String deviceSnTmp = patientDevice.getDeviceSn();
 | 
	
		
			
				|  |  |             String url ="";
 | 
	
		
			
				|  |  |             if ("4".equals(devices.get(0).getCategoryCode())){//手表
 | 
	
		
			
				|  |  |                 Device device = deviceDao.findOne(devices.get(0).getDeviceId());
 | 
	
		
			
				|  |  |                 if (device!=null){
 | 
	
		
			
				|  |  |                     if ("X1".equals(device.getModel())){
 | 
	
		
			
				|  |  |                         url = MessageFormat.format(AqgConfig.X1fence_area, deviceSnTmp,fenceNO);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 url = MessageFormat.format(AqgConfig.S3fence_area, deviceSnTmp,fenceNO);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             MultiValueMap<String, String> param = new LinkedMultiValueMap<>();
 | 
	
		
			
				|  |  |             if(StringUtils.isBlank(clear)){
 | 
	
		
			
				|  |  |                 if (StringUtils.isNotBlank(safe_area)){
 | 
	
		
			
				|  |  |                     String[] position = safe_area.split(";");
 | 
	
		
			
				|  |  |                     safe_area = "";
 | 
	
		
			
				|  |  |                     for (String tmp:position){
 | 
	
		
			
				|  |  |                         String[] point = tmp.split(",");
 | 
	
		
			
				|  |  |                         safe_area+= gpsUtil.bd09_To_Gcj02_str(Double.parseDouble(point[1]),Double.parseDouble(point[0]))+";";
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  |                 param.add("name", name);
 | 
	
		
			
				|  |  |                 param.add("freq", freq);
 | 
	
		
			
				|  |  |                 param.add("enable",enable);
 | 
	
		
			
				|  |  |                 param.add("time_begin", time_begin);
 | 
	
		
			
				|  |  |                 param.add("time_end", time_end);
 | 
	
		
			
				|  |  |                 param.add("safe_area", safe_area);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 param.add("clear",clear);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             HttpEntity<com.alibaba.fastjson.JSONObject> response = httpClientUtil.aqgCookieHttp(url, param, HttpMethod.POST, getCookie());
 | 
	
		
			
				|  |  |             com.alibaba.fastjson.JSONObject responseObj = response.getBody();
 | 
	
		
			
				|  |  |             if (responseObj.getBoolean("success")){
 | 
	
		
			
				|  |  |                 safeAreaDO.setSuccessFlag(1);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             else {
 | 
	
		
			
				|  |  |                 throw new Exception("安全区域设置失败!");
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (StringUtils.isBlank(clear)&&StringUtils.isNotBlank(patient)){
 | 
	
		
			
				|  |  |                 safeAreaDao.save(safeAreaDO);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             param.add("name", name);
 | 
	
		
			
				|  |  |             param.add("freq", freq);
 | 
	
		
			
				|  |  |             param.add("enable",enable);
 | 
	
		
			
				|  |  |             param.add("time_begin", time_begin);
 | 
	
		
			
				|  |  |             param.add("time_end", time_end);
 | 
	
		
			
				|  |  |             param.add("safe_area", safe_area);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             param.add("clear",clear);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         HttpEntity<com.alibaba.fastjson.JSONObject> response = httpClientUtil.aqgCookieHttp(url, param, HttpMethod.POST, getCookie());
 | 
	
		
			
				|  |  |         return response.getBody();
 | 
	
		
			
				|  |  |         return "success";
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 |