|  | @ -1077,7 +1077,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
 | 
												
													
														
															|  |      * @param deviceSn 设备sn码
 |  |      * @param deviceSn 设备sn码
 | 
												
													
														
															|  |      * @return
 |  |      * @return
 | 
												
													
														
															|  |      */
 |  |      */
 | 
												
													
														
															|  |     public JSONObject getPatientDeviceData(String patient,String deviceSn,Integer page,Integer pageSize)throws Exception{
 |  | 
 | 
												
													
														
															|  | 
 |  |     public JSONObject getPatientDeviceData(String patient,String type,String deviceSn,Integer page,Integer pageSize)throws Exception{
 | 
												
													
														
															|  |         page = page>0?page-1:0;
 |  |         page = page>0?page-1:0;
 | 
												
													
														
															|  |         JSONObject result = new JSONObject();
 |  |         JSONObject result = new JSONObject();
 | 
												
													
														
															|  |         List<DevicePatientDevice> devices = patientDeviceDao.findByDeviceSn(deviceSn);
 |  |         List<DevicePatientDevice> devices = patientDeviceDao.findByDeviceSn(deviceSn);
 | 
												
											
												
													
														
															|  | @ -1094,7 +1094,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
 | 
												
													
														
															|  |                         result = getHealthIndex(result,2,deviceSn,patient,page,pageSize);
 |  |                         result = getHealthIndex(result,2,deviceSn,patient,page,pageSize);
 | 
												
													
														
															|  |                         break;
 |  |                         break;
 | 
												
													
														
															|  |                     default://安防设备
 |  |                     default://安防设备
 | 
												
													
														
															|  |                         result  = getEmeWarn(result,deviceSn,null,page,pageSize);
 |  | 
 | 
												
													
														
															|  | 
 |  |                         result  = getEmeWarn(result,type,deviceSn,null,page,pageSize);
 | 
												
													
														
															|  |                         break;
 |  |                         break;
 | 
												
													
														
															|  |                 }
 |  |                 }
 | 
												
													
														
															|  | //            }
 |  | //            }
 | 
												
											
												
													
														
															|  | @ -1208,38 +1208,90 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
 | 
												
													
														
															|  |         return result;
 |  |         return result;
 | 
												
													
														
															|  |     }
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |     public JSONObject getEmeWarn(JSONObject result,String deviceSn,String patient,Integer page,Integer pageSize){
 |  | 
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |         String sqlCount = "select SUM(total) from( \n" +
 |  | 
 | 
												
													
														
															|  |                 "select count(ord.id) as total from base_emergency_assistance_order ord  where ord.device_sn='"+deviceSn+"' " +
 |  | 
 | 
												
													
														
															|  |                 " and ord.patient='"+patient+"' " +
 |  | 
 | 
												
													
														
															|  |                 "UNION All " +
 |  | 
 | 
												
													
														
															|  |                 "select count(ord.id)  as total from base_security_monitoring_order ord  where ord.device_sn='"+deviceSn+"' " +
 |  | 
 | 
												
													
														
															|  |                 " {{patient}} )A ";
 |  | 
 | 
												
													
														
															|  |         String sql = "select '20' as OrderType,ord.id,ord.patient,ord.patient_name,ord.doctor,ord.status,ord.doctor_name," +
 |  | 
 | 
												
													
														
															|  |                 "'紧急呼叫' as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time " +
 |  | 
 | 
												
													
														
															|  |                 "from base_emergency_assistance_order ord  where ord.device_sn='"+deviceSn+"' and ord.patient='"+patient+"' " +
 |  | 
 | 
												
													
														
															|  |                 "UNION " +
 |  | 
 | 
												
													
														
															|  |                 "select  '22' as 'OrderType',ord.id,ord.patient,ord.patient_name,ord.doctor,ord.status,ord.doctor_name," +
 |  | 
 | 
												
													
														
															|  |                 "ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time from base_security_monitoring_order ord " +
 |  | 
 | 
												
													
														
															|  |                 " where ord.device_sn='"+deviceSn+"' {{patient}}  order by create_time desc limit "+page*pageSize+","+pageSize;
 |  | 
 | 
												
													
														
															|  |         if (StringUtils.isNotBlank(patient)){
 |  | 
 | 
												
													
														
															|  |             sqlCount = sqlCount.replace("{{patient}}","and ord.patient='"+patient+"' ");
 |  | 
 | 
												
													
														
															|  |             sql = sql.replace("{{patient}}","and ord.patient='"+patient+"' ");
 |  | 
 | 
												
													
														
															|  |         }else {
 |  | 
 | 
												
													
														
															|  |             sqlCount = sqlCount.replace("{{patient}}"," ");
 |  | 
 | 
												
													
														
															|  |             sql = sql.replace("{{patient}}"," ");
 |  | 
 | 
												
													
														
															|  |         }
 |  | 
 | 
												
													
														
															|  |         long count = jdbcTemplate.queryForObject(sqlCount,long.class);
 |  | 
 | 
												
													
														
															|  | 
 |  |     public JSONObject getEmeWarn(JSONObject result,String type,String deviceSn,String patient,Integer page,Integer pageSize){
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |         if (StringUtils.isBlank(type)||"2".equals(type)||"0".equals(type)){
 | 
												
													
														
															|  | 
 |  |             String sqlCount = "select SUM(total) from( \n" +
 | 
												
													
														
															|  | 
 |  |                     "select count(ord.id) as total from base_emergency_assistance_order ord  where ord.device_sn='"+deviceSn+"' " +
 | 
												
													
														
															|  | 
 |  |                     "  {{patient}} " +
 | 
												
													
														
															|  | 
 |  |                     "UNION All " +
 | 
												
													
														
															|  | 
 |  |                     "select count(ord.id)  as total from base_security_monitoring_order ord  where ord.device_sn='"+deviceSn+"' " +
 | 
												
													
														
															|  | 
 |  |                     " {{patient}} )A ";
 | 
												
													
														
															|  | 
 |  |             String sql = "select '20' as OrderType,ord.id,ord.patient,ord.patient_name,ord.doctor,ord.status,ord.doctor_name," +
 | 
												
													
														
															|  | 
 |  |                     "'紧急呼叫' as serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time " +
 | 
												
													
														
															|  | 
 |  |                     "from base_emergency_assistance_order ord  where ord.device_sn='"+deviceSn+"' {{patient}} " +
 | 
												
													
														
															|  | 
 |  |                     "UNION " +
 | 
												
													
														
															|  | 
 |  |                     "select  '22' as 'OrderType',ord.id,ord.patient,ord.patient_name,ord.doctor,ord.status,ord.doctor_name," +
 | 
												
													
														
															|  | 
 |  |                     "ord.serve_desc,DATE_FORMAT(ord.create_time,'%Y-%m-%d %H:%i:%S') create_time from base_security_monitoring_order ord " +
 | 
												
													
														
															|  | 
 |  |                     " where ord.device_sn='"+deviceSn+"' {{patient}}  order by create_time desc limit "+page*pageSize+","+pageSize;
 | 
												
													
														
															|  | 
 |  |             if (StringUtils.isNotBlank(patient)){
 | 
												
													
														
															|  | 
 |  |                 sqlCount = sqlCount.replace("{{patient}}","and ord.patient='"+patient+"' ");
 | 
												
													
														
															|  | 
 |  |                 sql = sql.replace("{{patient}}","and ord.patient='"+patient+"' ");
 | 
												
													
														
															|  | 
 |  |             }else {
 | 
												
													
														
															|  | 
 |  |                 sqlCount = sqlCount.replace("{{patient}}"," ");
 | 
												
													
														
															|  | 
 |  |                 sql = sql.replace("{{patient}}"," ");
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             long count = jdbcTemplate.queryForObject(sqlCount,long.class);
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
 | 
												
													
														
															|  | 
 |  |             String str = JSON.toJSONString(list,SerializerFeature.WriteMapNullValue);
 | 
												
													
														
															|  | 
 |  |             com.alibaba.fastjson.JSONArray arr = com.alibaba.fastjson.JSONArray.parseArray(str);
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  | 
 |  |             result.put("total",count);
 | 
												
													
														
															|  | 
 |  |             result.put("page",page+1);
 | 
												
													
														
															|  | 
 |  |             result.put("pageSize",pageSize);
 | 
												
													
														
															|  | 
 |  |             result.put("dataList", arr);
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  |         if ("1".equals(type)||"0".equals(type)){//日常监护 昨天20:00~08:00、08:00~20:00
 | 
												
													
														
															|  | 
 |  |            String sql = "select  '20' as OrderType,count(*) total,DATE_FORMAT(ord.create_time,'%Y-%m-%d 20:00:00') create_time\n" +
 | 
												
													
														
															|  | 
 |  |                     "from base_emergency_assistance_order ord  \n" +
 | 
												
													
														
															|  | 
 |  |                     " where ord.device_sn='"+deviceSn+"' {{patient}} and create_time >= DATE_FORMAT(ord.create_time,'%Y-%m-%d 08:00:00') \n" +
 | 
												
													
														
															|  | 
 |  |                     " and create_time < DATE_FORMAT(ord.create_time,'%Y-%m-%d 20:00:00')\n" +
 | 
												
													
														
															|  | 
 |  |                     " GROUP BY DATE_FORMAT(ord.create_time,'%Y-%m-%d')\n" +
 | 
												
													
														
															|  | 
 |  |                     " UNION\n" +
 | 
												
													
														
															|  | 
 |  |                     " select  '20' as OrderType,count(*) total,DATE_FORMAT(ord.create_time,'%Y-%m-%d 08:00:00') create_time\n" +
 | 
												
													
														
															|  | 
 |  |                     "from base_emergency_assistance_order ord  \n" +
 | 
												
													
														
															|  | 
 |  |                     "where ord.device_sn='"+deviceSn+"' {{patient}} and (  \n" +
 | 
												
													
														
															|  | 
 |  |                     "(create_time>= DATE_FORMAT(create_time,'%Y-%m-%d 23:00:00')\n" +
 | 
												
													
														
															|  | 
 |  |                     "and create_time < DATE_FORMAT(create_time,'%Y-%m-%d 23:59:59'))\n" +
 | 
												
													
														
															|  | 
 |  |                     "or\n" +
 | 
												
													
														
															|  | 
 |  |                     "(create_time >= DATE_FORMAT(ord.create_time,'%Y-%m-%d 00:00:00') \n" +
 | 
												
													
														
															|  | 
 |  |                     "and create_time < DATE_FORMAT(ord.create_time,'%Y-%m-%d 08:00:00')))\n" +
 | 
												
													
														
															|  | 
 |  |                     "GROUP BY DATE_FORMAT(create_time,'%Y-%m-%d')-- 安防\n" +
 | 
												
													
														
															|  | 
 |  |                     "UNION\n" +
 | 
												
													
														
															|  | 
 |  |                     "select  '22' as OrderType,count(*) total,DATE_FORMAT(ord.create_time,'%Y-%m-%d 20:00:00') create_time\n" +
 | 
												
													
														
															|  | 
 |  |                     "from base_security_monitoring_order ord  \n" +
 | 
												
													
														
															|  | 
 |  |                     " where ord.device_sn='"+deviceSn+"' {{patient}} and  create_time >= DATE_FORMAT(ord.create_time,'%Y-%m-%d 08:00:00') \n" +
 | 
												
													
														
															|  | 
 |  |                     " and create_time < DATE_FORMAT(ord.create_time,'%Y-%m-%d 20:00:00')\n" +
 | 
												
													
														
															|  | 
 |  |                     " GROUP BY DATE_FORMAT(ord.create_time,'%Y-%m-%d')\n" +
 | 
												
													
														
															|  | 
 |  |                     " UNION\n" +
 | 
												
													
														
															|  | 
 |  |                     " select  '22' as OrderType,count(*) total,DATE_FORMAT(ord.create_time,'%Y-%m-%d 08:00:00') create_time\n" +
 | 
												
													
														
															|  | 
 |  |                     "from base_security_monitoring_order ord  \n" +
 | 
												
													
														
															|  | 
 |  |                     "where ord.device_sn='"+deviceSn+"' {{patient}} and (  \n" +
 | 
												
													
														
															|  | 
 |  |                     "(create_time>= DATE_FORMAT(create_time,'%Y-%m-%d 23:00:00')\n" +
 | 
												
													
														
															|  | 
 |  |                     "and create_time < DATE_FORMAT(create_time,'%Y-%m-%d 23:59:59'))\n" +
 | 
												
													
														
															|  | 
 |  |                     "or\n" +
 | 
												
													
														
															|  | 
 |  |                     "(create_time >= DATE_FORMAT(ord.create_time,'%Y-%m-%d 00:00:00') \n" +
 | 
												
													
														
															|  | 
 |  |                     "and create_time < DATE_FORMAT(ord.create_time,'%Y-%m-%d 08:00:00')))\n" +
 | 
												
													
														
															|  | 
 |  |                     "GROUP BY DATE_FORMAT(create_time,'%Y-%m-%d')\n" +
 | 
												
													
														
															|  | 
 |  |                     "order by create_time desc\n" ;
 | 
												
													
														
															|  | 
 |  |             if (StringUtils.isNotBlank(patient)){
 | 
												
													
														
															|  | 
 |  |                 sql = sql.replace("{{patient}}","and ord.patient='"+patient+"' ");
 | 
												
													
														
															|  | 
 |  |             }else {
 | 
												
													
														
															|  | 
 |  |                 sql = sql.replace("{{patient}}"," ");
 | 
												
													
														
															|  | 
 |  |             }
 | 
												
													
														
															|  | 
 |  |             String sqlCount = " select count(*) from ("+sql+")A ";
 | 
												
													
														
															|  | 
 |  |             sql  = "  SELECT GROUP_CONCAT(OrderType) as OrderType,SUM(total) total,create_time FROM ("+sql+")A GROUP BY create_time " +
 | 
												
													
														
															|  | 
 |  |                     "order by create_time desc limit "+page*pageSize+","+pageSize;
 | 
												
													
														
															|  | 
 |  |             long count = jdbcTemplate.queryForObject(sqlCount,long.class);
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |         List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
 |  | 
 | 
												
													
														
															|  |         String str = JSON.toJSONString(list,SerializerFeature.WriteMapNullValue);
 |  | 
 | 
												
													
														
															|  |         com.alibaba.fastjson.JSONArray arr = com.alibaba.fastjson.JSONArray.parseArray(str);
 |  | 
 | 
												
													
														
															|  | 
 |  |             List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
 | 
												
													
														
															|  | 
 |  |             result.put("dailyTotal",count);
 | 
												
													
														
															|  | 
 |  |             result.put("dailyPage",page+1);
 | 
												
													
														
															|  | 
 |  |             result.put("dailyPageSize",pageSize);
 | 
												
													
														
															|  | 
 |  |             result.put("dailyDataList", list);
 | 
												
													
														
															|  | 
 |  |         }
 | 
												
													
														
															|  | 
 |  | 
 | 
												
													
														
															|  |         result.put("total",count);
 |  | 
 | 
												
													
														
															|  |         result.put("page",page+1);
 |  | 
 | 
												
													
														
															|  |         result.put("pageSize",pageSize);
 |  | 
 | 
												
													
														
															|  |         result.put("dataList", arr);
 |  | 
 | 
												
													
														
															|  |         return result;
 |  |         return result;
 | 
												
													
														
															|  |     }
 |  |     }
 | 
												
													
														
															|  | 
 |  | 
 |