|
@ -571,13 +571,10 @@ public class DeviceService {
|
|
|
}
|
|
|
if (null!=sleepPlan){
|
|
|
Date timeDate = DateUtil.strToDate(time_begin);//当前时间
|
|
|
//12点以后
|
|
|
Calendar today = Calendar.getInstance();
|
|
|
today.set(Calendar.HOUR_OF_DAY, 4);
|
|
|
today.set(Calendar.MINUTE, 59);
|
|
|
today.set(Calendar.SECOND, 59);
|
|
|
today.set(Calendar.MILLISECOND, 999);
|
|
|
Date bedUp = DateUtil.strToDate(DateUtil.getStringDateShort()+" "+sleepPlan.getGetUpTime());// 起床时间 起床前一小时内算为起床
|
|
|
Date bedUp = DateUtil.strToDate(DateUtil.getStringDateShort()+" "+sleepPlan.getGetUpTime()+":00");// 起床时间 起床前一小时内算为起床
|
|
|
if (timeDate.before(bedUp)){
|
|
|
bedUp = DateUtil.getNextDay1(bedUp,-1);
|
|
|
}
|
|
|
Date bedUpBegin = DateUtil.getNextMin(bedUp,-60);//起床时间 起床前一小时内算为起床
|
|
|
Date bedUpEnd = DateUtil.getNextMin(bedUp,60*3);//起床时间 起床后一小时内算为起床
|
|
|
boolean needSiesta=false;// 是否有午睡习惯
|
|
@ -585,18 +582,18 @@ public class DeviceService {
|
|
|
Date SiestaBegin = null;// 午睡开始时间
|
|
|
if (StringUtils.isNotBlank(sleepPlan.getNapTime())){
|
|
|
needSiesta=true;
|
|
|
SiestaTime = DateUtil.strToDate(DateUtil.getStringDateShort()+" "+sleepPlan.getNapTime());
|
|
|
SiestaTime = DateUtil.strToDate(DateUtil.getStringDateShort()+" "+sleepPlan.getNapTime()+":00");
|
|
|
SiestaBegin = DateUtil.getNextMin(SiestaTime,-60);// 午睡开始时间
|
|
|
}
|
|
|
String dayTime = DateUtil.dateToStr(bedUp,DateUtil.YYYY_MM_DD);//监测日期
|
|
|
String inTime = sleepPlan.getNightRestTime();
|
|
|
Date bedIn = null;// 入睡时间
|
|
|
Date bedBegin = null;// 入睡开始时间
|
|
|
String dayTime = DateUtil.dateToStr(bedUp,DateUtil.YYYY_MM_DD);//监测日期
|
|
|
if (inTime.charAt(0)=='0') {
|
|
|
bedIn = DateUtil.strToDate(dayTime+" "+sleepPlan.getNightRestTime());
|
|
|
bedIn = DateUtil.strToDate(dayTime+" "+sleepPlan.getNightRestTime()+":00");
|
|
|
bedIn = DateUtil.getNextDay1(bedIn,1);
|
|
|
}else {
|
|
|
bedIn = DateUtil.strToDate(dayTime+" "+sleepPlan.getNightRestTime());
|
|
|
bedIn = DateUtil.strToDate(dayTime+" "+sleepPlan.getNightRestTime()+":00");
|
|
|
}
|
|
|
bedBegin = DateUtil.getNextMin(bedIn,-60*2);
|
|
|
List<BaseSleepPlanDetail> planDetails = sleepPlanDetailDao.findByDay(dayTime);
|
|
@ -625,7 +622,7 @@ public class DeviceService {
|
|
|
planDetail.setBedStatus(0);
|
|
|
planDetail.setBreath(breath);
|
|
|
planDetail.setHeartRate(heartrate);
|
|
|
outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"超时未起床",JSON.toJSONString(planDetail,SerializerFeature.WriteMapNullValue));
|
|
|
outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"超时未起床",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
|
|
|
orderCreate=true;
|
|
|
}
|
|
|
}
|
|
@ -634,20 +631,21 @@ public class DeviceService {
|
|
|
/***午睡***/
|
|
|
if(needSiesta&&DateUtil.isInArea(timeDate,SiestaBegin,bedIn)){//午睡时段
|
|
|
if ("0".equals(bed_status)){
|
|
|
if(1==planDetail.getSiestaStatus()&&null==planDetail.getSiestaTimeEnd()){//午睡起床
|
|
|
planDetail.setSiestaTimeEnd(timeDate);
|
|
|
timeDiffer = (planDetail.getSiestaTimeEnd().getTime()-planDetail.getSiestaTimeBegin().getTime())/1000;
|
|
|
planDetail.setSiestaLong(timeDiffer+"");
|
|
|
}
|
|
|
else if (null==planDetail.getSiestaStatus()){//超时未午睡午睡
|
|
|
if (null==planDetail.getSiestaStatus()){//超时未午睡午睡
|
|
|
timeDiffer = timeDate.getTime() - SiestaTime.getTime();
|
|
|
if (0<timeDiffer&&timeDiffer<3600*siestaLongWarn*1000){
|
|
|
if (timeDiffer>3600*siestaLongWarn*1000){
|
|
|
planDetail.setSiestaStatus(0);
|
|
|
planDetail.setBedStatus(0);
|
|
|
outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"超时未午睡",JSON.toJSONString(planDetail,SerializerFeature.WriteMapNullValue));
|
|
|
outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"超时未午睡",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
|
|
|
orderCreate=true;
|
|
|
}
|
|
|
}
|
|
|
else if(1 == planDetail.getSiestaStatus()&&null==planDetail.getSiestaTimeEnd()){//午睡起床
|
|
|
planDetail.setSiestaTimeEnd(timeDate);
|
|
|
timeDiffer = (planDetail.getSiestaTimeEnd().getTime()-planDetail.getSiestaTimeBegin().getTime())/1000;
|
|
|
planDetail.setSiestaLong(timeDiffer+"");
|
|
|
}
|
|
|
|
|
|
}
|
|
|
if ("1".equals(bed_status)){
|
|
|
if (null==planDetail.getSiestaStatus()){
|
|
@ -660,7 +658,7 @@ public class DeviceService {
|
|
|
planDetail.setBedStatus(0);
|
|
|
planDetail.setBreath(breath);
|
|
|
planDetail.setHeartRate(heartrate);
|
|
|
outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"午睡超时未起床",JSON.toJSONString(planDetail,SerializerFeature.WriteMapNullValue));
|
|
|
outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"午睡超时未起床",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
|
|
|
orderCreate=true;
|
|
|
}
|
|
|
}
|
|
@ -668,7 +666,7 @@ public class DeviceService {
|
|
|
}
|
|
|
/**晚休***/
|
|
|
timeDiffer = timeDate.getTime() - bedBegin.getTime();
|
|
|
if (timeDiffer>0&&timeDate.before(bedUp)){ //起夜记录
|
|
|
if (timeDiffer>0&&timeDate.after(bedBegin)){ //起夜记录
|
|
|
BaseSleepNightRecord record = new BaseSleepNightRecord();
|
|
|
if ("1".equals(bed_status)){
|
|
|
if (null==planDetail.getInStatus()){
|
|
@ -690,7 +688,17 @@ public class DeviceService {
|
|
|
}
|
|
|
if ("0".equals(bed_status)){//离床
|
|
|
List<BaseSleepNightRecord> records = nightRecord.findBySnStaPaTime(device,patient,0,bedIn);
|
|
|
if (1==planDetail.getInStatus()){
|
|
|
if(null==planDetail.getInStatus()){
|
|
|
timeDiffer = timeDate.getTime() - bedIn.getTime();
|
|
|
if (timeDiffer>3600*nightLongWarn*1000){
|
|
|
planDetail.setInStatus(0);
|
|
|
planDetail.setBedStatus(1);
|
|
|
planDetail.setSleepNightRecordList(records);
|
|
|
outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"超时未上床晚休",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
|
|
|
orderCreate=true;
|
|
|
}
|
|
|
}
|
|
|
else if (1==planDetail.getInStatus()){
|
|
|
if (records.size()==0){
|
|
|
record.setPatient(devicePatientDeviceDos.get(0).getUser());
|
|
|
record.setDeviceSn(device);
|
|
@ -704,18 +712,10 @@ public class DeviceService {
|
|
|
if (timeDiffer>3600*nightLongWarn*1000){//超过2未回床小时 触发工单
|
|
|
planDetail.setSleepNightRecordList(records);
|
|
|
planDetail.setBedStatus(0);
|
|
|
outBedOrder(records.get(0),devicePatientDeviceDos.get(0),patient,device,"起夜超时未回床",JSON.toJSONString(planDetail,SerializerFeature.WriteMapNullValue));
|
|
|
outBedOrder(records.get(0),devicePatientDeviceDos.get(0),patient,device,"起夜超时未回床",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
|
|
|
orderCreate=true;
|
|
|
}
|
|
|
}
|
|
|
}else if(null==planDetail.getInStatus()){
|
|
|
timeDiffer = timeDate.getTime() - bedIn.getTime();
|
|
|
if (0<timeDiffer&&timeDiffer<3600*nightLongWarn*1000){
|
|
|
planDetail.setSiestaStatus(0);
|
|
|
planDetail.setBedStatus(1);
|
|
|
outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"超时未上床晚休",JSON.toJSONString(planDetail,SerializerFeature.WriteMapNullValue));
|
|
|
orderCreate=true;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@ -735,7 +735,7 @@ public class DeviceService {
|
|
|
planDetail.setBreath(breath);
|
|
|
planDetail.setHeartRate(heartrate);
|
|
|
planDetail.setBedStatus(1);
|
|
|
outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"心率和呼吸频率异常",JSON.toJSONString(planDetail,SerializerFeature.WriteMapNullValue));
|
|
|
outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"心率和呼吸频率异常",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
|
|
|
return null;
|
|
|
}
|
|
|
}
|
|
@ -745,7 +745,7 @@ public class DeviceService {
|
|
|
planDetail.setBreath(breath);
|
|
|
planDetail.setHeartRate(heartrate);
|
|
|
planDetail.setBedStatus(1);
|
|
|
outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"心率和呼吸频率异常",JSON.toJSONString(planDetail,SerializerFeature.WriteMapNullValue));
|
|
|
outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"心率和呼吸频率异常",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
|
|
|
return null;
|
|
|
}
|
|
|
}
|