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