Browse Source

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

yeshijie 4 years ago
parent
commit
6851f1421b
27 changed files with 1517 additions and 4 deletions
  1. 38 0
      common/common-entity/src/main/java/com/yihu/jw/entity/IdEntity.java
  2. 11 0
      common/common-entity/src/main/java/com/yihu/jw/entity/care/assistance/EmergencyAssistanceDO.java
  3. 76 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdHuamiDeviceDO.java
  4. 76 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdHuamiHealthScoreDO.java
  5. 86 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdHuamiHeartDO.java
  6. 66 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdHuamiPaiDO.java
  7. 66 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdHuamiRealtimeDateDO.java
  8. 126 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdHuamiRundateDO.java
  9. 116 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdHuamiSleepDO.java
  10. 293 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdXeekLungDO.java
  11. 145 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdXeekLungDetailDO.java
  12. 90 0
      common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyXeekPatientDeviceDO.java
  13. 11 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java
  14. 52 0
      svr/svr-iot/src/main/java/com/yihu/iot/controller/monitorPlatform/CopdXeekDeviceController.java
  15. 29 0
      svr/svr-iot/src/main/java/com/yihu/iot/controller/monitorPlatform/MonitorPlatformController.java
  16. 19 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdHuamiDeviceDao.java
  17. 11 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdHuamiHealthScoreDao.java
  18. 12 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdHuamiHeartDao.java
  19. 12 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdHuamiPaiDao.java
  20. 12 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdHuamiRealtimeDateDao.java
  21. 11 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdHuamiRundateDao.java
  22. 12 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdHuamiSleepDao.java
  23. 12 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdXeekLungDao.java
  24. 12 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdXeekLungDetailDao.java
  25. 20 0
      svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyXeekPatientDeviceDao.java
  26. 8 0
      svr/svr-iot/src/main/java/com/yihu/iot/service/analyzer/WlyyIotTzDict.java
  27. 95 0
      svr/svr-iot/src/main/java/com/yihu/iot/service/monitorPlatform/CopdXeekDeviceService.java

+ 38 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/IdEntity.java

@ -0,0 +1,38 @@
/*******************************************************************************
 * Copyright (c) 2005, 2014 springside.github.io
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 *******************************************************************************/
package com.yihu.jw.entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import java.io.Serializable;
/**
 * 统一定义id的entity基类.
 * 
 * 基类统一定义id的属性名称、数据类型、列名映射及生成策略.
 * Oracle需要每个Entity独立定义id的SEQUCENCE时,不继承于本类而改为实现一个Idable的接口。
 * 
 * @author calvin
 */
// JPA 基类的标识
@MappedSuperclass
public abstract class IdEntity implements Serializable {
	private static final long serialVersionUID = 3673803562328635206L;
	protected Long id;  // 非业务主键
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
}

+ 11 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/assistance/EmergencyAssistanceDO.java

@ -1,6 +1,7 @@
package com.yihu.jw.entity.care.assistance;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import netscape.javascript.JSObject;
import javax.persistence.Entity;
import javax.persistence.Table;
@ -38,6 +39,7 @@ public class EmergencyAssistanceDO extends UuidIdentityEntityWithOperator {
    private String patientPhoto;
    private Integer patientSex;
    private double distance;//医生与患者距离 单位km
    private JSObject otherDoctorDistance;
    public String getPatient() {
        return patient;
@ -234,4 +236,13 @@ public class EmergencyAssistanceDO extends UuidIdentityEntityWithOperator {
    public void setDistance(double distance) {
        this.distance = distance;
    }
    @Transient
    public JSObject getOtherDoctorDistance() {
        return otherDoctorDistance;
    }
    public void setOtherDoctorDistance(JSObject otherDoctorDistance) {
        this.otherDoctorDistance = otherDoctorDistance;
    }
}

+ 76 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdHuamiDeviceDO.java

@ -0,0 +1,76 @@
package com.yihu.jw.entity.iot.copdDevice;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by Bing on 2021/4/14.
 * 华米医疗设备信息
 */
@Entity
@Table(name="wlyy_copd_huami_device")
public class WlyyCopdHuamiDeviceDO extends UuidIdentityEntity {
    private String  patient;    //患者code
    private String  deviceSn;  //设备ID 即sn码
    private String  macAddress;    //设备MAC地址
    private String  lastDataSyncTime;    //上次同步数据的时间戳
    private String  deviceType;    //设备类型:BAND、SCALE、SHOE、WATCH
    private String  deviceName;    //设备名称
    @Column(name="patient")
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    @Column(name="device_sn")
    public String getDeviceSn() {
        return deviceSn;
    }
    public void setDeviceSn(String deviceSn) {
        this.deviceSn = deviceSn;
    }
    @Column(name="mac_address")
    public String getMacAddress() {
        return macAddress;
    }
    public void setMacAddress(String macAddress) {
        this.macAddress = macAddress;
    }
    @Column(name="last_data_sync_time")
    public String getLastDataSyncTime() {
        return lastDataSyncTime;
    }
    public void setLastDataSyncTime(String lastDataSyncTime) {
        this.lastDataSyncTime = lastDataSyncTime;
    }
    @Column(name="device_type")
    public String getDeviceType() {
        return deviceType;
    }
    public void setDeviceType(String deviceType) {
        this.deviceType = deviceType;
    }
    @Column(name="device_name")
    public String getDeviceName() {
        return deviceName;
    }
    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }
}

+ 76 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdHuamiHealthScoreDO.java

@ -0,0 +1,76 @@
package com.yihu.jw.entity.iot.copdDevice;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by Bing on 2021/4/14.
 * 华米医疗设备健康分
 */
@Entity
@Table(name="wlyy_copd_huami_health_score")
public class WlyyCopdHuamiHealthScoreDO extends UuidIdentityEntity {
    private String  deviceSn;  //设备ID 即sn码
    private String  exportKey; //本次查询的类型  HealthScore_Week,HealthScore_Month分表表示周健康分和月健康分
    private String  exportTime;    //时间戳,和查询的exportTime对应
    private String  name;   //健康分名称,为”h5”
    private String  score;  //健康分值
    private String  total;  //健康分总分,默认100
    @Column(name="device_sn")
    public String getDeviceSn() {
        return deviceSn;
    }
    public void setDeviceSn(String deviceSn) {
        this.deviceSn = deviceSn;
    }
    @Column(name="export_key")
    public String getExportKey() {
        return exportKey;
    }
    public void setExportKey(String exportKey) {
        this.exportKey = exportKey;
    }
    @Column(name="export_time")
    public String getExportTime() {
        return exportTime;
    }
    public void setExportTime(String exportTime) {
        this.exportTime = exportTime;
    }
    @Column(name="name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name="score")
    public String getScore() {
        return score;
    }
    public void setScore(String score) {
        this.score = score;
    }
    @Column(name="total")
    public String getTotal() {
        return total;
    }
    public void setTotal(String total) {
        this.total = total;
    }
}

+ 86 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdHuamiHeartDO.java

@ -0,0 +1,86 @@
package com.yihu.jw.entity.iot.copdDevice;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by Bing on 2021/4/14.
 * 华米医疗设备心率
 */
@Entity
@Table(name="wlyy_copd_huami_heart")
public class WlyyCopdHuamiHeartDO extends UuidIdentityEntity {
    private String  deviceSn;  //设备sn码
    private String  date;   //数据的本地生成日期,格式为yyyy-MM-dd
    private String  minute; //在当日中的分钟序号(0-1439)
    private String  lastSyncTime; //数据上传到华米后端的时间戳,仅在类型为AUTO时提供
    private String  timestamp;  //心率数据的生成时间戳
    private String  heartRateData;    //测量类型为MANUAL时为心率,测量类型为AUTO时则为该分钟时的平均心率。如果该分钟内未佩戴设备或者未测量心率,则心率为0
    private String  measureType;   //测量类型:AUTO、MANUAL
    @Column(name="device_sn")
    public String getDeviceSn() {
        return deviceSn;
    }
    public void setDeviceSn(String deviceSn) {
        this.deviceSn = deviceSn;
    }
    @Column(name="date")
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    @Column(name="minute")
    public String getMinute() {
        return minute;
    }
    public void setMinute(String minute) {
        this.minute = minute;
    }
    @Column(name="last_sync_time")
    public String getLastSyncTime() {
        return lastSyncTime;
    }
    public void setLastSyncTime(String lastSyncTime) {
        this.lastSyncTime = lastSyncTime;
    }
    @Column(name="timestamp")
    public String getTimestamp() {
        return timestamp;
    }
    public void setTimestamp(String timestamp) {
        this.timestamp = timestamp;
    }
    @Column(name="heart_rate_data")
    public String getHeartRateData() {
        return heartRateData;
    }
    public void setHeartRateData(String heartRateData) {
        this.heartRateData = heartRateData;
    }
    @Column(name="measure_type")
    public String getMeasureType() {
        return measureType;
    }
    public void setMeasureType(String measureType) {
        this.measureType = measureType;
    }
}

+ 66 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdHuamiPaiDO.java

@ -0,0 +1,66 @@
package com.yihu.jw.entity.iot.copdDevice;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by Bing on 2021/4/14.
 * 华米医疗设备pai
 */
@Entity
@Table(name="wlyy_copd_huami_pai")
public class WlyyCopdHuamiPaiDO extends UuidIdentityEntity {
    private String  deviceSn;  //设备ID 即sn码
    private String  calendarDay;   //PAI概况的生成日期,例如“2019-10-18”
    private String  timestamp;  //数据上传到华米后端的时间戳
    private String  totalPai;  //用户本周运动前获得的所有PAI
    private String  dailyPai;  //用户在当天获得的PAI
    @Column(name="device_sn")
    public String getDeviceSn() {
        return deviceSn;
    }
    public void setDeviceSn(String deviceSn) {
        this.deviceSn = deviceSn;
    }
    @Column(name="calendar_day")
    public String getCalendarDay() {
        return calendarDay;
    }
    public void setCalendarDay(String calendarDay) {
        this.calendarDay = calendarDay;
    }
    @Column(name="timestamp")
    public String getTimestamp() {
        return timestamp;
    }
    public void setTimestamp(String timestamp) {
        this.timestamp = timestamp;
    }
    @Column(name="total_pai")
    public String getTotalPai() {
        return totalPai;
    }
    public void setTotalPai(String totalPai) {
        this.totalPai = totalPai;
    }
    @Column(name="daily_pai")
    public String getDailyPai() {
        return dailyPai;
    }
    public void setDailyPai(String dailyPai) {
        this.dailyPai = dailyPai;
    }
}

+ 66 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdHuamiRealtimeDateDO.java

@ -0,0 +1,66 @@
package com.yihu.jw.entity.iot.copdDevice;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by Bing on 2021/4/14.
 * 华米医疗设备实时数据
 */
@Entity
@Table(name="wlyy_copd_huami_realtime_date")
public class WlyyCopdHuamiRealtimeDateDO extends UuidIdentityEntity {
    private String  deviceSn;  //设备sn码
    private String  hr; //实时心率
    private String  st; //实时步数,采集开始后的累积步数
    private String  cal;    //实时卡路里,累积卡路里
    private String  data;// 创建时间
    @Column(name="device_sn")
    public String getDeviceSn() {
        return deviceSn;
    }
    public void setDeviceSn(String deviceSn) {
        this.deviceSn = deviceSn;
    }
    @Column(name="hr")
    public String getHr() {
        return hr;
    }
    public void setHr(String hr) {
        this.hr = hr;
    }
    @Column(name="st")
    public String getSt() {
        return st;
    }
    public void setSt(String st) {
        this.st = st;
    }
    @Column(name="cal")
    public String getCal() {
        return cal;
    }
    public void setCal(String cal) {
        this.cal = cal;
    }
    @Column(name="data")
    public String getData() {
        return data;
    }
    public void setData(String data) {
        this.data = data;
    }
}

+ 126 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdHuamiRundateDO.java

@ -0,0 +1,126 @@
package com.yihu.jw.entity.iot.copdDevice;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by Bing on 2021/4/14.
 * 华米医疗设备运动数据
 */
@Entity
@Table(name="wlyy_copd_huami_rundate")
public class WlyyCopdHuamiRundateDO extends UuidIdentityEntity {
    private String  deviceSn;  //设备sn码
    private String  date;   //数据的本地生成日期,格式为yyyy-MM-dd
    private String  lastSyncTime; //数据上传到华米后端的时间戳
    private String  steps;  //总步数
    private String  distance;   //包含行走距离和跑步距离在内的总距离,单位为米
    private String  runDistance;   //跑步距离,单位为米,仅在时间间隔为每日的情况下使用
    private String  runTime;   //跑步时间,单位为分钟,仅在时间间隔为每日的情况下使用
    private String  walkTime;  //行走时间,单位为分钟,仅在时间间隔为每日的情况下使用
    private String  calories;   //热量总消耗,单位为千卡
    private String  runCalories;   //跑步消耗热量,单位为千卡,仅在时间间隔为每日的情况下使用
    private String  hour;   //步数分段信息(起止时间不是按照小时来的),用于记录快走慢走跑步等步数类型的数据
    @Column(name="device_sn")
    public String getDeviceSn() {
        return deviceSn;
    }
    public void setDeviceSn(String deviceSn) {
        this.deviceSn = deviceSn;
    }
    @Column(name="date")
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    @Column(name="last_sync_time")
    public String getLastSyncTime() {
        return lastSyncTime;
    }
    public void setLastSyncTime(String lastSyncTime) {
        this.lastSyncTime = lastSyncTime;
    }
    @Column(name="steps")
    public String getSteps() {
        return steps;
    }
    public void setSteps(String steps) {
        this.steps = steps;
    }
    @Column(name="distance")
    public String getDistance() {
        return distance;
    }
    public void setDistance(String distance) {
        this.distance = distance;
    }
    @Column(name="run_distance")
    public String getRunDistance() {
        return runDistance;
    }
    public void setRunDistance(String runDistance) {
        this.runDistance = runDistance;
    }
    @Column(name="run_time")
    public String getRunTime() {
        return runTime;
    }
    public void setRunTime(String runTime) {
        this.runTime = runTime;
    }
    @Column(name="walk_time")
    public String getWalkTime() {
        return walkTime;
    }
    public void setWalkTime(String walkTime) {
        this.walkTime = walkTime;
    }
    @Column(name="calories")
    public String getCalories() {
        return calories;
    }
    public void setCalories(String calories) {
        this.calories = calories;
    }
    @Column(name="run_calories")
    public String getRunCalories() {
        return runCalories;
    }
    public void setRunCalories(String runCalories) {
        this.runCalories = runCalories;
    }
    @Column(name="hour")
    public String getHour() {
        return hour;
    }
    public void setHour(String hour) {
        this.hour = hour;
    }
}

+ 116 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdHuamiSleepDO.java

@ -0,0 +1,116 @@
package com.yihu.jw.entity.iot.copdDevice;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by Bing on 2021/4/14.
 * 华米医疗设备睡眠
 */
@Entity
@Table(name="wlyy_copd_huami_sleep")
public class WlyyCopdHuamiSleepDO extends UuidIdentityEntity {
    private String  deviceSn;  //设备sn码
    private String  date;   //数据的本地生成日期,格式为yyyy-MM-dd
    private String  lastSyncTime; //数据上传到华米后端的时间戳
    private String  deepSleepTime;    //深度睡眠时长,单位为分钟
    private String  shallowSleepTime; //浅度睡眠时长,单位为分钟
    private String  wakeTime;  //睡眠期间清醒时长,单位为分钟
    private String  sleepScore;    //睡眠评分,范围为 0-100
    private String  start;  //睡眠开始时间。Amazfit设备为分钟序号(0-1439),mifit设备为时间戳
    private String  stop;   //睡眠结束时间。Amazfit设备为分钟序号(0-1439),mifit设备为时间戳
    private String  mode;   //睡眠状态。4为浅度睡眠状态;5为深度睡眠状态;7为清醒状态;8为REM(快速眼动睡眠)
    @Column(name="device_sn")
    public String getDeviceSn() {
        return deviceSn;
    }
    public void setDeviceSn(String deviceSn) {
        this.deviceSn = deviceSn;
    }
    @Column(name="date")
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
    @Column(name="last_sync_time")
    public String getLastSyncTime() {
        return lastSyncTime;
    }
    public void setLastSyncTime(String lastSyncTime) {
        this.lastSyncTime = lastSyncTime;
    }
    @Column(name="deep_sleep_time")
    public String getDeepSleepTime() {
        return deepSleepTime;
    }
    public void setDeepSleepTime(String deepSleepTime) {
        this.deepSleepTime = deepSleepTime;
    }
    @Column(name="shallow_sleep_time")
    public String getShallowSleepTime() {
        return shallowSleepTime;
    }
    public void setShallowSleepTime(String shallowSleepTime) {
        this.shallowSleepTime = shallowSleepTime;
    }
    @Column(name="wake_time")
    public String getWakeTime() {
        return wakeTime;
    }
    public void setWakeTime(String wakeTime) {
        this.wakeTime = wakeTime;
    }
    @Column(name="sleep_score")
    public String getSleepScore() {
        return sleepScore;
    }
    public void setSleepScore(String sleepScore) {
        this.sleepScore = sleepScore;
    }
    @Column(name="start")
    public String getStart() {
        return start;
    }
    public void setStart(String start) {
        this.start = start;
    }
    @Column(name="stop")
    public String getStop() {
        return stop;
    }
    public void setStop(String stop) {
        this.stop = stop;
    }
    @Column(name="mode")
    public String getMode() {
        return mode;
    }
    public void setMode(String mode) {
        this.mode = mode;
    }
}

+ 293 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdXeekLungDO.java

@ -0,0 +1,293 @@
package com.yihu.jw.entity.iot.copdDevice;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by Bing on 2021/4/14.
 */
@Entity
@Table(name="wlyy_copd_xeek_lung")
public class WlyyCopdXeekLungDO extends UuidIdentityEntity {
    private String deviceType;// String Y 设备类型 设备品牌
    private String deviceSN;// String Y 设备 SN 号 设备唯一
    /**
     *  String Y 报告类型:
     * 1=吸气测试;
     * 2=呼气测试;
     * 6=MVV 测试;
     * 7=慢通气测试;
     类型不同时,details
     的参数也不同,参
     考 details 参数备注
     */
    private String reportType;
    /**
     * Int Y 用药标志:
     0=无;1=药前;2=药后;
     药前/后是舒张试验
     的吸气和呼气测试
     类型
     */
    private Integer drugFlag;
    private String patientName;// String Y 患者姓名
    private Integer patientGender;// Int Y 患者性别:            1 – 男;2 – 女;
    private String patientBirthday;// String Y 患者出生日期 格式:    YYYYMMDD
    private String patientNation;// String N 民族
    private String patientMobile;// String N 患者手机号
    private String idCardNo;// String N 身份证号
    private String contactAddress;// String N 联系地址
    private String occupation;// String N 职业
    private String residenceNo;// String N 门诊/住院号
    private String smoking;// String N 吸烟史
    private String disease;// String N 病史
    private String weight;// String Y 体重 单位:KG
    private String height;// String Y 身高 单位:CM
    private String inspectTime;// String Y 检查时间 格式:    YYYY-MM-DD    HH:mm:ss
    private String doctorName;// String Y 检查医生姓名
    private String itemName;// String N 检查项目
    private String finalQuality;// String Y 综合质控等级
    private String fvcQuality;// String Y FVC 质控等级
    private String fev1Quality;// String Y FEV1 质控等级
    private String doctorDiag;// String Y 医生诊断结果
    private Integer refEquations;// Int Y 采用的预计值公式 0=默认;            1=中国人 4-80 岁;            2=Standard'
    private String pdfReport;// String N 报告 Url
    @Column(name="device_type")
    public String getDeviceType() {
        return deviceType;
    }
    public void setDeviceType(String deviceType) {
        this.deviceType = deviceType;
    }
    @Column(name="device_sn")
    public String getDeviceSN() {
        return deviceSN;
    }
    public void setDeviceSN(String deviceSN) {
        this.deviceSN = deviceSN;
    }
    @Column(name="report_type")
    public String getReportType() {
        return reportType;
    }
    public void setReportType(String reportType) {
        this.reportType = reportType;
    }
    @Column(name="drug_flag")
    public Integer getDrugFlag() {
        return drugFlag;
    }
    public void setDrugFlag(Integer drugFlag) {
        this.drugFlag = drugFlag;
    }
    @Column(name="patient_name")
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    @Column(name="patient_gender")
    public Integer getPatientGender() {
        return patientGender;
    }
    public void setPatientGender(Integer patientGender) {
        this.patientGender = patientGender;
    }
    @Column(name="patient_birthday")
    public String getPatientBirthday() {
        return patientBirthday;
    }
    public void setPatientBirthday(String patientBirthday) {
        this.patientBirthday = patientBirthday;
    }
    @Column(name="patient_nation")
    public String getPatientNation() {
        return patientNation;
    }
    public void setPatientNation(String patientNation) {
        this.patientNation = patientNation;
    }
    @Column(name="patient_mobile")
    public String getPatientMobile() {
        return patientMobile;
    }
    public void setPatientMobile(String patientMobile) {
        this.patientMobile = patientMobile;
    }
    @Column(name="idcard_no")
    public String getIdCardNo() {
        return idCardNo;
    }
    public void setIdCardNo(String idCardNo) {
        this.idCardNo = idCardNo;
    }
    @Column(name="contact_address")
    public String getContactAddress() {
        return contactAddress;
    }
    public void setContactAddress(String contactAddress) {
        this.contactAddress = contactAddress;
    }
    @Column(name="occupation")
    public String getOccupation() {
        return occupation;
    }
    public void setOccupation(String occupation) {
        this.occupation = occupation;
    }
    @Column(name="residence_no")
    public String getResidenceNo() {
        return residenceNo;
    }
    public void setResidenceNo(String residenceNo) {
        this.residenceNo = residenceNo;
    }
    @Column(name="smoking")
    public String getSmoking() {
        return smoking;
    }
    public void setSmoking(String smoking) {
        this.smoking = smoking;
    }
    @Column(name="disease")
    public String getDisease() {
        return disease;
    }
    public void setDisease(String disease) {
        this.disease = disease;
    }
    @Column(name="weight")
    public String getWeight() {
        return weight;
    }
    public void setWeight(String weight) {
        this.weight = weight;
    }
    @Column(name="height")
    public String getHeight() {
        return height;
    }
    public void setHeight(String height) {
        this.height = height;
    }
    @Column(name="inspect_time")
    public String getInspectTime() {
        return inspectTime;
    }
    public void setInspectTime(String inspectTime) {
        this.inspectTime = inspectTime;
    }
    @Column(name="doctor_name")
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    @Column(name="item_name")
    public String getItemName() {
        return itemName;
    }
    public void setItemName(String itemName) {
        this.itemName = itemName;
    }
    @Column(name="final_quality")
    public String getFinalQuality() {
        return finalQuality;
    }
    public void setFinalQuality(String finalQuality) {
        this.finalQuality = finalQuality;
    }
    @Column(name="fvc_quality")
    public String getFvcQuality() {
        return fvcQuality;
    }
    public void setFvcQuality(String fvcQuality) {
        this.fvcQuality = fvcQuality;
    }
    @Column(name="fev1_quality")
    public String getFev1Quality() {
        return fev1Quality;
    }
    public void setFev1Quality(String fev1Quality) {
        this.fev1Quality = fev1Quality;
    }
    @Column(name="doctor_diag")
    public String getDoctorDiag() {
        return doctorDiag;
    }
    public void setDoctorDiag(String doctorDiag) {
        this.doctorDiag = doctorDiag;
    }
    @Column(name="ref_equations")
    public Integer getRefEquations() {
        return refEquations;
    }
    public void setRefEquations(Integer refEquations) {
        this.refEquations = refEquations;
    }
    @Column(name="pdf_report")
    public String getPdfReport() {
        return pdfReport;
    }
    public void setPdfReport(String pdfReport) {
        this.pdfReport = pdfReport;
    }
}

+ 145 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyCopdXeekLungDetailDO.java

@ -0,0 +1,145 @@
package com.yihu.jw.entity.iot.copdDevice;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by Bing on 2021/4/14.
 */
@Entity
@Table(name="wlyy_copd_xeek_lung_detail")
public class WlyyCopdXeekLungDetailDO extends UuidIdentityEntity {
    private String code;// 关联wlyy_copd_xeek_lung 的id
    private String deviceType;// String Y 设备类型 设备品牌
    private String deviceSN;// String Y 设备 SN 号 设备唯一
    private String parameter;//  Y 指标参数
    private String unit;// String Y 指标单位
    private String preValue;// String Y 预计值
    private String bestValue;// String Y 最佳值
    private String bestPre;// String Y 最佳值/预计值*100%
    private String lln;// String Y 预计值下限 LLN
    private String zScore;// String Y 得分
    private String test1Value;// String Y 实测 1
    private String test2Value;// String Y 实测 2
    private String test3Value;// String Y 实测 3
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Column(name="device_type")
    public String getDeviceType() {
        return deviceType;
    }
    public void setDeviceType(String deviceType) {
        this.deviceType = deviceType;
    }
    @Column(name="device_sn")
    public String getDeviceSN() {
        return deviceSN;
    }
    public void setDeviceSN(String deviceSN) {
        this.deviceSN = deviceSN;
    }
    @Column(name="parameter")
    public String getParameter() {
        return parameter;
    }
    public void setParameter(String parameter) {
        this.parameter = parameter;
    }
    @Column(name="unit")
    public String getUnit() {
        return unit;
    }
    public void setUnit(String unit) {
        this.unit = unit;
    }
    @Column(name="pre_value")
    public String getPreValue() {
        return preValue;
    }
    public void setPreValue(String preValue) {
        this.preValue = preValue;
    }
    @Column(name="best_value")
    public String getBestValue() {
        return bestValue;
    }
    public void setBestValue(String bestValue) {
        this.bestValue = bestValue;
    }
    @Column(name="best_pre")
    public String getBestPre() {
        return bestPre;
    }
    public void setBestPre(String bestPre) {
        this.bestPre = bestPre;
    }
    @Column(name="lln")
    public String getLln() {
        return lln;
    }
    public void setLln(String lln) {
        this.lln = lln;
    }
    @Column(name="z_score")
    public String getzScore() {
        return zScore;
    }
    public void setzScore(String zScore) {
        this.zScore = zScore;
    }
    @Column(name="test1_value")
    public String getTest1Value() {
        return test1Value;
    }
    public void setTest1Value(String test1Value) {
        this.test1Value = test1Value;
    }
    @Column(name="test2_value")
    public String getTest2Value() {
        return test2Value;
    }
    public void setTest2Value(String test2Value) {
        this.test2Value = test2Value;
    }
    @Column(name="test3_value")
    public String getTest3Value() {
        return test3Value;
    }
    public void setTest3Value(String test3Value) {
        this.test3Value = test3Value;
    }
}

+ 90 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/iot/copdDevice/WlyyXeekPatientDeviceDO.java

@ -0,0 +1,90 @@
package com.yihu.jw.entity.iot.copdDevice;
import com.yihu.jw.entity.IdEntity;
import com.yihu.jw.entity.UuidIdentityEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by yeshijie on 2021/4/15.
 */
@Entity
@Table(name="wlyy_xeek_patient_device")
public class WlyyXeekPatientDeviceDO extends IdEntity {
    private String deviceSn;//设备sn码
    private String name;//姓名
    private Integer sex;//性别
    private String birthday;//生日
    private String mobile;//手机
    private String idcard;//身份证
    private String address;//地区
    private String patient;//居民code
    @Column(name = "device_sn")
    public String getDeviceSn() {
        return deviceSn;
    }
    public void setDeviceSn(String deviceSn) {
        this.deviceSn = deviceSn;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Column(name = "sex")
    public Integer getSex() {
        return sex;
    }
    public void setSex(Integer sex) {
        this.sex = sex;
    }
    @Column(name = "birthday")
    public String getBirthday() {
        return birthday;
    }
    public void setBirthday(String birthday) {
        this.birthday = birthday;
    }
    @Column(name = "mobile")
    public String getMobile() {
        return mobile;
    }
    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
    @Column(name = "idcard")
    public String getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }
    @Column(name = "address")
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    @Column(name = "patient")
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
}

+ 11 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java

@ -126,7 +126,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
        ConsultTeamDo consultTeam = consultTeamDao.queryByRelationCode(assistanceDO.getId());
        if (consultTeam!=null){
            if (StringUtils.isNotBlank(assistanceDO.getSendMessage())){
                imUtill.sendTopicIM(patient,patientDO.getName(),consultTeam.getId(),"1",assistanceDO.getSendMessage(),null);
                imUtill.sendTopicIM(patient,patientDO.getName(),consultTeam.getConsult(),"1",assistanceDO.getSendMessage(),null);
            }
        }
        emergencyAssistanceDao.save(assistanceDO);
@ -356,9 +356,16 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
            return result;
        }
        if (consultTeam!=null){
            imUtill.sendTopicIM(patient,patientDO.getName(),consultTeam.getId(),"1",content,null);
            result.put(ResponseContant.resultFlag, ResponseContant.success);
            result.put(ResponseContant.resultMsg,"发送成功");
            String response = imUtill.sendTopicIM(patient,patientDO.getName(),consultTeam.getConsult(),"1",content,null);
            JSONObject jsonObject = JSONObject.parseObject(response);
            if (jsonObject.getInteger("status")==200){
                result.put(ResponseContant.resultFlag, ResponseContant.success);
                result.put(ResponseContant.resultMsg,"发送成功");
            }
            else {
                result.put(ResponseContant.resultFlag, ResponseContant.fail);
                result.put(ResponseContant.resultMsg,jsonObject.getString("message"));
            }
        }
        return result;
    }

+ 52 - 0
svr/svr-iot/src/main/java/com/yihu/iot/controller/monitorPlatform/CopdXeekDeviceController.java

@ -0,0 +1,52 @@
package com.yihu.iot.controller.monitorPlatform;
import com.yihu.iot.service.monitorPlatform.CopdXeekDeviceService;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
 * Created by Bing on 2021/4/14.
 * 赛客医疗设备
 */
@RestController
@RequestMapping(value = "doctor/xeekDevice", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Api(description = "赛客医疗设备")
public class CopdXeekDeviceController extends EnvelopRestEndpoint {
    @Autowired
    private CopdXeekDeviceService copdXeekDeviceService;
    @RequestMapping(value = "getXeekDeviceData",method = RequestMethod.GET)
    @ApiOperation(value = "塞克设备数据获取")
    public ObjEnvelop getXeekDeviceData(@ApiParam(name="deviceSN",value = "设备sn码")
                                @RequestParam(value = "deviceSN")String deviceSN,
                                    @ApiParam(name="reportType",value = "测试项目 1=吸气测试;2=呼气测试;6=MVV 测试;7=慢通气测试")
                                @RequestParam(value = "reportType")String reportType,
                                    @ApiParam(name="patient",value = "patient")
                                @RequestParam(value = "patient",required = false)String patient,
                                    @ApiParam(name="parameter",value = "数据指标 inCount,outCount")
                                @RequestParam(value = "parameter",required = false)String parameter,
                                    @ApiParam(name="time",value = "7 30 90")
                                @RequestParam(value = "time",required = false)String time,
                                    @ApiParam(name="begin",value = "开始时间 YYYY-MM-DD HH:MM:SS" ,defaultValue = "2021-04-14 00:00:00")
                                @RequestParam(value = "begin")String begin,
                                    @ApiParam(name="end",value = "结束时间 YYYY-MM-DD HH:MM:SS" ,defaultValue = "2021-04-14 23:59:59" )
                                @RequestParam(value = "end")String end)
    {
        try {
            return ObjEnvelop.getSuccess("查询成功",copdXeekDeviceService.getDeviceData(patient,deviceSN,reportType,parameter,time,begin,end));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败"+e.getMessage());
        }
    }
}

+ 29 - 0
svr/svr-iot/src/main/java/com/yihu/iot/controller/monitorPlatform/MonitorPlatformController.java

@ -6,6 +6,7 @@ import com.yihu.iot.service.company.IotCompanyService;
import com.yihu.iot.service.device.IotPatientDeviceService;
import com.yihu.iot.service.dict.IotSystemDictService;
import com.yihu.iot.service.equipment.IotEqtDetailService;
import com.yihu.iot.service.monitorPlatform.CopdXeekDeviceService;
import com.yihu.iot.service.monitorPlatform.MonitorPlatformService;
import com.yihu.iot.service.product.IotProductBaseInfoService;
import com.yihu.jw.entity.iot.device.IotPatientDeviceDO;
@ -13,6 +14,7 @@ import com.yihu.jw.entity.iot.dict.IotSystemDictDO;
import com.yihu.jw.restmodel.iot.device.IotPatientDeviceVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.iot.IotRequestMapping;
import io.swagger.annotations.Api;
@ -48,6 +50,8 @@ public class MonitorPlatformController extends EnvelopRestEndpoint {
    private IotEqtDetailService iotEqtDetailService;
    @Autowired
    private IotCompanyService iotCompanyService;
    @Autowired
    private CopdXeekDeviceService copdXeekDeviceService;
    @PostMapping(value = IotRequestMapping.PatientDevice.addPatientDevice)
@ -627,6 +631,31 @@ public class MonitorPlatformController extends EnvelopRestEndpoint {
        }
    }
    @RequestMapping(value = "getXeekDeviceData",method = RequestMethod.GET)
    @ApiOperation(value = "塞克设备数据获取")
    public ObjEnvelop getXeekDeviceData(@ApiParam(name="deviceSN",value = "设备sn码")
                                    @RequestParam(value = "deviceSN")String deviceSN,
                                    @ApiParam(name="reportType",value = "测试项目 1=吸气测试;2=呼气测试;6=MVV 测试;7=慢通气测试")
                                    @RequestParam(value = "reportType")String reportType,
                                    @ApiParam(name="patient",value = "patient")
                                    @RequestParam(value = "patient",required = false)String patient,
                                    @ApiParam(name="parameter",value = "数据指标 inCount,outCount")
                                    @RequestParam(value = "parameter",required = false)String parameter,
                                    @ApiParam(name="time",value = "7 30 90")
                                    @RequestParam(value = "time",required = false)String time,
                                    @ApiParam(name="begin",value = "开始时间 YYYY-MM-DD HH:MM:SS" ,defaultValue = "2021-04-14 00:00:00")
                                    @RequestParam(value = "begin")String begin,
                                    @ApiParam(name="end",value = "结束时间 YYYY-MM-DD HH:MM:SS" ,defaultValue = "2021-04-14 23:59:59" )
                                    @RequestParam(value = "end")String end)
    {
        try {
            return ObjEnvelop.getSuccess("查询成功",copdXeekDeviceService.getDeviceData(patient,deviceSN,reportType,parameter,time,begin,end));
        }catch (Exception e){
            e.printStackTrace();
            return ObjEnvelop.getError("查询失败"+e.getMessage());
        }
    }
    @ApiOperation("获取门诊记录/住院记录(基卫+APP)")
    @RequestMapping(value = "/event", produces = "application/json;charset=UTF-8", method = RequestMethod.GET)
    public String getAllEvent(@ApiParam(name = "patient", value = "患者代码", defaultValue = "")

+ 19 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdHuamiDeviceDao.java

@ -0,0 +1,19 @@
package com.yihu.iot.dao.platform;
import com.yihu.jw.entity.iot.copdDevice.WlyyCopdHuamiDeviceDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Bing on 2021/4/14.
 */
public interface WlyyCopdHuamiDeviceDao extends PagingAndSortingRepository<WlyyCopdHuamiDeviceDO, String>, JpaSpecificationExecutor<WlyyCopdHuamiDeviceDO> {
    @Query("select t from WlyyCopdHuamiDeviceDO t where t.patient = ?1")
    WlyyCopdHuamiDeviceDO selectDevice(String patient);
    WlyyCopdHuamiDeviceDO findByPatient(String patient);
}

+ 11 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdHuamiHealthScoreDao.java

@ -0,0 +1,11 @@
package com.yihu.iot.dao.platform;
import com.yihu.jw.entity.iot.copdDevice.WlyyCopdHuamiHealthScoreDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Bing on 2021/4/14.
 */
public interface WlyyCopdHuamiHealthScoreDao extends PagingAndSortingRepository<WlyyCopdHuamiHealthScoreDO, String>, JpaSpecificationExecutor<WlyyCopdHuamiHealthScoreDO> {
}

+ 12 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdHuamiHeartDao.java

@ -0,0 +1,12 @@
package com.yihu.iot.dao.platform;
import com.yihu.jw.entity.iot.copdDevice.WlyyCopdHuamiHeartDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Bing on 2021/4/14.
 */
public interface WlyyCopdHuamiHeartDao extends PagingAndSortingRepository<WlyyCopdHuamiHeartDO, String>, JpaSpecificationExecutor<WlyyCopdHuamiHeartDO> {
}

+ 12 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdHuamiPaiDao.java

@ -0,0 +1,12 @@
package com.yihu.iot.dao.platform;
import com.yihu.jw.entity.iot.copdDevice.WlyyCopdHuamiPaiDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Bing on 2021/4/14.
 */
public interface WlyyCopdHuamiPaiDao extends PagingAndSortingRepository<WlyyCopdHuamiPaiDO, String>, JpaSpecificationExecutor<WlyyCopdHuamiPaiDao> {
}

+ 12 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdHuamiRealtimeDateDao.java

@ -0,0 +1,12 @@
package com.yihu.iot.dao.platform;
import com.yihu.jw.entity.iot.copdDevice.WlyyCopdHuamiRealtimeDateDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Bing on 2021/4/14.
 */
public interface WlyyCopdHuamiRealtimeDateDao extends PagingAndSortingRepository<WlyyCopdHuamiRealtimeDateDO, String>, JpaSpecificationExecutor<WlyyCopdHuamiRealtimeDateDO> {
}

+ 11 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdHuamiRundateDao.java

@ -0,0 +1,11 @@
package com.yihu.iot.dao.platform;
import com.yihu.jw.entity.iot.copdDevice.WlyyCopdHuamiRundateDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Bing on 2021/4/14.
 */
public interface WlyyCopdHuamiRundateDao extends PagingAndSortingRepository<WlyyCopdHuamiRundateDO, String>, JpaSpecificationExecutor<WlyyCopdHuamiRundateDO> {
}

+ 12 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdHuamiSleepDao.java

@ -0,0 +1,12 @@
package com.yihu.iot.dao.platform;
import com.yihu.jw.entity.iot.copdDevice.WlyyCopdHuamiSleepDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Bing on 2021/4/14.
 */
public interface WlyyCopdHuamiSleepDao extends PagingAndSortingRepository<WlyyCopdHuamiSleepDO, String>, JpaSpecificationExecutor<WlyyCopdHuamiSleepDO> {
}

+ 12 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdXeekLungDao.java

@ -0,0 +1,12 @@
package com.yihu.iot.dao.platform;
import com.yihu.jw.entity.iot.copdDevice.WlyyCopdXeekLungDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Bing on 2021/4/14.
 */
public interface WlyyCopdXeekLungDao extends PagingAndSortingRepository<WlyyCopdXeekLungDO, String>, JpaSpecificationExecutor<WlyyCopdXeekLungDO> {
}

+ 12 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyCopdXeekLungDetailDao.java

@ -0,0 +1,12 @@
package com.yihu.iot.dao.platform;
import com.yihu.jw.entity.iot.copdDevice.WlyyCopdXeekLungDetailDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Bing on 2021/4/14.
 */
public interface WlyyCopdXeekLungDetailDao extends PagingAndSortingRepository<WlyyCopdXeekLungDetailDO, String>, JpaSpecificationExecutor<WlyyCopdXeekLungDetailDO> {
}

+ 20 - 0
svr/svr-iot/src/main/java/com/yihu/iot/dao/platform/WlyyXeekPatientDeviceDao.java

@ -0,0 +1,20 @@
package com.yihu.iot.dao.platform;
import com.yihu.jw.entity.iot.copdDevice.WlyyXeekPatientDeviceDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by yeshijie on 2021/4/15.
 */
public interface WlyyXeekPatientDeviceDao extends PagingAndSortingRepository<WlyyXeekPatientDeviceDO, Long>, JpaSpecificationExecutor<WlyyXeekPatientDeviceDO> {
    WlyyXeekPatientDeviceDO findByDeviceSnAndNameAndSexAndBirthday(String deviceSn,String name,Integer sex,String birthday);
    @Query("from WlyyXeekPatientDeviceDO c where c.patient is null)")
    List<WlyyXeekPatientDeviceDO> findNoPatient();
}

+ 8 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/analyzer/WlyyIotTzDict.java

@ -17,6 +17,7 @@ public class WlyyIotTzDict extends UuidIdentityEntity implements Serializable {
    @Column(name = "name")
    private String name;
    private Integer del;
    public String getCode() {
        return code;
@ -34,4 +35,11 @@ public class WlyyIotTzDict extends UuidIdentityEntity implements Serializable {
        this.name = name;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
}

+ 95 - 0
svr/svr-iot/src/main/java/com/yihu/iot/service/monitorPlatform/CopdXeekDeviceService.java

@ -0,0 +1,95 @@
package com.yihu.iot.service.monitorPlatform;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.yihu.iot.dao.platform.WlyyCopdXeekLungDao;
import com.yihu.iot.dao.platform.WlyyCopdXeekLungDetailDao;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * Created by Bing on 2021/4/14.
 *
 */
@Service
public class CopdXeekDeviceService  {
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private WlyyCopdXeekLungDetailDao lungDetailDao;
    @Autowired
    private WlyyCopdXeekLungDao lungDao;
    public JSONObject getDeviceData(String patient,String deviceSN, String reportType, String parameter, String time, String begin, String end){
        List<Map<String,Object>> detailList = new ArrayList<>();
        StringBuilder sql = new StringBuilder(" select de.*,dict.name,lu.inspect_time from xmiot.wlyy_copd_xeek_lung_detail de," +
                "xmiot.wlyy_copd_xeek_lung lu, xmiot.wlyy_iot_tz_dict dict  where  de.code = lu.id and dict.del=1 " +
                "and  dict.code='COPD_PARAMETER' and dict.value = de.parameter ");
        if (StringUtils.isNotBlank(patient)){
            sql.append(" and lu.patient='"+patient+"' ");
        }
        if (StringUtils.isNotBlank(deviceSN)){
            sql.append(" and lu.device_sn='"+deviceSN+"' ");
        }
        if (StringUtils.isNotBlank(reportType)){
            sql.append(" and lu.report_type='"+reportType+"' ");
        }
        if (StringUtils.isNotBlank(parameter)){
            sql.append(" and de.parameter='"+parameter+"' ");
        }
        if (StringUtils.isNotBlank(begin)){
            sql.append(" and lu.inspect_time>='"+begin+"' ");
        }
        if (StringUtils.isNotBlank(end)){
            sql.append(" and lu.inspect_time<='"+end+"' ");
        }
        sql.append(" order by de.parameter, lu.inspect_time asc ");
        detailList = jdbcTemplate.queryForList(sql.toString());
        StringBuilder sqlIn= new StringBuilder("select count(de.id) test1_value ,'次' unit,'吸气训练数据' name,'inCount' parameter from xmiot.wlyy_copd_xeek_lung_detail de,xmiot.wlyy_copd_xeek_lung lu," +
                  " xmiot.wlyy_iot_tz_dict dict  where  de.code = lu.id and dict.del=1 \n" +
                  "and  dict.code='COPD_PARAMETER' and dict.value = de.parameter and  de.parameter='MIP' GROUP BY LEFT(inspect_time,10) ");
        StringBuilder sqlOut= new StringBuilder("select count(de.id) test1_value ,'次' unit,'呼气训练数据' name,'outCount' parameter from xmiot.wlyy_copd_xeek_lung_detail de,xmiot.wlyy_copd_xeek_lung lu," +
                  " xmiot.wlyy_iot_tz_dict dict  where  de.code = lu.id and dict.del=1 \n" +
                  "and  dict.code='COPD_PARAMETER' and dict.value = de.parameter and  de.parameter='FVC'  GROUP BY LEFT(inspect_time,10)");
        sql = new StringBuilder("");
        if (StringUtils.isNotBlank(patient)){
            sql.append(" and lu.patient='"+patient+"' ");
        }
        if (StringUtils.isNotBlank(deviceSN)){
            sql.append(" and lu.device_sn='"+deviceSN+"' ");
        }
        if (StringUtils.isNotBlank(reportType)){
            sql.append(" and lu.report_type='"+reportType+"' ");
        }
        if (StringUtils.isNotBlank(begin)){
            sql.append(" and lu.inspect_time>='"+begin+"' ");
        }
        if (StringUtils.isNotBlank(end)){
            sql.append(" and lu.inspect_time<='"+end+"' ");
        }
        if ((StringUtils.isNotBlank(parameter)&&parameter.equals("inCount"))||StringUtils.isBlank(parameter)){//吸气训练次数 MIP
            List<Map<String,Object>> tmp = jdbcTemplate.queryForList(sqlIn.append(sql).toString());
            detailList.addAll(tmp);
        }
        if ((StringUtils.isNotBlank(parameter)&&parameter.equals("outCount"))||StringUtils.isBlank(parameter)){//呼气训练次数 FVC
            List<Map<String,Object>> tmp = jdbcTemplate.queryForList(sqlOut.append(sql).toString());
            detailList.addAll(tmp);
        }
        Map<String,List<Map<String,Object>>> filterMap  = detailList.stream().collect(Collectors.groupingBy(e -> e.get("parameter").toString()));
        String jsonStr = JSON.toJSONString(filterMap, SerializerFeature.WriteMapNullValue);
        return JSONObject.parseObject(jsonStr);
    }
}