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

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

wangzhinan пре 2 година
родитељ
комит
023db161f8
22 измењених фајлова са 484 додато и 86 уклоњено
  1. 26 13
      common/common-entity/sql/sql记录
  2. 65 0
      common/common-entity/src/main/java/com/yihu/jw/entity/log/PadUseTimeEntity.java
  3. 16 0
      common/common-entity/src/main/java/com/yihu/jw/entity/log/ZhaohuiDailyEmeEntity.java
  4. 2 0
      common/common-entity/src/main/java/com/yihu/jw/entity/log/ZhaohuiDailyEntity.java
  5. 27 0
      common/common-entity/src/main/java/com/yihu/jw/entity/log/ZhaohuiDailyVideoEntity.java
  6. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/service/article/KnowledgeArticleService.java
  7. 11 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/message/PadUseTimeDao.java
  8. 17 1
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/admin/AdminManageEndpoint.java
  9. 2 2
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/common/CommonController.java
  10. 14 0
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/message/PatientMessageEndpoint.java
  11. 17 9
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/admin/AdminManageService.java
  12. 5 5
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/assistance/EmergencyAssistanceService.java
  13. 47 26
      svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/message/PatientMessageService.java
  14. 56 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/order/BaseTeamMemberDao.java
  15. 13 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/order/UrgeReminderRecordDao.java
  16. 20 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/pushLog/PadUseTimeDao.java
  17. 10 4
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/event/ApplicationEvent.java
  18. 63 0
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/order/OrderUrgeReminderJob.java
  19. 3 3
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/DeviceSyncService.java
  20. 0 3
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/WechatPushService.java
  21. 64 17
      svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/message/ZhaohuiDailyService.java
  22. 5 2
      svr/svr-cloud-job/src/main/resources/system.properties

+ 26 - 13
common/common-entity/sql/sql记录

@ -2305,19 +2305,20 @@ CREATE TABLE `base_urge_reminder_record` (
CREATE TABLE `base_zhaohui_daily` (
  `id` int(50) NOT NULL AUTO_INCREMENT,
  `patient` varchar(50) DEFAULT NULL COMMENT '老人code',
  `patientName` varchar(50) DEFAULT NULL COMMENT '老人',
  `photo` varchar(50) DEFAULT NULL COMMENT '头像',
  `patient_name` varchar(50) DEFAULT NULL COMMENT '老人',
  `photo` varchar(100) DEFAULT NULL COMMENT '头像',
  `message` varchar(200) DEFAULT NULL COMMENT '总结消息',
  `service` int(2) DEFAULT NULL COMMENT '服务次数',
  `service_time` varchar(20) DEFAULT NULL COMMENT '最近服务时间',
  `service_time` varchar(50) DEFAULT NULL COMMENT '最近服务时间',
  `service_name` varchar(20) DEFAULT NULL COMMENT '最近服务类型',
  `pad_time` varchar(20) DEFAULT NULL COMMENT 'pad使用时长',
  `pad_last_time` varchar(20) DEFAULT NULL COMMENT 'pad上一次时间',
  `pad_last_total_time` varchar(20) DEFAULT NULL COMMENT 'pad上一次时长',
  `pad_last_total_time` varchar(50) DEFAULT NULL COMMENT 'pad上一次时长',
  `create_time` datetime DEFAULT NULL COMMENT '统计时间',
  `family_code` varchar(50) DEFAULT NULL COMMENT '家属code',
  `eme_num` int(2) DEFAULT NULL COMMENT '预警次数',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报';
) ENGINE=InnoDB AUTO_INCREMENT=170 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报';
@ -2325,15 +2326,15 @@ CREATE TABLE `base_zhaohui_daily` (
CREATE TABLE `base_zhaohui_daily_watch` (
  `id` int(50) NOT NULL AUTO_INCREMENT,
  `daily_id` varchar(50) NOT NULL COMMENT '朝晖日报id',
  `wear` INT(2) DEFAULT NULL COMMENT '是否佩戴 1 未佩戴 0 佩戴',
  `power` VARCHAR(20) DEFAULT NULL COMMENT '电量',
  `online` INT(2) DEFAULT NULL COMMENT '在线状态0 不在线 1在线',
  `wear` int(2) DEFAULT NULL COMMENT '是否佩戴 1 未佩戴 0 佩戴',
  `power` varchar(20) DEFAULT NULL COMMENT '电量',
  `online` int(2) DEFAULT NULL COMMENT '在线状态0 不在线 1在线',
  `heart` varchar(20) DEFAULT NULL COMMENT '心率',
  `hearts` varchar(500) DEFAULT NULL COMMENT '心率图',
  `steps` varchar(20) DEFAULT NULL COMMENT '步数',
  `serve_desc` varchar(20) DEFAULT NULL COMMENT '检测异常',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报-防走失检测';
) ENGINE=InnoDB AUTO_INCREMENT=158 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报-防走失检测';
CREATE TABLE `base_zhaohui_daily_video` (
@ -2343,8 +2344,10 @@ CREATE TABLE `base_zhaohui_daily_video` (
  `device_sn` varchar(20) DEFAULT NULL COMMENT '设备SN码',
  `time` varchar(50) DEFAULT NULL COMMENT '时间',
  `serve_desc` varchar(20) DEFAULT NULL COMMENT '检测异常',
  `eme_status` int(2) DEFAULT NULL COMMENT '预警信息0无 1有',
  `order_id` varchar(50) DEFAULT NULL COMMENT '工单id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报-防跌倒监测';
) ENGINE=InnoDB AUTO_INCREMENT=239 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报-防跌倒监测';
CREATE TABLE `base_zhaohui_daily_sleep` (
  `id` int(50) NOT NULL AUTO_INCREMENT,
@ -2359,13 +2362,23 @@ CREATE TABLE `base_zhaohui_daily_sleep` (
  `heart_curve` varchar(500) DEFAULT NULL COMMENT '心率曲线',
  `serve_desc` varchar(20) DEFAULT NULL COMMENT '检测异常',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报-睡眠监测';
) ENGINE=InnoDB AUTO_INCREMENT=158 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报-睡眠监测';
CREATE TABLE `base_zhaohui_daily_eme` (
  `id` int(50) NOT NULL AUTO_INCREMENT,
  `daily_id` varchar(50) NOT NULL COMMENT '朝晖日报id',
  `message` varchar(20) DEFAULT NULL COMMENT '消息',
  `online` int(2) DEFAULT NULL COMMENT '在线状态0 不在线 1在线',
  `order_id` varchar(20) DEFAULT NULL COMMENT '工单id',
  `mem_status` int(2) DEFAULT NULL COMMENT '预警状态0 无1有',
  `order_id` varchar(50) DEFAULT NULL COMMENT '工单id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=143 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报-紧急呼叫';
CREATE TABLE `pad_use_time` (
  `id` int(50) NOT NULL AUTO_INCREMENT,
  `patient` varchar(50) DEFAULT NULL COMMENT '老人code',
  `create_time` datetime DEFAULT NULL COMMENT '统计时间',
  `time` int(2) DEFAULT NULL COMMENT '使用时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8mb4 COMMENT='朝晖日报-紧急呼叫';
) ENGINE=InnoDB AUTO_INCREMENT=97 DEFAULT CHARSET=utf8mb4 COMMENT='pad使用时间';

+ 65 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/log/PadUseTimeEntity.java

@ -0,0 +1,65 @@
package com.yihu.jw.entity.log;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by wsl on 2022/11/16
 */
@Entity
@Table(name = "pad_use_time")
public class PadUseTimeEntity extends IdEntity {
    /**
     * 老人code
     */
    private String patient;
    /**
     * 统计时间
     */
    private Date createTime;
    /**
     * 使用时间
     */
    private Integer time;
    @Column(name = "patient")
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Column(name = "create_time")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    @Column(name = "time")
    public Integer getTime() {
        return time;
    }
    public void setTime(Integer time) {
        this.time = time;
    }
}

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

@ -28,11 +28,27 @@ public class ZhaohuiDailyEmeEntity extends IdEntity {
     */
    private Integer online;
    /**
     * 预警状态 0无  1有
     */
    private Integer memStatus;
    /**
     * 工单id
     */
    private String orderId;
    @Column(name = "mem_status")
    public Integer getMemStatus() {
        return memStatus;
    }
    public void setMemStatus(Integer memStatus) {
        this.memStatus = memStatus;
    }
    @Column(name = "daily_id")
    public String getDailyId() {
        return dailyId;

+ 2 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/log/ZhaohuiDailyEntity.java

@ -1,5 +1,6 @@
package com.yihu.jw.entity.log;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.IdEntity;
import javax.persistence.Column;
@ -183,6 +184,7 @@ public class ZhaohuiDailyEntity extends IdEntity {
        this.padLastTotalTime = padLastTotalTime;
    }
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @Column(name = "create_time")
    public Date getCreateTime() {
        return createTime;

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

@ -36,11 +36,38 @@ public class ZhaohuiDailyVideoEntity extends IdEntity {
     */
    private String time;
    /**
     * 预警状态 0无  1有
     */
    private Integer emeStatus;
    /**
     * 检测异常
     */
    private String serveDesc;
    private String orderId;
    @Column(name = "order_id")
    public String getOrderId() {
        return orderId;
    }
    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }
    @Column(name = "eme_status")
    public Integer getEmeStatus() {
        return emeStatus;
    }
    public void setEmeStatus(Integer emeStatus) {
        this.emeStatus = emeStatus;
    }
    @Column(name = "daily_id")
    public String getDailyId() {
        return dailyId;

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/article/KnowledgeArticleService.java

@ -81,7 +81,7 @@ public class KnowledgeArticleService extends BaseJpaService<KnowledgeArticleDict
	 * @return
	 */
	public PageEnvelop<List<Map<String,Object>>> findPageByArticleName(String articleName, Integer page, Integer size){
		String sql = "SELECT a.id,a.sort,cast(a.status as char) status,a.article_id articleId,LEFT(a.create_time,19) createTime,IF(a.status=1,'生效','失效') statusName" +
		String sql = "SELECT a.id,a.sort,cast(a.status as char) status,a.article_id articleId,IF(d.release_time is null,LEFT(d.create_time,19),LEFT(d.release_time,19)) createTime,IF(a.status=1,'生效','失效') statusName" +
				",d.title articleName,d.image,d.url from base_news_article a,wlyy_knowledge_article_dict d " +
				"WHERE a.article_id = d.id " ;

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

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

+ 17 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/admin/AdminManageEndpoint.java

@ -1,6 +1,7 @@
package com.yihu.jw.care.endpoint.admin;
import com.yihu.jw.care.service.admin.AdminManageService;
import com.yihu.jw.care.service.common.PermissionService;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
@ -24,6 +25,8 @@ public class AdminManageEndpoint extends EnvelopRestEndpoint {
    @Resource
    private AdminManageService adminManageService;
    @Resource
    private PermissionService permissionService;
    @GetMapping(value = "getEmergencyAssistanceNum")
    @ApiOperation(value = "获取紧急救助预警中的工单数")
@ -67,7 +70,20 @@ public class AdminManageEndpoint extends EnvelopRestEndpoint {
    public Envelop orderUrgeReminder(@ApiParam(name = "orderType",value = "类型 20紧急呼叫22安防工单") @RequestParam String orderType,
                                     @ApiParam(name = "id",value = "工单id") @RequestParam String id){
        try {
            adminManageService.orderUrgeReminder(id,orderType);
            adminManageService.orderUrgeReminder(id,orderType, permissionService.getUID());
            return success("提醒成功");
        }catch (Exception e){
            e.printStackTrace();
            return Envelop.getError("提醒失败");
        }
    }
    @GetMapping(value = "jobOrderUrgeReminder")
    @ApiOperation(value = "job工单催促提醒")
    public Envelop systemOrderUrgeReminder(@ApiParam(name = "orderType",value = "类型 20紧急呼叫22安防工单") @RequestParam String orderType,
                                     @ApiParam(name = "id",value = "工单id") @RequestParam String id){
        try {
            adminManageService.orderUrgeReminder(id,orderType,"system");
            return success("提醒成功");
        }catch (Exception e){
            e.printStackTrace();

+ 2 - 2
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/common/CommonController.java

@ -152,9 +152,9 @@ public class CommonController extends EnvelopRestEndpoint {
    @GetMapping(value = "open/getDeviceArticleDict")
    @ApiOperation(value = "免登录字典")
    public ListEnvelop getDeviceArticleDict(){
    public ListEnvelop getDeviceArticleDict(@RequestParam(value = "code",required = false)String code){
        try {
            return success(patientMessageService.getDeviceArticleDict());
            return success(patientMessageService.getDeviceArticleDict(code));
        } catch (Exception e) {
            e.printStackTrace();
            return failedListEnvelopException2(e);

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

@ -277,6 +277,20 @@ public class PatientMessageEndpoint extends EnvelopRestEndpoint {
        }
    }
    @PostMapping(value = "/padUseTime")
    @ApiOperation(value = "pad使用时常")
    public Envelop padUseTime(@ApiParam(name = "patient", required = false)
                              @RequestParam(value = "patient") String patient){
        try {
            patientMessageService.padUseTime(patient);
            return success("成功!");
        } catch (Exception e) {
            e.printStackTrace();
            return Envelop.getError("系统异常");
        }
    }
    @GetMapping(value = "/getSystemMessageListNew")
    @ApiOperation(value = "获取系统消息")
    public ListEnvelop getSystemMessageListNew(@ApiParam(name = "type", required = false)

+ 17 - 9
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/admin/AdminManageService.java

@ -4,7 +4,6 @@ import com.yihu.jw.care.dao.assistance.EmergencyAssistanceDao;
import com.yihu.jw.care.dao.message.UrgeReminderRecordDao;
import com.yihu.jw.care.dao.security.SecurityMonitoringOrderDao;
import com.yihu.jw.care.dao.team.BaseTeamMemberDao;
import com.yihu.jw.care.service.common.PermissionService;
import com.yihu.jw.care.util.MessageUtil;
import com.yihu.jw.care.vo.OrgVo;
import com.yihu.jw.care.vo.UserVo;
@ -46,8 +45,6 @@ public class AdminManageService {
    @Resource
    private BaseTeamMemberDao baseTeamMemberDao;
    @Resource
    private PermissionService permissionService;
    @Resource
    private BaseDoctorDao doctorDao;
    @Resource
    private UrgeReminderRecordDao urgeReminderRecordDao;
@ -63,7 +60,7 @@ public class AdminManageService {
     * 工单催促提醒
     * 20紧急呼叫22安防工单
     */
    public void orderUrgeReminder(String id,String orderType){
    public void orderUrgeReminder(String id,String orderType,String sender){
        synchronized (id.intern()){
            UrgeReminderRecordDO recordDO = urgeReminderRecordDao.findByTypeAndOrderId(orderType,id);
            if(recordDO==null){
@ -71,8 +68,7 @@ public class AdminManageService {
                recordDO.setOrderId(id);
                recordDO.setType(orderType);
                urgeReminderRecordDao.save(recordDO);
                String sender = permissionService.getUID();
                BaseDoctorDO baseDoctorDO = doctorDao.findById(sender);
                BaseDoctorDO baseDoctorDO = getDoctorDO(sender);
                String patient;
                String name;
                String teamCode;
@ -97,22 +93,34 @@ public class AdminManageService {
        }
    }
    private BaseDoctorDO getDoctorDO(String id){
        BaseDoctorDO baseDoctorDO;
        if("system".equals(id)){
            baseDoctorDO = new BaseDoctorDO();
            baseDoctorDO.setId("system");
            baseDoctorDO.setName("系统");
        }else {
            baseDoctorDO = doctorDao.findById(id);
        }
        return baseDoctorDO;
    }
    //type   2社工 3助老员 4教师
    //2. 社区医院3.  养老机构 4.  托育机构
    public List<Map<String,Object>> getOrgList(String type){
        if("2".equals(type)){
            String sql = "SELECT distinct t.name orgName,t.org_code orgCode" +
                    " from base_team t,base_team_member tm" +
                    "  WHERE  t.id =tm.team_code and t.del=1 and tm.del = '1' ";
                    "  WHERE  t.id =tm.team_code and t.del=1 and tm.del = '1' and t.org_code='zdjsylfwyxgszhfgs'";
            return jdbcTemplate.queryForList(sql);
        }else {
            String filter = "";
            String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_older' ";
            String sqltmp = "SELECT GROUP_CONCAT(dict_code) orgCodes from wlyy_hospital_sys_dict WHERE dict_name = 'jkzl_org' ";
            List<Map<String,Object>> listtmp =  jdbcTemplate.queryForList(sqltmp);
            if(listtmp.size()>0){
                String orgCodes = String.valueOf(listtmp.get(0).get("orgCodes"));
                orgCodes = orgCodes.replaceAll(",","','");
                filter = " and a.id not in ('"+orgCodes+"')";
                filter = " and a.code not in ('"+orgCodes+"')";
            }
            //2社工, 3教师,4助老员
            String sql = "select code orgCode,name orgName from base_org a where a.del=1 and a.type="+type +filter;

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

@ -2082,11 +2082,11 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
        eme.put("status_-1",0);//已取消
        eme.put("status_0",0);//已完成
        eme.put("status_1",0);//预警中
        String sql = " select ord.status,count(distinct ord.id) count from base_emergency_assistance_order ord INNER JOIN base_patient_helper ph on ord.patient = ph.patient and ph.del=1 ";
        String sql = " select ord.status,count(distinct ord.id) count from base_emergency_assistance_order ord INNER JOIN base_patient ph on ord.patient = ph.id and ph.del=1 ";
        if (StringUtils.isNotBlank(status)){
            sql += " and ord.status='"+status+"' ";
        }
        sql +=  "  where ph.doctor='"+doctor+"' "+olderFilter.replace("{patient}","ph.patient")+" group by ord.status  ";
        sql +=  "  where 1=1 "+olderFilter.replace("{patient}","ph.id")+" group by ord.status  ";
        List<Map<String,Object>> sqlResult = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> map:sqlResult){
            eme.put("status_"+map.get("status"),map.get("count"));
@ -2114,7 +2114,7 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
            serverTmp.put(server.get("dict_value").toString(), server.get("py_code").toString());
        }
        sql = "select ord.status,ord.serve_desc,count(distinct ord.id) count from base_security_monitoring_order ord INNER JOIN base_patient p on p.id = ord.patient " +
                " INNER JOIN base_patient_helper ph on ord.patient = ph.patient and ph.del=1  where ph.doctor='"+doctor+"'  ";
                " INNER JOIN base_patient_helper ph on ord.patient = ph.patient and ph.del=1  where 1=1 ";
        String fliter = " group by ord.status";
        sqlResult = jdbcTemplate.queryForList(sql +olderFilter.replace("{patient}","ph.patient")+ fliter);
@ -2141,11 +2141,11 @@ public class EmergencyAssistanceService extends BaseJpaService<EmergencyAssistan
        /************************ 安防、紧急总数********/
        sql = " select count(distinct ord.id)  from base_emergency_assistance_order ord INNER JOIN base_patient p on ord.patient = p.id and p.del=1 INNER JOIN base_patient_helper ph on ord.patient = ph.patient and ph.del=1 " +
                "  where ph.doctor='"+doctor+"' " ;
                "  where 1=1 " ;
        Long emeCount = jdbcTemplate.queryForObject(sql+olderFilter.replace("{patient}","p.id"),Long.class);
        emeAndSecu.put("emeAll",emeCount);
        sql = "select count(distinct ord.id) count from base_security_monitoring_order ord INNER JOIN base_patient p on ord.patient = p.id and p.del=1 " +
                " INNER JOIN base_patient_helper ph on p.id = ph.patient and ph.del=1  where ph.doctor='"+doctor+"'  ";
                " INNER JOIN base_patient_helper ph on p.id = ph.patient and ph.del=1  where 1=1 ";
        fliter = "  ";
        Long secuCount = jdbcTemplate.queryForObject(sql+olderFilter.replace("{patient}","p.id"),Long.class);
        emeAndSecu.put("secuAll",secuCount);

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

@ -71,6 +71,21 @@ public class PatientMessageService {
    BaseConsultWaresManageDao baseConsultWaresManageDao;
    @Autowired
    private BaseFamilyPushOnOffDao baseFamilyPushOnOffDao;
    @Autowired
    private ZhaohuiDailySleepDao zhaohuiDailySleepDao;
    @Autowired
    private ZhaohuiDailyVideoDao zhaohuiDailyVideoDao;
    @Autowired
    private ZhaohuiDailyWatchDao zhaohuiDailyWatchDao;
    @Autowired
    private ZhaohuiDailyEmeDao zhaohuiDailyEmeDao;
    @Autowired
    private ZhaohuiDailyDao zhaohuiDailyDao;
    @Autowired
    private YsDeviceService ysDeviceService;
    @Autowired
    private PadUseTimeDao padUseTimeDao;
    public PageEnvelop getNoticeList(String patient, String beginTime, String endTime, int page, int size) {
@ -313,18 +328,6 @@ public class PatientMessageService {
    }
    @Autowired
    private ZhaohuiDailySleepDao zhaohuiDailySleepDao;
    @Autowired
    private ZhaohuiDailyVideoDao zhaohuiDailyVideoDao;
    @Autowired
    private ZhaohuiDailyWatchDao zhaohuiDailyWatchDao;
    @Autowired
    private ZhaohuiDailyEmeDao zhaohuiDailyEmeDao;
    @Autowired
    private ZhaohuiDailyDao zhaohuiDailyDao;
    @Autowired
    private YsDeviceService ysDeviceService;
    public JSONObject getZHaohuiRiBaoInfo(String patient, String dailyId){
@ -350,19 +353,19 @@ public class PatientMessageService {
        JSONObject videoObject = new JSONObject();
        List<ZhaohuiDailyVideoEntity> videoEntityList = zhaohuiDailyVideoDao.findByDailyId(dailyId);
        if (videoEntityList.size()>0) {
            //取之前时间的监控
            try {
                    videoObject.put("status", 1);
                    String[] time = videoEntityList.get(0).getTime().split(",");
                    JSONObject tmp = ysDeviceService.videoList2(patient, videoEntityList.get(0).getDeviceSn(), 1, null, null, 4, null, time[0], time[1], "2", null, null, null);
                    videoObject.put("monitorInfoStatus", tmp.getIntValue(ResponseContant.resultFlag));
                    if (tmp.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
                        videoObject.put("monitorInfo", tmp.getString(ResponseContant.resultMsg));
                    } else {
                        JSONObject js1 = tmp.getJSONObject(ResponseContant.resultMsg);
                        js1.put("hdAddress", js1.getString("url"));
                        videoObject.put("monitorInfo", js1);
                    }
                videoObject.put("status", 1);
                JSONObject tmp = ysDeviceService.getDeviceLiveAddress(patient, "F56826706", 1, null);
                videoObject.put("deviceSn", "F56826706");
                videoObject.put("monitorInfoStatus", tmp.getIntValue(ResponseContant.resultFlag));
                if (tmp.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
                    videoObject.put("monitorInfo", tmp.getString(ResponseContant.resultMsg));
                } else {
                    videoObject.put("monitorInfo", tmp.getJSONObject(ResponseContant.resultMsg));
                }
                videoObject.put("eme_Status",videoEntityList.get(0).getEmeStatus());
                videoObject.put("order_id",videoEntityList.get(0).getOrderId());
            } catch (Exception e) {
                e.printStackTrace();
                videoObject.put("monitorInfoStatus", 0);
@ -403,10 +406,12 @@ public class PatientMessageService {
            StringBuffer sql = new StringBuffer("SELECT  id,eme_num,service,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') as create_time,patient_name FROM base_zhaohui_daily WHERE family_code = '" + patient + "' ");
            if (StringUtils.isNotBlank(start)) {
                start+=" 00:00:00";
                sql.append(" and create_time >='" + start + "' ");
            }
            if (StringUtils.isNotBlank(end)) {
                end +=" 23:59:59";
                sql.append(" and create_time <= '" + end + "' ");
            }
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql.toString());
@ -415,6 +420,15 @@ public class PatientMessageService {
        return list;
    }
    public void padUseTime(String patient){
        PadUseTimeEntity padUseTimeEntity = new PadUseTimeEntity();
        padUseTimeEntity.setTime(1);
        padUseTimeEntity.setPatient(patient);
        padUseTimeEntity.setCreateTime(new Date());
        padUseTimeDao.save(padUseTimeEntity);
    }
    public List<Map<String, Object>> getFamilySystemMessageList(String type, String patient, String startTime, String endTime) {
        StringBuffer sql = new StringBuffer("select id,code,type,title,sender,sender_name,receiver,receiver_name,data,is_read,del,DATE_FORMAT(create_time,'%Y-%m-%d %H:%i:%s') as create_time ,content,user_type from base_system_message where user_type = 3 and type in (" + type + ") and receiver = '" + patient + "' ");
@ -464,8 +478,15 @@ public class PatientMessageService {
    }
    public List<Map<String, Object>> getDeviceArticleDict() {
        String sql = "select id,dict_name,dict_code,dict_value from wlyy_hospital_sys_dict where dict_name = 'consultService' order by sort  ";
    public List<Map<String, Object>> getDeviceArticleDict(String code) {
        String sql = "";
        if (StringUtils.isNotBlank(code)) {
            sql = "select id,dict_name,dict_code,dict_value from wlyy_hospital_sys_dict where dict_name = '"+code+"' ";
        }else {
            sql = "select id,dict_name,dict_code,dict_value from wlyy_hospital_sys_dict where dict_name = 'consultService' order by sort  ";
        }
        return jdbcTemplate.queryForList(sql);
    }

+ 56 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/order/BaseTeamMemberDao.java

@ -0,0 +1,56 @@
package com.yihu.jw.care.dao.order;
import com.yihu.jw.entity.base.doctor.BaseDoctorDO;
import com.yihu.jw.entity.base.team.BaseTeamMemberDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
 * 
 * 团队成员 数据库访问层
 */
public interface BaseTeamMemberDao extends JpaRepository<BaseTeamMemberDO, String>, JpaSpecificationExecutor<BaseTeamMemberDO>  {
    @Query("select doc.name as name,doc.idcard as idcard ,doc.id as doctorCode from BaseDoctorDO doc where doc.id in (select team.doctorCode from BaseTeamMemberDO team where team.teamCode = ?1)")
    List<Map<String,Object>> getTeamMemberList(String teamCode);
    @Query("select id from BaseTeamMemberDO where teamCode = ?1")
    Set<Object> findIdListByTeamCode(String teamCode);
    List<BaseTeamMemberDO> findByTeamCode(String teamCode);
    @Query("SELECT case when count(A) > 0 then true else false END FROM BaseTeamMemberDO A WHERE A.teamCode = :teamCode " +
            "AND A.doctorCode = :doctorCode AND A.del = '1'")
    Boolean isMemberExist(@Param(value = "teamCode") String teamCode, @Param(value = "doctorCode") String doctorCode);
    @Modifying
    @Query("update BaseTeamMemberDO t SET t.del = '0' where t.teamCode = :teamCode")
    void deleteByTeamCode(@Param("teamCode") String teamCode);
    BaseTeamMemberDO findByTeamCodeAndDoctorCode(String teamCode, String doctorCode);
    BaseTeamMemberDO findByTeamCodeAndDoctorCodeAndDel(String teamCode, String doctorCode,String del);
    @Modifying
    @Query("update BaseTeamMemberDO t SET t.del = '0' where t.id = :id")
    void deleteById(@Param("id") String id);
    @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 d FROM BaseTeamMemberDO m, BaseTeamDO t, BaseDoctorDO d WHERE t.id = :teamCode AND t.id = m.teamCode " +
            "AND m.doctorCode = d.id And d.level=:doctorLevel AND t.del = '1' AND m.del = '1' ")
    List<BaseDoctorDO> findAllMembersByLevel(@Param(value = "teamCode") String teamCode,@Param(value = "doctorLevel") Integer doctorLevel);
    @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);
}

+ 13 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/dao/order/UrgeReminderRecordDao.java

@ -0,0 +1,13 @@
package com.yihu.jw.care.dao.order;
import com.yihu.jw.entity.care.message.UrgeReminderRecordDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 * Created by yeshijie on 2022/11/15.
 */
public interface UrgeReminderRecordDao extends JpaRepository<UrgeReminderRecordDO, String>, JpaSpecificationExecutor<UrgeReminderRecordDO> {
    UrgeReminderRecordDO findByTypeAndOrderId(String type, String orderId);
}

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

@ -0,0 +1,20 @@
package com.yihu.jw.care.dao.pushLog;
import com.yihu.jw.entity.log.PadUseTimeEntity;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by wsl on 2022/11/17
 */
public interface PadUseTimeDao extends PagingAndSortingRepository<PadUseTimeEntity, String>, JpaSpecificationExecutor<PadUseTimeEntity> {
    @Query("select a from PadUseTimeEntity a where a.patient = ?1 and a.createTime>= ?2 and a.createTime<= ?3 ")
    List<PadUseTimeEntity> findByPatient(String patient,String startTime,String endTime);
}

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

@ -8,10 +8,7 @@ import com.yihu.jw.care.job.data.SaveDataPushJob;
import com.yihu.jw.care.job.device.*;
import com.yihu.jw.care.job.message.DoctorSendUnreadJob;
import com.yihu.jw.care.job.message.PatientSendUnreadJob;
import com.yihu.jw.care.job.order.CancelPayOrderJob;
import com.yihu.jw.care.job.order.DailyWaterJob;
import com.yihu.jw.care.job.order.EmeWarnOrderDayJob;
import com.yihu.jw.care.job.order.EmeWarnOrderJob;
import com.yihu.jw.care.job.order.*;
import com.yihu.jw.care.job.pushRecord.*;
import com.yihu.jw.care.job.sim.GetSimsVoiceFlowDayJob;
import com.yihu.jw.care.job.sim.GetSimsVoiceFlowMonthJob;
@ -303,6 +300,15 @@ public class ApplicationEvent implements ApplicationListener<ContextRefreshedEve
                logger.info("DEVICE_SYNC_JOB exist");
            }
            //预警中的工单,2小时无人处理时,由系统自动发送一条工作提醒给对应的社工
            if (!quartzHelper.isExistJob("ORDER_URGE_REMINDER_JOB")){
                String trigger =  SystemConf.getInstance().getSystemProperties().getProperty("ORDER_URGE_REMINDER_JOB");
                quartzHelper.addJob(OrderUrgeReminderJob.class,trigger,"ORDER_URGE_REMINDER_JOB",new HashMap<String,Object>());
                logger.info("ORDER_URGE_REMINDER_JOB success");
            }else {
                logger.info("ORDER_URGE_REMINDER_JOB exist");
            }
        } catch (Exception e) {
            logger.info(" job start failed");
        }

+ 63 - 0
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/job/order/OrderUrgeReminderJob.java

@ -0,0 +1,63 @@
package com.yihu.jw.care.job.order;
import com.yihu.jw.util.http.HttpClientUtil;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import java.util.List;
import java.util.Map;
/**
 * 预警中的工单,2小时无人处理时,由系统自动发送一条工作提醒给对应的社工
 * Created by yeshijie on 2022/11/18.
 */
@DisallowConcurrentExecution//解决执行频率和间隔时间的问题。到了执行时间点前一任务还在执行中,不会执行下一次任务,直至该次任务完成
public class OrderUrgeReminderJob implements Job {
    private static final Logger logger = LoggerFactory.getLogger(OrderUrgeReminderJob.class);
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private HttpClientUtil httpClientUtil;
    @Value("${spring.profiles.active}")
    private String profiles;
    @Override
    public void execute(JobExecutionContext context) throws JobExecutionException {
        try {
            //获取超过2小时的预警工单
            String sql = "select id,'20' type from base_emergency_assistance_order where status=1 and TIMESTAMPDIFF(HOUR,create_time,NOW())>2" +
                    " union select id,'22' type from base_security_monitoring_order where status=1 and TIMESTAMPDIFF(HOUR,create_time,NOW())>2";
            List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sql);
            for (Map<String,Object> map:mapList){
                String orderId = map.get("id")+"";
                String type = map.get("type")+"";
                String tmpSql = "select count(1) from base_urge_reminder_record where type = '"+type+"' and order_id='"+orderId+"'";
                Integer count = jdbcTemplate.queryForObject(tmpSql,Integer.class);
                if(count==0){
                    String baseUrl;
                    String url = "adminManage/jobOrderUrgeReminder?orderType="+type+"&id="+orderId;
                    if("hzprod".equals(profiles)){
                        baseUrl = "http://10.18.43.41:10301/";
                    }else {
                        baseUrl = "http://172.26.0.107:10301/";
                    }
                    String res = httpClientUtil.get(baseUrl+url,"UTF-8");
                    logger.info("OrderUrgeReminderJob:"+"orderId="+orderId+",res="+res);
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

+ 3 - 3
svr/svr-cloud-job/src/main/java/com/yihu/jw/care/service/device/DeviceSyncService.java

@ -104,7 +104,7 @@ public class DeviceSyncService {
                    break;
                case "18":
                    zhDeviceSyncDO.setDeviceTypeName("日常用水监测");
                    zhDeviceSyncDO.setDeviceTypeCode("暂无");
                    zhDeviceSyncDO.setDeviceTypeCode("G2-005");
                    break;
                case "19":
                    zhDeviceSyncDO.setDeviceTypeName("人脸识别检测");
@ -112,11 +112,11 @@ public class DeviceSyncService {
                    break;
                case "20":
                    zhDeviceSyncDO.setDeviceTypeName("日常用电监测");
                    zhDeviceSyncDO.setDeviceTypeCode("暂无");
                    zhDeviceSyncDO.setDeviceTypeCode("Z2-009");
                    break;
                case "21":
                    zhDeviceSyncDO.setDeviceTypeName("天然气使用监测");
                    zhDeviceSyncDO.setDeviceTypeCode("暂无");
                    zhDeviceSyncDO.setDeviceTypeCode("Z2-008");
                    break;
                default:
                    break;

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

@ -60,14 +60,11 @@ public class WechatPushService {
    }
    private void wxPush(String openid,JSONObject watch,String online,String name){
        if (name.equals("姜云")){
        String first = "您好,您的亲属【"+name+"】当前设备状态如下";
        String content = "智能手表:"+watch.get("WatchWear")+"\r\n智能手表:"+watch.get("pwoer")+"\r\n离线设备:"+online;
        String url = "https://zhyzh.gongshu.gov.cn/medical-care-patient/healthRecords/index?active=1";
        //o_DJs59V7MKJ5ea-YW__LoccEn50
           messageUtil.putTemplateWxMessage(wxId,"template_system_family","jsxtxx",openid,first,url,null,1,null,content,"【推送完成】", com.yihu.jw.util.date.DateUtil.getStringDate());
        }
    }

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

@ -10,6 +10,8 @@ import com.yihu.jw.entity.log.*;
import com.yihu.jw.patient.dao.BasePatientDao;
import com.yihu.jw.util.date.DateUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
@ -29,6 +31,9 @@ import java.util.Map;
@Component
public class ZhaohuiDailyService {
    private static Logger logger = LoggerFactory.getLogger(ZhaohuiDailyService.class);
    @Autowired
    private JdbcTemplate jdbcTemplate;
@ -61,10 +66,10 @@ public class ZhaohuiDailyService {
        }
    }
                          // NOT IN (SELECT dict_code FROM wlyy_hospital_sys_dict WHERE `dict_name` = 'jkzl_older')
    //获取所有老人
    private List<BasePatientDO> olds() {
        String sql = "SELECT * FROM base_patient WHERE archive_type =1 AND sign_status =1  AND del = 1  AND id NOT IN (SELECT dict_code FROM wlyy_hospital_sys_dict WHERE `dict_name` = 'jkzl_older')";
        String sql = "SELECT * FROM base_patient WHERE archive_type =1 AND sign_status =1  AND del = 1  AND id = '808080eb78d3ce030178edeb4346002b'";
        List<BasePatientDO> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(BasePatientDO.class));
        return query;
    }
@ -73,9 +78,8 @@ public class ZhaohuiDailyService {
    //老人家属
    private void getOldFamily(BasePatientDO old) {
        String sql = "select family_member from base_patient_family_member where patient ='" + old.getId() + "' and del = 1 ";
        String sql = "select family_member from base_patient_family_member where patient ='" + old.getId() + "' and family_member = '8a92aba97d329802017d32f08fa20047' ";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        List result = new ArrayList<>();
        for (Map<String, Object> map : list) {
             getFamilyOldInfo(old,map.get("family_member").toString());
        }
@ -83,6 +87,8 @@ public class ZhaohuiDailyService {
    @Autowired
    private PadUseTimeDao padUseTimeDao;
    @Transactional(rollbackFor = Exception.class)
    public void getFamilyOldInfo(BasePatientDO old,String familyCode) {
@ -96,8 +102,8 @@ public class ZhaohuiDailyService {
        String oldId = old.getId();
        String date = DateUtil.getStringDateShort();
        String stateDate = "2022-01-01" + " 00:00:00";
        String endDate = "2022-11-15" + " 23:59:59";
        String stateDate = date + " 00:00:00";
        String endDate = date + " 23:59:59";
        String sex = old.getSex()==1?"爷爷":"奶奶";
@ -111,13 +117,13 @@ public class ZhaohuiDailyService {
        String message = "";
        String emeSql = "select count(id) from base_emergency_assistance_order where patient='"+oldId+"' and status in (0,1) and create_time>='"+stateDate+"' and create_time<='"+endDate+"'";
        String emeSql = "select count(id) from base_emergency_assistance_order where patient='"+oldId+"'  and create_time>='"+stateDate+"' and create_time<='"+endDate+"'";
        Integer emeTotal = jdbcTemplate.queryForObject(emeSql, Integer.class);
        if (emeTotal>0){
            message += old.getName()+sex+"今日发起"+emeTotal+"次紧急呼叫";
        }
        String secSql ="select count(id) total,serve_desc from  base_security_monitoring_order where patient= '"+oldId+"' and create_time>='"+stateDate+"' and create_time<='"+endDate+"'and status in (0,1)";
        String secSql ="select count(id) total,serve_desc from  base_security_monitoring_order where patient= '"+oldId+"' and create_time>='"+stateDate+"' and create_time<='"+endDate+"' ";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(secSql);
        if (list.size()>0&&0>Integer.parseInt(list.get(0).get("total").toString())) {
            if (StringUtils.isNotBlank(message)) {
@ -126,9 +132,9 @@ public class ZhaohuiDailyService {
                message = "监护到"+old.getName()+sex+"今日存在安全预警:【"+list.get(0).get("serve_desc")+"】";
            }
        }
        zhaohuiDailyEntity.setEmeNum(emeTotal+list.size()>0?Integer.parseInt(list.get(0).get("total").toString()):0);
        zhaohuiDailyEntity.setEmeNum(emeTotal+(list.size()>0?Integer.parseInt(list.get(0).get("total").toString()):0));
        if (StringUtils.isBlank("")) {
        if (StringUtils.isBlank(message)) {
            message = old.getName()+sex+"今日状态正常,未发生异常情况";
        }
@ -145,9 +151,27 @@ public class ZhaohuiDailyService {
            zhaohuiDailyEntity.setServiceTime(lifeList.get(0).get("create_time").toString());
            zhaohuiDailyEntity.setServiceName(lifeList.get(0).get("name").toString());
        }
        zhaohuiDailyEntity.setPadTime("10");
        zhaohuiDailyEntity.setPadLastTime("15");
        zhaohuiDailyEntity.setPadLastTotalTime("2022-10-15 23:15:12");
        String abcd = "select * from pad_use_time where patient = '"+oldId+"' and create_time>= '"+stateDate+"' and create_time<='"+endDate+"' ";
        List<Map<String, Object>> padUseTimeList = jdbcTemplate.queryForList(abcd);
        Integer padNum = padUseTimeList.stream().mapToInt(padUserTime->Integer.parseInt(padUserTime.get("time").toString())).sum();
        /*List<PadUseTimeEntity> padTimeList = padUseTimeDao.findByPatient(oldId,stateDate,endDate);
        Integer padNum = padTimeList.stream().mapToInt(PadUseTimeEntity::getTime).sum();*/
        zhaohuiDailyEntity.setPadTime(padNum.toString());
        if (padUseTimeList.size()>0) {
            padUseTimeList.get(padUseTimeList.size()-1).get("time");
            zhaohuiDailyEntity.setPadLastTime(padUseTimeList.get(padUseTimeList.size()-1).get("time").toString());
            logger.info("pad最后使用时间:"+padUseTimeList.get(padUseTimeList.size()-1).get("create_time").toString());
            zhaohuiDailyEntity.setPadLastTotalTime(padUseTimeList.get(padUseTimeList.size()-1).get("create_time").toString());
        }else {
            zhaohuiDailyEntity.setPadLastTime("0");
            zhaohuiDailyEntity.setPadLastTotalTime("无");
        }
        zhaohuiDailyEntity = zhaohuiDailyDao.save(zhaohuiDailyEntity);
@ -171,8 +195,10 @@ public class ZhaohuiDailyService {
                    if (jjbjqList.size()>0) {
                        zhaohuiDailyEmeEntity.setMessage("发出紧急呼叫");
                        zhaohuiDailyEmeEntity.setOrderId(jjbjqList.get(0).get("id").toString());
                        zhaohuiDailyEmeEntity.setMemStatus(1);
                    }else {
                        zhaohuiDailyEmeEntity.setMessage("未发出主动报警");
                        zhaohuiDailyEmeEntity.setMemStatus(0);
                    }
                    JSONObject aqgDeviceInfo2 = patientDeviceService.getAqgDeviceInfo2(deviceSn);
@ -223,7 +249,7 @@ public class ZhaohuiDailyService {
                    if (sqlResult.size() > 0) {
                        Integer num = sqlResult.stream().mapToInt(obj -> Integer.parseInt(obj.get("value1").toString())).sum();
                        zhaohuiDailyWatchEntity.setHeart((num / sqlResult.size()) + "");
                        zhaohuiDailyWatchEntity.setHearts(JSONObject.toJSONString(sqlResult.get(0)));
                        zhaohuiDailyWatchEntity.setHearts(JSONObject.toJSONString(sqlResult));
                    }
                    //手表步数数据
@ -256,18 +282,22 @@ public class ZhaohuiDailyService {
                case 12: //防跌倒视频监测
                    ZhaohuiDailyVideoEntity zhaohuiDailyVideoEntity = new ZhaohuiDailyVideoEntity();
                    sql = " select o.serve_desc  " +
                    sql = " select o.serve_desc,o.id  " +
                            "  from base_security_monitoring_order o " +
                            " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+deviceSn+"' and o.status=1  and o.create_time >= '"+stateDate+"' and o.create_time <= '"+endDate+"' ORDER BY o.create_time desc  limit 1   ";
                            " INNER JOIN base_patient p on p.id = o.patient where device_sn='"+deviceSn+"' and o.status=1  and o.create_time >= '"+stateDate+"' and o.create_time <= '"+endDate+"' and topic_item = 'preventFall' ORDER BY o.create_time desc  limit 1   ";
                    sqlResult = jdbcTemplate.queryForList(sql);
                    if (sqlResult.size()>0){
                        zhaohuiDailyVideoEntity.setServeDesc(sqlResult.get(0).get("serve_desc").toString());
                        zhaohuiDailyVideoEntity.setOrderId(sqlResult.get(0).get("id").toString());
                        zhaohuiDailyVideoEntity.setEmeStatus(1);
                    }else {
                        zhaohuiDailyVideoEntity.setEmeStatus(0);
                        zhaohuiDailyVideoEntity.setServeDesc("无");
                    }
                    zhaohuiDailyVideoEntity.setDeviceSn(deviceSn);
                    zhaohuiDailyVideoEntity.setDailyId(zhaohuiDailyEntity.getId().toString());
                    zhaohuiDailyVideoEntity.setTime(stateDate + "," + endDate);
                    zhaohuiDailyVideoEntity.setServeDesc("无");
                    zhaohuiDailyVideoList.add(zhaohuiDailyVideoEntity);
                    break;
                case 13: //睡眠带
@ -325,6 +355,7 @@ public class ZhaohuiDailyService {
        }
        wxPush(old.getName(),familyCode, zhaohuiDailyEntity.getService(), emeTotal);
@ -345,6 +376,22 @@ public class ZhaohuiDailyService {
    }
    private void wxPush(String name, String familyCode,Integer lift,Integer eme) {
        String sql = "select openid from base_patient where id = '" + familyCode + "' and openid is not null ";
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        if (list.size() > 0) {
            if (name.equals("姜云")) {
                String first = "您好,您的亲属【" + name + "】今日照护日报已生成";
                String content = "紧急预警:" + eme + "\r\n生活照料:" + lift + "";
                String url = "https://zhyzh.gongshu.gov.cn/medical-care-patient/message/daily";
                //o_DJs59V7MKJ5ea-YW__LoccEn50
                messageUtil.putTemplateWxMessage(wxId, "template_system_family", "jsxtxx", "o_DJs59V7MKJ5ea-YW__LoccEn50", first, url, null, 1, null, content, "【推送完成】", com.yihu.jw.util.date.DateUtil.getStringDate());
            }
        }
    }
    public static void main(String[] args) {
        String abc = "[\"12:30-14:09\",\"22:00-04:06\",\"05:09-05:24\"]";
        String[] split = abc.split(",");

+ 5 - 2
svr/svr-cloud-job/src/main/resources/system.properties

@ -56,5 +56,8 @@ DEL_PUSH_MESSAGE_WEATHER_FORECAST_JOB = 0 5 0 * * ?
PUSH_ZHAO_HUI_RI_BAO_JOB = 0 0 20 * * ?
#\u5BB6\u5C5E\u5FAE\u4FE1\u63A8\u9001 \u6BCF\u5929\u65E9\u4E0A\u5341\u70B9
FAMILY_WECHAT_PUSH_DEVICE_JOB = 0 0 10 * * ?
#\u6BCF\u5929 \u7269\u8054\u8BBE\u5907\u5BF9\u63A5 \u63A8\u6B7B
DEVICE_SYNC_JOB = 0 0 23 * * ?
#\u6BCF\u5929 \u7269\u8054\u8BBE\u5907\u5BF9\u63A5
DEVICE_SYNC_JOB = 0 0 23 * * ?
#\u9884\u8B66\u4E2D\u7684\u5DE5\u5355\uFF0C2\u5C0F\u65F6\u65E0\u4EBA\u5904\u7406\u65F6\uFF0C\u7531\u7CFB\u7EDF\u81EA\u52A8\u53D1\u9001\u4E00\u6761\u5DE5\u4F5C\u63D0\u9192\u7ED9\u5BF9\u5E94\u7684\u793E\u5DE5
ORDER_URGE_REMINDER_JOB=0 0/5 * * * ?