|  | @ -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;
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | }
 |