Browse Source

Merge branch 'dev' of chinawu123/wlyy2.0 into dev

chinawu123 2 years ago
parent
commit
90637a2224
21 changed files with 1218 additions and 352 deletions
  1. 73 0
      common/common-entity/sql/sql记录
  2. 71 0
      common/common-entity/src/main/java/com/yihu/jw/entity/log/ZhaohuiDailyEmeEntity.java
  3. 78 107
      common/common-entity/src/main/java/com/yihu/jw/entity/log/ZhaohuiDailyEntity.java
  4. 158 0
      common/common-entity/src/main/java/com/yihu/jw/entity/log/ZhaohuiDailySleepEntity.java
  5. 88 0
      common/common-entity/src/main/java/com/yihu/jw/entity/log/ZhaohuiDailyVideoEntity.java
  6. 130 0
      common/common-entity/src/main/java/com/yihu/jw/entity/log/ZhaohuiDailyWatchEntity.java
  7. 13 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/message/ZhaohuiDailyDao.java
  8. 14 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/message/ZhaohuiDailyEmeDao.java
  9. 16 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/message/ZhaohuiDailySleepDao.java
  10. 17 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/message/ZhaohuiDailyVideoDao.java
  11. 13 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/message/ZhaohuiDailyWatchDao.java
  12. 27 6
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/message/PatientMessageEndpoint.java
  13. 184 106
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/PatientMessageService.java
  14. 7 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/config/AqgConfig.java
  15. 11 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/pushLog/ZhaohuiDailyEmeDao.java
  16. 11 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/pushLog/ZhaohuiDailySleepDao.java
  17. 11 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/pushLog/ZhaohuiDailyVideoDao.java
  18. 11 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/pushLog/ZhaohuiDailyWatchDao.java
  19. 3 6
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/event/ApplicationEvent.java
  20. 12 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/PatientDeviceService.java
  21. 270 127
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/message/ZhaohuiDailyService.java

+ 73 - 0
common/common-entity/sql/sql记录

@ -2296,3 +2296,76 @@ CREATE TABLE `base_urge_reminder_record` (
  KEY `index1` (`type`,`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='工单催促提醒记录';
-- 2022-11-14 wsl
CREATE TABLE `base_zhaohui_daily` (
  `id` int(50) NOT NULL AUTO_INCREMENT,
  `patient` varchar(50) DEFAULT NULL COMMENT '老人code',
  `patientName` varchar(50) DEFAULT NULL COMMENT '老人',
  `photo` varchar(50) DEFAULT NULL COMMENT '头像',
  `message` varchar(200) DEFAULT NULL COMMENT '总结消息',
  `service` int(2) DEFAULT NULL COMMENT '服务次数',
  `service_time` varchar(20) DEFAULT NULL COMMENT '最近服务时间',
  `service_name` varchar(20) DEFAULT NULL COMMENT '最近服务类型',
  `pad_time` varchar(20) DEFAULT NULL COMMENT 'pad使用时长',
  `pad_last_time` varchar(20) DEFAULT NULL COMMENT 'pad上一次时间',
  `pad_last_total_time` varchar(20) DEFAULT NULL COMMENT 'pad上一次时长',
  `create_time` datetime DEFAULT NULL COMMENT '统计时间',
  `family_code` varchar(50) DEFAULT NULL COMMENT '家属code',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报';
CREATE TABLE `base_zhaohui_daily_watch` (
  `id` int(50) NOT NULL AUTO_INCREMENT,
  `daily_id` varchar(50) NOT NULL COMMENT '朝晖日报id',
  `wear` INT(2) DEFAULT NULL COMMENT '是否佩戴 1 未佩戴 0 佩戴',
  `power` VARCHAR(20) DEFAULT NULL COMMENT '电量',
  `online` INT(2) DEFAULT NULL COMMENT '在线状态0 不在线 1在线',
  `heart` varchar(20) DEFAULT NULL COMMENT '心率',
  `hearts` varchar(500) DEFAULT NULL COMMENT '心率图',
  `steps` varchar(20) DEFAULT NULL COMMENT '步数',
  `serve_desc` varchar(20) DEFAULT NULL COMMENT '检测异常',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报-防走失检测';
CREATE TABLE `base_zhaohui_daily_video` (
  `id` int(50) NOT NULL AUTO_INCREMENT,
  `daily_id` varchar(50) NOT NULL COMMENT '朝晖日报id',
  `status` varchar(2) DEFAULT NULL COMMENT '状态',
  `device_sn` varchar(20) DEFAULT NULL COMMENT '设备SN码',
  `time` varchar(50) DEFAULT NULL COMMENT '时间',
  `serve_desc` varchar(20) DEFAULT NULL COMMENT '检测异常',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报-防跌倒监测';
CREATE TABLE `base_zhaohui_daily_sleep` (
  `id` int(50) NOT NULL AUTO_INCREMENT,
  `daily_id` varchar(50) NOT NULL COMMENT '朝晖日报id',
  `status` varchar(2) DEFAULT NULL COMMENT '是否离线',
  `get_up_time` varchar(20) DEFAULT NULL COMMENT '起床时间',
  `yest_get_up_time` varchar(50) DEFAULT NULL COMMENT '昨日睡眠时间',
  `get_up_num` varchar(10) DEFAULT NULL COMMENT '起夜次数',
  `breathe` varchar(50) DEFAULT NULL COMMENT '呼吸频率',
  `heart` varchar(50) DEFAULT NULL COMMENT '平均心率',
  `breathe_curve` varchar(500) DEFAULT NULL COMMENT '呼吸曲线',
  `heart_curve` varchar(500) DEFAULT NULL COMMENT '心率曲线',
  `serve_desc` varchar(20) DEFAULT NULL COMMENT '检测异常',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报-睡眠监测';
CREATE TABLE `base_zhaohui_daily_eme` (
  `id` int(50) NOT NULL AUTO_INCREMENT,
  `daily_id` varchar(50) NOT NULL COMMENT '朝晖日报id',
  `message` varchar(20) DEFAULT NULL COMMENT '消息',
  `online` int(2) DEFAULT NULL COMMENT '在线状态0 不在线 1在线',
  `order_id` varchar(20) DEFAULT NULL COMMENT '工单id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报-紧急呼叫';

+ 71 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/log/ZhaohuiDailyEmeEntity.java

@ -0,0 +1,71 @@
package com.yihu.jw.entity.log;
import com.yihu.jw.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by wsl on 2022/11/15
 */
@Entity
@Table(name = "base_zhaohui_daily_eme")
public class ZhaohuiDailyEmeEntity extends IdEntity {
    /**
     * 朝晖日报id
     */
    private String dailyId;
    /**
     * 消息
     */
    private String message;
    /**
     * 在线状态0 不在线 1在线
     */
    private Integer online;
    /**
     * 工单id
     */
    private String orderId;
    @Column(name = "daily_id")
    public String getDailyId() {
        return dailyId;
    }
    public void setDailyId(String dailyId) {
        this.dailyId = dailyId;
    }
    @Column(name = "message")
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
    @Column(name = "online")
    public Integer getOnline() {
        return online;
    }
    public void setOnline(Integer online) {
        this.online = online;
    }
    @Column(name = "order_id")
    public String getOrderId() {
        return orderId;
    }
    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }
}

+ 78 - 107
common/common-entity/src/main/java/com/yihu/jw/entity/log/ZhaohuiDailyEntity.java

@ -1,6 +1,5 @@
package com.yihu.jw.entity.log;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.IdEntity;
import javax.persistence.Column;
@ -16,99 +15,82 @@ import java.util.Date;
@Table(name = "base_zhaohui_daily")
public class ZhaohuiDailyEntity extends IdEntity {
    /**
     * name
     */
    private String name;
    /**
     * patient
     */
    private String patient;
    /**
     * 老人
     */
    private String oldName;
    private String patientName;
    /**
     * 老人code
     * 头像
     */
    private String oldPatient;
    private String photo;
    /**
     * 烟感
     * 总结消息
     */
    private String ygTotal;
    private String message;
    /**
     * 气感
     * 服务次数
     */
    private String qgTotal;
    private Integer service;
    /**
     * 手表
     * 最近服务时间
     */
    private String sbTotal;
    private String serviceTime;
    /**
     * 拐杖
     * 最近服务类型
     */
    private String gzTotal;
    private String serviceName;
    /**
     * 睡眠带
     * pad使用时长
     */
    private String smdTotal;
    private String padTime;
    /**
     * 紧急
     *  预警次数
     */
    private String emeTotal;
    private Integer emeNum;
    /**
     * 安防
     * pad上一次时间
     */
    private String secTotal;
    private String padLastTime;
    /**
     * 生活
     * pad上一次时长
     */
    private String liftTotal;
    private String padLastTotalTime;
    /**
     * 统计时间
     */
    private Date createTime;
    private String familyCode;
    private String deviceCode;
    private String total;
    @Column(name = "total")
    public String getTotal() {
        return total;
    @Column(name = "eme_num")
    public Integer getEmeNum() {
        return emeNum;
    }
    public void setTotal(String total) {
        this.total = total;
    public void setEmeNum(Integer emeNum) {
        this.emeNum = emeNum;
    }
    @Column(name = "device_code")
    public String getDeviceCode() {
        return deviceCode;
    @Column(name = "family_code")
    public String getFamilyCode() {
        return familyCode;
    }
    public void setDeviceCode(String deviceCode) {
        this.deviceCode = deviceCode;
    }
    @Column(name = "name")
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    public void setFamilyCode(String familyCode) {
        this.familyCode = familyCode;
    }
    @Column(name = "patient")
@ -120,98 +102,87 @@ public class ZhaohuiDailyEntity extends IdEntity {
        this.patient = patient;
    }
    @Column(name = "old_name")
    public String getOldName() {
        return oldName;
    @Column(name = "patient_name")
    public String getPatientName() {
        return patientName;
    }
    public void setOldName(String oldName) {
        this.oldName = oldName;
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    @Column(name = "old_patient")
    public String getOldPatient() {
        return oldPatient;
    @Column(name = "photo")
    public String getPhoto() {
        return photo;
    }
    public void setOldPatient(String oldPatient) {
        this.oldPatient = oldPatient;
    public void setPhoto(String photo) {
        this.photo = photo;
    }
    @Column(name = "yg_total")
    public String getYgTotal() {
        return ygTotal;
    }
    public void setYgTotal(String ygTotal) {
        this.ygTotal = ygTotal;
    }
    @Column(name = "qg_total")
    public String getQgTotal() {
        return qgTotal;
    @Column(name = "message")
    public String getMessage() {
        return message;
    }
    public void setQgTotal(String qgTotal) {
        this.qgTotal = qgTotal;
    public void setMessage(String message) {
        this.message = message;
    }
    @Column(name = "sb_total")
    public String getSbTotal() {
        return sbTotal;
    @Column(name = "service")
    public Integer getService() {
        return service;
    }
    public void setSbTotal(String sbTotal) {
        this.sbTotal = sbTotal;
    public void setService(Integer service) {
        this.service = service;
    }
    @Column(name = "gz_total")
    public String getGzTotal() {
        return gzTotal;
    @Column(name = "service_time")
    public String getServiceTime() {
        return serviceTime;
    }
    public void setGzTotal(String gzTotal) {
        this.gzTotal = gzTotal;
    public void setServiceTime(String serviceTime) {
        this.serviceTime = serviceTime;
    }
    @Column(name = "smd_total")
    public String getSmdTotal() {
        return smdTotal;
    @Column(name = "service_name")
    public String getServiceName() {
        return serviceName;
    }
    public void setSmdTotal(String smdTotal) {
        this.smdTotal = smdTotal;
    public void setServiceName(String serviceName) {
        this.serviceName = serviceName;
    }
    @Column(name = "eme_total")
    public String getEmeTotal() {
        return emeTotal;
    @Column(name = "pad_time")
    public String getPadTime() {
        return padTime;
    }
    public void setEmeTotal(String emeTotal) {
        this.emeTotal = emeTotal;
    public void setPadTime(String padTime) {
        this.padTime = padTime;
    }
    @Column(name = "sec_total")
    public String getSecTotal() {
        return secTotal;
    @Column(name = "pad_last_time")
    public String getPadLastTime() {
        return padLastTime;
    }
    public void setSecTotal(String secTotal) {
        this.secTotal = secTotal;
    public void setPadLastTime(String padLastTime) {
        this.padLastTime = padLastTime;
    }
    @Column(name = "lift_total")
    public String getLiftTotal() {
        return liftTotal;
    @Column(name = "pad_last_total_time")
    public String getPadLastTotalTime() {
        return padLastTotalTime;
    }
    public void setLiftTotal(String liftTotal) {
        this.liftTotal = liftTotal;
    public void setPadLastTotalTime(String padLastTotalTime) {
        this.padLastTotalTime = padLastTotalTime;
    }
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Column(name = "create_time")
    public Date getCreateTime() {
        return createTime;

+ 158 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/log/ZhaohuiDailySleepEntity.java

@ -0,0 +1,158 @@
package com.yihu.jw.entity.log;
import com.yihu.jw.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by wsl on 2022/11/15
 */
@Entity
@Table(name = "base_zhaohui_daily_sleep")
public class ZhaohuiDailySleepEntity extends IdEntity {
    /**
     * 朝晖日报id
     */
    private String dailyId;
    /**
     * 是否离线
     */
    private String status;
    /**
     * 起床时间
     */
    private String getUpTime;
    /**
     * 昨日睡眠时间
     */
    private String yestGetUpTime;
    /**
     * 起夜次数
     */
    private String getUpNum;
    /**
     * 呼吸频率
     */
    private String breathe;
    /**
     * 平均心率
     */
    private String heart;
    /**
     * 呼吸曲线
     */
    private String breatheCurve;
    /**
     * 心率曲线
     */
    private String heartCurve;
    /**
     * 检测异常
     */
    private String serveDesc;
    @Column(name = "daily_id")
    public String getDailyId() {
        return dailyId;
    }
    public void setDailyId(String dailyId) {
        this.dailyId = dailyId;
    }
    @Column(name = "status")
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    @Column(name = "get_up_time")
    public String getGetUpTime() {
        return getUpTime;
    }
    public void setGetUpTime(String getUpTime) {
        this.getUpTime = getUpTime;
    }
    @Column(name = "yest_get_up_time")
    public String getYestGetUpTime() {
        return yestGetUpTime;
    }
    public void setYestGetUpTime(String yestGetUpTime) {
        this.yestGetUpTime = yestGetUpTime;
    }
    @Column(name = "get_up_num")
    public String getGetUpNum() {
        return getUpNum;
    }
    public void setGetUpNum(String getUpNum) {
        this.getUpNum = getUpNum;
    }
    @Column(name = "breathe")
    public String getBreathe() {
        return breathe;
    }
    public void setBreathe(String breathe) {
        this.breathe = breathe;
    }
    @Column(name = "heart")
    public String getHeart() {
        return heart;
    }
    public void setHeart(String heart) {
        this.heart = heart;
    }
    @Column(name = "breathe_curve")
    public String getBreatheCurve() {
        return breatheCurve;
    }
    public void setBreatheCurve(String breatheCurve) {
        this.breatheCurve = breatheCurve;
    }
    @Column(name = "heart_curve")
    public String getHeartCurve() {
        return heartCurve;
    }
    public void setHeartCurve(String heartCurve) {
        this.heartCurve = heartCurve;
    }
    @Column(name = "serve_desc")
    public String getServeDesc() {
        return serveDesc;
    }
    public void setServeDesc(String serveDesc) {
        this.serveDesc = serveDesc;
    }
}

+ 88 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/log/ZhaohuiDailyVideoEntity.java

@ -0,0 +1,88 @@
package com.yihu.jw.entity.log;
import com.yihu.jw.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by wsl on 2022/11/14
 */
@Entity
@Table(name = "base_zhaohui_daily_video")
public class ZhaohuiDailyVideoEntity extends IdEntity {
    /**
     * 朝晖日报id
     */
    private String dailyId;
    /**
     * 状态
     */
    private String status;
    /**
     * 设备sn码
     */
    private String deviceSn;
    /**
     * 时间
     */
    private String time;
    /**
     * 检测异常
     */
    private String serveDesc;
    @Column(name = "daily_id")
    public String getDailyId() {
        return dailyId;
    }
    public void setDailyId(String dailyId) {
        this.dailyId = dailyId;
    }
    @Column(name = "status")
    public String getStatus() {
        return status;
    }
    public void setStatus(String status) {
        this.status = status;
    }
    @Column(name = "device_sn")
    public String getDeviceSn() {
        return deviceSn;
    }
    public void setDeviceSn(String deviceSn) {
        this.deviceSn = deviceSn;
    }
    @Column(name = "time")
    public String getTime() {
        return time;
    }
    public void setTime(String time) {
        this.time = time;
    }
    @Column(name = "serve_desc")
    public String getServeDesc() {
        return serveDesc;
    }
    public void setServeDesc(String serveDesc) {
        this.serveDesc = serveDesc;
    }
}

+ 130 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/log/ZhaohuiDailyWatchEntity.java

@ -0,0 +1,130 @@
package com.yihu.jw.entity.log;
import com.yihu.jw.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 * Created by wsl on 2022/11/14
 */
@Entity
@Table(name = "base_zhaohui_daily_watch")
public class ZhaohuiDailyWatchEntity extends IdEntity {
    /**
     * 朝晖日报id
     */
    private String dailyId;
    /**
     * 是否佩戴 1 未佩戴 0 佩戴
     */
    private Integer wear;
    /**
     * 电量
     */
    private String power;
    /**
     * 在线状态0 不在线 1在线
     */
    private Integer online;
    /**
     * 心率
     */
    private String heart;
    /**
     * 心率图
     */
    private String hearts;
    /**
     * 步数
     */
    private String steps;
    /**
     * 检测异常
     */
    private String serveDesc;
    @Column(name = "daily_id")
    public String getDailyId() {
        return dailyId;
    }
    public void setDailyId(String dailyId) {
        this.dailyId = dailyId;
    }
    @Column(name = "wear")
    public Integer getWear() {
        return wear;
    }
    public void setWear(Integer wear) {
        this.wear = wear;
    }
    @Column(name = "power")
    public String getPower() {
        return power;
    }
    public void setPower(String power) {
        this.power = power;
    }
    @Column(name = "online")
    public Integer getOnline() {
        return online;
    }
    public void setOnline(Integer online) {
        this.online = online;
    }
    @Column(name = "heart")
    public String getHeart() {
        return heart;
    }
    public void setHeart(String heart) {
        this.heart = heart;
    }
    @Column(name = "hearts")
    public String getHearts() {
        return hearts;
    }
    public void setHearts(String hearts) {
        this.hearts = hearts;
    }
    @Column(name = "steps")
    public String getSteps() {
        return steps;
    }
    public void setSteps(String steps) {
        this.steps = steps;
    }
    @Column(name = "serve_desc")
    public String getServeDesc() {
        return serveDesc;
    }
    public void setServeDesc(String serveDesc) {
        this.serveDesc = serveDesc;
    }
}

+ 13 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/message/ZhaohuiDailyDao.java

@ -0,0 +1,13 @@
package com.yihu.jw.care.dao.message;
import com.yihu.jw.entity.log.ZhaohuiDailyEntity;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by wsl on 2022/10/25
 */
public interface ZhaohuiDailyDao extends PagingAndSortingRepository<ZhaohuiDailyEntity, String>, JpaSpecificationExecutor<ZhaohuiDailyEntity> {
    ZhaohuiDailyEntity findById(Long id);
}

+ 14 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/message/ZhaohuiDailyEmeDao.java

@ -0,0 +1,14 @@
package com.yihu.jw.care.dao.message;
import com.yihu.jw.entity.log.ZhaohuiDailyEmeEntity;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by wsl on 2022/11/15
 */
public interface ZhaohuiDailyEmeDao extends PagingAndSortingRepository<ZhaohuiDailyEmeEntity, String>, JpaSpecificationExecutor<ZhaohuiDailyEmeEntity> {
    ZhaohuiDailyEmeEntity findByDailyId(String dailyId);
}

+ 16 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/message/ZhaohuiDailySleepDao.java

@ -0,0 +1,16 @@
package com.yihu.jw.care.dao.message;
import com.yihu.jw.entity.log.ZhaohuiDailySleepEntity;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by wsl on 2022/11/15
 */
public interface ZhaohuiDailySleepDao extends PagingAndSortingRepository<ZhaohuiDailySleepEntity, String>, JpaSpecificationExecutor<ZhaohuiDailySleepEntity> {
    ZhaohuiDailySleepEntity findByDailyId(String dailyid);
}

+ 17 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/message/ZhaohuiDailyVideoDao.java

@ -0,0 +1,17 @@
package com.yihu.jw.care.dao.message;
import com.yihu.jw.entity.log.ZhaohuiDailyVideoEntity;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by wsl on 2022/11/14
 */
public interface ZhaohuiDailyVideoDao extends PagingAndSortingRepository<ZhaohuiDailyVideoEntity, String>, JpaSpecificationExecutor<ZhaohuiDailyVideoEntity> {
    List<ZhaohuiDailyVideoEntity> findByDailyId(String dailyId);
}

+ 13 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/message/ZhaohuiDailyWatchDao.java

@ -0,0 +1,13 @@
package com.yihu.jw.care.dao.message;
import com.yihu.jw.entity.log.ZhaohuiDailyWatchEntity;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by wsl on 2022/11/14
 */
public interface ZhaohuiDailyWatchDao extends PagingAndSortingRepository<ZhaohuiDailyWatchEntity, String>, JpaSpecificationExecutor<ZhaohuiDailyWatchEntity> {
    ZhaohuiDailyWatchEntity findByDailyId(String dailyId);
}

+ 27 - 6
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/message/PatientMessageEndpoint.java

@ -238,18 +238,39 @@ public class PatientMessageEndpoint extends EnvelopRestEndpoint {
    }
    @GetMapping(value = "/getZHaohuiRiBaoInfo")
    @ApiOperation(value = "获取朝晖日报")
    public ObjEnvelop getZHaohuiRiBaoInfo(
            @ApiParam(name = "dailyId", required = false)
            @RequestParam(value = "dailyId", required = false) String dailyId,
            @ApiParam(name = "patient", required = true)
            @RequestParam(value = "patient") String patient
    ) {
        try {
            JSONObject zHaohuiRiBaoInfo = patientMessageService.getZHaohuiRiBaoInfo(patient, dailyId);
            System.out.println(zHaohuiRiBaoInfo.toString());
            return ObjEnvelop.getSuccess("获取成功", zHaohuiRiBaoInfo);
        } catch (Exception e) {
            e.printStackTrace();
            return failedObjEnvelopException2(e);
        }
    }
    @GetMapping(value = "/getZhaoHuiRiBaoList")
    @ApiOperation(value = "获取朝晖日报")
    public ListEnvelop getZhaoHuiRiBaoList(@ApiParam(name = "startTime", required = false)
                                           @RequestParam(value = "startTime") String startTime,
                                           @ApiParam(name = "endTime", required = false)
                                           @RequestParam(value = "endTime") String endTime,
                                           @ApiParam(name = "patient", required = true)
                                           @RequestParam(value = "patient") String patient
                                          @RequestParam(value = "startTime",required = false) String startTime,
                                          @ApiParam(name = "endTime", required = false)
                                          @RequestParam(value = "endTime",required = false) String endTime,
                                          @ApiParam(name = "patient", required = true)
                                          @RequestParam(value = "patient") String patient,
                                          @ApiParam(name = "dailyId", required = false)
                                          @RequestParam(value = "dailyId",required = false) String dailyId
    ) {
        try {
            return success("获取成功",200,patientMessageService.getZhaoHuiRiBaoList(startTime, endTime, patient));
            return success("获取成功", 200, patientMessageService.getZhaoHuiRiBaoList(startTime, endTime, patient));
        } catch (Exception e) {
            e.printStackTrace();
            return failedListEnvelopException2(e);

+ 184 - 106
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/PatientMessageService.java

@ -9,11 +9,11 @@ import com.yihu.jw.care.dao.device.PatientSafeAreaDao;
import com.yihu.jw.care.dao.log.BaseConsultWaresManageDao;
import com.yihu.jw.care.dao.log.BaseFamilyPushOnOffDao;
import com.yihu.jw.care.dao.log.BasePatientPadPushOnOffDao;
import com.yihu.jw.care.dao.message.OrgNoticeDao;
import com.yihu.jw.care.dao.message.UserNoticeDao;
import com.yihu.jw.care.dao.message.*;
import com.yihu.jw.care.dao.security.BaseEmergencyWarnLogDao;
import com.yihu.jw.care.service.assistance.EmergencyAssistanceService;
import com.yihu.jw.care.service.device.PatientDeviceService;
import com.yihu.jw.care.service.device.YsDeviceService;
import com.yihu.jw.entity.base.notice.UserNoticeDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.device.PatientSafeAreaDO;
@ -22,8 +22,7 @@ import com.yihu.jw.entity.care.securitymonitoring.BaseEmergencyWarnLogDO;
import com.yihu.jw.entity.child.BaseChildManage;
import com.yihu.jw.entity.child.BaseConsultWaresManageEntity;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.entity.log.BaseFamilyPushOnOffEntity;
import com.yihu.jw.entity.log.ZhaohuiDailyEntity;
import com.yihu.jw.entity.log.*;
import com.yihu.jw.hospital.message.dao.SystemMessageDao;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.ResponseContant;
@ -74,38 +73,38 @@ public class PatientMessageService {
    private BaseFamilyPushOnOffDao baseFamilyPushOnOffDao;
    public PageEnvelop getNoticeList(String patient,String beginTime, String endTime, int page, int size){
        page = page>0?page-1:0;
    public PageEnvelop getNoticeList(String patient, String beginTime, String endTime, int page, int size) {
        page = page > 0 ? page - 1 : 0;
        String sqlCount = "select count(t.id) from base_org_notice t INNER JOIN base_user_notice usno on t.id = CONVERT(usno.notice_id USING utf8) and usno.del=1 " +
                "where t.del=1 ";
        String sql = "select t.id,t.title,t.org_code orgCode,t.org_name orgName,DATE_FORMAT(t.notice_time,'%Y-%m-%d %H:%i:%S') noticeTime, " +
                "t.content,t.img,usno.is_read isRead from base_org_notice t INNER JOIN base_user_notice usno on t.id = CONVERT(usno.notice_id USING utf8) " +
                "and usno.del=1 where t.del=1 ";
        String sqlCondition ="";
        if (StringUtils.isNotBlank(patient)){
            sqlCondition += " and usno.user_id = '"+patient+"' ";
        String sqlCondition = "";
        if (StringUtils.isNotBlank(patient)) {
            sqlCondition += " and usno.user_id = '" + patient + "' ";
        }
        if (StringUtils.isNotBlank(beginTime)){
            sqlCondition += " and t.notice_time >= '"+beginTime+"' ";
        if (StringUtils.isNotBlank(beginTime)) {
            sqlCondition += " and t.notice_time >= '" + beginTime + "' ";
        }
        if (StringUtils.isNotBlank(endTime)){
            sqlCondition += " and t.notice_time <= '"+endTime+"' ";
        if (StringUtils.isNotBlank(endTime)) {
            sqlCondition += " and t.notice_time <= '" + endTime + "' ";
        }
        String time = DateUtil.getStringDate();
        sqlCondition += " and t.notice_time <= '"+time+"' ";
        sqlCondition += " and t.notice_time <= '" + time + "' ";
        Long count = jdbcTemplate.queryForObject(sqlCount+sqlCondition,Long.class);
        sqlCondition += " order by t.notice_time desc limit "+page*size+","+size;
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql+sqlCondition);
        return PageEnvelop.getSuccessListWithPage("查询成功",list,page,size,count);
        Long count = jdbcTemplate.queryForObject(sqlCount + sqlCondition, Long.class);
        sqlCondition += " order by t.notice_time desc limit " + page * size + "," + size;
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql + sqlCondition);
        return PageEnvelop.getSuccessListWithPage("查询成功", list, page, size, count);
    }
    public OrgNoticeDO orgNoticeDetail(String noticeId,String patient){
        OrgNoticeDO orgNoticeDO =  orgNoticeDao.findOne(noticeId);
        if (orgNoticeDO!=null){
            UserNoticeDO userNoticeDO =  userNoticeDao.findByNoticeIdAndUserIdAndDel(orgNoticeDO.getId(),patient,1);
            if (userNoticeDO!=null){
    public OrgNoticeDO orgNoticeDetail(String noticeId, String patient) {
        OrgNoticeDO orgNoticeDO = orgNoticeDao.findOne(noticeId);
        if (orgNoticeDO != null) {
            UserNoticeDO userNoticeDO = userNoticeDao.findByNoticeIdAndUserIdAndDel(orgNoticeDO.getId(), patient, 1);
            if (userNoticeDO != null) {
                userNoticeDO.setIsRead(1);
                userNoticeDao.save(userNoticeDO);
            }
@ -114,79 +113,75 @@ public class PatientMessageService {
    }
    /**
     *50 紧急预警系统消息
     *
     * 50 紧急预警系统消息
     */
    public List<Map<String,Object>> getSystemMessage(String patient,String agent){
        patient = "'"+patient+"'";
        if (StringUtils.isNotBlank(agent)){
            patient +=",'"+agent+"'";
    public List<Map<String, Object>> getSystemMessage(String patient, String agent) {
        patient = "'" + patient + "'";
        if (StringUtils.isNotBlank(agent)) {
            patient += ",'" + agent + "'";
        }
        String sql = " select A.*,B.notRead from " +
                "(select  count(1) as 'all',type,DATE_FORMAT(MAX(create_time),'%Y-%m-%d %H:%i:%S') create_time " +
                "from base_system_message where receiver in("+patient+") and del=1  GROUP BY type ORDER BY create_time desc)A " +
                "from base_system_message where receiver in(" + patient + ") and del=1  GROUP BY type ORDER BY create_time desc)A " +
                "LEFT JOIN (select count(1) notRead,type " +
                "from base_system_message where receiver in("+patient+") and (is_read=0 or is_read is null ) and del=1  GROUP BY type)B on A.type = B.type " +
                "from base_system_message where receiver in(" + patient + ") and (is_read=0 or is_read is null ) and del=1  GROUP BY type)B on A.type = B.type " +
                "ORDER BY A.create_time desc ";
        return jdbcTemplate.queryForList(sql);
    }
    /**
     *
     * @param patient
     * @param type
     * type=50,code:20紧急救助 22安防监护
     * type=41,code:1 生日祝福
     * type=42,code与体征类型对应 体征设备数据
     *
     * @param type    type=50,code:20紧急救助 22安防监护
     *                type=41,code:1 生日祝福
     *                type=42,code与体征类型对应 体征设备数据
     * @return
     */
    public List<Map<String,Object>> getSystemMessageList(String patient,String type,String isRead,String agent){
        patient = "'"+patient+"'";
        if (StringUtils.isNotBlank(agent)){
            patient +=",'"+agent+"'";
    public List<Map<String, Object>> getSystemMessageList(String patient, String type, String isRead, String agent) {
        patient = "'" + patient + "'";
        if (StringUtils.isNotBlank(agent)) {
            patient += ",'" + agent + "'";
        }
        String typeIn = " '"+type.replace(",","','")+"' ";
        String typeIn = " '" + type.replace(",", "','") + "' ";
        String sql = " select id,title,type,relation_code,sender,content,sender_name,is_read,code,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') create_time,data " +
                "from base_system_message where receiver in ("+patient+") and del=1 and type in ("+typeIn+" )  " ;
        if (StringUtils.isNotBlank(isRead)){
            if ("1".equals(isRead)){
                "from base_system_message where receiver in (" + patient + ") and del=1 and type in (" + typeIn + " )  ";
        if (StringUtils.isNotBlank(isRead)) {
            if ("1".equals(isRead)) {
                sql += " and is_read = '1'";
            }else {
            } else {
                sql += " and ( is_read = '0' or is_read is null ) ";
            }
        }
         sql +=  "ORDER BY create_time desc";
        sql += "ORDER BY create_time desc";
        return jdbcTemplate.queryForList(sql);
    }
    //获取天气
    public JSONObject envMessage(){
    public JSONObject envMessage() {
        return emergencyAssistanceService.getBaiduWeather();
    }
    public List<Map<String,Object>> getSystemMessageListPad(String patient,String type){
    public List<Map<String, Object>> getSystemMessageListPad(String patient, String type) {
        if (!StringUtils.isNotBlank(type)) {
            type = "41,42,991,992,993,994,995,996,999";
        }
        String sql = "SELECT id,type,title,sender_name,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') create_time,is_read,data,content,audio_url as audioUrl " +
                " FROM base_system_message WHERE type IN ("+type+") and receiver = '"+patient+"'" +
                " FROM base_system_message WHERE type IN (" + type + ") and receiver = '" + patient + "'" +
                " AND del = 1  ORDER BY create_time DESC ";
        return  jdbcTemplate.queryForList(sql);
        return jdbcTemplate.queryForList(sql);
    }
    public void updateMessageRead(String messageId){
    public void updateMessageRead(String messageId) {
        SystemMessageDO messageDO = systemMessageDao.findOne(messageId);
        messageDO.setIsRead("1");
        messageDO.setOver("1");
        systemMessageDao.save(messageDO);
        if ("50" .equals(messageDO.getType())){
        if ("50".equals(messageDO.getType())) {
            BasePatientDO patientDO = patientDao.findById(messageDO.getReceiver());
            if (null!=patientDO){
            if (null != patientDO) {
                BaseEmergencyWarnLogDO logDO = new BaseEmergencyWarnLogDO();
                logDO.setUserCode(patientDO.getId());
                logDO.setUserName(patientDO.getName());
@ -199,46 +194,45 @@ public class PatientMessageService {
        }
    }
    public void delMessageRead(String msgId){
    public void delMessageRead(String msgId) {
        SystemMessageDO systemMessageDO = systemMessageDao.findOne(msgId);
        if (systemMessageDO!=null){
        if (systemMessageDO != null) {
            systemMessageDO.setDel("0");
            systemMessageDao.save(systemMessageDO);
        }
    }
    /**
     *
     * @param msgId
     * @param safe_area
     */
    @Transactional(rollbackFor =Exception.class )
    public JSONObject ConfirmFences(String msgId,String safe_area){
    @Transactional(rollbackFor = Exception.class)
    public JSONObject ConfirmFences(String msgId, String safe_area) {
        JSONObject result = new JSONObject();
        SystemMessageDO systemMessageDO = systemMessageDao.findOne(msgId);
        if ("1".equals(systemMessageDO.getData())){
            result.put(ResponseContant.resultFlag,ResponseContant.fail);
            result.put(ResponseContant.resultMsg,"已有家属确认管理,无需再次确认!");
        if ("1".equals(systemMessageDO.getData())) {
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg, "已有家属确认管理,无需再次确认!");
            return result;
        }
        List<PatientSafeAreaDO> patientSafeAreaDOs = patientSafeAreaDao.findByPatient2(systemMessageDO.getRelationCode());
        PatientSafeAreaDO patientSafeAreaDO = null;
        if (patientSafeAreaDOs.size()>0){
        if (patientSafeAreaDOs.size() > 0) {
            patientSafeAreaDO = patientSafeAreaDOs.get(0);
        }else {
            result.put(ResponseContant.resultFlag,ResponseContant.fail);
            result.put(ResponseContant.resultMsg,"居民未绑定防走失设备!");
        } else {
            result.put(ResponseContant.resultFlag, ResponseContant.fail);
            result.put(ResponseContant.resultMsg, "居民未绑定防走失设备!");
            return result;
        }
        if (StringUtils.isNotBlank(safe_area)&&null != patientSafeAreaDO){
        if (StringUtils.isNotBlank(safe_area) && null != patientSafeAreaDO) {
            patientSafeAreaDO.setSafeAreaGz(safe_area);
        }
        //更新围栏
        Integer successFlag = patientDeviceService.updatePatientSafeArea(systemMessageDO.getRelationCode(),patientSafeAreaDO.getSafeAreaGz());
        Integer successFlag = patientDeviceService.updatePatientSafeArea(systemMessageDO.getRelationCode(), patientSafeAreaDO.getSafeAreaGz());
        patientSafeAreaDO.setManageStatus(1);
        patientSafeAreaDO.setSuccessFlag(successFlag);
@ -246,23 +240,23 @@ public class PatientMessageService {
        //修改数据
        patientSafeAreaConfirmDao.manageByPatient(patientSafeAreaDO.getPatient());
        systemMessageDao.readByTypeAndRelationCode("44",patientSafeAreaDO.getPatient(),"1");
        result.put(ResponseContant.resultFlag,ResponseContant.success);
        result.put(ResponseContant.resultMsg,"已确认");
        systemMessageDao.readByTypeAndRelationCode("44", patientSafeAreaDO.getPatient(), "1");
        result.put(ResponseContant.resultFlag, ResponseContant.success);
        result.put(ResponseContant.resultMsg, "已确认");
        return result;
    }
    //pad端 获取居民推送开关
    public List<Map<String, Object>> patientPadPushOnOff(String patient){
        String sql = "select patient,type,type_name,on_off from base_patient_pad_pushonoff where patient ='"+patient+"'";
    public List<Map<String, Object>> patientPadPushOnOff(String patient) {
        String sql = "select patient,type,type_name,on_off from base_patient_pad_pushonoff where patient ='" + patient + "'";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        return list;
    }
    //家属端 获取家属开关
    public List<Map<String, Object>> familyPushOnOff(String patient){
        String sql = "select patient,type,type_name,on_off from base_patient_family_pushonoff where patient ='"+patient+"'";
    public List<Map<String, Object>> familyPushOnOff(String patient) {
        String sql = "select patient,type,type_name,on_off from base_patient_family_pushonoff where patient ='" + patient + "'";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        return list;
    }
@ -275,18 +269,18 @@ public class PatientMessageService {
    @Transactional(rollbackFor = Exception.class)
    public void cshOnOff(){
    public void cshOnOff() {
        JSONObject jsonObject = new JSONObject();
        JSONArray jsonArray = new JSONArray();
        List<BaseFamilyPushOnOffEntity> onOffEntityList = new ArrayList<>();
        jsonObject.put("1","紧急预警");
        jsonObject.put("1", "紧急预警");
        jsonArray.add(jsonObject);
        jsonObject.put("2","设备动态");
        jsonObject.put("2", "设备动态");
        jsonArray.add(jsonObject);
        jsonObject.put("3","体征动态");
        jsonObject.put("3", "体征动态");
        jsonArray.add(jsonObject);
        jsonObject.put("4","平台通知");
        jsonObject.put("4", "平台通知");
        jsonArray.add(jsonObject);
@ -299,7 +293,7 @@ public class PatientMessageService {
                BaseFamilyPushOnOffEntity ent = new BaseFamilyPushOnOffEntity();
                ent.setPatient(basePatientDO.getId());
                ent.setType(i);
                ent.setTypeName(jsonArray.getJSONObject(0).getString(i+""));
                ent.setTypeName(jsonArray.getJSONObject(0).getString(i + ""));
                ent.setOnOff(1);
                ent.setCreateTime(new Date());
                onOffEntityList.add(ent);
@ -319,37 +313,124 @@ public class PatientMessageService {
    }
    public List<ZhaohuiDailyEntity> getZhaoHuiRiBaoList(String start,String end,String patient) {
        StringBuffer sql  =new StringBuffer("select * from base_zhaohui_daily where patient = '"+patient+"'  ") ;
        if (StringUtils.isNotBlank(start)) {
            sql.append(" and create_time >='"+start+"' ");
    @Autowired
    private ZhaohuiDailySleepDao zhaohuiDailySleepDao;
    @Autowired
    private ZhaohuiDailyVideoDao zhaohuiDailyVideoDao;
    @Autowired
    private ZhaohuiDailyWatchDao zhaohuiDailyWatchDao;
    @Autowired
    private ZhaohuiDailyEmeDao zhaohuiDailyEmeDao;
    @Autowired
    private ZhaohuiDailyDao zhaohuiDailyDao;
    @Autowired
    private YsDeviceService ysDeviceService;
    public JSONObject getZHaohuiRiBaoInfo(String patient, String dailyId){
        JSONObject result = new JSONObject();
        //基本信息
        ZhaohuiDailyEntity baseInfo = zhaohuiDailyDao.findById(Long.parseLong(dailyId));
        result.put("baseInfo",baseInfo);
        //睡眠带
        JSONObject sleepObject = new  JSONObject();
        ZhaohuiDailySleepEntity sleepEntity = zhaohuiDailySleepDao.findByDailyId(dailyId);
        if (null != sleepEntity) {
            sleepObject.put("sleepObject",sleepEntity);
            sleepObject.put("status",1);
        }else {
            sleepObject.put("status",0);
        }
        result.put("sleep",sleepObject);
        //监控
        JSONObject videoObject = new JSONObject();
        List<ZhaohuiDailyVideoEntity> videoEntityList = zhaohuiDailyVideoDao.findByDailyId(dailyId);
        if (videoEntityList.size()>0) {
            //取之前时间的监控
            try {
                    videoObject.put("status", 1);
                    String[] time = videoEntityList.get(0).getTime().split(",");
                    JSONObject tmp = ysDeviceService.videoList2(patient, videoEntityList.get(0).getDeviceSn(), 1, null, null, 4, null, time[0], time[1], "2", null, null, null);
                    videoObject.put("monitorInfoStatus", tmp.getIntValue(ResponseContant.resultFlag));
                    if (tmp.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
                        videoObject.put("monitorInfo", tmp.getString(ResponseContant.resultMsg));
                    } else {
                        JSONObject js1 = tmp.getJSONObject(ResponseContant.resultMsg);
                        js1.put("hdAddress", js1.getString("url"));
                        videoObject.put("monitorInfo", js1);
                    }
            } catch (Exception e) {
                e.printStackTrace();
                videoObject.put("monitorInfoStatus", 0);
                videoObject.put("monitorInfo", "未获取到当天录像信息");
            }
        }else {
            videoObject.put("status",0);
        }
        result.put("video",videoObject);
        if (StringUtils.isNotBlank(end)) {
            sql.append(" and create_time <= '"+end+"' ");
        //手表
        ZhaohuiDailyWatchEntity watchEntity = zhaohuiDailyWatchDao.findByDailyId(dailyId);
        JSONObject watchObject = new JSONObject();
        if (null!=watchEntity) {
            watchObject.put("watchObject",watchEntity);
            watchObject.put("status",1);
        }else {
            watchObject.put("status",0);
        }
        result.put("watch",watchObject);
        //紧急预警
        ZhaohuiDailyEmeEntity emeEntity = zhaohuiDailyEmeDao.findByDailyId(dailyId);
        JSONObject emeObject = new JSONObject();
        if (null!=emeEntity) {
            emeObject.put("emeObject",emeEntity);
            emeObject.put("status",1);
        }else {
            emeObject.put("status",0);
        }
        result.put("eme",emeObject);
        return result;
    }
    public List<Map<String, Object>> getZhaoHuiRiBaoList(String start, String end, String patient) {
        List<ZhaohuiDailyEntity> zhaohuiDailyEntities = jdbcTemplate.queryForList(sql.toString(), ZhaohuiDailyEntity.class);
        return  zhaohuiDailyEntities;
            StringBuffer sql = new StringBuffer("SELECT  id,eme_num,service,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') as create_time,patient_name FROM base_zhaohui_daily WHERE family_code = '" + patient + "' ");
            if (StringUtils.isNotBlank(start)) {
                sql.append(" and create_time >='" + start + "' ");
            }
            if (StringUtils.isNotBlank(end)) {
                sql.append(" and create_time <= '" + end + "' ");
            }
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql.toString());
        return list;
    }
    public List<Map<String, Object>> getFamilySystemMessageList(String type,String patient,String startTime,String endTime){
        StringBuffer sql = new StringBuffer("select id,code,type,title,sender,sender_name,receiver,receiver_name,data,is_read,del,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') as create_time ,content,user_type from base_system_message where user_type = 3 and type in ("+type+") and receiver = '"+patient+"' ");
    public List<Map<String, Object>> getFamilySystemMessageList(String type, String patient, String startTime, String endTime) {
        StringBuffer sql = new StringBuffer("select id,code,type,title,sender,sender_name,receiver,receiver_name,data,is_read,del,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') as create_time ,content,user_type from base_system_message where user_type = 3 and type in (" + type + ") and receiver = '" + patient + "' ");
        if (StringUtils.isNotBlank(startTime)&&StringUtils.isNotBlank(endTime)){
            startTime = startTime+" 00:00:00";
            endTime = endTime+" 23:59:59";
            sql.append(" and create_time >= '"+startTime+"' and  create_time<='"+endTime+"' ");
        if (StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)) {
            startTime = startTime + " 00:00:00";
            endTime = endTime + " 23:59:59";
            sql.append(" and create_time >= '" + startTime + "' and  create_time<='" + endTime + "' ");
        }
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql.toString());
        return list;
    }
    //落地页-保存登记信息
    @Transactional(rollbackFor = Exception.class)
    public void saveRegisterInfo(String name,String phone,String type){
    public void saveRegisterInfo(String name, String phone, String type) {
        BaseConsultWaresManageEntity entity = new BaseConsultWaresManageEntity();
        entity.setName(name);
        entity.setMobile(phone);
@ -362,19 +443,19 @@ public class PatientMessageService {
    private BaseChildManageDao baseChildManageDao;
    //落地页-获取商品文章
    public List<Map<String, Object>> getDeviceArticleList(String id){
    public List<Map<String, Object>> getDeviceArticleList(String id) {
        List<Map<String, Object>> list = new ArrayList<>();
        String sql = "";
        if (StringUtils.isNotBlank(id)) {
            sql = "select id,type,org_name,title,url,img,click,sort,del*1 as del,DATE_FORMAT(create_time,'%Y-%m-%d') as create_time from base_child_manage where type = 5 and del = 1 and id='"+id+"' order by sort";
            sql = "select id,type,org_name,title,url,img,click,sort,del*1 as del,DATE_FORMAT(create_time,'%Y-%m-%d') as create_time from base_child_manage where type = 5 and del = 1 and id='" + id + "' order by sort";
            list = jdbcTemplate.queryForList(sql);
            if (list.size()>0) {
            if (list.size() > 0) {
                BaseChildManage baseChildManage = JSONObject.parseObject(JSON.toJSON(list.get(0)).toString(), BaseChildManage.class);
                baseChildManage.setClick(baseChildManage.getClick()+1);
                baseChildManage.setClick(baseChildManage.getClick() + 1);
                baseChildManageDao.save(baseChildManage);
            }
        }else {
        } else {
            sql = "select *  from base_child_manage where type = 5 and del = 1 order by sort";
            list = jdbcTemplate.queryForList(sql);
        }
@ -383,13 +464,10 @@ public class PatientMessageService {
    }
    public List<Map<String, Object>>  getDeviceArticleDict(){
    public List<Map<String, Object>> getDeviceArticleDict() {
        String sql = "select id,dict_name,dict_code,dict_value from wlyy_hospital_sys_dict where dict_name = 'consultService' order by sort  ";
        return jdbcTemplate.queryForList(sql);
    }
}

+ 7 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/config/AqgConfig.java

@ -39,6 +39,13 @@ public class AqgConfig {
    public static final String X1fence_area = baseUrl +"/api/device/{0}/4g/fences/{1}";
    /**
     * 睡眠带 查询睡眠带信息
     */
    public static final String  sleepDevice_info=baseUrl+"/api/sleepdevice/";
    public static final String username = "13559485270";
    public static final String password = "zjxl@2021";
    public static final String redisKey = "aqgCooker";

+ 11 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/pushLog/ZhaohuiDailyEmeDao.java

@ -0,0 +1,11 @@
package com.yihu.jw.care.dao.pushLog;
import com.yihu.jw.entity.log.ZhaohuiDailyEmeEntity;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by wsl on 2022/11/15
 */
public interface ZhaohuiDailyEmeDao extends PagingAndSortingRepository<ZhaohuiDailyEmeEntity, String>, JpaSpecificationExecutor<ZhaohuiDailyEmeEntity> {
}

+ 11 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/pushLog/ZhaohuiDailySleepDao.java

@ -0,0 +1,11 @@
package com.yihu.jw.care.dao.pushLog;
import com.yihu.jw.entity.log.ZhaohuiDailySleepEntity;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by wsl on 2022/11/15
 */
public interface ZhaohuiDailySleepDao extends PagingAndSortingRepository<ZhaohuiDailySleepEntity, String>, JpaSpecificationExecutor<ZhaohuiDailySleepEntity> {
}

+ 11 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/pushLog/ZhaohuiDailyVideoDao.java

@ -0,0 +1,11 @@
package com.yihu.jw.care.dao.pushLog;
import com.yihu.jw.entity.log.ZhaohuiDailyVideoEntity;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by wsl on 2022/11/14
 */
public interface ZhaohuiDailyVideoDao extends PagingAndSortingRepository<ZhaohuiDailyVideoEntity, String>, JpaSpecificationExecutor<ZhaohuiDailyVideoEntity> {
}

+ 11 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/pushLog/ZhaohuiDailyWatchDao.java

@ -0,0 +1,11 @@
package com.yihu.jw.care.dao.pushLog;
import com.yihu.jw.entity.log.ZhaohuiDailyWatchEntity;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by wsl on 2022/11/14
 */
public interface ZhaohuiDailyWatchDao extends PagingAndSortingRepository<ZhaohuiDailyWatchEntity, String>, JpaSpecificationExecutor<ZhaohuiDailyWatchEntity> {
}

+ 3 - 6
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/event/ApplicationEvent.java

@ -12,10 +12,7 @@ import com.yihu.jw.care.job.order.CancelPayOrderJob;
import com.yihu.jw.care.job.order.DailyWaterJob;
import com.yihu.jw.care.job.order.EmeWarnOrderDayJob;
import com.yihu.jw.care.job.order.EmeWarnOrderJob;
import com.yihu.jw.care.job.pushRecord.FamilySystemWechatPushJob;
import com.yihu.jw.care.job.pushRecord.PushRecordJob;
import com.yihu.jw.care.job.pushRecord.PushTimeIntegerPointJob;
import com.yihu.jw.care.job.pushRecord.PushWeatherForecastJob;
import com.yihu.jw.care.job.pushRecord.*;
import com.yihu.jw.care.job.sim.GetSimsVoiceFlowDayJob;
import com.yihu.jw.care.job.sim.GetSimsVoiceFlowMonthJob;
import com.yihu.jw.care.job.sim.UpdateSimsJob;
@ -282,14 +279,14 @@ public class ApplicationEvent implements ApplicationListener<ContextRefreshedEve
            }else {
                logger.info("DEL_PUSH_MESSAGE_WEATHER_FORECAST_JOB exist");
            }
          /*  //朝晖日报:每天晚上8点发送
            //朝晖日报:每天晚上8点发送
            if (!quartzHelper.isExistJob("PUSH_ZHAO_HUI_RI_BAO_JOB")){
                String trigger =  SystemConf.getInstance().getSystemProperties().getProperty("PUSH_ZHAO_HUI_RI_BAO_JOB");
                quartzHelper.addJob(PushZhaohuiRoundJob.class,trigger,"PUSH_ZHAO_HUI_RI_BAO_JOB",new HashMap<String,Object>());
                logger.info("PUSH_ZHAO_HUI_RI_BAO_JOB success");
            }else {
                logger.info("PUSH_ZHAO_HUI_RI_BAO_JOB exist");
            }*/
            }
            //家属设备微信推送
            if (!quartzHelper.isExistJob("FAMILY_WECHAT_PUSH_DEVICE_JOB")){
                String trigger =  SystemConf.getInstance().getSystemProperties().getProperty("FAMILY_WECHAT_PUSH_DEVICE_JOB");

+ 12 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/PatientDeviceService.java

@ -399,6 +399,18 @@ public class PatientDeviceService {
        }
    }
    public com.alibaba.fastjson.JSONObject getSleepDeviceInfo(String deviceSn){
        try {
            MultiValueMap<String, String> param = new LinkedMultiValueMap<>();
            param.add("mac", deviceSn);
            HttpEntity<com.alibaba.fastjson.JSONObject> response = httpClientUtil.aqgCookieHttp(AqgConfig.sleepDevice_info, param, HttpMethod.GET, getCookie());
            return response.getBody();
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }

+ 270 - 127
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/message/ZhaohuiDailyService.java

@ -1,16 +1,21 @@
package com.yihu.jw.care.service.message;
import com.yihu.jw.care.dao.pushLog.ZhaohuiDailyDao;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.pushLog.*;
import com.yihu.jw.care.service.device.PatientDeviceService;
import com.yihu.jw.care.util.MessageUtil;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.log.ZhaohuiDailyEntity;
import com.yihu.jw.entity.log.*;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.lang3.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.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date;
@ -35,182 +40,320 @@ public class ZhaohuiDailyService {
    private MessageUtil messageUtil;
    @Value("${wechat.id}")
    private String wxId;
    @Autowired
    private PatientDeviceService patientDeviceService;
    @Autowired
    private ZhaohuiDailyWatchDao zhaohuiDailyWatchDao;
    @Autowired
    private ZhaohuiDailyVideoDao zhaohuiDailyVideoDao;
    @Autowired
    private ZhaohuiDailySleepDao zhaohuiDailySleepDao;
    @Autowired
    private ZhaohuiDailyEmeDao zhaohuiDailyEmeDao;
    public void allRound() {
        List<Map<String, Object>> familyAll = getFamily();
        familyAll.stream().forEach(family -> {
            String familyId = family.get("id").toString();
            String openid = family.get("openid").toString();
            getFamilyOld(familyId,openid);
        });
        List<BasePatientDO> oldList = olds();
        for (BasePatientDO old : oldList) {
            getOldFamily(old);
        }
    }
    //获取所有家属
    private List<Map<String, Object>> getFamily() {
        StringBuffer stringBuffer = new StringBuffer("select id,openid from base_patient where archive_type = 3 ");
        List<Map<String, Object>> list = jdbcTemplate.queryForList(stringBuffer.toString());
        return list;
    //获取所有老人
    private List<BasePatientDO> olds() {
        String sql = "SELECT * FROM base_patient WHERE archive_type =1 AND sign_status =1  AND del = 1  AND id NOT IN (SELECT dict_code FROM wlyy_hospital_sys_dict WHERE `dict_name` = 'jkzl_older')";
        List<BasePatientDO> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(BasePatientDO.class));
        return query;
    }
    private void getFamilyOld(String id,String openid) {
        String sql = "select family_member from base_patient_family_member where patient ='" + id + "' and del = 1 ";
    //老人家属
    private void getOldFamily(BasePatientDO old) {
        String sql = "select family_member from base_patient_family_member where patient ='" + old.getId() + "' and del = 1 ";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        List result = new ArrayList<>();
        for (Map<String, Object> map : list) {
            ZhaohuiDailyEntity family_member = getFamilyOldInfo(map.get("family_member").toString(), id,openid);
            result.add(family_member);
             getFamilyOldInfo(old,map.get("family_member").toString());
        }
        zhaohuiDailyDao.save(result);
    }
    private List<Map<String, Object>> getDeviceSn(String id){
        String sql = " SELECT device_sn,category_code  FROM wlyy_patient_device WHERE user ='"+id+"'";
         return jdbcTemplate.queryForList(sql);
    }
    private ZhaohuiDailyEntity getFamilyOldInfo(String oldId,String faminlyId,String openid) {
    @Transactional(rollbackFor = Exception.class)
    public void getFamilyOldInfo(BasePatientDO old,String familyCode) {
        String deviceCode = "0";
        List<ZhaohuiDailyWatchEntity> zhaohuiDailyWatchList = new ArrayList<>();
        List<ZhaohuiDailySleepEntity> zhaohuiDailySleepList = new ArrayList<>();
        List<ZhaohuiDailyVideoEntity> zhaohuiDailyVideoList = new ArrayList<>();
        List<ZhaohuiDailyEmeEntity> zhaohuiDailyEmeList = new ArrayList<>();
        String gzDeviceSn ="";
        String ygDeviceSn ="";
        String qgDeviceSn ="";
        String sbDeviceSn ="";
        String smdDeviceSn ="";
        String bjqDeviceSn ="";
        List<Map<String, Object>> deviceSnS = getDeviceSn(oldId);
        for (Map<String, Object> deviceSn : deviceSnS) {
            switch (Integer.parseInt(deviceSn.get("category_code").toString())) {
                case 7: //居家报警器
                    bjqDeviceSn = deviceSn.get("device_sn").toString();
                    deviceCode+=",7";
                    break;
                case 4: //智能手表
                    sbDeviceSn = deviceSn.get("device_sn").toString();
                    deviceCode+=",4";
                    break;
                case 13: //睡眠带
                    smdDeviceSn = deviceSn.get("device_sn").toString();
                    deviceCode+=",13";
                    break;
                case 14: //气感报警器
                    qgDeviceSn = deviceSn.get("device_sn").toString();
                    deviceCode+=",14";
                    break;
                case 15: //烟感报警器
                    ygDeviceSn = deviceSn.get("device_sn").toString();
                    deviceCode+=",15";
                    break;
                case 16: //智能拐杖
                    gzDeviceSn = deviceSn.get("device_sn").toString();
                    deviceCode+=",16";
                    break;
                default:
                    break;
        String oldId = old.getId();
        String date = DateUtil.getStringDateShort();
        String stateDate = "2022-01-01" + " 00:00:00";
        String endDate = "2022-11-15" + " 23:59:59";
        String sex = old.getSex()==1?"爷爷":"奶奶";
        ZhaohuiDailyEntity zhaohuiDailyEntity = new ZhaohuiDailyEntity();
        zhaohuiDailyEntity.setPatient(oldId);
        zhaohuiDailyEntity.setPatientName(old.getName());
        zhaohuiDailyEntity.setPhoto(old.getPhoto());
        zhaohuiDailyEntity.setCreateTime(new Date());
        zhaohuiDailyEntity.setFamilyCode(familyCode);
        String message = "";
        String emeSql = "select count(id) from base_emergency_assistance_order where patient='"+oldId+"' and status in (0,1) and create_time>='"+stateDate+"' and create_time<='"+endDate+"'";
        Integer emeTotal = jdbcTemplate.queryForObject(emeSql, Integer.class);
        if (emeTotal>0){
            message += old.getName()+sex+"今日发起"+emeTotal+"次紧急呼叫";
        }
        String secSql ="select count(id) total,serve_desc from  base_security_monitoring_order where patient= '"+oldId+"' and create_time>='"+stateDate+"' and create_time<='"+endDate+"'and status in (0,1)";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(secSql);
        if (list.size()>0&&0>Integer.parseInt(list.get(0).get("total").toString())) {
            if (StringUtils.isNotBlank(message)) {
                message += "\n 监护到"+old.getName()+sex+"今日存在安全预警:【"+list.get(0).get("serve_desc")+"】";
            }else {
                message = "监护到"+old.getName()+sex+"今日存在安全预警:【"+list.get(0).get("serve_desc")+"】";
            }
        }
        zhaohuiDailyEntity.setEmeNum(emeTotal+list.size()>0?Integer.parseInt(list.get(0).get("total").toString()):0);
        if (StringUtils.isBlank("")) {
            message = old.getName()+sex+"今日状态正常,未发生异常情况";
        }
        //生活照料总数
        Integer liftOlderTotal = 0;
        //紧急总数
        Integer emeOlderTotal = 0;
        //安防总数
        Integer secOlderTotal = 0;
        zhaohuiDailyEntity.setMessage(message);
        //睡眠带总数
        Integer smdDeviceTotal = 0;
        //拐杖总数
        Integer gzDeviceTotal = 0;
        //烟感
        Integer ygDeviceTotal = 0;
        //气感
        Integer qgDeviceTotal = 0;
        //手表
        Integer sbDeviceTotal = 0;
        String lifeSql = "select count(id) from base_life_care_order where patient = '" + oldId + "' and status = 1 and create_time>= '" + stateDate + "' and create_time<= '" + endDate + "'";
        String lifeInfoSql = "select d.name,d.create_time create_time from base_life_care_order o INNER JOIN base_life_care_fee_detail d ON o.id=d.order_id where o.patient = '" + oldId + "' and o.status = 1 and o.create_time>= '" + stateDate + "' and o.create_time<= '" + endDate + "' order by o.create_time DESC limit 1";
        List<Map<String, Object>> lifeList = jdbcTemplate.queryForList(lifeInfoSql);
        Integer lifeTotal = jdbcTemplate.queryForObject(lifeSql, Integer.class);
        zhaohuiDailyEntity.setService(lifeTotal);
        if (lifeList.size() > 0) {
            zhaohuiDailyEntity.setServiceTime(lifeList.get(0).get("create_time").toString());
            zhaohuiDailyEntity.setServiceName(lifeList.get(0).get("name").toString());
        }
        zhaohuiDailyEntity.setPadTime("10");
        zhaohuiDailyEntity.setPadLastTime("15");
        zhaohuiDailyEntity.setPadLastTotalTime("2022-10-15 23:15:12");
        zhaohuiDailyEntity = zhaohuiDailyDao.save(zhaohuiDailyEntity);
        String date = DateUtil.getStringDateShort();
        String stateDate = date + " 00:00:00";
        String endDate = date + " 23:59:59";
        //生活照料
        StringBuffer liftSql = new StringBuffer("select count(id) total from base_life_care_order where patient = '" + oldId + "' and create_time >= '" + stateDate + "' and create_time<= '" + endDate + "' ");
        liftOlderTotal = jdbcTemplate.queryForObject(liftSql.toString(), Integer.class);
        //紧急
        StringBuffer emeSql = new StringBuffer("select count(id) total from base_emergency_assistance_order where patient = '" + oldId + "' and create_time >= '" + stateDate + "' and create_time<= '" + endDate + "'  ");
        emeOlderTotal = jdbcTemplate.queryForObject(emeSql.toString(), Integer.class);
        //安防
        StringBuffer secSql = new StringBuffer("select count(id) total from base_security_monitoring_order where patient = '" + oldId + "' and create_time >= '" + stateDate + "' and create_time<= '" + endDate + "' ");
        secOlderTotal = jdbcTemplate.queryForObject(secSql.toString(), Integer.class);
        //睡眠带
        StringBuffer smdDeviceSql = new StringBuffer("select count(id) total from base_sleep_device where patient = '" + oldId + "' and create_time >= '" + stateDate + "' and create_time<= '" + endDate + "'");
        smdDeviceTotal = jdbcTemplate.queryForObject(smdDeviceSql.toString(), Integer.class);
        //拐杖
        if (StringUtils.isNotBlank(gzDeviceSn)){
            StringBuffer gzDeviceSql = new StringBuffer("select count(id) total from base_yxdevice_index where sn ='"+gzDeviceSn+"' and create_time >= '" + stateDate + "' and create_time<= '" + endDate + "' ");
            gzDeviceTotal = jdbcTemplate.queryForObject(gzDeviceSql.toString(),Integer.class);
        }
        String sql = "SELECT pd.device_sn,pd.category_code FROM base.wlyy_patient_device pd  where pd.del=0 AND  category_code in ('7','12','4','13') AND user = '" + oldId + "'  ";
        List<Map<String, Object>> oldDeviceList = jdbcTemplate.queryForList(sql);
        StringBuffer qgDeviceSql = new StringBuffer("SELECT  count(id) as total FROM base_device_health_index WHERE device_sn = '" + qgDeviceSn + "' AND create_time >='" + stateDate + "'  AND create_time <= '" + endDate + "'");
        for (Map<String, Object> device : oldDeviceList) {
            String deviceSn = device.get("device_sn").toString();
            String category_code = device.get("category_code").toString();
            switch (Integer.parseInt(category_code)) {
                case 7: //居家报警器
        StringBuffer ygDeviceSql = new StringBuffer("SELECT  count(id) as total FROM base_device_health_index WHERE device_sn = '" + ygDeviceSn + "' AND create_time >='" + stateDate + "'  AND create_time <= '" + endDate + "'");
        ygDeviceTotal = jdbcTemplate.queryForObject(ygDeviceSql.toString(),Integer.class);
        qgDeviceTotal = jdbcTemplate.queryForObject(qgDeviceSql.toString(),Integer.class);
                    ZhaohuiDailyEmeEntity zhaohuiDailyEmeEntity = new ZhaohuiDailyEmeEntity();
                    zhaohuiDailyEmeEntity.setDailyId(zhaohuiDailyEntity.getId().toString());
                    sql = "  select o.id,o.create_time from base_emergency_assistance_order o " +
                            " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+deviceSn+"' and o.status=1  and o.create_time >= '"+stateDate+"' and o.create_time <= '"+endDate+"'  ORDER BY create_time desc  limit 1 ";
                    List<Map<String, Object>> jjbjqList = jdbcTemplate.queryForList(sql);
                    if (jjbjqList.size()>0) {
                        zhaohuiDailyEmeEntity.setMessage("发出紧急呼叫");
                        zhaohuiDailyEmeEntity.setOrderId(jjbjqList.get(0).get("id").toString());
                    }else {
                        zhaohuiDailyEmeEntity.setMessage("未发出主动报警");
                    }
                    JSONObject aqgDeviceInfo2 = patientDeviceService.getAqgDeviceInfo2(deviceSn);
                    if (null!=aqgDeviceInfo2){
                        //电量
                        //在线状态实时获取
                        if (!aqgDeviceInfo2.getBoolean("online")) {//设备在线状态
                            zhaohuiDailyEmeEntity.setOnline(0);
                        } else {
                            zhaohuiDailyEmeEntity.setOnline(1);
                        }
                    }else {
                        zhaohuiDailyEmeEntity.setOnline(0);
                    }
                    zhaohuiDailyEmeList.add(zhaohuiDailyEmeEntity);
                    break;
                case 4: //智能手表
        //手表
        StringBuffer sbDeviceSql = new StringBuffer("select count(id) total from base_sleep_x1device where patient ='" + oldId + "' and create_time >= '" + stateDate + "' and create_time<='" + endDate + "' ");
        sbDeviceTotal = jdbcTemplate.queryForObject(sbDeviceSql.toString(), Integer.class);
                    ZhaohuiDailyWatchEntity zhaohuiDailyWatchEntity = new ZhaohuiDailyWatchEntity();
                    zhaohuiDailyWatchEntity.setDailyId(zhaohuiDailyEntity.getId().toString());
                    JSONObject response = patientDeviceService.getAqgDeviceInfo2(deviceSn);
                    if (null != response) {
                        //佩戴
                        if (response.containsKey("wear_flag") && response.get("wear_flag") != null) {
                            zhaohuiDailyWatchEntity.setWear(response.getInteger("wear_flag"));
                            //watchObject.put("wearFlagName", 1!=response.getInteger("wear_flag")?"已佩戴":"未佩戴");
                        }
                        //电量
                        if (response.containsKey("remaining_power") && response.get("remaining_power") != null) {
                            zhaohuiDailyWatchEntity.setPower(response.get("remaining_power").toString());
                        } else {
                            zhaohuiDailyWatchEntity.setPower("0");
                        }
                        //在线状态实时获取
                        if (!response.getBoolean("online")) {//设备在线状态
                            zhaohuiDailyWatchEntity.setOnline(0);
                        } else {
                            zhaohuiDailyWatchEntity.setOnline(1);
                        }
                    }
                    //心率
                    sql = " select value1,device_sn,CAST(DATE_FORMAT(record_date,'%Y-%m-%d %H:%i:%S') as char) record_date from wlyy_patient_health_index " +
                            " where type=5 and device_sn='" + deviceSn + "' and del=1  and record_date >= '" + stateDate + "' and record_date <= '" + endDate + "'  ORDER BY record_date DESC ";
                    List<Map<String, Object>> sqlResult = jdbcTemplate.queryForList(sql);
                    if (sqlResult.size() > 0) {
                        Integer num = sqlResult.stream().mapToInt(obj -> Integer.parseInt(obj.get("value1").toString())).sum();
                        zhaohuiDailyWatchEntity.setHeart((num / sqlResult.size()) + "");
                        zhaohuiDailyWatchEntity.setHearts(JSONObject.toJSONString(sqlResult.get(0)));
                    }
                    //手表步数数据
                    sql = "select steps from base_patient_step where 1=1  and device_sn='" + deviceSn + "'  and create_time >= '" + stateDate + "' and create_time <= '" + endDate + "' order by create_time desc limit 2 ";
                    sqlResult = jdbcTemplate.queryForList(sql);
                    if (sqlResult.size() > 0) {
                        zhaohuiDailyWatchEntity.setSteps(sqlResult.get(0).get("steps").toString());
                    }
                    //检测异常
                    sql = "  select '紧急呼叫' serve_desc  " +
                            " from base_emergency_assistance_order o " +
                            " INNER JOIN base_patient p on p.id = o.patient where device_sn='" + deviceSn + "' and o.status=1 " +
                            " and o.create_time >= '" + stateDate + "' and o.create_time <= '" + endDate + "' " +
                            " UNION " +
                            " select o.serve_desc  " +
                            " from base_security_monitoring_order o " +
                            " INNER JOIN base_patient p on p.id = o.patient where device_sn='" + deviceSn + "' and o.status=1 " +
                            " and o.create_time >= '" + stateDate + "' and o.create_time <= '" + endDate + "' " +
                            " limit 1 ";
                    sqlResult = jdbcTemplate.queryForList(sql);
                    if (sqlResult.size() > 0) {
                        zhaohuiDailyWatchEntity.setServeDesc(sqlResult.get(0).get("serve_desc").toString());
                    } else {
                        zhaohuiDailyWatchEntity.setServeDesc("无");
                    }
                    zhaohuiDailyWatchList.add(zhaohuiDailyWatchEntity);
                    break;
                case 12: //防跌倒视频监测
                    ZhaohuiDailyVideoEntity zhaohuiDailyVideoEntity = new ZhaohuiDailyVideoEntity();
                    sql = " select o.serve_desc  " +
                            "  from base_security_monitoring_order o " +
                            " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+deviceSn+"' and o.status=1  and o.create_time >= '"+stateDate+"' and o.create_time <= '"+endDate+"' ORDER BY o.create_time desc  limit 1   ";
                    sqlResult = jdbcTemplate.queryForList(sql);
                    if (sqlResult.size()>0){
                        zhaohuiDailyVideoEntity.setServeDesc(sqlResult.get(0).get("serve_desc").toString());
                    }
                    zhaohuiDailyVideoEntity.setDeviceSn(deviceSn);
                    zhaohuiDailyVideoEntity.setDailyId(zhaohuiDailyEntity.getId().toString());
                    zhaohuiDailyVideoEntity.setTime(stateDate + "," + endDate);
                    zhaohuiDailyVideoEntity.setServeDesc("无");
                    zhaohuiDailyVideoList.add(zhaohuiDailyVideoEntity);
                    break;
                case 13: //睡眠带
                    ZhaohuiDailySleepEntity zhaohuiDailySleep = new ZhaohuiDailySleepEntity();
                    zhaohuiDailySleep.setDailyId(zhaohuiDailyEntity.getId().toString());
                    JSONObject sleepDeviceInfo = patientDeviceService.getSleepDeviceInfo(deviceSn);
                    if (sleepDeviceInfo.getBooleanValue("success")) {
                        JSONArray objs = sleepDeviceInfo.getJSONArray("objs");
                        response = objs.getJSONObject(0);
                        if (!response.getBoolean("online")) {//设备在线状态
                            zhaohuiDailySleep.setStatus("0");
                        } else {
                            zhaohuiDailySleep.setStatus("1");
                        }
                    } else {
                        zhaohuiDailySleep.setStatus("0");
                    }
                    sql = "select avghr,avgbr,bucket from base_sleep_device where patient = '" + oldId + "' and device_sn ='" + deviceSn + "'  and create_time >='" + stateDate + "' and  create_time <= '" + endDate + "' order by create_time DESC limit 1";
                    List<Map<String, Object>> sleepList = jdbcTemplate.queryForList(sql);
                    if (sleepList.size() > 0) {
                        zhaohuiDailySleep.setBreathe(sleepList.get(0).get("avgbr").toString());
                        zhaohuiDailySleep.setHeart(sleepList.get(0).get("avghr").toString());
                        //Arrays.stream(sleepList.get(0).get("bucket").toString().split(",")).reduce();
                        String[] split = sleepList.get(0).get("bucket").toString().split(",");
                        split = split[split.length - 1].replace("]", "").split("-");
                        String end = split[split.length - 1].replace("\"", "");
                        String start = split[0].replace("\"", "");
                        zhaohuiDailySleep.setYestGetUpTime(start);
                        zhaohuiDailySleep.setGetUpTime(end);
                    }
                    sql = "SELECT count(id) FROM base_sleep_night_record WHERE patient = '' AND device_sn = '' AND create_time >= '' AND create_time <='' AND `status` = 1";
                    Integer getUpNum = jdbcTemplate.queryForObject(sql, Integer.class);
                    zhaohuiDailySleep.setGetUpNum(getUpNum.toString());
                    sql = "select avghr,avgbr, DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') as create_time from base_sleep_device where patient = '" + oldId + "' and device_sn ='" + deviceSn + "'  and create_time >='" + stateDate + "' and  create_time <= '" + endDate + "'  GROUP BY DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') ";
                    List<Map<String, Object>> avghrList = jdbcTemplate.queryForList(sql);
                    zhaohuiDailySleep.setBreatheCurve(JSONObject.toJSONString(avghrList));
                    sql = " select o.id,p.id patient,p.name,p.idcard,p.residential_area,'22' OrderType,'1' type,o.serve_address,o.serve_desc,  " +
                            " o.status,DATE_FORMAT(o.create_time,'%Y-%m-%d %H:%i:%S') create_time from base_security_monitoring_order o " +
                            " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+deviceSn+"' and o.status=1 and o.create_time >= '"+stateDate+"' and o.create_time <= '"+endDate+"' ORDER BY create_time desc  limit 1 ";
                    sqlResult = jdbcTemplate.queryForList(sql);
                    if (sqlResult.size()>0) {
                        zhaohuiDailySleep.setServeDesc(sqlResult.get(0).get("serve_desc").toString());
                    }else {
                        zhaohuiDailySleep.setServeDesc("无");
                    }
                    zhaohuiDailySleepList.add(zhaohuiDailySleep);
                    break;
            }
        }
        Integer total = smdDeviceTotal+gzDeviceTotal+ygDeviceTotal+qgDeviceTotal+sbDeviceTotal;
        BasePatientDO oldPatient = basePatientDao.findById(oldId);
        BasePatientDO familyPatient = basePatientDao.findById(faminlyId);
        ZhaohuiDailyEntity zhaohuiDailyEntity = new ZhaohuiDailyEntity();
        zhaohuiDailyEntity.setDeviceCode(deviceCode);
        zhaohuiDailyEntity.setGzTotal(gzDeviceTotal.toString());
        zhaohuiDailyEntity.setLiftTotal(liftOlderTotal.toString());
        zhaohuiDailyEntity.setSbTotal(sbDeviceTotal.toString());
        zhaohuiDailyEntity.setSmdTotal(smdDeviceTotal.toString());
        zhaohuiDailyEntity.setYgTotal(ygDeviceTotal.toString());
        zhaohuiDailyEntity.setQgTotal(qgDeviceTotal.toString());
        zhaohuiDailyEntity.setEmeTotal(emeOlderTotal.toString());
        zhaohuiDailyEntity.setSecTotal(secOlderTotal.toString());
        zhaohuiDailyEntity.setCreateTime(new Date());
        zhaohuiDailyEntity.setOldPatient(oldPatient.getId());
        zhaohuiDailyEntity.setOldName(oldPatient.getName());
        zhaohuiDailyEntity.setPatient(familyPatient.getId());
        zhaohuiDailyEntity.setName(familyPatient.getName());
        zhaohuiDailyEntity.setTotal(total.toString());
        String first = "您好,您的亲属"+oldPatient.getName()+"今日照护日报已生成";
       /* String first = "您好,您的亲属"+oldPatient.getName()+"今日照护日报已生成";
        Integer key2 = secOlderTotal+emeOlderTotal;
        messageUtil.putTemplateWxMessage(wxId,"template_zhrb","zhrb",openid,first,null,null,1,null,"",key2+"",liftOlderTotal+"","【推送完成】",DateUtil.getStringDate());
        messageUtil.putTemplateWxMessage(wxId,"template_zhrb","zhrb","123456",first,null,null,1,null,"",key2+"",liftOlderTotal+"","【推送完成】",DateUtil.getStringDate());
*/
        return zhaohuiDailyEntity;
        zhaohuiDailySleepDao.save(zhaohuiDailySleepList);
        zhaohuiDailyWatchDao.save(zhaohuiDailyWatchList);
        zhaohuiDailyVideoDao.save(zhaohuiDailyVideoList);
        zhaohuiDailyEmeDao.save(zhaohuiDailyEmeList);
    }
    public static void main(String[] args) {
        String abc = "[\"12:30-14:09\",\"22:00-04:06\",\"05:09-05:24\"]";
        String[] split = abc.split(",");
        split = split[split.length - 1].replace("]", "").split("-");
        String end = split[split.length - 1].replace("\"", "");
        String start = split[0].replace("\"", "");
        System.out.println(start + " " + end);
    }
}