| 
					
				 | 
			
			
				@ -30,6 +30,7 @@ import com.yihu.jw.util.healthIndex.HealthIndexUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.mysql.query.BaseJpaService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.collections.map.HashedMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.hibernate.annotations.Synchronize; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.json.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.json.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.Logger; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -48,6 +49,7 @@ import org.springframework.http.HttpMethod; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.http.MediaType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.jdbc.core.BeanPropertyRowMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.jdbc.core.JdbcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.scheduling.annotation.Async; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.util.LinkedMultiValueMap; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -125,6 +127,11 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private PatientSafeAreaDao safeAreaDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private SecurityMonitoringOrderDao securityMonitoringOrderDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private MessageUtil messageUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private PatientSafeAreaConfirmDao patientSafeAreaConfirmDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostConstruct 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public void init() { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1774,7 +1781,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *      修改电子围栏信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *    | enable       |  否  | Int          |  0,1 是否启用                        | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *    | name         |  否  | String       |   安全区名称                           | 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *    | freq         |  否  | Boolean      |  0,触发一天;1,每日触发        | 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1816,6 +1823,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                safeAreaDao.deleteByPatient(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            else{//新增或修改 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                safeAreaDO.setDel("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                safeAreaDO.setSafeAreaGz(safe_area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                safeAreaDO.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                safeAreaDO.setSuccessFlag(-1); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1870,6 +1878,75 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return "success"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 助老员新增电子围栏记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public com.alibaba.fastjson.JSONObject doctorNewSafeArea(String doctor,String patient,String safe_area) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        com.alibaba.fastjson.JSONObject result = new com.alibaba.fastjson.JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<PatientSafeAreaConfirm> SafeAreaConfirms = patientSafeAreaConfirmDao.findByDoctorCodeAndPatient(doctor,patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (SafeAreaConfirms.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put(ResponseContant.resultFlag,ResponseContant.fail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            result.put(ResponseContant.resultMsg,"你已为改居民新增过电子围栏!"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorDO doctorDO = doctorDao.findById(doctor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        PatientSafeAreaDO safeAreaDO = new PatientSafeAreaDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        boolean firstAdd=false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<Map<String,Object>> relatives = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(patient)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<PatientSafeAreaDO> safeAreaDOS = safeAreaDao.findByPatient2(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (safeAreaDOS.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                safeAreaDO = safeAreaDOS.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else {//首次新增 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                safeAreaDO.setPatient(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                safeAreaDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                safeAreaDO.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                safeAreaDO.setSuccessFlag(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                safeAreaDO.setDel("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // 发送确认消息给家属 有家属直接确认 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String sql = " select  t2.id,t2.name from  base_patient_family_member t1,  base_patient t2 where  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        "t2.id in (select family_member from base_patient_family_member where patient = '"+patient+"' )  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        " and t1.patient = '"+patient+"'  and t1.family_member = t2.id  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        " and t2.archive_type=3 GROUP BY t2.id " ; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                relatives = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                safeAreaDO.setManageStatus(relatives.size()>0?0:1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                firstAdd=true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            safeAreaDO.setSafeAreaGz(safe_area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            safeAreaDO.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            safeAreaDO.setSuccessFlag(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            safeAreaDO = safeAreaDao.save(safeAreaDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            PatientSafeAreaConfirm patientSafeAreaConfirm = new PatientSafeAreaConfirm(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            patientSafeAreaConfirm.setPatient(patient); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            patientSafeAreaConfirm.setDoctorCode(doctor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            patientSafeAreaConfirm.setDel("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            patientSafeAreaConfirm.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            patientSafeAreaConfirm.setSafeId(safeAreaDO.getId()+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(firstAdd&&(null == safeAreaDO.getManageStatus()||0 == safeAreaDO.getManageStatus())){//首次添加给家属发送待确认消息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientSafeAreaConfirm.setManageStatus(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                for (Map<String,Object> tmp:relatives){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    messageUtil.saveSystemMessage("",patient,"监护确认","44",doctorDO.getId(),doctorDO.getName(),tmp.get("id").toString(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            tmp.get("name").toString(),null,null,"0" ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else {//无家属 直接确认 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                patientSafeAreaConfirm.setManageStatus(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               Integer successFlag =  updatePatientSafeArea(patient,safe_area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               safeAreaDO.setSuccessFlag(successFlag); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                safeAreaDao.save(safeAreaDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            patientSafeAreaConfirmDao.save(patientSafeAreaConfirm); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put(ResponseContant.resultFlag,ResponseContant.success); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put(ResponseContant.resultMsg,"添加成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *获取设备轨迹 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param deviceSn 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -1977,4 +2054,50 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /******************************************* 爱牵挂设备end *****************************************************/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Integer updatePatientSafeArea(String patient,String safe_area){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<DevicePatientDevice> devices = patientDeviceDao.findAllByUserAndCategoryCode(patient,"4"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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,1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                url = MessageFormat.format(AqgConfig.S3fence_area, deviceSnTmp,1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            MultiValueMap<String, String> param = new LinkedMultiValueMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            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", "安全区域1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.add("freq", "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.add("enable","1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.add("time_begin", "0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.add("time_end", "86400"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            param.add("safe_area", safe_area); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            HttpEntity<com.alibaba.fastjson.JSONObject> response = httpClientUtil.aqgCookieHttp(url, param, HttpMethod.POST, getCookie()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            com.alibaba.fastjson.JSONObject responseObj = response.getBody(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (responseObj.getBoolean("success")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |