Przeglądaj źródła

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

zdm 5 lat temu
rodzic
commit
666edd0b1c

+ 17 - 12
business/base-service/src/main/java/com/yihu/jw/hospital/prescription/service/PrescriptionService.java

@ -1018,14 +1018,17 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        //判断是否已经挂号,如果已经挂号
        if(StringUtils.isNotBlank(outpatientDO.getConNo())&&StringUtils.isNotBlank(outpatientDO.getRegisterNo())){
            net.sf.json.JSONObject res = new JSONObject();
            res.put("@RESULT","0");
            logger.info("已经挂号 res: " +res.toString());
            return res;
        }
        net.sf.json.JSONObject rs = entranceService.BS10111(outpatientDO.getCardNo(),doctorMappingDO.getMappingCode(),outpatientDO.getDept(),null,outpatientDO.getWinNo(),demoFlag);
        net.sf.json.JSONObject res = rs.getJSONObject("resquest");
        logger.info("res: " +res.toString());
        logger.info("挂号结果 res: " +res.toString());
        String rsCode = res.getString("@RESULT");
        if("0".equals(rsCode)){
            //存储挂号号
@ -3012,7 +3015,7 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
     * @param status
     * @return
     */
    public Envelop findByGeneralDoctor(String generalDoctor,String startDate,String endDate,String status,Integer page,Integer size){
    public Envelop findByGeneralDoctor(String generalDoctor,String startDate,String endDate,String status,String sort,Integer page,Integer size){
        String sqlTotal ="SELECT " +
                " count(1) AS total "+
@ -3032,8 +3035,6 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        List<Map<String, Object>> rstotal = jdbcTemplate.queryForList(sqlTotal);
        logger.info("findByGeneralDoctor:  "+sqlTotal);
        Long total = 0l;
        if (rstotal != null && rstotal.size() > 0) {
            total = (Long) rstotal.get(0).get("total");
@ -3089,15 +3090,19 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        if(StringUtils.isNotBlank(status)){
            sql+=" AND o.status ='"+status+"'";
        }
        sql += " ORDER BY o.register_date ASC LIMIT " + (page - 1) * size + "," + size + "";
        logger.info("findByGeneralDoctor:  "+sql);
        if(StringUtils.isNotBlank(sort)){
            sql += " ORDER BY o.register_date "+sort+" LIMIT " + (page - 1) * size + "," + size + "";
        }else{
            sql += " ORDER BY o.register_date ASC LIMIT " + (page - 1) * size + "," + size + "";
        }
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        //List<WlyyOutpatientDO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(WlyyOutpatientDO.class));
        return MixEnvelop.getSuccessListWithPage(BaseHospitalRequestMapping.Prescription.api_success, list, page, size, total);
    }
    /**
     * 全科医生首页协同门诊统计列表
     * 全科医生首页协同门诊统计列表.
     * @param generalDoctor
     * @return
     */
@ -3109,18 +3114,18 @@ public class PrescriptionService extends BaseJpaService<WlyyPrescriptionDO, Pres
        endTime.setTime(new Date());
        endTime.set(endTime.get(Calendar.YEAR),endTime.get(Calendar.MONTH),endTime.get(Calendar.DAY_OF_MONTH),23,59,59);
        //今天协同门诊列表
        List<WlyyOutpatientDO> todayList = outpatientDao.findByGeneralDoctor(generalDoctor,new Date(),endTime.getTime());
        List<WlyyOutpatientDO> todayList = outpatientDao.findByGeneralDoctor(generalDoctor,new Date(),endTime.getTime(),"0");
        rs.put("todayList",todayList);
        Calendar tomorrowTime = Calendar.getInstance();
        tomorrowTime.setTime(new Date());
        tomorrowTime.add(Calendar.DAY_OF_MONTH,1);
        tomorrowTime.set(endTime.get(tomorrowTime.YEAR),endTime.get(tomorrowTime.MONTH),endTime.get(tomorrowTime.DAY_OF_MONTH),00,00,00);
        tomorrowTime.set(endTime.get(tomorrowTime.YEAR),endTime.get(tomorrowTime.MONTH),endTime.get(tomorrowTime.DATE),00,00,00);
        endTime.add(Calendar.DAY_OF_MONTH,1);
        tomorrowTime.add(Calendar.DATE,1);
        endTime.add(Calendar.DATE,1);
        //明天协同门诊列表
        List<WlyyOutpatientDO> tomorrowList = outpatientDao.findByGeneralDoctor(generalDoctor,tomorrowTime.getTime(),endTime.getTime());
        List<WlyyOutpatientDO> tomorrowList = outpatientDao.findByGeneralDoctor(generalDoctor,tomorrowTime.getTime(),endTime.getTime(),"0");
        rs.put("tomorrowList",tomorrowList);
        //统计科预约医生

Plik diff jest za duży
+ 132 - 4
business/im-service/src/main/java/com/yihu/jw/im/service/ImService.java


+ 6 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/hospital/BaseHospitalRequestMapping.java

@ -331,6 +331,9 @@ public class BaseHospitalRequestMapping {
     */
    public static class DodtorIM extends Basic{
        public static final String PREFIX  = "/im/doctor";
    
        //医生咨询记录查询
        public static final String records ="/records";
        
        //添加复诊咨询
        public static final String addPrescriptionConsult ="/addPrescriptionConsult";
@ -373,6 +376,9 @@ public class BaseHospitalRequestMapping {
        
        //复诊图文咨询人数,视频咨询人数
        public static final String doctorIndexConsultCount="doctorIndexConsultCount";
    
        //测试发送处方消息
        public static final String testSendPrescriptionIM = "testSendPrescriptionIM";
        
    }

+ 22 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/im/ConsultVO.java

@ -40,6 +40,12 @@ public class ConsultVO extends UuidIdentityVO {
	@ApiModelProperty(value = "医生名称", example = "模块1")
	private String doctorName;
	
	@ApiModelProperty(value = "患者头像", example = "模块1")
	private String patientphoto;
	
	@ApiModelProperty(value = "患者名称", example = "模块1")
	private String patientName;
	
	public Integer getType() {
		return type;
	}
@ -111,4 +117,20 @@ public class ConsultVO extends UuidIdentityVO {
	public void setDoctorName(String doctorName) {
		this.doctorName = doctorName;
	}
	
	public String getPatientphoto() {
		return patientphoto;
	}
	
	public void setPatientphoto(String patientphoto) {
		this.patientphoto = patientphoto;
	}
	
	public String getPatientName() {
		return patientName;
	}
	
	public void setPatientName(String patientName) {
		this.patientName = patientName;
	}
}

+ 71 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/DoctorConsultEndpoint.java

@ -1,13 +1,16 @@
package com.yihu.jw.hospital.endpoint.consult;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.entity.base.im.ConsultTeamDo;
import com.yihu.jw.hospital.prescription.service.PrescriptionService;
import com.yihu.jw.im.service.ImService;
import com.yihu.jw.restmodel.im.ConsultVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.hospital.BaseHospitalRequestMapping;
import com.yihu.jw.util.date.DateUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
@ -16,6 +19,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * @author huangwenjie
@ -270,5 +275,71 @@ public class DoctorConsultEndpoint extends EnvelopRestEndpoint {
		return success("请求成功",result);
	}
	
	@GetMapping(value = BaseHospitalRequestMapping.DodtorIM.records)
	@ApiOperation(value = "医生咨询记录查询")
	public Envelop records(
			@ApiParam(name = "doctor", value = "医生id")
			@RequestParam(value = "doctor",required = true) String doctor,
			@ApiParam(name = "title", value = "咨询标题关键字")
			@RequestParam(value = "title",required = false) String title,
			@ApiParam(name = "id", value = "咨询ID")
			@RequestParam(value = "id",required = false) String id,
			@ApiParam(name = "type", value = "咨询类型")
			@RequestParam(value = "type",required = true) Integer type,
			@ApiParam(name = "status", value = "咨询状态:0全部,1候诊中,2就诊中,3结束")
			@RequestParam(value = "status",required = true) Integer status,
			@ApiParam(name = "page", value = "第几页")
			@RequestParam(value = "page",required = false) int page,
			@ApiParam(name = "pagesize", value = "分页大小")
			@RequestParam(value = "pagesize",required = false) int pagesize
	)throws Exception{
		JSONArray array = new JSONArray();
		List<ConsultVO> data = imService.findConsultRecordByDoctor(doctor, id,type,status, page,pagesize, title);
		
		if (data != null) {
			for (ConsultVO consult : data) {
				if (consult == null) {
					continue;
				}
				JSONObject json = new JSONObject();
				json.put("id", consult.getId());
				// 设置咨询类型:1专家咨询,9在线复诊,待扩展,13协同门诊
				json.put("type", consult.getType());
				// 设置显示标题
				json.put("title", consult.getTitle());
				// 设置主诉
				json.put("symptoms", consult.getSymptoms());
				// 咨询状态
				json.put("status", consult.getStatus());
				// 设置咨询日期
				json.put("czrq", DateUtil.dateToStrLong(consult.getCzrq()));
				//是否评价
				json.put("evaluate", consult.getEvaluate());
				//患者头像
				json.put("patientPhoto", consult.getPatientphoto());
				//患者名称
				json.put("patientName", consult.getPatientName());
				
				array.add(json);
			}
		}
		
		Long total = imService.countConsultRecordByDoctor(doctor, id,type,status,title);
		
		JSONObject result = new JSONObject();
		result.put("total",total);
		result.put("list",array);
		return success(result);
	}
	
	
	@GetMapping(value = BaseHospitalRequestMapping.DodtorIM.testSendPrescriptionIM)
	@ApiOperation(value = "测试发送处方消息", notes = "测试发送处方消息")
	public Envelop testSendPrescriptionIM()throws Exception{
		imService.pushPrescriptionImMessage(null);
		return success("请求成功");
	}
	
	
}

+ 1 - 0
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/consult/PatientConsultEndpoint.java

@ -411,4 +411,5 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
		}
	}
}

+ 3 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/prescription/PrescriptionEndpoint.java

@ -548,11 +548,13 @@ public class PrescriptionEndpoint extends EnvelopRestEndpoint {
                                           @RequestParam(value = "endDate", required = false)String endDate,
                                           @ApiParam(name = "status", value = "状态")
                                           @RequestParam(value = "status", required = false)String status,
                                           @ApiParam(name = "sort", value = "排序")
                                           @RequestParam(value = "sort", required = false)String sort,
                                           @ApiParam(name = "page", value = "第几页")
                                           @RequestParam(value = "page", required = true)Integer page,
                                           @ApiParam(name = "size", value = "每页大小")
                                           @RequestParam(value = "size", required = true)Integer size) {
        return prescriptionService.findByGeneralDoctor(generalDoctor,startDate,endDate,status,page,size);
        return prescriptionService.findByGeneralDoctor(generalDoctor,startDate,endDate,status,sort,page,size);
    }

+ 363 - 348
svr/svr-iot/src/main/java/com/yihu/iot/controller/analyzer/IotAnalyzerController.java

@ -13,23 +13,29 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
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.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
 * @author cws on 2018/1/16.
 */
@RestController
@RequestMapping("svr-iot/analyze")
@RequestMapping("svr-iot/analyze" )
@Api(tags = "设备数据解析入库", description = "基于不同厂商的设备的采集数据,进行解析适配,并入库。")
public class IotAnalyzerController extends EnvelopRestEndpoint {
    private Logger logger = LoggerFactory.getLogger(IotAnalyzerService.class);
    @Autowired
    private DataInputService dataInputService;
@ -41,76 +47,75 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
    /**
     * 基于奕拓小屋上传的体征数据,进行解析入库  V1.0 版本
     *
     * @param jsonData
     * @return
     */
    @PostMapping(value = "/yitouxiaowuBK", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @PostMapping(value = "/yitouxiaowuBK" ,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "奕拓体征数据解析入库", notes = "奕拓体征数据解析入库")
    public String updateDeviceDataTest(
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData) {
            @RequestBody String jsonData){
        Envelop envelop = new Envelop();
        String str = "";
        String strResult = "";
        //1. 基础数据初始化
        String accessToken = "yitouxiaowu";  // 奕拓小屋
        String accessToken  = "yitouxiaowu";  // 奕拓小屋
        try {
            //JSON数据解析
            Map dataDetail = objectMapper.readValue(jsonData, HashMap.class);
            // 用户信息
            LinkedHashMap memberMap = (LinkedHashMap) dataDetail.get("Member");
            LinkedHashMap memberMap = (LinkedHashMap)dataDetail.get("Member");
            // 身高体重
            LinkedHashMap heightMap = (LinkedHashMap) dataDetail.get("Height");
            LinkedHashMap heightMap = (LinkedHashMap)dataDetail.get("Height");
            // 人体成分(脂肪)Fat
            LinkedHashMap fatMap = (LinkedHashMap) dataDetail.get("Fat");
            LinkedHashMap fatMap = (LinkedHashMap)dataDetail.get("Fat");
            // 人体成分(脂肪)Fat
            LinkedHashMap minFatMap = (LinkedHashMap) dataDetail.get("MinFat");
            LinkedHashMap minFatMap = (LinkedHashMap)dataDetail.get("MinFat");
            // 血压
            LinkedHashMap bloodPressureMap = (LinkedHashMap) dataDetail.get("BloodPressure");
            LinkedHashMap bloodPressureMap = (LinkedHashMap)dataDetail.get("BloodPressure");
            // 血氧
            LinkedHashMap boMap = (LinkedHashMap) dataDetail.get("Bo");
            LinkedHashMap boMap = (LinkedHashMap)dataDetail.get("Bo");
            // 单导心电
            LinkedHashMap ecgMap = (LinkedHashMap) dataDetail.get("Ecg");
            LinkedHashMap ecgMap = (LinkedHashMap)dataDetail.get("Ecg");
            // 12导心电
            LinkedHashMap peecgMap = (LinkedHashMap) dataDetail.get("PEEcg");
            LinkedHashMap peecgMap = (LinkedHashMap)dataDetail.get("PEEcg");
            // 体温
            LinkedHashMap temperatureMap = (LinkedHashMap) dataDetail.get("Temperature");
            LinkedHashMap temperatureMap = (LinkedHashMap)dataDetail.get("Temperature");
            // 腰臀比
            LinkedHashMap whrMap = (LinkedHashMap) dataDetail.get("Whr");
            LinkedHashMap whrMap = (LinkedHashMap)dataDetail.get("Whr");
            // 血糖
            LinkedHashMap bloodSugarMap = (LinkedHashMap) dataDetail.get("BloodSugar");
            LinkedHashMap bloodSugarMap = (LinkedHashMap)dataDetail.get("BloodSugar");
            // 血尿酸
            LinkedHashMap uaMap = (LinkedHashMap) dataDetail.get("Ua");
            LinkedHashMap uaMap = (LinkedHashMap)dataDetail.get("Ua");
            // 总胆固醇
            LinkedHashMap cholMap = (LinkedHashMap) dataDetail.get("Chol");
            LinkedHashMap cholMap = (LinkedHashMap)dataDetail.get("Chol");
            // 血脂
            LinkedHashMap bloodFatMap = (LinkedHashMap) dataDetail.get("BloodFat");
            LinkedHashMap bloodFatMap = (LinkedHashMap)dataDetail.get("BloodFat");
            // 心血管功能
            LinkedHashMap cardiovascularMap = (LinkedHashMap) dataDetail.get("Cardiovascular");
            LinkedHashMap cardiovascularMap = (LinkedHashMap)dataDetail.get("Cardiovascular");
            // 骨密度
            LinkedHashMap bmdMap = (LinkedHashMap) dataDetail.get("BMD");
            LinkedHashMap bmdMap = (LinkedHashMap)dataDetail.get("BMD");
            // 酒精浓度
            LinkedHashMap alcoholMap = (LinkedHashMap) dataDetail.get("Alcohol");
            LinkedHashMap alcoholMap = (LinkedHashMap)dataDetail.get("Alcohol");
            // 肺活量
            LinkedHashMap lungMap = (LinkedHashMap) dataDetail.get("Lung");
            LinkedHashMap lungMap = (LinkedHashMap)dataDetail.get("Lung");
            // 血红蛋白
            LinkedHashMap hbMap = (LinkedHashMap) dataDetail.get("Hb");
            LinkedHashMap hbMap = (LinkedHashMap)dataDetail.get("Hb");
            // 尿液分析
            LinkedHashMap urinalysisMap = (LinkedHashMap) dataDetail.get("Urinalysis");
            LinkedHashMap urinalysisMap = (LinkedHashMap)dataDetail.get("Urinalysis");
            //0 - 设备基本信息:设备码、设备所属、测试医生、时间、类别等
            JSONObject data = new JSONObject();
            data.put("MachineId", dataDetail.get("MachineId") == null ? "" : dataDetail.get("MachineId").toString());
            data.put("UnitNo", dataDetail.get("UnitNo") == null ? "" : dataDetail.get("UnitNo").toString());
            data.put("UnitName", dataDetail.get("UnitName") == null ? "" : dataDetail.get("UnitName").toString());
            data.put("DoctorId", dataDetail.get("DoctorId") == null ? "" : dataDetail.get("DoctorId").toString());
            data.put("DoctorName", dataDetail.get("DoctorName") == null ? "" : dataDetail.get("DoctorName").toString());
            data.put("RecordNo", dataDetail.get("RecordNo") == null ? "" : dataDetail.get("RecordNo").toString());
            data.put("Measure_time", dataDetail.get("MeasureTime") == null ? "" : dataDetail.get("MeasureTime").toString());
            data.put("DeviceType", dataDetail.get("DeviceType") == null ? "" : dataDetail.get("DeviceType").toString());
            data.put("MacAddr", dataDetail.get("MacAddr") == null ? "" : dataDetail.get("MacAddr").toString());
            data.put("MachineId",dataDetail.get("MachineId") == null? "":dataDetail.get("MachineId").toString());
            data.put("UnitNo",dataDetail.get("UnitNo") == null? "":dataDetail.get("UnitNo").toString());
            data.put("UnitName",dataDetail.get("UnitName") == null? "":dataDetail.get("UnitName").toString());
            data.put("DoctorId",dataDetail.get("DoctorId") == null? "":dataDetail.get("DoctorId").toString());
            data.put("DoctorName",dataDetail.get("DoctorName") == null? "":dataDetail.get("DoctorName").toString());
            data.put("RecordNo",dataDetail.get("RecordNo") == null? "":dataDetail.get("RecordNo").toString());
            data.put("Measure_time",dataDetail.get("MeasureTime") == null? "":dataDetail.get("MeasureTime").toString());
            data.put("DeviceType",dataDetail.get("DeviceType") == null? "":dataDetail.get("DeviceType").toString());
            data.put("MacAddr",dataDetail.get("MacAddr") == null? "":dataDetail.get("MacAddr").toString());
            //用于标识入到I健康的数据库的时间
            data.put("createDate", DateUtil.getStringDate().toString());
@ -126,7 +131,7 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
            JSONObject params = new JSONObject();
            params.put("access_token", accessToken);
            params.put("sn", sn);
            params.put("ext_code", "未知");
            params.put("ext_code","未知");
            params.put("device_name", deviceName);
            params.put("device_model", deviceModel);
            params.put("idcard", idCard);
@ -135,18 +140,18 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
            //2 - 身高体重
            if (heightMap != null) {
                data.put("height", heightMap.get("Height") == null ? "" : heightMap.get("Height").toString());
                data.put("height_name", "身高");
                data.put("height_name","身高");
                data.put("height_unit", "cm");
                data.put("weight", heightMap.get("Weight") == null ? "" : heightMap.get("Weight").toString());
                data.put("weight_name", "体重");
                data.put("weight_name","体重");
                data.put("weight_unit", "kg");
                data.put("bmi", heightMap.get("BMI") == null ? "" : heightMap.get("BMI").toString());
                data.put("bmi_unit", " ");
                data.put("bmi",heightMap.get("BMI") == null? "": heightMap.get("BMI").toString());
                data.put("bmi_unit"," ");
                data.put("IdealWeight", heightMap.get("IdealWeight") == null ? "" : heightMap.get("IdealWeight").toString());
                data.put("weight_name", "理想体重");
                data.put("weight_name","理想体重");
                data.put("weight_unit", "kg");
                data.put("heightResult", heightMap.get("Result") == null ? "" : heightMap.get("Result").toString());
                data.put("heightResult_name", "结论:-1、消瘦,0、正常,1、超重,2、肥胖");
                data.put("heightResult_name","结论:-1、消瘦,0、正常,1、超重,2、肥胖");
            }
            //3 - 人体成分(脂肪)FAT
@ -181,64 +186,64 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Result", fatMap.get("Result") == null ? "" : fatMap.get("Result").toString());
                //单位
                data.put("FatRate_name", "%");
                data.put("Fat_name", "kg");
                data.put("ExceptFat_name", "kg");
                data.put("WaterRate_name", "%");
                data.put("Water_name", "kg");
                data.put("Minerals_name", "kg");
                data.put("Protein_name", "kg");
                data.put("Fic_name", "kg");
                data.put("Foc_name", "kg");
                data.put("Muscle_name", "kg");
                data.put("FatAdjust_name", "kg");
                data.put("WeightAdjust_name", "kg");
                data.put("MuscleAdjust_name", "kg");
                data.put("BasicMetabolism_name", "kcal");
                data.put("Viscera_name", "");
                data.put("Bmc_name", "kg");
                data.put("MuscleRate_name", "%");
                data.put("QuganMuscle_name", "kg");
                data.put("QuganFat_name", "kg");
                data.put("ZuotuiMuscle_name", "kg");
                data.put("ZuobiMuscle_name", "kg");
                data.put("YoubiMuscle_name", "kg");
                data.put("YoutuiMuscle_name", "kg");
                data.put("ZuobiFat_name", "kg");
                data.put("ZuotuiFat_name", "kg");
                data.put("YoubiFat_name", "kg");
                data.put("YoutuiFat_name", "kg");
                data.put("Result_name", "");
                data.put("FatRate_name","%");
                data.put("Fat_name","kg");
                data.put("ExceptFat_name","kg");
                data.put("WaterRate_name","%");
                data.put("Water_name","kg");
                data.put("Minerals_name","kg");
                data.put("Protein_name","kg");
                data.put("Fic_name","kg");
                data.put("Foc_name","kg");
                data.put("Muscle_name","kg");
                data.put("FatAdjust_name","kg");
                data.put("WeightAdjust_name","kg");
                data.put("MuscleAdjust_name","kg");
                data.put("BasicMetabolism_name","kcal");
                data.put("Viscera_name","");
                data.put("Bmc_name","kg");
                data.put("MuscleRate_name","%");
                data.put("QuganMuscle_name","kg");
                data.put("QuganFat_name","kg");
                data.put("ZuotuiMuscle_name","kg");
                data.put("ZuobiMuscle_name","kg");
                data.put("YoubiMuscle_name","kg");
                data.put("YoutuiMuscle_name","kg");
                data.put("ZuobiFat_name","kg");
                data.put("ZuotuiFat_name","kg");
                data.put("YoubiFat_name","kg");
                data.put("YoutuiFat_name","kg");
                data.put("Result_name","");
                //说明
                data.put("FatRate_name", "体脂占比");
                data.put("Fat_name", "体脂肪量");
                data.put("ExceptFat_name", "非脂肪量");
                data.put("WaterRate_name", "体水占比");
                data.put("Water_name", "水含量");
                data.put("Minerals_name", "矿物质");
                data.put("Protein_name", "蛋白质含量");
                data.put("Fic_name", "细胞内液");
                data.put("Foc_name", "细胞外液");
                data.put("Muscle_name", "肌肉量");
                data.put("FatAdjust_name", "脂肪调节");
                data.put("WeightAdjust_name", "体重调节");
                data.put("MuscleAdjust_name", "肌肉调节");
                data.put("BasicMetabolism_name", "基础代谢");
                data.put("Viscera_name", "内脏脂肪等级");
                data.put("Bmc_name", "骨骼量");
                data.put("MuscleRate_name", "肌肉率");
                data.put("QuganMuscle_name", "躯干肌肉量");
                data.put("QuganFat_name", "躯干脂肪量");
                data.put("ZuotuiMuscle_name", "左腿肌肉量");
                data.put("ZuobiMuscle_name", "左臂肌肉量");
                data.put("YoubiMuscle_name", "右臂肌肉量");
                data.put("YoutuiMuscle_name", "右腿肌肉量");
                data.put("ZuobiFat_name", "左臂脂肪量");
                data.put("ZuotuiFat_name", "左腿脂肪量");
                data.put("YoubiFat_name", "右臂脂肪量");
                data.put("YoutuiFat_name", "右腿脂肪量");
                data.put("Result_name", "结论:-1、稍瘦,0、标准,1、超重,2、肥胖");
                data.put("FatRate_name","体脂占比");
                data.put("Fat_name","体脂肪量");
                data.put("ExceptFat_name","非脂肪量");
                data.put("WaterRate_name","体水占比");
                data.put("Water_name","水含量");
                data.put("Minerals_name","矿物质");
                data.put("Protein_name","蛋白质含量");
                data.put("Fic_name","细胞内液");
                data.put("Foc_name","细胞外液");
                data.put("Muscle_name","肌肉量");
                data.put("FatAdjust_name","脂肪调节");
                data.put("WeightAdjust_name","体重调节");
                data.put("MuscleAdjust_name","肌肉调节");
                data.put("BasicMetabolism_name","基础代谢");
                data.put("Viscera_name","内脏脂肪等级");
                data.put("Bmc_name","骨骼量");
                data.put("MuscleRate_name","肌肉率");
                data.put("QuganMuscle_name","躯干肌肉量");
                data.put("QuganFat_name","躯干脂肪量");
                data.put("ZuotuiMuscle_name","左腿肌肉量");
                data.put("ZuobiMuscle_name","左臂肌肉量");
                data.put("YoubiMuscle_name","右臂肌肉量");
                data.put("YoutuiMuscle_name","右腿肌肉量");
                data.put("ZuobiFat_name","左臂脂肪量");
                data.put("ZuotuiFat_name","左腿脂肪量");
                data.put("YoubiFat_name","右臂脂肪量");
                data.put("YoutuiFat_name","右腿脂肪量");
                data.put("Result_name","结论:-1、稍瘦,0、标准,1、超重,2、肥胖");
            }
            //4 - 人体成分(脂肪)minFatMap
@ -252,23 +257,23 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Shape", minFatMap.get("Shape") == null ? "" : minFatMap.get("Shape").toString());
                data.put("Result", minFatMap.get("Result") == null ? "" : minFatMap.get("Result").toString());
                data.put("Height_name", "cm");
                data.put("Weight_name", "kg");
                data.put("FatRate_name", "%");
                data.put("BasicMetabolism_name", "");
                data.put("Bmi_name", "");
                data.put("Physique_name", "");
                data.put("Shape_name", "");
                data.put("Result_unit", "");
                data.put("Height_name", "身高");
                data.put("Weight_name", "体重");
                data.put("FatRate_name", "体脂肪率");
                data.put("BasicMetabolism_name", "基础代谢");
                data.put("Bmi_name", "BMI");
                data.put("Physique_name", "体质指数:1、偏低,2、标准,3、偏高,4、高");
                data.put("Shape_name", "体型:1、消瘦,2、标准,3、隐藏性肥胖,4、肌肉型肥胖/健壮,5、肥胖");
                data.put("Result_name", "结论:-1、消瘦,0、正常,1、超重,2、肥胖");
                data.put("Height_name","cm");
                data.put("Weight_name","kg");
                data.put("FatRate_name","%");
                data.put("BasicMetabolism_name","");
                data.put("Bmi_name","");
                data.put("Physique_name","");
                data.put("Shape_name","");
                data.put("Result_unit","");
                data.put("Height_name","身高");
                data.put("Weight_name","体重");
                data.put("FatRate_name","体脂肪率");
                data.put("BasicMetabolism_name","基础代谢");
                data.put("Bmi_name","BMI");
                data.put("Physique_name","体质指数:1、偏低,2、标准,3、偏高,4、高");
                data.put("Shape_name","体型:1、消瘦,2、标准,3、隐藏性肥胖,4、肌肉型肥胖/健壮,5、肥胖");
                data.put("Result_name","结论:-1、消瘦,0、正常,1、超重,2、肥胖");
            }
@ -279,15 +284,15 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Pulse", bloodPressureMap.get("Pulse") == null ? "" : bloodPressureMap.get("Pulse").toString());
                data.put("Result", bloodPressureMap.get("Result") == null ? "" : bloodPressureMap.get("Result").toString());
                data.put("HighPressure_unit", "mmHg");
                data.put("LowPressure_unit", "mmHg");
                data.put("Pulse_unit", "次/分");
                data.put("Result_unit", "");
                data.put("HighPressure_unit","mmHg");
                data.put("LowPressure_unit","mmHg");
                data.put("Pulse_unit","次/分");
                data.put("Result_unit","");
                data.put("HighPressure_name", "(收缩压)高压");
                data.put("LowPressure_name", "(舒张压)低压");
                data.put("Pulse_name", "脉搏");
                data.put("Result_name", "结论:-1、低压,0、正常,1、正常高压 2、轻度高压 3、中度高压 4、重度高压");
                data.put("HighPressure_name","(收缩压)高压");
                data.put("LowPressure_name","(舒张压)低压");
                data.put("Pulse_name","脉搏");
                data.put("Result_name","结论:-1、低压,0、正常,1、正常高压 2、轻度高压 3、中度高压 4、重度高压");
            }
            // 血氧
            if (boMap != null) {
@ -300,23 +305,23 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("EndTime", boMap.get("EndTime") == null ? "" : boMap.get("EndTime").toString());
                data.put("SecondCount", boMap.get("SecondCount") == null ? "" : boMap.get("SecondCount").toString());
                data.put("Oxygen_unit", "%");
                data.put("OxygenList_unit", "");
                data.put("Bpm_unit", "");
                data.put("BpmList_unit", "");
                data.put("Result_unit", "");
                data.put("StartTime_unit", "");
                data.put("EndTime_unit", "");
                data.put("SecondCount_unit", "");
                data.put("Oxygen_name", "血氧值");
                data.put("OxygenList_name", "血氧列表值");
                data.put("Bpm_name", "脉率值");
                data.put("BpmList_name", "脉率列表值");
                data.put("Result_name", "结论:-1、低血氧,0、正常血氧");
                data.put("StartTime_name", "开始时间");
                data.put("EndTime_name", "结束时间");
                data.put("SecondCount_name", "总测量秒数");
                data.put("Oxygen_unit","%");
                data.put("OxygenList_unit","");
                data.put("Bpm_unit","");
                data.put("BpmList_unit","");
                data.put("Result_unit","");
                data.put("StartTime_unit","");
                data.put("EndTime_unit","");
                data.put("SecondCount_unit","");
                data.put("Oxygen_name","血氧值");
                data.put("OxygenList_name","血氧列表值");
                data.put("Bpm_name","脉率值");
                data.put("BpmList_name","脉率列表值");
                data.put("Result_name","结论:-1、低血氧,0、正常血氧");
                data.put("StartTime_name","开始时间");
                data.put("EndTime_name","结束时间");
                data.put("SecondCount_name","总测量秒数");
            }
@ -328,22 +333,22 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Result", ecgMap.get("Result") == null ? "" : ecgMap.get("Result").toString());
                data.put("Analysis", ecgMap.get("Analysis") == null ? "" : ecgMap.get("Analysis").toString());
                data.put("Hr_unit", "次/分");
                data.put("EcgData_unit", "");
                data.put("nGain_unit", "");
                data.put("Result_unit", "(废除)");
                data.put("Analysis_unit", "");
                data.put("Hr_unit","次/分");
                data.put("EcgData_unit","");
                data.put("nGain_unit","");
                data.put("Result_unit","(废除)");
                data.put("Analysis_unit","");
                data.put("Hr_name", "心率值");
                data.put("EcgData_name", "心电图数据");
                data.put("nGain_name", "增益");
                data.put("Result_name", "  ");
                data.put("Analysis_name", "结论:5025 对照说明详见附1");
                data.put("Hr_name","心率值");
                data.put("EcgData_name","心电图数据");
                data.put("nGain_name","增益");
                data.put("Result_name","  ");
                data.put("Analysis_name","结论:5025 对照说明详见附1");
            }
            // 12导心电
            if (peecgMap != null) {
           if (peecgMap != null) {
                data.put("Hr", peecgMap.get("Hr") == null ? "" : peecgMap.get("Hr").toString());
                data.put("PAxis", peecgMap.get("PAxis") == null ? "" : peecgMap.get("PAxis").toString());
                data.put("QRSAxis", peecgMap.get("QRSAxis") == null ? "" : peecgMap.get("QRSAxis").toString());
@ -366,32 +371,32 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                    data.put("filepath",resPath);
                }*/
                data.put("Hr_unit", "次/分");
                data.put("PAxis_unit", "");
                data.put("QRSAxis_unit", "");
                data.put("TAxis_unit", "");
                data.put("PR_unit", "ms");
                data.put("QRS_unit", "ms");
                data.put("QT_unit", "ms");
                data.put("QTc_unit", "ms");
                data.put("RV5_unit", "mV");
                data.put("SV1_unit", "mV");
                data.put("EcgData_unit", "");
                data.put("Result_unit", "");
                data.put("Hr_name", "心率值");
                data.put("PAxis_name", "P轴");
                data.put("QRSAxis_name", "QRS轴");
                data.put("TAxis_name", "T轴");
                data.put("PR_name", "PR 间期");
                data.put("QRS_name", "QRS 时限");
                data.put("QT_name", "QT 间期");
                data.put("QTc_name", "QTc 间期");
                data.put("RV5_name", "RV5 幅度");
                data.put("SV1_name", "SV1 幅度");
                data.put("EcgData_name", "心电图数据");
                data.put("EcgImg_name", "心电波形图图片");
                data.put("Result_name", "心电结论");
                data.put("Hr_unit","次/分");
                data.put("PAxis_unit","");
                data.put("QRSAxis_unit","");
                data.put("TAxis_unit","");
                data.put("PR_unit","ms");
                data.put("QRS_unit","ms");
                data.put("QT_unit","ms");
                data.put("QTc_unit","ms");
                data.put("RV5_unit","mV");
                data.put("SV1_unit","mV");
                data.put("EcgData_unit","");
                data.put("Result_unit","");
                data.put("Hr_name","心率值");
                data.put("PAxis_name","P轴");
                data.put("QRSAxis_name","QRS轴");
                data.put("TAxis_name","T轴");
                data.put("PR_name","PR 间期");
                data.put("QRS_name","QRS 时限");
                data.put("QT_name","QT 间期");
                data.put("QTc_name","QTc 间期");
                data.put("RV5_name","RV5 幅度");
                data.put("SV1_name","SV1 幅度");
                data.put("EcgData_name","心电图数据");
                data.put("EcgImg_name","心电波形图图片");
                data.put("Result_name","心电结论");
            }
@ -400,11 +405,11 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Temperature", temperatureMap.get("Temperature") == null ? "" : temperatureMap.get("Temperature").toString());
                data.put("Result", temperatureMap.get("Result") == null ? "" : temperatureMap.get("Result").toString());
                data.put("Temperature_unit", "℃");
                data.put("Result_unit", "");
                data.put("Temperature_unit","℃");
                data.put("Result_unit","");
                data.put("Temperature_name", "体温值");
                data.put("Result_name", "结论:-1、低温,0、正常,1、高温");
                data.put("Temperature_name","体温值");
                data.put("Result_name","结论:-1、低温,0、正常,1、高温");
            }
@ -415,15 +420,15 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Whr", whrMap.get("Whr") == null ? "" : whrMap.get("Whr").toString());
                data.put("Result", whrMap.get("Result") == null ? "" : whrMap.get("Result").toString());
                data.put("Waistline_unit", "cm");
                data.put("Hipline_unit", "cm");
                data.put("Whr_unit", "%");
                data.put("Result_unit", "");
                data.put("Waistline_unit","cm");
                data.put("Hipline_unit","cm");
                data.put("Whr_unit","%");
                data.put("Result_unit","");
                data.put("Waistline_name", "腰围");
                data.put("Hipline_name", "臀围");
                data.put("Whr_name", "腰臀比");
                data.put("Result_name", "结论: 0:正常,1:上身肥胖,2:下身肥胖");
                data.put("Waistline_name","腰围");
                data.put("Hipline_name","臀围");
                data.put("Whr_name","腰臀比");
                data.put("Result_name","结论: 0:正常,1:上身肥胖,2:下身肥胖");
            }
            // 血糖
            if (bloodSugarMap != null) {
@ -432,23 +437,23 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Result", bloodSugarMap.get("Result") == null ? "" : bloodSugarMap.get("Result").toString());
                data.put("BloodSugar_name", "血糖值");
                data.put("BloodsugarType_name", "血糖类型:1、餐前血糖,2、餐后血糖,3、随机血糖");
                data.put("Result_name", "结论:-1、低血糖,0、正常,1、偏高 2、高");
                data.put("BloodSugar_name","血糖值");
                data.put("BloodsugarType_name","血糖类型:1、餐前血糖,2、餐后血糖,3、随机血糖");
                data.put("Result_name","结论:-1、低血糖,0、正常,1、偏高 2、高");
                data.put("BloodSugar_unit", "mmol/L");
                data.put("BloodsugarType_unit", "");
                data.put("Result_unit", "");
                data.put("BloodSugar_unit","mmol/L");
                data.put("BloodsugarType_unit","");
                data.put("Result_unit","");
            }
            // 血尿酸
            if (uaMap != null) {
                data.put("Ua", uaMap.get("Ua") == null ? "" : uaMap.get("Ua").toString());
                data.put("Result", uaMap.get("Result") == null ? "" : uaMap.get("Result").toString());
                data.put("Ua_unit", "mmol/L");
                data.put("Result_unit", "");
                data.put("Ua_name", "尿酸值");
                data.put("Result_name", "结论:-1、低,0、正常,1、高");
                data.put("Ua_unit","mmol/L");
                data.put("Result_unit","");
                data.put("Ua_name","尿酸值");
                data.put("Result_name","结论:-1、低,0、正常,1、高");
            }
            // 总胆固醇
@ -456,11 +461,11 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Chol", cholMap.get("Chol") == null ? "" : cholMap.get("Chol").toString());
                data.put("Result", cholMap.get("Result") == null ? "" : cholMap.get("Result").toString());
                data.put("Chol_unit", "mmol/L");
                data.put("Result_unit", "");
                data.put("Chol_unit","mmol/L");
                data.put("Result_unit","");
                data.put("Chol_name", "总胆固醇值");
                data.put("Result_name", "结论:-1、低,0、正常,1、高  2、过高");
                data.put("Chol_name","总胆固醇值");
                data.put("Result_name","结论:-1、低,0、正常,1、高  2、过高");
            }
            // 血脂
@ -472,19 +477,19 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("CalcLdl", bloodFatMap.get("CalcLdl") == null ? "" : bloodFatMap.get("CalcLdl").toString());
                data.put("Result", bloodFatMap.get("Result") == null ? "" : bloodFatMap.get("Result").toString());
                data.put("TChol_unit", "mmol/L");
                data.put("HdlChol_unit", "mmol/L");
                data.put("Trig_unit", "mmol/L");
                data.put("TcHdl_unit", "");
                data.put("CalcLdl_unit", "mmol/L");
                data.put("Result_unit", "");
                data.put("TChol_unit","mmol/L");
                data.put("HdlChol_unit","mmol/L");
                data.put("Trig_unit","mmol/L");
                data.put("TcHdl_unit","");
                data.put("CalcLdl_unit","mmol/L");
                data.put("Result_unit","");
                data.put("TChol_name", "总胆固醇");
                data.put("HdlChol_name", "高密度蛋白");
                data.put("Trig_name", "甘油三酯");
                data.put("TcHdl_name", "血脂比值");
                data.put("CalcLdl_name", "低密度蛋白");
                data.put("Result_name", "结论:-1、低,0、正常,1、高");
                data.put("TChol_name","总胆固醇");
                data.put("HdlChol_name","高密度蛋白");
                data.put("Trig_name","甘油三酯");
                data.put("TcHdl_name","血脂比值");
                data.put("CalcLdl_name","低密度蛋白");
                data.put("Result_name","结论:-1、低,0、正常,1、高");
            }
            // 心血管功能
@ -502,31 +507,31 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("PAWP", cardiovascularMap.get("PAWP") == null ? "" : cardiovascularMap.get("PAWP").toString());
                data.put("N", cardiovascularMap.get("N") == null ? "" : cardiovascularMap.get("N").toString());
                data.put("HeartFunction1_name", "心脏功能");
                data.put("VascularCondition1_name", "心血管状况");
                data.put("HeartFunction2_name", "心脏功能-简化数据");
                data.put("VascularCondition2_name", "心血管状况-简化数据");
                data.put("Result_name", "诊断结果");
                data.put("SV_name", "SV");
                data.put("CO_name", "CO");
                data.put("HOV_name", "HOV");
                data.put("CMBV_name", "CMBV");
                data.put("TPR_name", "TPR");
                data.put("PAWP_name", "PAWP");
                data.put("N_name", "N");
                data.put("HeartFunction1_unit", "");
                data.put("VascularCondition1_unit", "");
                data.put("HeartFunction2_unit", "");
                data.put("VascularCondition2_unit", "");
                data.put("Result_unit", "");
                data.put("SV_unit", "");
                data.put("CO_unit", "");
                data.put("HOV_unit", "");
                data.put("CMBV_unit", "");
                data.put("TPR_unit", "");
                data.put("PAWP_unit", "");
                data.put("N_unit", "");
                data.put("HeartFunction1_name","心脏功能");
                data.put("VascularCondition1_name","心血管状况");
                data.put("HeartFunction2_name","心脏功能-简化数据");
                data.put("VascularCondition2_name","心血管状况-简化数据");
                data.put("Result_name","诊断结果");
                data.put("SV_name","SV");
                data.put("CO_name","CO");
                data.put("HOV_name","HOV");
                data.put("CMBV_name","CMBV");
                data.put("TPR_name","TPR");
                data.put("PAWP_name","PAWP");
                data.put("N_name","N");
                data.put("HeartFunction1_unit","");
                data.put("VascularCondition1_unit","");
                data.put("HeartFunction2_unit","");
                data.put("VascularCondition2_unit","");
                data.put("Result_unit","");
                data.put("SV_unit","");
                data.put("CO_unit","");
                data.put("HOV_unit","");
                data.put("CMBV_unit","");
                data.put("TPR_unit","");
                data.put("PAWP_unit","");
                data.put("N_unit","");
            }
            // 骨密度
@ -544,31 +549,31 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("PAB", bmdMap.get("PAB") == null ? "" : bmdMap.get("PAB").toString());
                data.put("Result", bmdMap.get("Result") == null ? "" : bmdMap.get("Result").toString());
                data.put("TSCORE_unit", "");
                data.put("ZSCORE_unit", "");
                data.put("OI_unit", "");
                data.put("BQI_unit", "");
                data.put("SOS_unit", "(m/s)");
                data.put("YOUNG_ADULT_unit", "");
                data.put("AGE_MATCHED_unit", "");
                data.put("BUA_unit", "");
                data.put("EOA_unit", "");
                data.put("RRF_unit", "");
                data.put("PAB_unit", "");
                data.put("Result_unit", "");
                data.put("TSCORE_name", "T值,受试者的数值与年轻健康成人的骨密度平均值的标准差");
                data.put("ZSCORE_name", "Z值,受试者的数值与同年龄人群骨密度的平均值的标准差");
                data.put("OI_name", "骨质指数,数值越大表示骨密度越高");
                data.put("BQI_name", "骨质指数,数值越大表示骨密度越高");
                data.put("SOS_name", "超声声速");
                data.put("YOUNG_ADULT_name", "成人百分比");
                data.put("AGE_MATCHED_name", "年龄百分比");
                data.put("BUA_name", "BUA");
                data.put("EOA_name", "预期发生骨质疏松的年龄");
                data.put("RRF_name", "相对骨折风险");
                data.put("PAB_name", "骨骼的生理年龄");
                data.put("Result_name", "诊断结果:-2、骨强度不足,-1、骨质疏松,0、正常");
                data.put("TSCORE_unit","");
                data.put("ZSCORE_unit","");
                data.put("OI_unit","");
                data.put("BQI_unit","");
                data.put("SOS_unit","(m/s)");
                data.put("YOUNG_ADULT_unit","");
                data.put("AGE_MATCHED_unit","");
                data.put("BUA_unit","");
                data.put("EOA_unit","");
                data.put("RRF_unit","");
                data.put("PAB_unit","");
                data.put("Result_unit","");
                data.put("TSCORE_name","T值,受试者的数值与年轻健康成人的骨密度平均值的标准差");
                data.put("ZSCORE_name","Z值,受试者的数值与同年龄人群骨密度的平均值的标准差");
                data.put("OI_name","骨质指数,数值越大表示骨密度越高");
                data.put("BQI_name","骨质指数,数值越大表示骨密度越高");
                data.put("SOS_name","超声声速");
                data.put("YOUNG_ADULT_name","成人百分比");
                data.put("AGE_MATCHED_name","年龄百分比");
                data.put("BUA_name","BUA");
                data.put("EOA_name","预期发生骨质疏松的年龄");
                data.put("RRF_name","相对骨折风险");
                data.put("PAB_name","骨骼的生理年龄");
                data.put("Result_name","诊断结果:-2、骨强度不足,-1、骨质疏松,0、正常");
            }
            // 酒精浓度
@ -579,17 +584,17 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("errcode", alcoholMap.get("errcode") == null ? "" : alcoholMap.get("errcode").toString());
                data.put("errinfo", alcoholMap.get("errinfo") == null ? "" : alcoholMap.get("errinfo").toString());
                data.put("Alcohol_name", "酒精浓度值(单位 mg/100ml)");
                data.put("Result_name", "0:正常 1:饮酒 2:醉酒");
                data.put("AlcoholImg_name", "(双佳服务器上传的是图片地址,其它是图片二进制)Base64字符串");
                data.put("errcode_name", "(-10:未找到图片 ,-11: 上传异常,-12 服务器返回空值;其它服务器返回)错误代码");
                data.put("errinfo_name", "错误信息");
                data.put("Alcohol_name","酒精浓度值(单位 mg/100ml)");
                data.put("Result_name","0:正常 1:饮酒 2:醉酒");
                data.put("AlcoholImg_name","(双佳服务器上传的是图片地址,其它是图片二进制)Base64字符串");
                data.put("errcode_name","(-10:未找到图片 ,-11: 上传异常,-12 服务器返回空值;其它服务器返回)错误代码");
                data.put("errinfo_name","错误信息");
                data.put("Alcohol_unit", "");
                data.put("Result_unit", "");
                data.put("AlcoholImg_unit", "");
                data.put("errcode_unit", "");
                data.put("errinfo_unit", "");
                data.put("Alcohol_unit","");
                data.put("Result_unit","");
                data.put("AlcoholImg_unit","");
                data.put("errcode_unit","");
                data.put("errinfo_unit","");
            }
            // 肺活量
@ -603,23 +608,23 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("FEF2575", lungMap.get("FEF2575") == null ? "" : lungMap.get("FEF2575").toString());
                data.put("Result", lungMap.get("Result") == null ? "" : lungMap.get("Result").toString());
                data.put("Lung_unit", "");
                data.put("FVC_unit", "");
                data.put("FEV1_unit", "");
                data.put("PEF_unit", "");
                data.put("FEF25_unit", "");
                data.put("FEF75_unit", "");
                data.put("FEF2575_unit", "");
                data.put("Result_unit", "");
                data.put("Lung_name", "单位 ml");
                data.put("FVC_name", "用力肺活量");
                data.put("FEV1_name", "用力呼气1秒量");
                data.put("PEF_name", "呼气峰值流速");
                data.put("FEF25_name", "25% 肺活量时的用力呼气流速");
                data.put("FEF75_name", "75% 肺活量时的用力呼气流速");
                data.put("FEF2575_name", "25% 肺活量到75%肺活量之间的平均呼气流速");
                data.put("Result_name", "结果(暂无)");
                data.put("Lung_unit","");
                data.put("FVC_unit","");
                data.put("FEV1_unit","");
                data.put("PEF_unit","");
                data.put("FEF25_unit","");
                data.put("FEF75_unit","");
                data.put("FEF2575_unit","");
                data.put("Result_unit","");
                data.put("Lung_name","单位 ml");
                data.put("FVC_name","用力肺活量");
                data.put("FEV1_name","用力呼气1秒量");
                data.put("PEF_name","呼气峰值流速");
                data.put("FEF25_name","25% 肺活量时的用力呼气流速");
                data.put("FEF75_name","75% 肺活量时的用力呼气流速");
                data.put("FEF2575_name","25% 肺活量到75%肺活量之间的平均呼气流速");
                data.put("Result_name","结果(暂无)");
            }
            // 血红蛋白
@ -628,13 +633,13 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("Hct", hbMap.get("Hct") == null ? "" : hbMap.get("Hct").toString());
                data.put("Result", hbMap.get("Result") == null ? "" : hbMap.get("Result").toString());
                data.put("Hb_unit", "mmol/L");
                data.put("Hct_unit", "%");
                data.put("Result_unit", "");
                data.put("Hb_unit","mmol/L");
                data.put("Hct_unit","%");
                data.put("Result_unit","");
                data.put("Hb_name", "血红蛋白值");
                data.put("Hct_name", "红细胞比容");
                data.put("Result_name", "诊断结果:-1、血红蛋白偏低,0、正常,1血红蛋白偏高");
                data.put("Hb_name","血红蛋白值");
                data.put("Hct_name","红细胞比容");
                data.put("Result_name","诊断结果:-1、血红蛋白偏低,0、正常,1血红蛋白偏高");
            }
            // 尿液分析
@ -655,66 +660,66 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
                data.put("UCA", urinalysisMap.get("UCA") == null ? "" : urinalysisMap.get("UCA").toString());
                data.put("Result", urinalysisMap.get("Result") == null ? "" : urinalysisMap.get("Result").toString());
                data.put("URO_unit", "");
                data.put("BLD_unit", "");
                data.put("BIL_unit", "");
                data.put("KET_unit", "");
                data.put("LEU_unit", "");
                data.put("GLU_unit", "");
                data.put("PRO_unit", "");
                data.put("PH_unit", "");
                data.put("NIT_unit", "");
                data.put("SG_unit", "");
                data.put("VC_unit", "");
                data.put("MAL_unit", "");
                data.put("CR_unit", "");
                data.put("UCA_unit", "");
                data.put("Result_unit", "");
                data.put("URO_name", "尿胆原");
                data.put("BLD_name", "潜血");
                data.put("BIL_name", "胆红素");
                data.put("KET_name", "酮体");
                data.put("LEU_name", "白细胞");
                data.put("GLU_name", "葡萄糖");
                data.put("PRO_name", "蛋白质");
                data.put("PH_name", "酸碱度");
                data.put("NIT_name", "亚硝酸盐");
                data.put("SG_name", "比重");
                data.put("VC_name", "维生素");
                data.put("MAL_name", "微白蛋白");
                data.put("CR_name", "肌酐");
                data.put("UCA_name", "钙离子");
                data.put("Result_name", "结果");
                data.put("URO_unit","");
                data.put("BLD_unit","");
                data.put("BIL_unit","");
                data.put("KET_unit","");
                data.put("LEU_unit","");
                data.put("GLU_unit","");
                data.put("PRO_unit","");
                data.put("PH_unit","");
                data.put("NIT_unit","");
                data.put("SG_unit","");
                data.put("VC_unit","");
                data.put("MAL_unit","");
                data.put("CR_unit","");
                data.put("UCA_unit","");
                data.put("Result_unit","");
                data.put("URO_name","尿胆原");
                data.put("BLD_name","潜血");
                data.put("BIL_name","胆红素");
                data.put("KET_name","酮体");
                data.put("LEU_name","白细胞");
                data.put("GLU_name","葡萄糖");
                data.put("PRO_name","蛋白质");
                data.put("PH_name","酸碱度");
                data.put("NIT_name","亚硝酸盐");
                data.put("SG_name","比重");
                data.put("VC_name","维生素");
                data.put("MAL_name","微白蛋白");
                data.put("CR_name","肌酐");
                data.put("UCA_name","钙离子");
                data.put("Result_name","结果");
            }
            data.put("hbalc", "");
            data.put("hbalc_unit", "");
            data.put("left_eye", "");
            data.put("left_eye_unit", "");
            data.put("right_eye", "");
            data.put("right_eye_unit", "");
            data.put("hbalc","");
            data.put("hbalc_unit","");
            data.put("left_eye","");
            data.put("left_eye_unit","");
            data.put("right_eye","");
            data.put("right_eye_unit","");
            jsonArray.add(data);
            params.put("data", jsonArray);
            str = dataInputService.inputBodySignsData(params.toString());
            JSONObject result = JSONObject.parseObject(str);
            if (StringUtils.endsWithIgnoreCase(ConstantUtils.FAIL, result.getString("response"))) {
            if (StringUtils.endsWithIgnoreCase(ConstantUtils.FAIL,result.getString("response"))) {
                Map res = new HashMap();
                res.put("success", "false");
                res.put("message", result.getString("msg"));
                strResult = objectMapper.writeValueAsString(res);
                return strResult;
            } else {
            }else{
                Map res = new HashMap();
                res.put("success", "true");
                res.put("message", "体征信息上传成功。");
                JSONArray ridRes = new JSONArray();
                ridRes = (JSONArray) result.get("rid");
                ridRes = (JSONArray)result.get("rid");
                String rid = ridRes.get(0).toString();
                res.put("rid", rid);
@ -730,24 +735,34 @@ public class IotAnalyzerController extends EnvelopRestEndpoint {
    /**
     * 基于奕拓小屋上传的体征数据,进行解析入库  V2.0 版本
     *
     * @param jsonData
     * @return
     */
    @PostMapping(value = "/yitouxiaowu", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @PostMapping(value = "/yitouxiaowu" ,consumes = MediaType.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value = "奕拓体征数据解析入库", notes = "奕拓体征数据解析入库")
    public Envelop updateDeviceData(
    public String updateDeviceData(
            @ApiParam(name = "json_data", value = "Json数据", required = true)
            @RequestBody String jsonData) throws Exception {
            @RequestBody String jsonData)throws Exception {
        logger.info( "体征数据入库:jsonData = " + jsonData );
        String strResult = "";
        boolean res = iotAnalyzerService.analyzerMapM(jsonData);
        if (res) {
            return success("体征数据上传成功");
        } else {
            return failed("体征数据上传失败");
        if(res){
            Map result = new HashMap();
            result.put("success", "true");
            result.put("message", "体征信息上传成功。");
            strResult = objectMapper.writeValueAsString(res);
            return strResult;
        }else {
            Map result = new HashMap();
            result.put("success", "false");
            result.put("message", "体征信息上传失败。");
            strResult = objectMapper.writeValueAsString(res);
            return strResult;
        }
    }
}

+ 5 - 4
svr/svr-iot/src/main/java/com/yihu/iot/controller/common/FileUploadController.java

@ -1,4 +1,4 @@
package com.yihu.iot.controller.common;
/*package com.yihu.iot.controller.common;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.fastdfs.FastDFSUtil;
@ -22,10 +22,10 @@ import java.io.InputStream;
import java.net.URLDecoder;
import java.util.Base64;
/**
*//**
 * 文件上传不在微服务中处理
 * @author yeshijie on 2017/12/7.
 */
 *//*
@RestController
@RequestMapping(IotRequestMapping.Common.file_upload)
@Api(tags = "文件上传相关操作", description = "文件上传相关操作")
@ -33,6 +33,7 @@ public class FileUploadController extends EnvelopRestEndpoint {
    @Autowired
    private FastDFSUtil fastDFSHelper;
    @Value("${fastDFS.fastdfs_file_url}")
    private String fastdfs_file_url;
@ -175,4 +176,4 @@ public class FileUploadController extends EnvelopRestEndpoint {
        }
    }
}
}*/

+ 10 - 9
svr/svr-iot/src/main/java/com/yihu/iot/controller/device/IotDeviceController.java

@ -3,18 +3,17 @@ package com.yihu.iot.controller.device;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.fastdfs.FastDFSUtil;
import com.yihu.iot.dao.device.IotDeviceImportRecordDao;
import com.yihu.iot.service.device.IotDeviceService;
import com.yihu.jw.entity.iot.device.IotDeviceDO;
import com.yihu.jw.entity.iot.device.IotDeviceImportRecordDO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.iot.common.ExistVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportRecordVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.iot.IotRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -23,7 +22,6 @@ import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -39,10 +37,13 @@ public class IotDeviceController extends EnvelopRestEndpoint {
    private Logger logger = LoggerFactory.getLogger(IotDeviceController.class);
    @Autowired
    private IotDeviceService iotDeviceService;
    @Autowired
    private FastDFSUtil fastDFSHelper;
    @Value("${fastDFS.fastdfs_file_url}")
    private String fastdfs_file_url;
    /*@Autowired
    private FastDFSUtil fastDFSHelper;*/
    /*@Value("${fastDFS.fastdfs_file_url}")
    private String fastdfs_file_url;*/
    @Autowired
    private IotDeviceImportRecordDao iotDeviceImportRecordDao;

+ 123 - 0
svr/svr-iot/src/main/java/com/yihu/iot/datainput/service/DataInputService.java

@ -335,6 +335,129 @@ public class DataInputService {
    }
    /**
     * 上传数据(三诺体征数据)
     * @param json
     * @return
     */
    public String inputBodySignsDataForSanruo(String json) throws IOException {
        JSONObject result = new JSONObject();
        result.put("upload_time",DateUtils.formatDate(new Date(), DateUtil.yyyy_MM_dd_HH_mm_ss));
        if(StringUtils.isEmpty(json)){
            result.put("response",ConstantUtils.FAIL);
            result.put("msg","parameter json is null");
            return result.toString();
        }
        String fileName = "";
        String fileAbsPath = "";
        String rowkey = "";
        //提取json某些项值
        DataBodySignsDO dataBodySignsDO = null;
        try {
            dataBodySignsDO  = JSONObject.parseObject(json,DataBodySignsDO.class);
        }catch (Exception e){
            logger.error("json parse error,invalid json string");
            result.put("msg","json parse error,invalid json string");
            result.put("response",ConstantUtils.FAIL);
            return result.toString();
        }
        JSONObject jsonObject = JSONObject.parseObject(json);
        String accessToken= dataBodySignsDO.getAccess_token();
        String dataSource = dataBodySignsDO.getData_source();
        String deviceSn = dataBodySignsDO.getSn();
        String extCode = dataBodySignsDO.getExt_code();
        //包含居民身份的数据,对设备数据进行校验绑定,此处包含的信息只有身份证号和用户名以及设备序列号,如果设备库中存在该序号的设备,则对绑定居民进行修改,改为当前居民,如果没有则跳过
        /*if(jsonObject.containsKey("idcard") && jsonObject.containsKey("username")){
            String idcard = jsonObject.getString("idcard");
            String username = jsonObject.getString("username");
            updateBindUser(dataSource,deviceSn,idcard,username);
        }*/
        JSONArray jsonArray = jsonObject.getJSONArray("data");
        if(null == jsonArray || jsonArray.size() == 0){
            result.put("response",ConstantUtils.FAIL);
            result.put("msg","parameter 'data' of json no exist");
            return result.toString();
        }
        List<String> rowkeyList = new ArrayList<>();
        List<Map<String,Map<String,String>>> familyList = new ArrayList<>();
        //循环数据,一组数据存一行,生成一个rowkey,并将该rowkey存到es中
        for(Object obj:jsonArray){
            JSONObject data = (JSONObject)obj;
            data.put("del","1"); //添加删除标记
            try {
                String measuretime = jsonObject.getString("measure_time");
                if(null == measuretime){
                    measuretime = DateUtils.formatDate(new Date(), DateUtil.yyyy_MM_dd_HH_mm_ss);
                }
                //生成一份json数据的rowkey
                rowkey = RowKeyUtils.makeRowKey(accessToken,dataSource, extCode, DateUtil.dateTimeParse(measuretime).getTime());
                data.put("rid",rowkey);//hbase的rowkey
                rowkeyList.add(rowkey);
            } catch (Exception e) {
                logger.error("make rowkey error");
                result.put("msg","make rowkey error");
                result.put("response",ConstantUtils.FAIL);
                return result.toString();
            }
            //组装B列
            Map<String, Map<String, String>> family = new HashMap<>();
            Map<String, String> columnsB = new HashMap<>();
            for(String key:data.keySet()){
                if(StringUtils.equalsIgnoreCase("rid",key)){ //存到hbase里的数据不需要rid
                    continue;
                }
                columnsB.put(key,data.getString(key));
            }
            if(data.containsKey("ecg")){
                fileName = data.getString("fileName");
                fileAbsPath = data.getString("filepath");
            }
            family.put(ConstantUtils.familyB,columnsB);
            familyList.add(family);
        }
        List<String> saveList = new ArrayList<>();
        saveList.add(jsonObject.toJSONString());
        //将数据存入es
        boolean success = false;
        try {
            success = elasticSearchHelper.save(ConstantUtils.esIndex, ConstantUtils.esType, saveList);
        }catch (Exception e){
            logger.error("upload signBodyData to elasticsearch failed," + e.getMessage());
            result.put("msg","upload signBodyData to elasticsearch failed," + e.getMessage());
        }
        if(success){
            dataProcessLogService.saveLog(fileName, fileAbsPath, dataSource, "", DateUtils.formatDate(new Date(), DateUtil.yyyy_MM_dd_HH_mm_ss), "1", "4", "com.yihu.iot.datainput.service.DataInputService.uploadData", DataOperationTypeEnum.upload1.getName(), 0);
            JSONArray rids = new JSONArray();
            rids.addAll(rowkeyList);
            result.put("rid",rids);
            result.put("response",ConstantUtils.SUCCESS);
        }else{
            result.put("response",ConstantUtils.FAIL);
        }
        /*try {
            boolean tableExists = hBaseAdmin.isTableExists(ConstantUtils.tableName);
            if (!tableExists) {
                hBaseAdmin.createTable(ConstantUtils.tableName,ConstantUtils.familyB);
            }
            hBaseHelper.addBulk(ConstantUtils.tableName, rowkeyList, familyList);
        } catch (Exception e) {
            e.printStackTrace();
            //保存日志
            dataProcessLogService.saveLog(fileName, fileAbsPath, dataSource, "", DateUtils.formatDate(new Date(), DateUtil.yyyy_MM_dd_HH_mm_ss), "1", "3", "com.yihu.iot.datainput.service.DataInputService.uploadData", DataOperationTypeEnum.upload1.getName(), 1);
            return "fail";
        }*/
        //保存日志
        return result.toJSONString();
    }
    /**
     * 上传微信运动数据
     * 目前只上传到es,hbase没有可用服务器

+ 7 - 3
svr/svr-iot/src/main/java/com/yihu/iot/service/analyzer/IotAnalyzerService.java

@ -96,7 +96,11 @@ public class IotAnalyzerService extends BaseJpaService<WlyyIotD, WlyyIotDDao> {
                    || "Alcohol".equals(code)|| "Lung".equals(code)|| "Hb".equals(code)|| "Urinalysis".equals(code)){
                LinkedHashMap valueMap = (LinkedHashMap)entry.getValue();
                analyzerMapD(valueMap,mid,code);
                if(valueMap ==  null){
                    continue;
                }else{
                    analyzerMapD(valueMap,mid,code);
                }
            }
        }
        return true;
@ -118,7 +122,7 @@ public class IotAnalyzerService extends BaseJpaService<WlyyIotD, WlyyIotDDao> {
            String value = entry.getValue() == null?"":entry.getValue().toString();
            // 当数值为空时,不进行存储操作
            if("".equals(value) || "0".equals(value) || "null".equals(value) ){
            if("".equals(value) || "0".equals(value) || "null".equals(value) || value == null ){
                continue;
            }else {
                WlyyIotD wlyyIotD = new WlyyIotD();
@ -131,7 +135,7 @@ public class IotAnalyzerService extends BaseJpaService<WlyyIotD, WlyyIotDDao> {
                    logger.info( "体征数据新增成功:id = " + wlyyIotD.getId() + " ; type = " + type +" ; code = " + code +"; value = " +  value);
                    continue;
                }else {
                    logger.error( "体征数据新增成功:mid = " + mid + " ; type = " + type +" ; code = " + code +"; value = " +  value);
                    logger.error( "体征数据新增失败:mid = " + mid + " ; type = " + type +" ; code = " + code +"; value = " +  value);
                    continue;
                }
            }

+ 6 - 7
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceImportRecordService.java

@ -1,7 +1,6 @@
package com.yihu.iot.service.device;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.yihu.fastdfs.FastDFSUtil;
import com.yihu.iot.dao.device.IotDeviceDao;
import com.yihu.iot.dao.device.IotDeviceImportRecordDao;
import com.yihu.jw.entity.iot.device.IotDeviceDO;
@ -36,8 +35,8 @@ public class IotDeviceImportRecordService extends BaseJpaService<IotDeviceImport
    private IotDeviceImportRecordDao iotDeviceImportRecordDao;
    @Autowired
    private IotDeviceDao iotDeviceDao;
    @Autowired
    private FastDFSUtil fastDFSHelper;
   /* @Autowired
    private FastDFSUtil fastDFSHelper;*/
    /**
     * 创建 HSSFWorkbook
@ -167,9 +166,9 @@ public class IotDeviceImportRecordService extends BaseJpaService<IotDeviceImport
        }
        //保存结果
        iotDeviceDao.save(deviceDOList);
        recordDO.setStatus(IotDeviceImportRecordDO.DeviceImportRecordStatus.complete.getValue());
        ByteArrayOutputStream os = null;
        try{
        /*recordDO.setStatus(IotDeviceImportRecordDO.DeviceImportRecordStatus.complete.getValue());
        ByteArrayOutputStream os = null;*/
        /*try{
            //结果上传到fastDFS
            os = new ByteArrayOutputStream();
            wb.write(os);
@ -185,7 +184,7 @@ public class IotDeviceImportRecordService extends BaseJpaService<IotDeviceImport
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        }*/
        iotDeviceImportRecordDao.save(recordDO);
    }

+ 8 - 8
svr/svr-iot/src/main/java/com/yihu/iot/service/device/IotDeviceService.java

@ -1,23 +1,21 @@
package com.yihu.iot.service.device;
import com.yihu.fastdfs.FastDFSUtil;
import com.yihu.iot.dao.device.*;
import com.yihu.iot.dao.product.IotProductDataTransmissionDao;
import com.yihu.iot.service.dict.IotSystemDictService;
import com.yihu.jw.entity.iot.device.*;
import com.yihu.jw.entity.iot.product.IotProductDataTransmissionDO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportRecordVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceImportVO;
import com.yihu.jw.restmodel.iot.device.IotDeviceVO;
import com.yihu.jw.restmodel.iot.device.IotPatientDeviceVO;
import com.yihu.jw.restmodel.iot.product.IotProductDataTransmissionVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.rm.iot.IotRequestMapping;
import com.yihu.mysql.query.BaseJpaService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
@ -35,10 +33,12 @@ public class IotDeviceService extends BaseJpaService<IotDeviceDO,IotDeviceDao> {
    @Autowired
    private IotDeviceDao iotDeviceDao;
    @Autowired
    private FastDFSUtil fastDFSHelper;
    @Value("${fastDFS.fastdfs_file_url}")
    private String fastdfs_file_url;
    /*@Autowired
    private FastDFSUtil fastDFSHelper;*/
    /*@Value("${fastDFS.fastdfs_file_url}")
    private String fastdfs_file_url;*/
    @Autowired
    private IotDeviceImportRecordDao iotDeviceImportRecordDao;
    @Autowired