| 
					
				 | 
			
			
				@ -1,7 +1,11 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.wlyy.service.third.iot; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONArray; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.device.entity.DevicePatientHealthIndex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.entity.patient.Patient; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.wlyy.util.HttpClientUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.http.NameValuePair; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.http.message.BasicNameValuePair; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -18,13 +22,92 @@ import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class IotDeviceService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @Value("${}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String baseUrl = "https://iot.xmtyw.cn/"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String grantType = "client_credentials&"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String clientId = "Va5yQRHlA4Fq4eR3LT0vuXV4&"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String baseUrl = "http://192.168.131.24:8080/svr-iot/"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String grantType = "client_credentials"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String clientId = "Va5yQRHlA4Fq4eR3LT0vuXV4"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String clientSecret = "0rDSjzQ20XUj5itV7WRtznPQSzr5pVw2"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String dataSource = "iHealth"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String accessToken = "test"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String bloodSugarUnit = "mmol/L"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String bloodPressureUnit = "mmHg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String pulseUnit = "bpm"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String heightUnit = "cm"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String weightUnit = "kg"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String bmiUnit = "kg/m^2"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String waistUnit = "cm"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private HttpClientUtil httpClientUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String accessToken = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 将上传数据转换成标准的json传 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param obj 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param userType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public DevicePatientHealthIndex upload(DevicePatientHealthIndex obj,String userType,String deviceName,String deviceModel,Patient patient){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject json = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("sn",obj.getDeviceSn()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("ext_code",userType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("device_name",deviceName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("device_model",deviceModel); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("idcard",patient.getIdcard()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("username",patient.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("usercode",patient.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONArray jsonArray = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject js = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        js.put("measure_time",obj.getRecordDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        switch (obj.getType()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case 1: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //血糖 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                js.put("blood_sugar",obj.getValue1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                js.put("blood_sugar_unit",bloodSugarUnit); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                js.put("blood_sugar_result",obj.getValue2()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case 2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //血压 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                js.put("systolic",obj.getValue1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                js.put("systolic_unit",bloodPressureUnit); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                js.put("diastolic",obj.getValue2()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                js.put("diastolic_unit",bloodPressureUnit); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(StringUtils.isNotBlank(obj.getValue3())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    js.put("pulse",obj.getValue3()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    js.put("pulse_unit",pulseUnit); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case 3: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //体重/身高/BMI 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                js.put("height",obj.getValue1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                js.put("height_unit",heightUnit); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                js.put("weight",obj.getValue2()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                js.put("weight_unit",weightUnit); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(StringUtils.isNotBlank(obj.getValue3())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    js.put("bmi",obj.getValue3()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    js.put("bmi_unit",bmiUnit); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            case 4: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //腰围 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                js.put("waist",obj.getValue1()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                js.put("waist_unit",waistUnit); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        jsonArray.add(js); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("data",jsonArray); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //上传 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String response = upload(json); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject re = JSONObject.parseObject(response); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String errorMsg = re.getString("errorMsg");//错误信息(请求失败才有错误消息) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String successMsg = re.getString("successMsg");//成功信息(请求成功才有成功消息) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(StringUtils.isBlank(errorMsg)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            re.getJSONObject("obj").getString("id"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return obj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String getAccessToken(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -44,7 +127,8 @@ public class IotDeviceService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String registedevice(JSONObject json){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("access_token",accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String url = baseUrl+"/registedevice"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("data_source",dataSource); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String url = baseUrl+"/dataInput/userBind"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<NameValuePair> params = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        params.add(new BasicNameValuePair("json",json.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String response = httpClientUtil.post(url, params, "UTF-8"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -58,11 +142,12 @@ public class IotDeviceService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String upload(JSONObject json){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("access_token",accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String url = baseUrl+"/upload"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<NameValuePair> params = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        params.add(new BasicNameValuePair("json",json.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String response = httpClientUtil.post(url, params, "UTF-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        json.put("data_source",dataSource); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String url = baseUrl+"/dataInput/input"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        org.json.JSONObject params = new org.json.JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        params.put("json_data",json.toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String response = httpClientUtil.postBody(url, params); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return response; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 |