| 
					
				 | 
			
			
				@ -13,6 +13,8 @@ import io.swagger.annotations.ApiOperation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.annotations.ApiParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.http.client.utils.DateUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.http.MediaType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.web.bind.annotation.PostMapping; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -20,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestBody; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.web.bind.annotation.RequestMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.web.bind.annotation.RestController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.text.SimpleDateFormat; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.LinkedHashMap; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -29,10 +32,12 @@ import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * @author cws on 2018/1/16. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@RestController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@RequestMapping("svr-iot-sr/analyze" ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@RequestMapping("svr-iot-sn/analyze" ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Api(tags = "设备数据解析入库", description = "三诺设备的采集数据上传,并同步到I健康。") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class IotAnalyzerController extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private Logger logger = LoggerFactory.getLogger(DataInputService.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private DataInputService dataInputService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -44,88 +49,92 @@ public class IotAnalyzerController extends EnvelopRestEndpoint { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param jsonData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostMapping(value = "/sanruo" ,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "三诺体征数据解析入库", notes = "三诺体征数据解析入库") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostMapping(value = "/sannuo" ,consumes = MediaType.APPLICATION_OCTET_STREAM_VALUE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "三诺血糖仪数据解析入库(单条)", notes = "三诺体征数据解析入库") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public String updateSanruoDate( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @ApiParam(name = "json_data", value = "Json数据", required = true) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            @RequestBody String jsonData) throws Exception{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Envelop envelop = new Envelop(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String str = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String strResult = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String accessToken  = "sanruo"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String accessToken  = "sannuo"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map info = new HashMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //JSON数据解析 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map dataDetail = objectMapper.readValue(jsonData, HashMap.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONArray jsonArray = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject params = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 体征数据 - 明细 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            LinkedHashMap msgdataMap = (LinkedHashMap)dataDetail.get("msgdata"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(msgdataMap != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                info = msgdataMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                info = dataDetail; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject data = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("deviceType","2"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("code",msgdataMap.get("code") == null? "":msgdataMap.get("code").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("deviceSn",msgdataMap.get("devicesn") == null? "":msgdataMap.get("devicesn").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("userCode",msgdataMap.get("usercode") == null? "":msgdataMap.get("usercode").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("openId",msgdataMap.get("openid") == null? "":msgdataMap.get("openid").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("data",msgdataMap.get("result") == null? "":msgdataMap.get("result").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("unit",msgdataMap.get("unit") == null? "":msgdataMap.get("unit").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("sendTime",msgdataMap.get("testtime") == null? "":msgdataMap.get("testtime").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("code",info.get("code") == null? "":info.get("code").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("deviceSn",info.get("devicesn") == null? "":info.get("devicesn").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("userCode",info.get("usercode") == null? "":info.get("usercode").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("openId",info.get("openid") == null? "":info.get("openid").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("data",info.get("result") == null? "":info.get("result").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("unit",info.get("unit") == null? "":info.get("unit").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("sendTime",info.get("testtime") == null? "":info.get("testtime").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //血糖测试时间段标志位(0餐前 1餐后 2随机) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("foodStatus",msgdataMap.get("foodstatus") == null? "":msgdataMap.get("foodstatus").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("foodStatus",info.get("foodstatus") == null? "":info.get("foodstatus").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("deviceType",2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("manufacturerCode","threeNod"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("manufacturerName","三诺设备"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("uploadTime", new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("button","1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            data.put("state",0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            jsonArray.add(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("data", jsonArray); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("accessToken","sanruo"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("measure_time",msgdataMap.get("testtime") == null? "":msgdataMap.get("testtime").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("sn",msgdataMap.get("devicesn") == null? "":msgdataMap.get("devicesn").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("accessToken","threeNod"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("measure_time",info.get("testtime") == null? "":info.get("testtime").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            params.put("sn",info.get("devicesn") == null? "":info.get("devicesn").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            str = dataInputService.inputBodySignsData(params.toString(),accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject result = JSONObject.parseObject(str); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.endsWithIgnoreCase(ConstantUtils.FAIL,result.getString("response"))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map res = new HashMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                res.put("success", "false"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                res.put("message", result.getString("msg")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                res.put("statusCode", "03"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                res.put("desc", result.getString("msg")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                res.put("deviceSn", info.get("devicesn") == null? "":info.get("devicesn").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                strResult = objectMapper.writeValueAsString(res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                Map res = new HashMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                res.put("success", "true"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                res.put("message", "体征信息上传成功。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                res.put("statusCode", "00"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONArray ridRes = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                ridRes = (JSONArray) result.get("rid"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String rid = ridRes.get(0).toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                res.put("rid", rid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                res.put("deviceSn", info.get("devicesn") == null? "":info.get("devicesn").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                //体征信息上传成功后,同步到厦门I健康 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                JSONObject dataSyn = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                dataSyn.put("id",rid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                dataSyn.put("deviceType",2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                dataSyn.put("deviceSn",msgdataMap.get("devicesn") == null? "":msgdataMap.get("devicesn").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                dataSyn.put("manufacturerCode","threeNod"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                dataSyn.put("manufacturerName","三诺设备"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                dataSyn.put("data",msgdataMap.get("result") == null? "":msgdataMap.get("result").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                dataSyn.put("unit",msgdataMap.get("unit") == null? "":msgdataMap.get("unit").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                dataSyn.put("sendTime",msgdataMap.get("testtime") == null? "":msgdataMap.get("testtime").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                dataSyn.put("uploadTime", DateUtils.formatDate(new Date(), DateUtil.yyyy_MM_dd_HH_mm_ss)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                dataSyn.put("button","1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                dataSyn.put("state",0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                boolean synFlag = dataInputService.synXMIjk(dataSyn); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                data.put("id",rid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                boolean synFlag = dataInputService.synXMIjk(data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if(synFlag){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    res.put("message", "体征信息上传成功,同步到厦门I健康成功。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    res.put("desc", "体征信息上传成功,同步到厦门I健康成功。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    res.put("message", "体征信息上传成功,同步到厦门I健康失败。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    res.put("statusCode", "03"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    res.put("desc", "体征信息上传成功,同步到厦门I健康失败。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                strResult = objectMapper.writeValueAsString(res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                logger.info(strResult); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return strResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return "三诺体征信息上传失败!"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map res = new HashMap(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            res.put("statusCode", "03"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            res.put("desc", "体征信息上传失败。"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            strResult = objectMapper.writeValueAsString(res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            logger.error(strResult); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return strResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |