|  | @ -562,6 +562,7 @@ public class DeviceService {
 | 
	
		
			
				|  |  |                 Integer nightLongWarn=2;//起夜预警时长
 | 
	
		
			
				|  |  |                 List<DevicePatientDevice> devicePatientDeviceDos = patientDeviceDao.findByDeviceSn(device);
 | 
	
		
			
				|  |  |                 if (devicePatientDeviceDos.size()>0){
 | 
	
		
			
				|  |  |                     Date timeDate = DateUtil.strToDate(time_begin);//当前时间
 | 
	
		
			
				|  |  |                     String patient = devicePatientDeviceDos.get(0).getUser();
 | 
	
		
			
				|  |  |                     List<BaseSleepPlan> sleepPlans = sleepPlanDao.findByPatientAndDeviceSn(patient,device);
 | 
	
		
			
				|  |  |                     BaseSleepPlanDetail planDetail = new BaseSleepPlanDetail();
 | 
	
	
		
			
				|  | @ -570,8 +571,7 @@ public class DeviceService {
 | 
	
		
			
				|  |  |                         sleepPlan = sleepPlans.get(0);
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     if (null!=sleepPlan){
 | 
	
		
			
				|  |  |                         Date timeDate = DateUtil.strToDate(time_begin);//当前时间
 | 
	
		
			
				|  |  |                         Date bedUp = DateUtil.strToDate(DateUtil.getStringDateShort()+" "+sleepPlan.getGetUpTime()+":00");// 起床时间 起床前一小时内算为起床
 | 
	
		
			
				|  |  |                         Date bedUp = DateUtil.strToDate(DateUtil.dateToStrShort(timeDate)+" "+sleepPlan.getGetUpTime()+":00");// 起床时间 起床前一小时内算为起床
 | 
	
		
			
				|  |  |                         if (timeDate.before(bedUp)&&bedUp.getTime()-timeDate.getTime()>1000*1*3600){
 | 
	
		
			
				|  |  |                             bedUp = DateUtil.getNextDay1(bedUp,-1);
 | 
	
		
			
				|  |  |                         }
 | 
	
	
		
			
				|  | @ -582,7 +582,7 @@ public class DeviceService {
 | 
	
		
			
				|  |  |                         Date SiestaBegin = null;// 午睡开始时间
 | 
	
		
			
				|  |  |                         if (StringUtils.isNotBlank(sleepPlan.getNapTime())){
 | 
	
		
			
				|  |  |                             needSiesta=true;
 | 
	
		
			
				|  |  |                             SiestaTime = DateUtil.strToDate(DateUtil.getStringDateShort()+" "+sleepPlan.getNapTime()+":00");
 | 
	
		
			
				|  |  |                             SiestaTime = DateUtil.strToDate(DateUtil.dateToStrShort(timeDate)+" "+sleepPlan.getNapTime()+":00");
 | 
	
		
			
				|  |  |                             SiestaBegin = DateUtil.getNextMin(SiestaTime,-60);// 午睡开始时间
 | 
	
		
			
				|  |  |                         }
 | 
	
		
			
				|  |  |                         String inTime = sleepPlan.getNightRestTime();
 | 
	
	
		
			
				|  | @ -621,7 +621,7 @@ public class DeviceService {
 | 
	
		
			
				|  |  |                                     planDetail.setBedStatus(0);
 | 
	
		
			
				|  |  |                                     planDetail.setBreath(breath);
 | 
	
		
			
				|  |  |                                     planDetail.setHeartRate(heartrate);
 | 
	
		
			
				|  |  |                                     outBedOrder(null, devicePatientDeviceDos.get(0), patient, device, "超时未起床", JSON.toJSONStringWithDateFormat(planDetail, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteMapNullValue));
 | 
	
		
			
				|  |  |                                     outBedOrder(null, timeDate,devicePatientDeviceDos.get(0), patient, device, "超时未起床", JSON.toJSONStringWithDateFormat(planDetail, "yyyy-MM-dd HH:mm:ss", SerializerFeature.WriteMapNullValue));
 | 
	
		
			
				|  |  |                                     orderCreate = true;
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                             }
 | 
	
	
		
			
				|  | @ -634,7 +634,7 @@ public class DeviceService {
 | 
	
		
			
				|  |  |                                     if (timeDiffer>3600*siestaLongWarn*1000){
 | 
	
		
			
				|  |  |                                         planDetail.setSiestaStatus(0);
 | 
	
		
			
				|  |  |                                         planDetail.setBedStatus(0);
 | 
	
		
			
				|  |  |                                         outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"超时未午睡",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
 | 
	
		
			
				|  |  |                                         outBedOrder(null,timeDate,devicePatientDeviceDos.get(0),patient,device,"超时未午睡",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
 | 
	
		
			
				|  |  |                                         orderCreate=true;
 | 
	
		
			
				|  |  |                                     }
 | 
	
		
			
				|  |  |                                 }
 | 
	
	
		
			
				|  | @ -656,7 +656,7 @@ public class DeviceService {
 | 
	
		
			
				|  |  |                                         planDetail.setBedStatus(0);
 | 
	
		
			
				|  |  |                                         planDetail.setBreath(breath);
 | 
	
		
			
				|  |  |                                         planDetail.setHeartRate(heartrate);
 | 
	
		
			
				|  |  |                                         outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"午睡超时未起床",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
 | 
	
		
			
				|  |  |                                         outBedOrder(null,timeDate,devicePatientDeviceDos.get(0),patient,device,"午睡超时未起床",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
 | 
	
		
			
				|  |  |                                         orderCreate=true;
 | 
	
		
			
				|  |  |                                     }
 | 
	
		
			
				|  |  |                                 }
 | 
	
	
		
			
				|  | @ -672,7 +672,7 @@ public class DeviceService {
 | 
	
		
			
				|  |  |                                     planDetail.setInTimeBegin(timeDate);
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                                 else if (1==planDetail.getInStatus()){//在床记录起夜时长
 | 
	
		
			
				|  |  |                                     List<BaseSleepNightRecord> records = nightRecord.findBySnStaPaTime(device,patient,0,bedBegin);
 | 
	
		
			
				|  |  |                                     List<BaseSleepNightRecord> records = nightRecord.findBySnStaPaTime(device,patient,0,bedBegin,dayTime);
 | 
	
		
			
				|  |  |                                     if (records.size()>0){//
 | 
	
		
			
				|  |  |                                         record = records.get(0);
 | 
	
		
			
				|  |  |                                         record.setStatus(1);
 | 
	
	
		
			
				|  | @ -685,14 +685,14 @@ public class DeviceService {
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                             }
 | 
	
		
			
				|  |  |                             if ("0".equals(bed_status)){//离床
 | 
	
		
			
				|  |  |                                 List<BaseSleepNightRecord> records = nightRecord.findBySnStaPaTime(device,patient,0,bedBegin);
 | 
	
		
			
				|  |  |                                 List<BaseSleepNightRecord> records = nightRecord.findBySnStaPaTime(device,patient,0,bedBegin,dayTime);
 | 
	
		
			
				|  |  |                                 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));
 | 
	
		
			
				|  |  |                                         outBedOrder(null,timeDate,devicePatientDeviceDos.get(0),patient,device,"超时未上床晚休",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
 | 
	
		
			
				|  |  |                                         orderCreate=true;
 | 
	
		
			
				|  |  |                                     }
 | 
	
		
			
				|  |  |                                 }
 | 
	
	
		
			
				|  | @ -710,7 +710,7 @@ 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.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
 | 
	
		
			
				|  |  |                                             outBedOrder(records.get(0),timeDate,devicePatientDeviceDos.get(0),patient,device,"起夜超时未回床",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
 | 
	
		
			
				|  |  |                                             orderCreate=true;
 | 
	
		
			
				|  |  |                                         }
 | 
	
		
			
				|  |  |                                     }
 | 
	
	
		
			
				|  | @ -733,7 +733,7 @@ public class DeviceService {
 | 
	
		
			
				|  |  |                                     planDetail.setBreath(breath);
 | 
	
		
			
				|  |  |                                     planDetail.setHeartRate(heartrate);
 | 
	
		
			
				|  |  |                                     planDetail.setBedStatus(1);
 | 
	
		
			
				|  |  |                                     outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"心率和呼吸频率异常",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
 | 
	
		
			
				|  |  |                                     outBedOrder(null,timeDate,devicePatientDeviceDos.get(0),patient,device,"心率和呼吸频率异常",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
 | 
	
		
			
				|  |  |                                     return null;
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                             }
 | 
	
	
		
			
				|  | @ -743,7 +743,7 @@ public class DeviceService {
 | 
	
		
			
				|  |  |                                     planDetail.setBreath(breath);
 | 
	
		
			
				|  |  |                                     planDetail.setHeartRate(heartrate);
 | 
	
		
			
				|  |  |                                     planDetail.setBedStatus(1);
 | 
	
		
			
				|  |  |                                     outBedOrder(null,devicePatientDeviceDos.get(0),patient,device,"心率和呼吸频率异常",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
 | 
	
		
			
				|  |  |                                     outBedOrder(null,timeDate,devicePatientDeviceDos.get(0),patient,device,"心率和呼吸频率异常",JSON.toJSONStringWithDateFormat(planDetail,"yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteMapNullValue));
 | 
	
		
			
				|  |  |                                     return null;
 | 
	
		
			
				|  |  |                                 }
 | 
	
		
			
				|  |  |                             }
 | 
	
	
		
			
				|  | @ -759,7 +759,7 @@ public class DeviceService {
 | 
	
		
			
				|  |  |         return null;
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public void outBedOrder(BaseSleepNightRecord record,DevicePatientDevice patientDevice,String patient ,String device,String serverName,String warnInfo)throws Exception{
 | 
	
		
			
				|  |  |     public void outBedOrder(BaseSleepNightRecord record,Date time_date,DevicePatientDevice patientDevice,String patient ,String device,String serverName,String warnInfo)throws Exception{
 | 
	
		
			
				|  |  |         // //夜间十二点 起床半小时后未回床 触发安防工单
 | 
	
		
			
				|  |  |             BasePatientDO patientDO = patientDao.findById(patient);
 | 
	
		
			
				|  |  |             if(null!=patientDO){
 | 
	
	
		
			
				|  | @ -810,6 +810,9 @@ public class DeviceService {
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             if (null!=record){
 | 
	
		
			
				|  |  |                 record.setStatus(-1);
 | 
	
		
			
				|  |  |                 record.setUpdateTime(time_date);
 | 
	
		
			
				|  |  |                 Long timeDiffer = (time_date.getTime() - record.getCreateTime().getTime())/1000;
 | 
	
		
			
				|  |  |                 record.setOutTime(timeDiffer+"");
 | 
	
		
			
				|  |  |                 nightRecord.save(record);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |     }
 |