Преглед изворни кода

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

wangzhinan пре 3 година
родитељ
комит
283d8f4220
42 измењених фајлова са 826 додато и 150 уклоњено
  1. 29 0
      common/common-entity/sql记录
  2. 0 20
      common/common-entity/src/main/java/com/yihu/jw/entity/base/servicePackage/ServicePackageItemDO.java
  3. 199 0
      common/common-entity/src/main/java/com/yihu/jw/entity/care/device/BaseSleepDeviceReport.java
  4. 11 1
      common/common-entity/src/main/java/com/yihu/jw/entity/care/device/DevicePatientDevice.java
  5. 1 1
      common/common-entity/src/main/java/com/yihu/jw/entity/care/lifeCare/LifeCareOrderDO.java
  6. 1 1
      common/common-entity/src/main/java/com/yihu/jw/entity/care/securitymonitoring/SecurityMonitoringOrderDO.java
  7. 1 1
      server/svr-authentication/src/main/resources/bootstrap.yml
  8. 0 2
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/servicePackage/ServicePackageItemDao.java
  9. 4 4
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/servicePackage/ServicePackageEndpoint.java
  10. 6 11
      svr/svr-base/src/main/java/com/yihu/jw/base/service/servicePackage/ServicePackageItemService.java
  11. 10 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/config/AqgConfig.java
  12. 12 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/BaseSleepDeviceReportDao.java
  13. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/label/WlyyPatientLabelDao.java
  14. 0 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/sign/ServicePackageItemDao.java
  15. 4 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/team/BaseTeamMemberDao.java
  16. 44 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/PatientDeviceController.java
  17. 12 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/YsDeviceController.java
  18. 9 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/DoctorBirthdayWishesEndpoint.java
  19. 23 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/patient/PatientEndpoint.java
  20. 1 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/security/SecurityMonitoringOrderEndpoint.java
  21. 4 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/sign/SignEndpoint.java
  22. 11 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/OpenStatisticsEndpoint.java
  23. 5 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/team/TeamEndpoint.java
  24. 4 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java
  25. 16 16
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/birthday/BirthdayWishesService.java
  26. 4 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/contacts/ContactsService.java
  27. 54 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/device/PatientDeviceService.java
  28. 5 5
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/doctor/CareDoctorService.java
  29. 6 7
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/label/PatientLableService.java
  30. 22 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/BaseServiceNewsService.java
  31. 5 5
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/DoctorMessageService.java
  32. 43 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/CarePatientService.java
  33. 9 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/OnlineContactService.java
  34. 16 16
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java
  35. 12 10
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/CapacityAssessmentRecordService.java
  36. 24 7
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/ServicePackageService.java
  37. 68 3
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsService.java
  38. 4 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/team/BaseTeamService.java
  39. 3 4
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/third/patient/PatientNoLoginService.java
  40. 12 0
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/dao/device/BaseSleepDeviceReportDao.java
  41. 29 4
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/endpoint/DeviceController.java
  42. 102 5
      svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceService.java

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

@ -1244,3 +1244,32 @@ ALTER table base.base_patient_sos_contacts add column phone_seqid int(2) default
ALTER table base_emergency_assistance_order add column device_sn varchar(50) DEFAULT NULL COMMENT '设备触发工单时有该字段';
ALTER table base_security_monitoring_order add column device_sn varchar(50) DEFAULT NULL COMMENT '设备触发工单时有该字段';
ALTER table base_service_package_record add column team_code varchar(50) DEFAULT NULL COMMENT '团队id';
--2021-08-12
ALTER table wlyy_patient_device add column online_status TINYINT(4) default '0' COMMENT '设备在线状态';
CREATE TABLE base.`base_sleep_device` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `patient` varchar(50) DEFAULT NULL COMMENT '居民id',
  `device_sn` varchar(50) DEFAULT NULL COMMENT '睡眠带sn',
  `falla_sleep` varchar(50) DEFAULT NULL COMMENT '入睡时长 分钟',
  `sleep_time` varchar(50) DEFAULT NULL COMMENT '睡眠时长 分钟',
  `rest_time` varchar(50) DEFAULT NULL COMMENT '休息时长 分钟',
  `awake_time` varchar(50) DEFAULT NULL COMMENT '清醒时长 分钟',
  `light_time` varchar(50) DEFAULT NULL COMMENT '浅睡时长 分钟',
  `rem_time` varchar(50) DEFAULT NULL COMMENT 'rem时长 分钟',
  `deep_time` varchar(50) DEFAULT NULL COMMENT '深睡时长 分钟',
  `bucket` varchar(50) DEFAULT NULL COMMENT '睡眠时段',
  `avghr` varchar(50) DEFAULT NULL COMMENT '平均心率',
  `avgbr` varchar(50) DEFAULT NULL COMMENT '平均呼吸率',
  `awake_per` varchar(50) DEFAULT NULL COMMENT '清醒百分比',
  `rem_per` varchar(50) DEFAULT NULL COMMENT 'rem百分比',
  `light_per` varchar(50) DEFAULT NULL COMMENT '浅睡百分比',
  `deep_per` varchar(50) DEFAULT NULL COMMENT '深睡百分比',
  `efficiency` varchar(50) DEFAULT NULL COMMENT '睡眠效率',
  `score` varchar(50) DEFAULT NULL COMMENT '睡眠评分 <=0无睡眠数据,<60待改善,<70一般,<85良好 其他,非常好',
  `create_time` timestamp NULL DEFAULT NULL COMMENT '产生日期',
  `del` int(1) DEFAULT NULL COMMENT '是否有效 1有效 0无效',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='爱牵挂睡眠带数据';
-- 2021-08-13
alter table base_service_package_item drop  COLUMN team_code;
alter table base_service_package_item drop  COLUMN team_name;

+ 0 - 20
common/common-entity/src/main/java/com/yihu/jw/entity/base/servicePackage/ServicePackageItemDO.java

@ -25,8 +25,6 @@ public class ServicePackageItemDO extends UuidIdentityEntity implements java.io.
    private String introduce;//'服务简介'
    private String del;//是否生效(1 生效,0 失效)
    private String delName;
    private String teamCode;//'服务团队code'
    private String teamName;//'服务团队名称'
    private String createTime;//
    private String dictId;//
    private String topicItem;//所属专题 security 安防专题
@ -120,24 +118,6 @@ public class ServicePackageItemDO extends UuidIdentityEntity implements java.io.
        this.del = del;
    }
    @Column(name = "team_code")
    public String getTeamCode() {
        return teamCode;
    }
    public void setTeamCode(String teamCode) {
        this.teamCode = teamCode;
    }
    @Column(name = "team_name")
    public String getTeamName() {
        return teamName;
    }
    public void setTeamName(String teamName) {
        this.teamName = teamName;
    }
    @Column(name = "create_time")
    public String getCreateTime() {
        return createTime;

+ 199 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/care/device/BaseSleepDeviceReport.java

@ -0,0 +1,199 @@
package com.yihu.jw.entity.care.device;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.IdEntity;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by Bing on 2021/8/12.
 * 睡眠带
 */
@Entity
@Table(name="base_sleep_device")
public class BaseSleepDeviceReport extends IdEntity {
    public String patient;
    public String deviceSN; //睡眠带MAC地址
    public String fallaSleep;   //入睡时长 (分钟)
    public String sleepTime;    //睡眠时长 (分钟)
    public String restTime;     //休息时长 (分钟)
    public String awakeTime;    //清醒时长 (分钟)
    public String lightTime;//浅睡时长 (分钟)
    public String remTime;  //rem时长  (分钟)
    public String deepTime; //深睡时长 (分钟)
    public String bucket;   //睡眠时段
    public String avghr;    //平均心率
    public String avgbr;    //平均呼吸率
    public String awakePer; //清醒百分比
    public String remPer;   //rem百分比
    public String lightPer; //浅睡百分比
    public String deepPer;  //深睡百分比
    public String efficiency;   //睡眠效率
    public String score;    //睡眠评分
    public Date createTime; // //日期
    public Integer del; //是否有效 1有效 0无效
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getDeviceSN() {
        return deviceSN;
    }
    public void setDeviceSN(String deviceSN) {
        this.deviceSN = deviceSN;
    }
    public String getFallaSleep() {
        return fallaSleep;
    }
    public void setFallaSleep(String fallaSleep) {
        this.fallaSleep = fallaSleep;
    }
    public String getSleepTime() {
        return sleepTime;
    }
    public void setSleepTime(String sleepTime) {
        this.sleepTime = sleepTime;
    }
    public String getRestTime() {
        return restTime;
    }
    public void setRestTime(String restTime) {
        this.restTime = restTime;
    }
    public String getAwakeTime() {
        return awakeTime;
    }
    public void setAwakeTime(String awakeTime) {
        this.awakeTime = awakeTime;
    }
    public String getLightTime() {
        return lightTime;
    }
    public void setLightTime(String lightTime) {
        this.lightTime = lightTime;
    }
    public String getRemTime() {
        return remTime;
    }
    public void setRemTime(String remTime) {
        this.remTime = remTime;
    }
    public String getDeepTime() {
        return deepTime;
    }
    public void setDeepTime(String deepTime) {
        this.deepTime = deepTime;
    }
    public String getBucket() {
        return bucket;
    }
    public void setBucket(String bucket) {
        this.bucket = bucket;
    }
    public String getAvghr() {
        return avghr;
    }
    public void setAvghr(String avghr) {
        this.avghr = avghr;
    }
    public String getAvgbr() {
        return avgbr;
    }
    public void setAvgbr(String avgbr) {
        this.avgbr = avgbr;
    }
    public String getAwakePer() {
        return awakePer;
    }
    public void setAwakePer(String awakePer) {
        this.awakePer = awakePer;
    }
    public String getRemPer() {
        return remPer;
    }
    public void setRemPer(String remPer) {
        this.remPer = remPer;
    }
    public String getLightPer() {
        return lightPer;
    }
    public void setLightPer(String lightPer) {
        this.lightPer = lightPer;
    }
    public String getDeepPer() {
        return deepPer;
    }
    public void setDeepPer(String deepPer) {
        this.deepPer = deepPer;
    }
    public String getEfficiency() {
        return efficiency;
    }
    public void setEfficiency(String efficiency) {
        this.efficiency = efficiency;
    }
    public String getScore() {
        return score;
    }
    public void setScore(String score) {
        this.score = score;
    }
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Integer getDel() {
        return del;
    }
    public void setDel(Integer del) {
        this.del = del;
    }
}

+ 11 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/care/device/DevicePatientDevice.java

@ -21,7 +21,7 @@ public class DevicePatientDevice extends IdEntity {
    private String deviceName;
    // 用户code
    private String user;
    // 设备类型标识 1血糖仪,2.血压计,3药盒,4智能手表,7 = 居家报警器,12 监控器
    // 设备类型标识 1血糖仪,2.血压计,3药盒,4智能手表,7 = 居家报警器,12 监控器 13 睡眠带
    private String categoryCode;
    // 用户类型标准 -1代表单用户
    private String userType;
@ -68,6 +68,8 @@ public class DevicePatientDevice extends IdEntity {
    //设备类型为报警器时,需要填写投放地址 category_code = 7
    private String sosAddress;
    private Integer onlineStatus;// 0不在线 1在线
  //========================非表字段======================
    //患者居住地址
    private String address;
@ -318,4 +320,12 @@ public class DevicePatientDevice extends IdEntity {
    public void setDeviceImgUrl(String deviceImgUrl) {
        this.deviceImgUrl = deviceImgUrl;
    }
    public Integer getOnlineStatus() {
        return onlineStatus;
    }
    public void setOnlineStatus(Integer onlineStatus) {
        this.onlineStatus = onlineStatus;
    }
}

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/care/lifeCare/LifeCareOrderDO.java

@ -25,7 +25,7 @@ public class LifeCareOrderDO extends UuidIdentityEntityWithOperator {
        cancel(-1, "已取消"),
        waitForPay(0, "待支付"),
        waitForAccept(1, "待(医生)接单"),//待服务
        signIn(3, "已签到"),
        signIn(3, "已签到"),//conclusionTime有值 即登记服务小结
        complete(2,"已完成");
        private Integer type;

+ 1 - 1
common/common-entity/src/main/java/com/yihu/jw/entity/care/securitymonitoring/SecurityMonitoringOrderDO.java

@ -318,7 +318,7 @@ public class SecurityMonitoringOrderDO extends UuidIdentityEntityWithOperator {
    private String serviceStatus;//服务类型 1-预约项目 2-即时项目
    private String orderInfo;//工单详情 0-未推送 1-未确认 2-已确认
    private String doctorConfirmFinishImg;
    private Integer orderSource;//工单发起来源状态 1APP 2手环 3居家报警 4监控器发起
    private Integer orderSource;//工单发起来源状态 1APP 2手环 3居家报警 4监控器发起 5睡眠带
    private Integer emergencyCancel;// 紧急预警工单误报警原因 字典emergency_cancel
    private String topicItem;//安防工单所属专题 base_system_dict_entry表service_item
    private String sceneImg;//现场照片

+ 1 - 1
server/svr-authentication/src/main/resources/bootstrap.yml

@ -130,7 +130,7 @@ spring:
  cloud:
    config:
      uri: ${wlyy-spring.config.uri:http://127.0.0.1:1221}
      label: ${wlyy-spring.config.label:jwdev}
      label: ${wlyy-spring.config.label:master}
---
spring:

+ 0 - 2
svr/svr-base/src/main/java/com/yihu/jw/base/dao/servicePackage/ServicePackageItemDao.java

@ -13,8 +13,6 @@ import java.util.List;
 */
public interface ServicePackageItemDao extends PagingAndSortingRepository<ServicePackageItemDO, String>, JpaSpecificationExecutor<ServicePackageItemDO> {
    @Query("from ServicePackageItemDO w where w.teamCode =?1 and w.code=?2")
    List<ServicePackageItemDO> findByTeamCode(String teamCode,String code);
    @Query("from ServicePackageItemDO w where w.servicePackageId =?1 and w.del='1'")
    List<ServicePackageItemDO> findByServicePackageId(String servicePackageId);

+ 4 - 4
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/servicePackage/ServicePackageEndpoint.java

@ -80,12 +80,12 @@ public class ServicePackageEndpoint extends EnvelopRestEndpoint {
        for (ServicePackageDO servicePackageDO:servicePackageDOS){
            List<ServicePackageItemDO> itemDOList = servicePackageItemDao.findByServicePackageId(servicePackageDO.getId());
            List<String> orgNames = itemDOList.stream().map(p -> p.getOrgName()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
            List<String> teamNames = itemDOList.stream().map(p -> p.getTeamName()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
//            List<String> teamNames = itemDOList.stream().map(p -> p.getTeamName()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
            List<String> orgCodes = itemDOList.stream().map(p -> p.getOrgCode()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
 //           List<String> teamCodes = itemDOList.stream().map(p -> p.getTeamCode()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
            servicePackageDO.setOrgNames(StringUtils.join(orgNames,","));
            servicePackageDO.setTeamNames(StringUtils.join(teamNames,","));
//            servicePackageDO.setTeamNames(StringUtils.join(teamNames,","));
            servicePackageDO.setOrgCodes(StringUtils.join(orgCodes,","));
            for (WlyyHospitalSysDictDO wlyyHospitalSysDictDO:wlyyHospitalSysDictDOS){
@ -112,9 +112,9 @@ public class ServicePackageEndpoint extends EnvelopRestEndpoint {
        ServicePackageDO servicePackageDO = servicePackageDao.findOne(id);
        List<ServicePackageItemDO> itemDOList = servicePackageItemDao.findByServicePackageId(servicePackageDO.getId());
        List<String> orgNames = itemDOList.stream().map(p -> p.getOrgName()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
        List<String> teamNames = itemDOList.stream().map(p -> p.getTeamName()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
//        List<String> teamNames = itemDOList.stream().map(p -> p.getTeamName()).collect(Collectors.toList()).stream().distinct().collect(Collectors.toList());
        servicePackageDO.setOrgNames(StringUtils.join(orgNames,","));
        servicePackageDO.setTeamNames(StringUtils.join(teamNames,","));
//        servicePackageDO.setTeamNames(StringUtils.join(teamNames,","));
        servicePackageDO.setPackageItemDOList(itemDOList);
        return success(servicePackageDO);
    }

+ 6 - 11
svr/svr-base/src/main/java/com/yihu/jw/base/service/servicePackage/ServicePackageItemService.java

@ -59,12 +59,12 @@ public class ServicePackageItemService extends BaseJpaService<ServicePackageItem
                }
            }
            //新增
            List<ServicePackageItemDO> itemDOList = servicePackageItemDao.findByTeamCode(itemDO.getTeamCode(),itemDO.getCode());
            if(itemDOList!=null&&itemDOList.size()>0){
                result.put("msg","该服务团队已存在此服务项,请勿重复添加");
                result.put("response", ConstantUtils.FAIL);
                return result;
            }
//            List<ServicePackageItemDO> itemDOList = servicePackageItemDao.findByTeamCode(itemDO.getTeamCode(),itemDO.getCode());
//            if(itemDOList!=null&&itemDOList.size()>0){
//                result.put("msg","该服务团队已存在此服务项,请勿重复添加");
//                result.put("response", ConstantUtils.FAIL);
//                return result;
//            }
            itemDO.setPrice(new BigDecimal(0));
            itemDO.setServicePackageId("system");
            itemDO.setCreateTime(DateUtil.getStringDate());
@ -83,11 +83,6 @@ public class ServicePackageItemService extends BaseJpaService<ServicePackageItem
            oldItemDO.setCode(itemDO.getCode());
            oldItemDO.setFeeType(itemDO.getFeeType());
            oldItemDO.setIntroduce(itemDO.getIntroduce());
//            oldItemDO.setOrgCode(itemDO.getOrgCode());
//
//            oldItemDO.setOrgName(itemDO.getOrgName());
            oldItemDO.setTeamCode(itemDO.getTeamCode());
            oldItemDO.setTeamName(itemDO.getTeamName());
            servicePackageItemDao.save(oldItemDO);
        }

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

@ -38,6 +38,16 @@ public class AqgConfig {
    public static final String S3fence_area = baseUrl +"/api/device/{0}/fences/{1}";
    public static final String X1fence_area = baseUrl +"/api/device/{0}/4g/fences/{1}";
    /**
     * 睡眠带 修改心率呼吸率报警阈值
     */
    public static final String  sleepDevice_edit=baseUrl+ "/api/sleepdevice/{0}/edit/";
    /**
     * 睡眠带 查询睡眠带信息
     */
    public static final String  sleepDevice_info=baseUrl+"/api/sleepdevice/";
    public static final String username = "13559485270";
    public static final String password = "zjxl@2021";

+ 12 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/device/BaseSleepDeviceReportDao.java

@ -0,0 +1,12 @@
package com.yihu.jw.care.dao.device;
import com.yihu.jw.entity.care.device.BaseSleepDeviceReport;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Bing on 2021/8/12.
 */
public interface BaseSleepDeviceReportDao extends PagingAndSortingRepository<BaseSleepDeviceReport,Long> ,
        JpaSpecificationExecutor<BaseSleepDeviceReport> {
}

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/label/WlyyPatientLabelDao.java

@ -17,6 +17,6 @@ public interface WlyyPatientLabelDao extends PagingAndSortingRepository<WlyyPati
    @Query("delete WlyyPatientLabelDO a where a.patient=?1 and a.labelType=?2")
    int deleteByPatientAndLabelType(String patient,String labelType) throws Exception;
    @Query("from WlyyPatientLabelDO w where  w.patient=?1 ")
    @Query("from WlyyPatientLabelDO w where  w.patient=?1 group by w.labelType,w.labelCode order by w.czrq desc")
    List<WlyyPatientLabelDO> findByPatient(String patient);
}

+ 0 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/sign/ServicePackageItemDao.java

@ -13,8 +13,6 @@ import java.util.List;
 */
public interface ServicePackageItemDao extends PagingAndSortingRepository<ServicePackageItemDO, String>, JpaSpecificationExecutor<ServicePackageItemDO> {
    @Query("from ServicePackageItemDO w where w.teamCode =?1 and w.code=?2")
    List<ServicePackageItemDO> findByTeamCode(String teamCode, String code);
    @Query("from ServicePackageItemDO w where w.servicePackageId =?1 and w.del='1'")
    List<ServicePackageItemDO> findByServicePackageId(String servicePackageId);

+ 4 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/team/BaseTeamMemberDao.java

@ -53,4 +53,8 @@ public interface BaseTeamMemberDao extends PagingAndSortingRepository<BaseTeamMe
    @Query("SELECT d FROM BaseTeamMemberDO m, BaseTeamDO t, BaseDoctorDO d WHERE t.id = :teamCode AND t.id = m.teamCode " +
            "AND m.doctorCode = d.id AND t.del = '1' AND m.del = '1' ")
    List<BaseDoctorDO> findAllMembers(@Param(value = "teamCode") String teamCode);
    @Query("SELECT count(1) FROM BaseTeamMemberDO m, BaseTeamDO t, BaseDoctorDO d WHERE t.id = :teamCode AND t.id = m.teamCode " +
            "AND m.doctorCode = d.id AND t.del = '1' AND m.del = '1' ")
    Integer findMemCount(@Param(value = "teamCode") String teamCode);
}

+ 44 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/PatientDeviceController.java

@ -305,6 +305,50 @@ public class PatientDeviceController extends BaseController {
        }
    }
    @ApiOperation("获取睡眠带设备信息")
    @RequestMapping(value = "getSleepDeviceInfo",method = RequestMethod.GET)
    public String getSleepDeviceInfo(@ApiParam(name = "deviceSn",value = "睡眠带MAC 去除符号:")
                                        @RequestParam(value = "deviceSn",required = true)String deviceSn){
        try {
            return write(200,"获取成功","data",patientDeviceService.getSleepDeviceInfo(deviceSn));
        }catch (Exception e){
            return errorResult(e);
        }
    }
    @ApiOperation("修改心率呼吸率报警阈值")
    @RequestMapping(value = "sleepDeviceEdit",method = RequestMethod.GET)
    public String sleepDeviceEdit(@ApiParam(name = "deviceSn",value = "睡眠带MAC 去除符号:")
                                        @RequestParam(value = "deviceSn",required = true)String deviceSn,
                                        @ApiParam(name = "heart_check_enable",value = "心率异常检查开关0是关,1是开 ")
                                        @RequestParam(value = "heart_check_enable",required = false)Integer heart_check_enable,
                                        @ApiParam(name = "breath_check_enable",value = "呼吸率异常检查开关")
                                        @RequestParam(value = "breath_check_enable",required = false)Integer breath_check_enable,
                                        @ApiParam(name = "offbed_check_enable",value = "离床异常检查开关")
                                        @RequestParam(value = "offbed_check_enable",required = false)Integer offbed_check_enable,
                                        @ApiParam(name = "theshold_heartrate_h",value = "心率上限 默认100")
                                        @RequestParam(value = "theshold_heartrate_h",required = false)Integer theshold_heartrate_h,
                                        @ApiParam(name = "theshold_heartrate_l",value = "心率下限  默认50")
                                        @RequestParam(value = "theshold_heartrate_l",required = false)Integer theshold_heartrate_l,
                                        @ApiParam(name = "theshold_breath_h",value = "呼吸率上限  默认25")
                                        @RequestParam(value = "theshold_breath_h",required = false)Integer theshold_breath_h,
                                        @ApiParam(name = "theshold_breath_l",value = "呼吸率下限  默认8")
                                        @RequestParam(value = "theshold_breath_l",required = false)Integer theshold_breath_l,
                                        @ApiParam(name = "offbed_long",value = "离床报警时长(分钟)  默认10,最低5")
                                        @RequestParam(value = "offbed_long",required = false)Integer offbed_long,
                                        @ApiParam(name = "check_time_begin",value = "监控开始时间(秒数)  默认79200")
                                        @RequestParam(value = "check_time_begin",required = false)Integer check_time_begin,
                                        @ApiParam(name = "check_time_end",value = "监控结束时间(秒数)  默认21600")
                                        @RequestParam(value = "check_time_end",required = false)Integer check_time_end
                                        ){
        try {
            return write(200,"获取成功","data",patientDeviceService.sleepDeviceEdit(deviceSn,heart_check_enable,breath_check_enable,offbed_check_enable,
                    theshold_heartrate_h,theshold_heartrate_l,theshold_breath_h,theshold_breath_l,offbed_long,check_time_begin,check_time_end));
        }catch (Exception e){
            return errorResult(e);
        }
    }
    @ApiOperation("获取设备详情信息")
    @RequestMapping(value = "getPatientDeviceDetail",method = RequestMethod.GET)
    public String getPatientDeviceDetail(@ApiParam(name="patient")

+ 12 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/device/YsDeviceController.java

@ -145,10 +145,14 @@ public class YsDeviceController extends BaseController {
            @RequestParam(value = "speed",required = true) Integer speed,
            HttpServletRequest request){
        try {
            JSONObject result = ysDeviceService.ptzStart(deviceSerial,channelNo,direction,speed,request);
            if ("200".equals(result.getString("code"))){
                return write(200,"查询成功","data",result);
            }else {
                return write(-1,result.getString("msg"));
            }
            return write(200,"查询成功","data",ysDeviceService.ptzStart(deviceSerial,channelNo,direction,speed,request));
        }catch (Exception e){
            return errorResult(e);
        }
    }
@ -164,8 +168,12 @@ public class YsDeviceController extends BaseController {
            @RequestParam(value = "direction",required = true) Integer direction,
            HttpServletRequest request){
        try {
            return write(200,"查询成功","data",ysDeviceService.ptzStop(deviceSerial,channelNo,direction,request));
            JSONObject result = ysDeviceService.ptzStop(deviceSerial,channelNo,direction,request);
            if ("200".equals(result.getString("code"))){
                return write(200,"查询成功","data",result);
            }else {
                return write(-1,result.getString("msg"));
            }
        }catch (Exception e){
            return errorResult(e);
        }

+ 9 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/doctor/DoctorBirthdayWishesEndpoint.java

@ -229,8 +229,8 @@ public class DoctorBirthdayWishesEndpoint extends BaseController {
            //根据openid进行发送祝福
            String patient = one.getPatientCode();
            if (StringUtils.isNotBlank(patient)){
                String sql = " select p.id as patient,p.name,we.openid from base_patient p inner join  base_patient_wechat we on p.id = we.patient_id " +
                        "and we.patient_id = '"+patient+"' " +
                String sql = " select p.id as patient,p.name,we.openid from base_patient p Left join  base_patient_wechat we on p.id = we.patient_id " +
                        "where p.id = '"+patient+"' " +
                        "  order by we.create_time desc  ";
                List<Map<String,Object>> patients = jdbcTemplate.queryForList(sql);
                if (patients.size()>0){//发送生日祝福
@ -244,8 +244,13 @@ public class DoctorBirthdayWishesEndpoint extends BaseController {
//                    json.put("content", one.getContent());
//                    json.put("openid",tmp.get("openid").toString());
//                    json.put("represented","");//被代理人
                    boolean success =  messageUtil.putTemplateWxMessage(wxId,"template_success_notice","srzf",tmp.get("openid").toString(),first,
                            null,one.getContent(),26,json,"已发送", DateUtil.dateToChineseTime(new Date()));
                    boolean success=false;
                    if (null!=tmp.get("openid")&&StringUtils.isNotBlank(tmp.get("openid").toString())) {
                        success = messageUtil.putTemplateWxMessage(wxId, "template_success_notice", "srzf", tmp.get("openid").toString(), first,
                                null, one.getContent(), 26, json, "已发送", DateUtil.dateToChineseTime(new Date()));
                    }else {
                        success=true;
                    }
                    if (success){
                        SystemMessageDO messageDO = new SystemMessageDO();
                        messageDO.setTitle("收到来自"+one.getDoctorName()+"的关怀祝福:祝您"+tmp.get("name").toString()+"节日快乐!");

+ 23 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/patient/PatientEndpoint.java

@ -173,6 +173,19 @@ public class PatientEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "findPatientLabelAndCar")
    @ApiOperation(value = "获取居民标签及能力评估结果信息")
    public Envelop findPatientLabelAndCar(@ApiParam(name = "patientId", value = "居民id")
                                    @RequestParam(value = "patientId", required = true)String patientId){
        try{
            return success("获取成功",patientService.findPatientLabelAndCar(patientId));
        }catch (Exception e){
            return failedException2(e);
        }
    }
    @PostMapping(value = "updPatientLabel")
    @ApiOperation(value = "修改居民标签信息")
    @ObserverRequired
@ -285,4 +298,14 @@ public class PatientEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "patientIconStatus")
    @ApiOperation("patientIconStatus")
    public ObjEnvelop patientIconStatus(@ApiParam(name="patient")@RequestParam(value = "patient")String patient){
        try {
            return ObjEnvelop.getSuccess("success",patientService.patientIconStatus(patient));
        }catch (Exception e){
            return failedObjEnvelopException2(e);
        }
    }
}

+ 1 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/security/SecurityMonitoringOrderEndpoint.java

@ -324,7 +324,7 @@ public class SecurityMonitoringOrderEndpoint extends EnvelopRestEndpoint {
    public ObjEnvelop patientMonitoringInfo(@ApiParam(name = "patient", value = "patient")
                                @RequestParam(value = "patient") String patient,
                                @ApiParam(name = "topicItem", value = "专题code,关联security_topic_dict字典", required = false)
                                @RequestParam(value = "topicItem",required = false) String topicItem) {
                                @RequestParam(value = "topicItem",required = false,defaultValue = "preventLost") String topicItem) {
        try {
            return ObjEnvelop.getSuccess( "查询成功", securityMonitoringOrderService.patientMonitoringInfo(patient,topicItem));
        } catch (Exception e) {

+ 4 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/sign/SignEndpoint.java

@ -227,9 +227,11 @@ public class SignEndpoint extends EnvelopRestEndpoint {
            @ApiParam(name = "signYear", value = "签约时长 0长期 1 1年 2 2年", required = true)
            @RequestParam String signYear,
            @ApiParam(name = "doctorId", value = "医生id", required = true)
            @RequestParam String doctorId) {
            @RequestParam String doctorId,
            @ApiParam(name = "labelCode", value = "能力评估结论", required = true)
            @RequestParam String labelCode) {
        try{
           JSONObject result  = servicePackageService.servicePackageSign(jsonData,doctorId,patientId,signYear);
           JSONObject result  = servicePackageService.servicePackageSign(jsonData,doctorId,patientId,signYear,labelCode);
            if (result.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
                return Envelop.getError(result.getString(ResponseContant.resultMsg));
            }

+ 11 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/statistics/OpenStatisticsEndpoint.java

@ -80,6 +80,17 @@ public class OpenStatisticsEndpoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "getAllDynamics")
    @ApiOperation(value = "综合动态v0.7.0")
    public PageEnvelop getAllDynamics(
            @RequestParam(required = true) Integer page,@RequestParam(required = true) Integer size) {
        try {
            return statisticsService.getAllDynamics(page,size);
        } catch (Exception e) {
            return failedPageEnvelopException2(e);
        }
    }
    @GetMapping(value = "serviceRankingAnalysis")
    @ApiOperation(value = "服务排名分析")
    public ListEnvelop serviceRankingAnalysis(

+ 5 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/team/TeamEndpoint.java

@ -109,6 +109,8 @@ public class TeamEndpoint extends EnvelopRestEndpoint {
            for (String doctorCode : doctorCodes) {
                teamService.addMember(team, doctorCode);
            }
            team.setTeamNum( teamService.findMemCount(teamCode)+"");
            teamDao.save(team);
            return success("添加成功");
        } catch (Exception e) {
            return failedException2(e);
@ -135,7 +137,9 @@ public class TeamEndpoint extends EnvelopRestEndpoint {
                               @PathVariable("doctorCode") String doctorCode) {
        try {
            teamService.removeMember(teamCode, doctorCode);
            BaseTeamDO team = teamDao.findOne(teamCode);
            team.setTeamNum( teamService.findMemCount(teamCode)+"");
            teamDao.save(team);
            return success("移除成功");
        } catch (Exception e) {
            return failedException2(e);

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

@ -164,8 +164,8 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
//            return result;
//        }
        //签约防走失服务包
        String sql ="SELECT i.code,i.team_code,i.org_code,i.org_name from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i  \n" +
                "where  sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id   and i.del = 1 and sr.`status`=1 \n" +
        String sql ="SELECT i.code,r.team_code,pack.org_code,pack.org_name from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack  \n" +
                "where  sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and r.service_package_id = pack.id and i.del = 1 and sr.`status`=1 \n" +
                "and  sr.patient  = '"+assistanceDO.getPatient()+"' and i.code='emergencyAssistance' ";
        List<Map<String,Object>> items = jdbcTemplate.queryForList(sql);
        if (items.size()==0){
@ -966,10 +966,10 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
     */
    public PageEnvelop getEmergencyAssistanceList(Integer page, Integer size,String doctor){
        page = page>0?page-1:0;
        String sql = " select '20' as OrderType,ord.id,ord.doctor,ord.status,p.name,'紧急呼叫' as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time" +
        String sql = " select '20' as OrderType,ord.id,ord.doctor,ord.status,ord.patient,ord.patient_name as name,p.name as doctorName,'紧急呼叫' as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time" +
                " from base_emergency_assistance_order ord INNER JOIN base_doctor p on ord.doctor = p.id where ord.doctor='"+doctor+"'" ;
        sql +="UNION " +
                "select  '22' as 'OrderType',ord.id,ord.doctor,ord.status,p.name,ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time " +
                "select  '22' as 'OrderType',ord.id,ord.doctor,ord.status,ord.patient,ord.patient_name as name,p.name as doctorName,ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time " +
                "from base_security_monitoring_order ord INNER JOIN base_doctor p on ord.doctor = p.id  where ord.doctor='"+doctor+"'" ;
        String countSql = "select count(id) from ("+sql+")A ";
        long count = jdbcTemplate.queryForObject(countSql,long.class);

+ 16 - 16
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/birthday/BirthdayWishesService.java

@ -177,10 +177,10 @@ public class BirthdayWishesService {
                "p.idcard, p.photo," +
                " CASE LENGTH(p.idcard) WHEN  18 then SUBSTR(p.idcard,11,4) when 15 then SUBSTR(p.idcard, 9,4) END date " +
                "from wlyy_archive a,base_patient p WHERE  a.patient = p.id and a.sign_status = 1 and EXISTS( " +
                "SELECT DISTINCT sr.patient from base_service_package_sign_record sr,base_service_package_record r, " +
                "base_service_package_item i,base_team_member m " +
                "WHERE  sr.id = r.sign_id and sr.patient = a.patient  and r.service_package_id = i.service_package_id " +
                "and i.del = 1 and m.team_code = r.team_code and m.doctor_code = '"+doctor+"' ) "+
                "SELECT DISTINCT sr.patient from base_service_package_sign_record sr,base_service_package_record r,base_service_package pack, " +
                "base_team_member m " +
                "WHERE  sr.id = r.sign_id and sr.patient = a.patient and r.service_package_id = pack.id  " +
                "and m.team_code = r.team_code and m.doctor_code = '"+doctor+"' ) "+
                " and (p.archive_status<>2 or p.archive_status is null) " +
                "AND CASE LENGTH(p.idcard) WHEN  18 then SUBSTR(p.idcard,11,4) when 15 then SUBSTR(p.idcard, 9,4) END =  '" + dateString + "' " ;
        List<Map<String, Object>> patientInfos =  jdbcTemplate.queryForList(sql);
@ -224,9 +224,9 @@ public class BirthdayWishesService {
        String sql = "SELECT DISTINCT p.id " +
                "from wlyy_archive a,base_patient p WHERE  a.patient = p.id and a.sign_status = 1 and EXISTS( " +
                "SELECT DISTINCT sr.patient from base_service_package_sign_record sr,base_service_package_record r, " +
                "base_service_package_item i,base_team_member m " +
                "WHERE  sr.id = r.sign_id and sr.patient = a.patient  and r.service_package_id = i.service_package_id " +
                "and i.del = 1 and m.team_code = r.team_code and m.doctor_code = '"+doctor+"' ) "+
                "base_team_member m " +
                "WHERE  sr.id = r.sign_id and sr.patient = a.patient and sr.id = r.sign_id " +
                "and m.team_code = r.team_code and m.doctor_code = '"+doctor+"' ) "+
                " and (p.archive_status<>2 or p.archive_status is null) " +
                "AND CASE LENGTH(p.idcard) WHEN  18 then SUBSTR(p.idcard,11,4) when 15 then SUBSTR(p.idcard, 9,4) END =  '" + dateString + "'  " ;
        List<String> patientInfos =  jdbcTemplate.queryForList(sql,String.class);
@ -258,10 +258,10 @@ public class BirthdayWishesService {
        String sqlCount = "SELECT count(distinct p.idcard) ";
        String whereSql = "from wlyy_archive a,base_patient p WHERE  a.patient = p.id and a.sign_status = 1 and EXISTS( " +
                "SELECT DISTINCT sr.patient from base_service_package_sign_record sr,base_service_package_record r, " +
                "base_service_package_item i,base_team_member m " +
                "WHERE  sr.id = r.sign_id and sr.patient = a.patient  and r.service_package_id = i.service_package_id " +
                "and i.del = 1 and m.team_code = r.team_code ";
                "SELECT DISTINCT sr.patient from base_service_package_sign_record sr,base_service_package_record r,base_service_package pack , " +
                "base_team_member m " +
                "WHERE  sr.id = r.sign_id and sr.patient = a.patient and  r.service_package_id = pack.id " +
                "and m.team_code = r.team_code ";
        //根据权限获取生日居民列表
        if (roleType == 1) {
@ -269,19 +269,19 @@ public class BirthdayWishesService {
        } else {//管理员
            switch (currentUserRoleLevel) {
                case "1": {//省
                    whereSql += " and i.org_code in ( select org.code from base_org org where org.province_code = '"+currentUserRole+"' and org.del=1 )  ";
                    whereSql += " and pack.org_code in ( select org.code from base_org org where org.province_code = '"+currentUserRole+"' and org.del=1 )  ";
                    break;
                }
                case "2": {//市
                    whereSql += " and i.org_code in ( select org.code from base_org org where org.city_code = '"+currentUserRole+"' and org.del=1 )  ";
                    whereSql += " and pack.org_code in ( select org.code from base_org org where org.city_code = '"+currentUserRole+"' and org.del=1 )  ";
                    break;
                }
                case "3": {//区
                    whereSql += " and i.org_code in ( select org.code from base_org org where org.town_code = '"+currentUserRole+"' and org.del=1 )  ";
                    whereSql += " and pack.org_code in ( select org.code from base_org org where org.town_code = '"+currentUserRole+"' and org.del=1 )  ";
                    break;
                }
                case "4": {//社区机构
                    whereSql += " and i.org_code = '" + currentUserRole + "' ";
                    whereSql += " and pack.org_code = '" + currentUserRole + "' ";
                    break;
                }
            }
@ -409,7 +409,7 @@ public class BirthdayWishesService {
        Set<String> openidSet = new HashSet<>();
        BaseDoctorDO doctor = doctorDao.findById(doctorCode);
        String sql = " select * from ( select p.id as patient,p.name,we.openid from base_patient p inner join  base_patient_wechat we on p.id = we.patient_id and we.patient_id in ( "+p.toString()+") " +
        String sql = " select * from ( select p.id as patient,p.name,we.openid from base_patient p Left join  base_patient_wechat we on p.id = we.patient_id where p.id in ( "+p.toString()+") " +
                "  order by we.create_time desc )A group by A.patient  ";
        List<Map<String, Object>> patientInfos = jdbcTemplate.queryForList(sql);

+ 4 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/contacts/ContactsService.java

@ -203,10 +203,10 @@ public class ContactsService {
        String sql =  "select * from base_org org  " ;
        if (StringUtils.isNotBlank(patient)){
            sql +=" LEFT JOIN ( " +
                    "SELECT  DISTINCT i.org_code,'1' as signFlag FROM  base_service_package_sign_record sr,  base_service_package_record r, " +
                    " base_service_package_item i WHERE  sr.id = r.sign_id and sr.status=1 and sr.patient = '"+patient+"'" +
                    " AND r.service_package_id = i.service_package_id " +
                    " AND i.del = 1  AND sr.`status` = 1)A on org.code = A.org_code ";
                    "SELECT  DISTINCT pack.org_code,'1' as signFlag FROM  base_service_package_sign_record sr,  base_service_package_record r, " +
                    " base_service_package pack  WHERE  sr.id = r.sign_id and sr.status=1 and sr.patient = '"+patient+"'" +
                    "  and r.service_package_id = pack.id  " +
                    " AND sr.`status` = 1)A on org.code = A.org_code ";
        }
        sql +=  " where org.del=1 and org.type=3 " ;
        result = jdbcTemplate.queryForList(sql);

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

@ -154,6 +154,12 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
            }
        }
        if (type.equals("13")){
            if (StringUtils.isBlank(devicePatientDevice.getSosAddress())){
                return false;
            }
        }
        boolean needVerify = true;
        //修改操作
        if (devicePatientDevice.getId() != null) {
@ -295,6 +301,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
                "when category_code=4 then '智能手表'\n" +
                "when category_code=7 then '报警器'\n" +
                "when category_code=12 then '监控器'\n" +
                "when category_code=13 then '睡眠带'\n" +
                "else '未知'\n" +
                "end as categoryName\n" +
                " from dm_device where del=1 GROUP BY category_code ";
@ -310,6 +317,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
                "when category_code=4 then '智能手表'\n" +
                "when category_code=7 then '报警器'\n" +
                "when category_code=12 then '监控器'\n" +
                "when category_code=13 then '睡眠带'\n" +
                "else '未知'\n" +
                "end as categoryName\n" +
                " from dm_device where del=1 and category_code='"+category_code+"' GROUP BY model ";
@ -1065,6 +1073,52 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
        return response.getBody();
    }
    public com.alibaba.fastjson.JSONObject getSleepDeviceInfo(String deviceSn){
        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();
    }
    public com.alibaba.fastjson.JSONObject sleepDeviceEdit(String deviceSn,Integer heart_check_enable,Integer breath_check_enable,Integer offbed_check_enable,
                                                           Integer theshold_heartrate_h,Integer theshold_heartrate_l,Integer theshold_breath_h,Integer theshold_breath_l,
                                                           Integer offbed_long,Integer check_time_begin,Integer check_time_end){
        String url = MessageFormat.format(AqgConfig.sleepDevice_edit, deviceSn);
        MultiValueMap<String, String> param = new LinkedMultiValueMap<>();
        if (null!=heart_check_enable){
            param.add("heart_check_enable", heart_check_enable+"");
        }
        if (null!=breath_check_enable){
            param.add("breath_check_enable", breath_check_enable+"");
        }
        if (null!=offbed_check_enable){
            param.add("offbed_check_enable", offbed_check_enable+"");
        }
        if (null!=theshold_heartrate_h){
            param.add("theshold_heartrate_h", theshold_heartrate_h+"");
        }
        if (null!=theshold_heartrate_l){
            param.add("theshold_heartrate_l", theshold_heartrate_l+"");
        }
        if (null!=theshold_breath_h){
            param.add("theshold_breath_h", theshold_breath_h+"");
        }
        if (null!=theshold_breath_l){
            param.add("theshold_breath_l", theshold_breath_l+"");
        }
        if (null!=offbed_long){
            param.add("offbed_long", offbed_long+"");
        }
        if (null!=check_time_begin){
            param.add("check_time_begin", check_time_begin+"");
        }
        if (null!=check_time_end){
            param.add("check_time_end", check_time_end+"");
        }
        HttpEntity<com.alibaba.fastjson.JSONObject> response = httpClientUtil.aqgCookieHttp(url, param, HttpMethod.POST, getCookie());
        return response.getBody();
    }
    /******************************************* 爱牵挂设备end *****************************************************/
}

+ 5 - 5
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/doctor/CareDoctorService.java

@ -76,9 +76,9 @@ public class CareDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
        //签约老人数、紧急救助完成数、生活照料完成数、安防监护完成数
        String sql1 = "SELECT COUNT(DISTINCT sr.patient) FROM " +
                " base_service_package_sign_record sr, base_service_package_record r, base_service_package_item i, base_team_member m " +
                " WHERE  sr.id = r.sign_id and sr.status=1  AND r.service_package_id = i.service_package_id " +
                " AND i.del = 1 and m.team_code = r.team_code " +
                " base_service_package_sign_record sr, base_service_package_record r, base_team_member m " +
                " WHERE  sr.id = r.sign_id and sr.status=1 " +
                "  and m.team_code = r.team_code " +
                "  and m.del = '1' and m.doctor_code = '"+doctorId+"'";
        Integer signNum = jdbcTemplate.queryForObject(sql1,Integer.class);
        String sqlLife= "SELECT COUNT(*) from base_life_care_order where `status` = 2";
@ -593,8 +593,8 @@ public class CareDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
        //人文关怀
        try {
            Integer counts = birthdayWishesService.getPatientByDoctorCount(doctor);
            if (count>0){
                result.put("patientCare",count);
            if (counts>0){
                result.put("patientCare",counts);
            }
        }catch (Exception e){
            e.printStackTrace();

+ 6 - 7
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/label/PatientLableService.java

@ -37,10 +37,9 @@ public class PatientLableService extends BaseJpaService<WlyyPatientLabelDO, Wlyy
        String sql = "SELECT COUNT(a.id) num,dict.dict_code labelCode,dict.dict_value labelName " +
                " from wlyy_hospital_sys_dict dict " +
                "LEFT JOIN (SELECT DISTINCT l.id,l.label_code  " +
                "from base_service_package_sign_record sr,base_service_package_record r,  " +
                "                base_service_package_item i,base_patient p,wlyy_patient_label l " +
                "                WHERE sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id  " +
                "                and i.del = 1 and i.team_code = '"+teamCode+"' " +
                "from base_service_package_sign_record sr,base_service_package_record r  " +
                "                ,base_patient p,wlyy_patient_label l " +
                "                WHERE sr.id = r.sign_id and sr.status=1 and r.team_code = '"+teamCode+"' " +
                "                and sr.patient = p.id and p.id = l.patient and l.label_type = 1) " +
                "a on dict.dict_code = a.label_code  " +
                "where dict.dict_name = '"+ConstantUtil.DICT_SERVICE_TYPE+"' and dict_code<>5  " +
@ -65,9 +64,9 @@ public class PatientLableService extends BaseJpaService<WlyyPatientLabelDO, Wlyy
        sql +=",(select COUNT(*) from wlyy_patient_device a where a.`user` = p.id) deviceFlag ";
        String countSql = "SELECT count(DISTINCT p.id) ";
        String filters = "from base_service_package_sign_record sr,base_service_package_record r,  " +
                "                base_service_package_item i,base_patient p,wlyy_patient_label l " +
                "                WHERE sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id  " +
                "                and i.del = 1 and i.team_code =  '"+teamCode+"' " +
                "                base_patient p,wlyy_patient_label l " +
                "                WHERE sr.id = r.sign_id and sr.status=1  " +
                "                and r.team_code =  '"+teamCode+"' " +
                "                and sr.patient = p.id and p.id = l.patient and l.label_type = 1 and l.label_code =  '"+labelCode+"' ";
        if(StringUtils.isNotBlank(name)){
            filters += " and (p.name like '%"+name+"%' or p.idcard like '%"+name+"%') ";

+ 22 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/BaseServiceNewsService.java

@ -2,6 +2,7 @@ package com.yihu.jw.care.service.message;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.care.dao.message.BaseServiceNewsDao;
import com.yihu.jw.care.service.device.DeviceService;
import com.yihu.jw.entity.care.device.DevicePatientDevice;
import com.yihu.jw.entity.care.message.BaseServiceNews;
import com.yihu.jw.restmodel.iot.device.WlyyPatientDeviceVO;
@ -13,6 +14,7 @@ import org.springframework.data.domain.Sort.Direction;
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;
@ -33,13 +35,15 @@ public class BaseServiceNewsService {
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private PatientDeviceDao patientDeviceDao;
    @Autowired
    private DeviceService deviceService;
    /**
     * 查找机构坐标
     * @return
     */
    public List<Map<String,Object>> findOrgLocations(){
        String sql = "SELECT code,name,brief,address,photo,mobile,longitude,latitude from base_org WHERE type in ('3','4') and del =1";
        String sql = "SELECT code,name,brief,address,photo,mobile,longitude,latitude,type from base_org WHERE type in ('3','4') and del =1";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        return list;
    }
@ -49,7 +53,7 @@ public class BaseServiceNewsService {
     * @return
     */
    public List<Map<String,Object>> findPatinetByName(String name){
        String sql = "SELECT p.id,p.`name`,p.address,p.photo,p.mobile,p.lat_lon latLon,sex,idcard,CAST(archive_type AS char) type from base_patient p\n" +
        String sql = "SELECT p.id,p.`name`,p.address,p.photo,p.mobile,p.lat_lon latLon,sex,idcard,p.pad_imei,p.openid,CAST(archive_type AS char) type from base_patient p\n" +
                "WHERE p.del = 1 and p.name like '%"+name+"%'";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        List<DevicePatientDevice> feeDetail = patientDeviceDao.findByAll();
@ -57,6 +61,13 @@ public class BaseServiceNewsService {
                .collect(Collectors.groupingBy(DevicePatientDevice::getUser));
        for (Map<String,Object> map:list){
            String idcard = map.get("idcard").toString();
            String devices= deviceService.getPatientDeviceCategoryCode(map.get("id").toString());
            if ("0".equals(devices)){
                map.put("category",new ArrayList<>());
            }else {
                String[] ss = devices.split(",");
                map.put("category",ss);
            }
            map.put("age", IdCardUtil.getAgeForIdcard(idcard));
            List<DevicePatientDevice> patientDevices = byDept1.get(map.get("id"));
            map.put("devices",patientDevices);
@ -70,13 +81,20 @@ public class BaseServiceNewsService {
     * @return
     */
    public List<Map<String,Object>> findPatinetLocations(){
        String sql = "SELECT p.id,p.`name`,p.address,p.photo,p.mobile,p.lat_lon latLon,sex,idcard,archive_type type from base_doctor_patient_tmp t,base_patient p " +
        String sql = "SELECT p.id,p.`name`,p.address,p.photo,p.mobile,p.lat_lon latLon,sex,idcard,archive_type type,p.pad_imei,p.openid from base_doctor_patient_tmp t,base_patient p " +
                "WHERE t.patient = p.id and t.del=1 and t.`status`=1 and p.del =1 " +
                "UNION  " +
                "SELECT p.id,p.`name`,p.address,p.photo,p.mobile,p.lat_lon latLon,sex,idcard,archive_type type from base_service_package_sign_record t,base_patient p " +
                "SELECT p.id,p.`name`,p.address,p.photo,p.mobile,p.lat_lon latLon,sex,idcard,archive_type type,p.pad_imei,p.openid from base_service_package_sign_record t,base_patient p " +
                "WHERE t.patient = p.id and t.`status`=1 and p.del =1";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> map:list){
            String devices= deviceService.getPatientDeviceCategoryCode(map.get("id").toString());
            if ("0".equals(devices)){
                map.put("devices",new ArrayList<>());
            }else {
                String[] ss = devices.split(",");
                map.put("devices",ss);
            }
            String idcard = map.get("idcard").toString();
            map.put("age", IdCardUtil.getAgeForIdcard(idcard));
        }

+ 5 - 5
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/DoctorMessageService.java

@ -92,10 +92,10 @@ public class DoctorMessageService {
            List<Map<String,Object>> listTmp = new ArrayList<>();
            String sql ="select count(*) count,patient_name,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') create_time,serve_desc from base_security_monitoring_order ord where 1=1 " +
                    "and status <>-1 and status<> 0  ";
            sql+= "and  EXISTS ( SELECT 1 from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i ," +
            sql+= "and  EXISTS ( SELECT 1 from base_service_package_sign_record sr,base_service_package_record r" +
                    "base_team_member m " +
                    "where ord.patient = CONVERT(sr.patient USING utf8) and  sr.id = r.sign_id and sr.status=1 and " +
                    " r.service_package_id = i.service_package_id and  m.team_code = r.team_code  and i.del = 1 and sr.`status`=1  and i.code='preventLost' and m.doctor_code = '"+doctor+"' and m.del = '1') ";
                    "  m.team_code = r.team_code   and sr.`status`=1  and m.doctor_code = '"+doctor+"' and m.del = '1') ";
            sql+=" order by create_time asc ";
            Map<String,Object> sqlResult  = jdbcTemplate.queryForMap(sql);
            if (sqlResult.containsKey("count")){
@ -146,9 +146,9 @@ public class DoctorMessageService {
            String sql ="select id,patient_name,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%S') create_time,'preventLost' as service_type from base_security_monitoring_order ord where 1=1 \n" +
                    "and status <>-1 and status<> 7  \n" +
                    "and  EXISTS ( \n" +
                    "SELECT 1 from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i ,\n" +
                    "SELECT 1 from base_service_package_sign_record sr,base_service_package_record r, \n" +
                    "base_team_member m where ord.patient = CONVERT(sr.patient USING utf8) and  sr.id = r.sign_id and sr.status=1 and \n" +
                    "r.service_package_id = i.service_package_id and  m.team_code = r.team_code  and i.del = 1 and sr.`status`=1  and i.code='preventLost' \n" +
                    "  m.team_code = r.team_code  and sr.`status`=1  \n" +
                    "and m.doctor_code = '"+doctor+"' and m.del = '1') \n" +
                    "order by create_time DESC ";
@ -159,7 +159,7 @@ public class DoctorMessageService {
                        "and  EXISTS ( \n" +
                        "SELECT 1 from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i ,\n" +
                        "base_team_member m where ord.patient = CONVERT(sr.patient USING utf8) and  sr.id = r.sign_id and sr.status=1 and \n" +
                        "r.service_package_id = i.service_package_id and  m.team_code = r.team_code  and i.del = 1 and sr.`status`=1  and i.code='preventLost' \n" +
                        "r.service_package_id = i.service_package_id and  m.team_code = r.team_code  and i.del = 1 and sr.`status`=1   \n" +
                        "and m.doctor_code = '"+doctor+"' and m.del = '1') ";
            }

+ 43 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/CarePatientService.java

@ -5,10 +5,13 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.label.WlyyPatientLabelDao;
import com.yihu.jw.care.service.common.DictService;
import com.yihu.jw.care.service.device.DeviceService;
import com.yihu.jw.care.service.family.PatientFamilyMemberService;
import com.yihu.jw.care.service.sign.CapacityAssessmentRecordService;
import com.yihu.jw.care.service.sign.ServicePackageService;
import com.yihu.jw.care.util.ConstantUtil;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.servicePackage.ServicePackageSignRecordDO;
import com.yihu.jw.entity.care.label.WlyyPatientLabelDO;
@ -25,6 +28,7 @@ import com.yihu.mysql.query.BaseJpaService;
import com.yihu.utils.security.MD5;
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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -63,6 +67,12 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
    private PatientFamilyMemberService familyMemberService;
    @Autowired
    private ImUtil imUtil;
    @Autowired
    private BaseDoctorHospitalDao doctorHospitalDao;
    @Value("${wechat.id}")
    private String wxId;
    @Autowired
    private DeviceService deviceService;
    /**
     * 签约记录
@ -101,6 +111,19 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
        return PageEnvelop.getSuccessListWithPage("success",list,page,size,count);
    }
    public JSONObject findPatientLabelAndCar(String patientId) throws Exception{
        JSONObject res = new JSONObject();
        List<WlyyPatientLabelDO> list = patientLabelDao.findByPatient(patientId);
        res.put("label",list);
        CapacityAssessmentRecordDO recordDO = capacityAssessmentRecordService.findAssessmentByPatientId(patientId);
        if(recordDO==null){
            res.put("levelConclusionName","");
        }else{
            res.put("levelConclusionName",recordDO.getLevelConclusionName());
        }
        return res;
    }
    /**
     * 居民id
     * @param patientId
@ -549,6 +572,15 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
        String sqlSecurity= "SELECT COUNT(*) from base_security_monitoring_order where `status` = 7 ";
        for (Map<String,Object> map:list){
            String doctorId = map.get("id").toString();
            List<BaseDoctorHospitalDO> hospitalDOS = doctorHospitalDao.findByDoctorCode(doctorId);
            if (hospitalDOS.size()>0){
                map.put("residentialArea",hospitalDOS.get(0).getOrgName());
                map.put("org_code",hospitalDOS.get(0).getOrgCode());
            }else {
                map.put("residentialArea",null);
                map.put("org_code",null);
            }
            String filter = " and doctor = '"+doctorId+"'";
            Integer lifeCare = jdbcTemplate.queryForObject(sqlLife+filter,Integer.class);
            Integer emergency = jdbcTemplate.queryForObject(sqlEmergency+filter,Integer.class);
@ -585,4 +617,15 @@ public class CarePatientService extends BaseJpaService<BasePatientDO, BasePatien
        }
        patientDao.save(list);
    }
    public Map<String,Object> patientIconStatus(String patient){
        String sql = "SELECT DISTINCT p.id,p.name,p.photo,p.idcard,p.mobile,p.openid,p.sex,p.pad_imei padImei " +
                "from base_patient p INNER JOIN base_patient_wechat wc on p.id = wc.patient_id where p.del=1 and p.id='"+patient+"' and " +
                " wc.wechat_id = '"+wxId+"' GROUP BY p.id ORDER BY wc.create_time desc";
        Map<String,Object> result = jdbcTemplate.queryForMap(sql);
        result.put("deviceType",deviceService.getPatientDeviceCategoryCode(result.get("id").toString()));
        return result;
    }
}

+ 9 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/patient/OnlineContactService.java

@ -61,6 +61,9 @@ public class OnlineContactService extends BaseJpaService<BasePatientDO, BasePati
                list.add(helperObj);
                obj.put("helperObj",list);///助老员
            }
        } else {
            List list = new ArrayList();
            obj.put("helperObj",list);///助老员
        }
        if (jsList.size() > 0){
@ -94,6 +97,9 @@ public class OnlineContactService extends BaseJpaService<BasePatientDO, BasePati
                list.add(familyObj);
                obj.put("familyObj",list);
            }
        }else {
            List list = new ArrayList();
            obj.put("familyObj",list);
        }
        if (fwzList.size() > 0){
@ -108,6 +114,9 @@ public class OnlineContactService extends BaseJpaService<BasePatientDO, BasePati
                list.add(serStationObj);
                obj.put("serStationObj",list);
            }
        }else {
            List list = new ArrayList();
            obj.put("serStationObj",list);
        }
        return obj;
    }

+ 16 - 16
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/security/SecurityMonitoringOrderService.java

@ -165,8 +165,8 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        }
        //签约防走失服务包
        String sql ="SELECT i.code,i.team_code,i.org_code,i.org_name from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i  \n" +
                "where  sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id   and i.del = 1 and sr.`status`=1 \n" +
        String sql ="SELECT i.code,r.team_code,pack.org_code,pack.org_name from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack    \n" +
                "where  sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and r.service_package_id = pack.id  and i.del = 1 and sr.`status`=1 \n" +
                "and  sr.patient  = '"+orderDO.getPatient()+"' and i.code='preventLost' ";
        List<Map<String,Object>> items = jdbcTemplate.queryForList(sql);
        if (items.size()==0) {
@ -377,8 +377,8 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            noticePersons.add(noticeObj);
        }
        //医生信息
        String sql ="SELECT i.code,i.team_code,i.org_code,i.org_name from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i  \n" +
                "where  sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id   and i.del = 1 and sr.`status`=1 \n" +
        String sql ="SELECT i.code,r.team_code,pack.org_code,pack.org_name from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_service_package pack  \n" +
                "where  sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id and r.service_package_id = pack.id  and i.del = 1 and sr.`status`=1 \n" +
                "and  sr.patient  = '"+orderDO.getPatient()+"' and i.code='preventLost' ";
        List<Map<String,Object>> items = jdbcTemplate.queryForList(sql);
        if (items.size()>0){
@ -1157,7 +1157,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
    public List<Map<String,Object>> getSecurityServerDoctor(String patient,String topicItem){
        //获取患者签约防走失服务的团队
        String sql="SELECT DISTINCT i.team_code from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i  \n" +
        String sql="SELECT DISTINCT r.team_code from base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i  \n" +
                "where  sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id   and i.del = 1 and sr.`status`=1 \n" +
                "and  sr.patient  = '"+patient+"' and i.code='"+topicItem+"'";
        List<String> teams = jdbcTemplate.queryForList(sql,String.class);
@ -1166,7 +1166,7 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
            return new ArrayList<>();
        }else {
            for (String team:teams){
                sql = "select DISTINCT doc.id doctor,CONCAT(doc.`name`,\n" +
                sql = "select DISTINCT doc.id doctor,doc.name as doctorName,CONCAT(doc.`name`,\n" +
                        "CASE WHEN doc.doctor_level=1 THEN '(社区医生)' ELSE '(助老员)' END) as name,doc.photo,doc.mobile from base_team_member mem " +
                        "INNER JOIN base_doctor doc on mem.doctor_code = doc.id and mem.del=1 and mem.team_code='"+team+"'";
                List<Map<String,Object>>tmp = jdbcTemplate.queryForList(sql);
@ -1185,7 +1185,15 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
        result.put("fall",null);
        result.put("deviceSn",null);
        result.put("monitorInfo",null);
        if ((StringUtils.isNotBlank(topicItem)&&"preventLost".equals(topicItem))||StringUtils.isBlank(topicItem)){
        String sql = " select count(id) from base_security_monitoring_order where patient='"+patient+"' and topic_item='preventFall' and status="+SecurityMonitoringOrderDO.Status.apply.getType();
        Integer count = jdbcTemplate.queryForObject(sql,Integer.class);
        if (count>0){
            result.put("fall",true);
        }
        else {
            result.put("fall",false);
        }
        if ((StringUtils.isNotBlank(topicItem)&&"preventLost".equals(topicItem))){
            List<DevicePatientDevice> devicePatientDeviceDos = patientDeviceDao.findByUserAndCategoryCode(patient,"4");
            if (devicePatientDeviceDos.size()==0){
            }
@ -1240,20 +1248,12 @@ public class SecurityMonitoringOrderService extends BaseJpaService<SecurityMonit
                }
            }
        }
        if ((StringUtils.isNotBlank(topicItem)&&"preventFall".equals(topicItem))||StringUtils.isBlank(topicItem)){
        if ((StringUtils.isNotBlank(topicItem)&&"preventFall".equals(topicItem))){
            List<DevicePatientDevice> devicePatientDeviceDos = patientDeviceDao.findByUserAndCategoryCode(patient,"12");
            if (devicePatientDeviceDos.size()==0){
            }
            else{
                String sql = " select count(id) from base_security_monitoring_order where patient='"+patient+"' and topic_item='preventFall' and status="+SecurityMonitoringOrderDO.Status.apply.getType();
                Integer count = jdbcTemplate.queryForObject(sql,Integer.class);
                if (count>0){
                    result.put("fall",true);
                }
                else {
                    result.put("fall",false);
                }
                try {
                    JSONObject monitorUrl = ysDeviceServicel.getDeviceLiveAddress(patient,devicePatientDeviceDos.get(0).getDeviceSn(),1,null);
                    result.put("monitorInfoStatus",monitorUrl.getIntValue(ResponseContant.resultFlag));

+ 12 - 10
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/CapacityAssessmentRecordService.java

@ -86,8 +86,10 @@ public class CapacityAssessmentRecordService extends BaseJpaService<CapacityAsse
    public CapacityAssessmentRecordDO findAssessmentByPatientId(String patient) throws Exception {
        Date assessmentTime =  DateUtil.dateTimeParse(DateUtil.getNowYear() + "-01-01 00:00:00");
        CapacityAssessmentRecordDO recordDO = capacityAssessmentRecordDao.findByPatient(patient,assessmentTime);
        recordDO.setLevelConclusionName(dictService.fingByNameAndCode(ConstantUtil.DICT_LEVEL_CONCLUSION,String.valueOf(recordDO.getLevelConclusion())));
        return recordDO;
        if(recordDO!=null){
            recordDO.setLevelConclusionName(dictService.fingByNameAndCode(ConstantUtil.DICT_LEVEL_CONCLUSION,String.valueOf(recordDO.getLevelConclusion())));
        }
         return recordDO;
    }
    /**
@ -126,14 +128,14 @@ public class CapacityAssessmentRecordService extends BaseJpaService<CapacityAsse
        res.put("2",0);
        res.put("3",0);
        String sql = "SELECT COUNT(DISTINCT ar.patient) count,level_conclusion from  " +
                "base_capacity_assessment_record ar, " +
                "base_service_package_sign_record sr,base_service_package_record r,  " +
                "                base_service_package_item i,base_team_member m  " +
                "                WHERE sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id  " +
                "                and i.del = 1 and m.team_code = r.team_code and ar.patient = sr.patient " +
                "                and m.doctor_code = '"+doctorId+"' and m.del = '1' and sr.`status`=1 " +
                "GROUP BY ar.level_conclusion" ;
        String sql = " SELECT COUNT(DISTINCT A.patient) count,A.level_conclusion \n" +
                " from ( select ar.patient,ar.label_code as level_conclusion from  wlyy_patient_label ar, " +
                " base_service_package_sign_record sr,base_service_package_record r, base_service_package_item i,base_team_member m " +
                " WHERE sr.id = r.sign_id and sr.status=1 and r.service_package_id = i.service_package_id " +
                " and i.del = 1 and m.team_code = r.team_code and ar.patient = sr.patient and ar.label_type = 1 " +
                " and m.doctor_code = '"+doctorId+"' and m.del = '1' and sr.`status`=1  " +
                " GROUP BY ar.patient ORDER BY ar.czrq desc)A " +
                " GROUP BY a.level_conclusion " ;
        List<Map<String,Object>> countMapList = jdbcTemplate.queryForList(sql);
        for(Map<String,Object> map:countMapList){
            int c = Integer.valueOf(map.get("count").toString());

+ 24 - 7
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/sign/ServicePackageService.java

@ -3,7 +3,10 @@ package com.yihu.jw.care.service.sign;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.care.dao.apply.PatientBedApplyDao;
import com.yihu.jw.care.dao.label.WlyyPatientLabelDao;
import com.yihu.jw.care.dao.sign.*;
import com.yihu.jw.care.service.common.DictService;
import com.yihu.jw.care.util.ConstantUtil;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.org.BaseOrgDO;
@ -14,6 +17,7 @@ import com.yihu.jw.entity.base.servicePackage.ServicePackageRecordDO;
import com.yihu.jw.entity.base.servicePackage.ServicePackageSignRecordDO;
import com.yihu.jw.entity.care.apply.PatientBedApplyDo;
import com.yihu.jw.entity.care.archive.ArchiveDO;
import com.yihu.jw.entity.care.label.WlyyPatientLabelDO;
import com.yihu.jw.im.util.ImUtil;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.patient.service.BasePatientMedicardCardService;
@ -73,6 +77,10 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
    private PatientBedApplyDao bedApplyDao;
    @Autowired
    private ImUtil imUtil;
    @Autowired
    private WlyyPatientLabelDao patientLabelDao;
    @Autowired
    private DictService dictService;
    /**
     * 查找签约机构
@ -206,10 +214,10 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
     * @param signId
     */
    public List<Map<String,Object>> fingdBySignId(String signId){
        String sql = "SELECT DISTINCT p.id,p.`name`,item.org_code,item.org_name from base_service_package_sign_record sr,base_service_package_record r, " +
                "base_service_package p,base_service_package_item item " +
                "WHERE sr.id = r.sign_id and  p.id = r.service_package_id and item.service_package_id = r.service_package_id and p.del = 1 " +
                " and item.del=1 and sr.id = '"+signId+"' GROUP BY item.service_package_id ORDER BY item.create_time desc ";
        String sql = "SELECT DISTINCT p.id,p.`name`,p.org_code,p.org_name from base_service_package_sign_record sr,base_service_package_record r, " +
                "base_service_package p " +
                "WHERE sr.id = r.sign_id and  p.id = r.service_package_id and p.del = 1 " +
                "  and sr.id = '"+signId+"' GROUP BY r.service_package_id ORDER BY r.create_time desc ";
        return jdbcTemplate.queryForList(sql);
    }
@ -268,7 +276,7 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
     * @param doctorId
     */
    @Transactional(rollbackFor = Exception.class)
    public JSONObject servicePackageSign(String jsonData,String doctorId,String patientId,String signYear) throws Exception{
    public JSONObject servicePackageSign(String jsonData,String doctorId,String patientId,String signYear,String lableCode) throws Exception{
        BasePatientDO patientDO = patientDao.findById(patientId);
        JSONObject result = new JSONObject();
        ServicePackageSignRecordDO signRecordDO = objectMapper.readValue(jsonData, ServicePackageSignRecordDO.class);
@ -324,6 +332,15 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
            result.put(ResponseContant.resultMsg,"请勿重复签约");
            return result;
        }
        //生成居民标签
        patientLabelDao.deleteByPatientAndLabelType(patientId,"1");
        WlyyPatientLabelDO patientLabelDO = new WlyyPatientLabelDO();
        patientLabelDO.setCzrq(new Date());
        patientLabelDO.setLabelType("1");
        patientLabelDO.setPatient(patientId);
        patientLabelDO.setLabelCode(lableCode);
        patientLabelDO.setLabelName(dictService.fingByNameAndCode(ConstantUtil.DICT_SERVICE_TYPE,lableCode));
        patientLabelDao.save(patientLabelDO);
        //服务项目 emergencyAssistance 只能签约一个
        String sqlItem = "select item.`code`,item.name from base_service_package_item item INNER JOIN base_service_package_record pr on item.service_package_id = pr.service_package_id\n" +
@ -483,14 +500,14 @@ public class ServicePackageService extends BaseJpaService<ServicePackageDO, Serv
    }
    public List<Map<String,Object>> getServerDoctorAll(String patient,String onlineFlag){
        String sql="SELECT  DISTINCT doc.id doctor,doc.name as doctorName,CONCAT(doc.`name`,CASE WHEN doc.doctor_level=1 " +
        String sql="SELECT DISTINCT doc.id doctor,doc.name as doctorName,CONCAT(doc.`name`,CASE WHEN doc.doctor_level=1 " +
                " THEN '(社区医生)' ELSE '(助老员)' END) as name,doc.photo,doc.mobile,doc.job_title_name as jobName,doc.job_title_code as job, " +
                " 0 as onLineFlag,org.code,org.name as orgName " +
                "from base_service_package_sign_record sr,base_service_package_record r,base_team_member m,base_doctor doc, " +
                "base_service_package pack,base_org org " +
                "WHERE sr.patient='"+patient+"' and sr.status=1  and m.team_code = r.team_code and " +
                " m.doctor_code = doc.id and sr.id=r.sign_id and pack.id = r.service_package_id and pack.org_code = org.code " +
                " and m.del = '1'";
                " and m.del = '1' group by doc.id";
        List<Map<String,Object>>result = jdbcTemplate.queryForList(sql);
        if ("1".equals(onlineFlag)){//展示是否在线
            String listStr = imUtil.getOnlineListByType("helper");

+ 68 - 3
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/statistics/StatisticsService.java

@ -9,10 +9,13 @@ import com.yihu.jw.dict.dao.DictHospitalDeptDao;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
import com.yihu.jw.entity.base.login.BaseLoginLogDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.patient.Patient;
import com.yihu.jw.es.util.ElasticsearchUtil;
import com.yihu.jw.es.util.SaveModel;
import com.yihu.jw.im.util.ImUtil;
import com.yihu.jw.org.dao.BaseOrgDao;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.collections.map.HashedMap;
@ -52,6 +55,8 @@ public class StatisticsService {
    private StatisticsUtilService statisticsUtilService;
    @Autowired
    private ImUtil imUtil;
    @Autowired
    private BasePatientDao patientDao;
    private static final String defalutArea = "330100";
@ -111,7 +116,7 @@ public class StatisticsService {
        JSONObject res = new JSONObject();
        Integer olderTotal = 0;
        Integer childTotal = 0;
        String sql1 = "SELECT COUNT(*) c,archive_type from base_patient WHERE archive_type is  not null and del='1' GROUP BY archive_type";
        String sql1 = "SELECT COUNT(*) c,archive_type*1 as archive_type from base_patient WHERE archive_type is not null and del='1' GROUP BY archive_type";
        List<Map<String,Object>> list1 = jdbcTemplate.queryForList(sql1);
        for(Map<String,Object> map:list1){
            String archive_type = map.get("archive_type").toString();
@ -141,6 +146,61 @@ public class StatisticsService {
        return  res;
    }
    public PageEnvelop getAllDynamics(Integer page,Integer size){
        List result = new ArrayList<>();
        Date date = DateUtil.getPreDays(new Date(),-7);
        String dateStr = DateUtil.dateToStrLong(date);
        String sql = "select * from base_login_log where create_time>='"+dateStr+"' order by create_time desc limit "+ (page-1)*size+","+size;
        String sqlCount = "select count(id) from base_login_log where create_time>='"+dateStr+"' ";
        Long count = jdbcTemplate.queryForObject(sqlCount,Long.class);
        List<BaseLoginLogDO> loginLogDOs = jdbcTemplate.query(sql,new BeanPropertyRowMapper(BaseLoginLogDO.class));
        for (BaseLoginLogDO log:loginLogDOs) {
            JSONObject object = new JSONObject();
            object.put("patient",log.getUserId());
            BasePatientDO patient = patientDao.findById(log.getUserId());
            if (patient != null){
                String archive_type = null;
                Integer onLineFlag =0;
                if (patient.getArchiveType() == null){
                    continue;
                }
                switch (patient.getArchiveType().toString()){
                    case "1":
                        archive_type = "older";//老人
                        break;
                    case "2":
                        archive_type = "child";//新生儿
                        break;
                }
                object.put("archiveType",patient.getArchiveType());
                String onLineStr = imUtil.findByUserIdAndType(log.getUserId().toString(),archive_type);
                JSONObject oneLineObj = JSONObject.parseObject(onLineStr);
                if (200 == oneLineObj.getInteger("status")){
                    if (oneLineObj.getInteger("data")>0){
                        onLineFlag=1;
                    }
                }
                object.put("onLineFlag", onLineFlag);
            } else {
                Integer onLineFlag =0;
                String onLineStr = imUtil.findByUserIdAndType(log.getUserId().toString(),"helper");
                JSONObject oneLineObj = JSONObject.parseObject(onLineStr);
                if (200 == oneLineObj.getInteger("status")){
                    if (oneLineObj.getInteger("data")>0){
                        onLineFlag=1;
                    }
                }
                object.put("onLineFlag", onLineFlag);
                object.put("archiveType","0");
            }
            object.put("name",log.getName());
            object.put("createTime", DateUtil.dateToStrLong(log.getCreateTime()) );
            object.put("clientType", log.getClientType());
            result.add(object);
        }
        return PageEnvelop.getSuccessListWithPage("查询成功",result,page,size,count);
    }
    /**
     * 服务排名分析
     * @param endDate
@ -231,8 +291,10 @@ public class StatisticsService {
     */
    public PageEnvelop fingLoginLog(Integer page,Integer size){
        List<String> result = new ArrayList<>();
        String sql = "select * from base_login_log order by create_time desc limit "+ (page-1)*size+","+size;
        String sqlCount = "select count(id) from base_login_log";
        Date date = DateUtil.getPreDays(new Date(),-7);
        String dateStr = DateUtil.dateToStrLong(date);
        String sql = "select * from base_login_log where create_time>='"+dateStr+"'  order by create_time desc limit "+ (page-1)*size+","+size;
        String sqlCount = "select count(id) from base_login_log where create_time>='"+dateStr+"' ";
        Long count = jdbcTemplate.queryForObject(sqlCount,Long.class);
        List<BaseLoginLogDO> loginLogDOs = jdbcTemplate.query(sql,new BeanPropertyRowMapper(BaseLoginLogDO.class));
        for (BaseLoginLogDO log:loginLogDOs) {
@ -618,6 +680,9 @@ public class StatisticsService {
        for(int i=0;i<list.size();i++){
            SaveModel saveModel = list.get(i);
            JSONObject json = new JSONObject();
            if (saveModel.getResult2().longValue()==0&&StringUtils.isBlank(saveModel.getSlaveKey1())){
                continue;
            }
            json.put("num",saveModel.getResult2().longValue());
            json.put("code",saveModel.getSlaveKey1());
            json.put("name",saveModel.getSlaveKey1Name());

+ 4 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/team/BaseTeamService.java

@ -80,6 +80,10 @@ public class BaseTeamService extends BaseJpaService<BaseTeamDO, BaseTeamDao> {
        }
    }
    public Integer findMemCount(String teamCode){
        return memberDao.findMemCount(teamCode);
    }
    /**
     * 删除团队
     * @param teamCode

+ 3 - 4
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/third/patient/PatientNoLoginService.java

@ -29,12 +29,11 @@ public class PatientNoLoginService {
                " DISTINCT o.* " +
                "FROM " +
                " base_service_package_record r, " +
                " base_service_package_item i, " +
                "  base_service_package pack  " +
                " base_org o " +
                "WHERE " +
                " r.service_package_id = i.service_package_id " +
                "AND i.del = 1 " +
                "and i.org_code = o.code " ;
                "  and r.service_package_id = pack.id " +
                "and r.org_code = o.code " ;
        if("1".equals(type)){
            sql += " and (o.type =1 or o.type = 2) ";
        }else if("3".equals(type)){

+ 12 - 0
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/dao/device/BaseSleepDeviceReportDao.java

@ -0,0 +1,12 @@
package com.yihu.jw.care.dao.device;
import com.yihu.jw.entity.care.device.BaseSleepDeviceReport;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Bing on 2021/8/12.
 */
public interface BaseSleepDeviceReportDao extends PagingAndSortingRepository<BaseSleepDeviceReport,Long> ,
        JpaSpecificationExecutor<BaseSleepDeviceReport> {
}

+ 29 - 4
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/endpoint/DeviceController.java

@ -248,7 +248,8 @@ public class DeviceController {
        }
    }
    @ApiOperation("爱牵挂设备睡眠接收")
    /*******************************************睡眠带begin****************************************************************/
    @ApiOperation("爱牵挂-睡眠带睡眠接收")
    @RequestMapping(value = "bySleep", produces = "application/x-www-form-urlencoded;charset=UTF-8", method = {RequestMethod.POST,RequestMethod.GET})
    public String bySleep(
            @ApiParam(name="device",required = false,value="睡眠带MAC地址",defaultValue = "")
@ -269,7 +270,7 @@ public class DeviceController {
        try {
            String paraString = JSON.toJSONString(request.getParameterMap());
            logger.info("爱牵挂睡眠接收,请求参数:"+paraString);
            logger.info("爱牵挂-睡眠带接收,请求参数:"+paraString);
            deviceService.bySleep(device,time_begin,heartrate,breath,turn_over,is_warn);
            return success();
@ -279,7 +280,7 @@ public class DeviceController {
        }
    }
    @ApiOperation("爱牵挂设备睡眠报告接收")
    @ApiOperation("爱牵挂-睡眠带睡眠报告接收")
    @RequestMapping(value = "bySleepReport", produces = "application/x-www-form-urlencoded;charset=UTF-8", method = {RequestMethod.POST,RequestMethod.GET})
    public String bySleep(
            @ApiParam(name="device",required = false,value="睡眠带MAC地址",defaultValue = "")
@ -325,7 +326,7 @@ public class DeviceController {
        try {
            String paraString = JSON.toJSONString(request.getParameterMap());
            logger.info("爱牵挂睡眠接收,请求参数:"+paraString);
            logger.info("爱牵挂-睡眠带睡眠报考,请求参数:"+paraString);
            deviceService.bySleepReport(device,date,fallasleep,sleepTime,restTime,awakeTime,lightTime,remTime,deepTime,bucket,
                    avghr,avgbr,awakePer,remPer,lightPer,efficiency,score);
@ -336,7 +337,31 @@ public class DeviceController {
        }
    }
    @ApiOperation("爱牵挂-睡眠带wifi在线状态接收")
    @RequestMapping(value = "byOnlineStatus", produces = "application/x-www-form-urlencoded;charset=UTF-8", method = {RequestMethod.POST,RequestMethod.GET})
    public String byOnlineStatus(
            @ApiParam(name="device",required = false,value="睡眠带MAC地址",defaultValue = "")
            @RequestParam(value = "device",required = true) String device,
            @ApiParam(name="onlinestatu",required = false,value="在线状态(0不在线,1在线)")
            @RequestParam(value = "onlinestatu",required = false) String onlinestatu,
            @ApiParam(name="time_begin",required = false,value="发生时间YYYY-MM-DD HH:mm:SS")
            @RequestParam(value = "time_begin",required = false) String time_begin,
            HttpServletRequest request) {
        try {
            String paraString = JSON.toJSONString(request.getParameterMap());
            logger.info("爱牵挂-睡眠带wifi在线状态接收:"+paraString);
            deviceService.byOnlineStatus(device,onlinestatu,time_begin);
            return success();
        } catch (Exception e) {
            e.printStackTrace();
            return error(-1,"Device data incoming failure");
        }
    }
    /*******************************************睡眠带end****************************************************************/
    /**
     * 返回接口处理结果
     *

+ 102 - 5
svr/svr-cloud-device/src/main/java/com/yihu/jw/care/service/DeviceService.java

@ -5,10 +5,12 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.yihu.jw.care.config.AqgConfig;
import com.yihu.jw.care.dao.device.BaseSleepDeviceReportDao;
import com.yihu.jw.care.dao.device.DevicePatientHealthIndexDao;
import com.yihu.jw.care.dao.device.DeviceSosLogDao;
import com.yihu.jw.care.dao.device.PatientDeviceDao;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.care.device.BaseSleepDeviceReport;
import com.yihu.jw.entity.care.device.DevicePatientHealthIndex;
import com.yihu.jw.entity.care.device.DevicePatientDevice;
import com.yihu.jw.entity.care.device.DeviceSosLogDO;
@ -76,6 +78,8 @@ public class DeviceService {
    private HealthIndexUtil healthIndexUtil;
    @Autowired
    private ImUtil imUtil;
    @Autowired
    private BaseSleepDeviceReportDao sleepDeviceReportDao;
    /**
     * 获取爱牵挂管理员cookie
@ -158,10 +162,10 @@ public class DeviceService {
                }
            }
            //发送紧急救助
            String sql =" select Distinct item.org_code,item.org_name\n" +
            String sql =" select Distinct pack.org_code,pack.org_name\n" +
                    "from base_service_package_sign_record sr INNER JOIN base_service_package_record pr\n" +
                    "on sr.id = pr.sign_id and sr.status=1 INNER JOIN base_service_package_item item on pr.service_package_id = item.service_package_id and item.del=1 \n" +
                    "where item.code='emergencyAssistance' and sr.patient='"+patientDO.getId()+"'";
                    "INNER JOIN base_service_package pack pack on pr.service_package_id = pack.id where item.code='emergencyAssistance' and sr.patient='"+patientDO.getId()+"'";
            List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
            if (sqlResult.size()>0){
                JSONObject jsonObject = new JSONObject();
@ -264,7 +268,7 @@ public class DeviceService {
                            Double lon = jsonObjectData.getJSONObject("data").getJSONObject("obj").getJSONObject("locationdata").getJSONObject("point").getDouble("lon");
                            String address = jsonObjectData.getJSONObject("data").getJSONObject("obj").getJSONObject("locationdata").getString("address");
                            String sql ="select DISTINCT item.org_code,item.org_name\n" +
                            String sql ="select DISTINCT pack.org_code,pack.org_name\n" +
                                    " from base_service_package_sign_record sr,base_service_package_record pr,base_service_package_item item ,base_service_package pack\n" +
                                    "where pr.patient = '"+patientDO.getId()+"' and sr.id = pr.sign_id and pr.service_package_id = item.service_package_id \tand  item.`code`='preventLost'  and item.service_package_id = pack.id \n" +
                                    "  and pack.del=1";
@ -551,7 +555,55 @@ public class DeviceService {
    public void bySleep(String device,String time_begin,String heartrate,String breath,String turn_over,String is_warn) {
        try {
            if(StringUtils.isNotBlank(device)){
                List<DevicePatientDevice> devicePatientDeviceDos = patientDeviceDao.findByDeviceSn(device);
                if (devicePatientDeviceDos.size()>0){
                    if ("1".equals(is_warn)){//触发安防工单
                        BasePatientDO patientDO = patientDao.findById(devicePatientDeviceDos.get(0).getUser());
                        if(null==patientDO){
                            String sql ="select DISTINCT pack.org_code,pack.org_name\n" +
                                    " from base_service_package_sign_record sr,base_service_package_record pr,base_service_package_item item ,base_service_package pack\n" +
                                    "where pr.patient = '"+patientDO.getId()+"' and sr.id = pr.sign_id and pr.service_package_id = item.service_package_id \tand  item.`code`='preventOutOfBed'  and item.service_package_id = pack.id \n" +
                                    "  and pack.del=1";
                            List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
                            Map<String, String> json = null;
                            String address= devicePatientDeviceDos.get(0).getSosAddress();
                            if (StringUtils.isNotBlank(devicePatientDeviceDos.get(0).getSosAddress())) {
                                 json = LatitudeUtils.getGeocoderLatitude(address.replace("G.", "").replace("(糖友网)", "").replace("(高友网)", ""));
                             }
                            String lat=null;
                            String lng=null;
                             if (json != null) {
                                  lat= json.get("lat".toString());
                                  lng = json.get("lng".toString());
                             }
                            Map<String,Object> map = new HashMap();
                            String url = cloudCareUrl+"/cloudCare/noLogin/security/createOrder";
                            JSONObject jsonObject = new JSONObject();
                            jsonObject.put("patient",patientDO.getId());
                            jsonObject.put("patientName",patientDO.getName());
                            jsonObject.put("patientPhone",patientDO.getMobile());
                            jsonObject.put("serveDesc","疑似发生意外");
                            jsonObject.put("hospital",sqlResult.get(0).get("org_code"));
                            jsonObject.put("serveAddress",address.replace(" ",""));
                            jsonObject.put("serveLat",lat);
                            jsonObject.put("serveLon",lng);
                            jsonObject.put("topicItem","preventOutOfBed");
                            jsonObject.put("deviceSn",device);
                            JSONObject jsonObjectParam = new JSONObject();
                            jsonObjectParam.put("order", jsonObject);
                            map.put("jsonData", jsonObjectParam.toJSONString());
                            map.put("orderSource", 5);
                            map.put("warnStr", "疑似发生意外");
                           String content = com.alibaba.fastjson.JSONObject.toJSONString(map);
                           String postParams = AesEncryptUtils.agEncrypt(content);
                           String response = httpClientUtil.postBodyRawForm(url,postParams);
                           JSONObject result = com.alibaba.fastjson.JSONObject.parseObject(response);
                           JSONObject jsonObjectData =JSONObject.parseObject(AesEncryptUtils.agDecrypt(result.getString("data")));
                            System.out.println(jsonObjectData.toJSONString());
                        }
                    }
                }
            }
        } catch (Exception e) {
@ -561,12 +613,52 @@ public class DeviceService {
    @Async
    public void bySleepReport(String device,String date,String fallasleep,String sleepTime,String restTime,String awakeTime,String lightTime,
    public void bySleepReport(String device,String dateStr,String fallasleep,String sleepTime,String restTime,String awakeTime,String lightTime,
                              String remTime,String deepTime,String[] bucket,String avghr,String avgbr,String awakePer,String remPer,String lightPer,
                              String efficiency,String score) {
        try {
            if(StringUtils.isNotBlank(device)){
                List<DevicePatientDevice> devicePatientDeviceDos = patientDeviceDao.findByDeviceSn(device);
                if (devicePatientDeviceDos.size()>0){
                    String patient = devicePatientDeviceDos.get(0).getUser();
                    BaseSleepDeviceReport report = new BaseSleepDeviceReport();
                    report.setPatient(patient);
                    Date date = DateUtil.strToDate(dateStr,DateUtil.YYYYMMDD);
                    report.setCreateTime(date);
                    report.setFallaSleep(fallasleep);
                    report.setSleepTime(sleepTime);
                    report.setRestTime(restTime);
                    report.setAwakeTime(awakeTime);
                    report.setLightTime(lightTime);
                    report.setRemTime(remTime);
                    report.setDeepTime(deepTime);
                    String buckets =JSON.toJSONString(bucket);
                    report.setBucket(buckets);
                    report.setAvghr(avghr);
                    report.setAvgbr(avgbr);
                    report.setAwakePer(awakePer);
                    report.setRemPer(remPer);
                    report.setLightPer(lightPer);
                    report.setEfficiency(efficiency);
                    report.setScore(score);
                    sleepDeviceReportDao.save(report);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @Async
    public void byOnlineStatus(String device,String onlinestatu,String time_begin){
        try {
            if(StringUtils.isNotBlank(device)){
                List<DevicePatientDevice> devicePatientDeviceDos = patientDeviceDao.findByDeviceSn(device);
                if (devicePatientDeviceDos.size()>0){
                    DevicePatientDevice tmp = devicePatientDeviceDos.get(0);
                    tmp.setOnlineStatus(Integer.parseInt(onlinestatu));
                    patientDeviceDao.save(tmp);
                }
            }
        } catch (Exception e) {
@ -574,4 +666,9 @@ public class DeviceService {
        }
    }
    public static void main(String[] args) {
        String ss="123123,2323";
        System.out.println(String.join(",",ss));
    }
}