| 
					
				 | 
			
			
				@ -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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 |