|
@ -44,6 +44,7 @@ import org.springframework.http.HttpEntity;
|
|
import org.springframework.http.HttpHeaders;
|
|
import org.springframework.http.HttpHeaders;
|
|
import org.springframework.http.HttpMethod;
|
|
import org.springframework.http.HttpMethod;
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.http.MediaType;
|
|
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@ -949,11 +950,52 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
|
|
devInfo.put("patient", patient);
|
|
devInfo.put("patient", patient);
|
|
devInfo.put("sosContactsDOS", new ArrayList<>());
|
|
devInfo.put("sosContactsDOS", new ArrayList<>());
|
|
|
|
|
|
//v1.4获取设备在线状态、数据采集量、异常指标量、 、
|
|
|
|
|
|
|
|
//v1.4获取其绑定设备的居民列表 //todo 各平台全部对接后外层无用字段删除(患者相关,如patientName,orgCode等)
|
|
|
|
|
|
//v1.4获取设备在线状态、数据采集量、异常指标量、
|
|
|
|
sql =" select contact_status from wlyy_devices where device_code='"+deviceSn+"' ";
|
|
|
|
List<String> onLineStatus = jdbcTemplate.queryForList(sql,String.class);
|
|
|
|
if (onLineStatus.size()>0){
|
|
|
|
devInfo.put("contactStatus",onLineStatus.get(0));
|
|
|
|
}else {
|
|
|
|
devInfo.put("contactStatus",0);//在线状态
|
|
|
|
}
|
|
|
|
|
|
|
|
//数据采集量
|
|
|
|
if(1==device.getDeviceType()){//安防设备
|
|
|
|
sql = " select count(id) from device_data_push_log where device_sn='"+deviceSn+"' ";
|
|
|
|
Long dataCount = jdbcTemplate.queryForObject(sql,Long.class);
|
|
|
|
devInfo.put("dataCount",dataCount);//
|
|
|
|
sql = " select sum(total) from (\n" +
|
|
|
|
"select count(id) total from base_emergency_assistance_order where device_sn='"+deviceSn+"'\n" +
|
|
|
|
"UNION ALL\n" +
|
|
|
|
"select count(id) total from base_security_monitoring_order where device_sn='"+deviceSn+"'" +
|
|
|
|
")A ";
|
|
|
|
Long orderCount = jdbcTemplate.queryForObject(sql,Long.class);
|
|
|
|
devInfo.put("errorCount",orderCount);// //异常量
|
|
|
|
}else if (2==device.getDeviceType()){//健康设备
|
|
|
|
sql = " select count(id) from wlyy_patient_health_index where device_sn ='"+deviceSn+"' ";
|
|
|
|
Long dataCount = jdbcTemplate.queryForObject(sql,Long.class);
|
|
|
|
devInfo.put("dataCount",dataCount);//异常量
|
|
|
|
sql += " and status =1 ";
|
|
|
|
dataCount = jdbcTemplate.queryForObject(sql,Long.class);
|
|
|
|
devInfo.put("errorCount",dataCount);//异常量
|
|
|
|
}
|
|
|
|
|
|
|
|
//v1.4获取其绑定设备的居民列表 //todo 各平台全部对接后外层无用字段删除(患者相关,如patientName,orgCode等)
|
|
|
|
sql =" select p.id patient,p.photo,p.name,case p.sex when 1 then '男' when 2 then '女' else sex end as sex,TIMESTAMPDIFF(year,p.birthday,now()) as age, \n" +
|
|
|
|
"p.residential_area residentialArea,p.mobile,p.idcard,p.address from base_patient p INNER JOIN wlyy_patient_device pd on p.id = pd.user and pd.del=0 " +
|
|
|
|
"where 1=1 and pd.device_sn='"+deviceSn+"' ";
|
|
|
|
List<Map<String,Object>> patientList = jdbcTemplate.queryForList(sql);
|
|
|
|
for (Map<String,Object>map :patientList){
|
|
|
|
String patientStr = map.get("patient").toString();
|
|
|
|
sql ="SELECT GROUP_CONCAT(Distinct sp.org_name) orgName FROM base_service_package_record spr INNER JOIN base_service_package sp on " +
|
|
|
|
" spr.service_package_id = sp.id AND spr.patient = '"+patientStr+"' where sp.org_code " +
|
|
|
|
" IS NOT NULL GROUP BY spr.patient ";
|
|
|
|
List<String> orgs = jdbcTemplate.queryForList(sql,String.class);
|
|
|
|
if (orgs.size()>0){
|
|
|
|
map.put("orgName", orgs.get(0));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
devInfo.put("patientList",patientList);
|
|
|
|
|
|
String dataSql = "";
|
|
String dataSql = "";
|
|
String recordSql = "";
|
|
String recordSql = "";
|
|
@ -1098,6 +1140,93 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 获取睡眠带 睡眠报告
|
|
|
|
* @param patient
|
|
|
|
* @param deviceSn
|
|
|
|
* @param day
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public JSONObject getSleepReport(String patient,String deviceSn,String day){
|
|
|
|
JSONObject result = new JSONObject();
|
|
|
|
String sql = " select * from base_sleep_device where 1=1 ";
|
|
|
|
if (StringUtils.isNotBlank(patient)){
|
|
|
|
sql +=" and patient='"+patient+"'";
|
|
|
|
}
|
|
|
|
if (StringUtils.isNotBlank(deviceSn)){
|
|
|
|
sql += " and device_sn='"+deviceSn+"' ";
|
|
|
|
}
|
|
|
|
if (StringUtils.isNotBlank(day)){
|
|
|
|
sql +=" and create_time>="+day+" 00:00:00 and create_time<'"+day+"' 23:59:59 ";
|
|
|
|
}else {
|
|
|
|
sql +=" order by create_time desc ";
|
|
|
|
}
|
|
|
|
sql +=" limit 1 ";
|
|
|
|
List<BaseSleepDeviceReport> list = jdbcTemplate.query(sql,new BeanPropertyRowMapper<>(BaseSleepDeviceReport.class));
|
|
|
|
if (list.size()>0){
|
|
|
|
result.put(ResponseContant.resultFlag,ResponseContant.success);
|
|
|
|
result.put(ResponseContant.resultMsg,list.get(0));
|
|
|
|
}else {
|
|
|
|
result.put(ResponseContant.resultFlag,ResponseContant.fail);
|
|
|
|
result.put(ResponseContant.resultMsg,"无睡眠记录");
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
public List<Map<String,Object>> getSmokeOrGasList(String deviceSn,String day){
|
|
|
|
List<Map<String,Object>> result = new ArrayList<>();
|
|
|
|
Date now = new Date();
|
|
|
|
String nowDay = DateUtil.getStringDateShort();
|
|
|
|
if (StringUtils.isBlank(day)){
|
|
|
|
day = nowDay;
|
|
|
|
}
|
|
|
|
String timeBeginStr = day+" 00:00:00";
|
|
|
|
String timeEndStr = "";
|
|
|
|
|
|
|
|
if (nowDay.equals(day)){//同一天
|
|
|
|
timeEndStr = DateUtil.dateToStr(now,DateUtil.yyyy_MM_dd_HH_mm_ss);
|
|
|
|
}else {
|
|
|
|
timeEndStr = day+ " 23:59:59";
|
|
|
|
}
|
|
|
|
Date timeBegin = DateUtil.strToDate(timeBeginStr,DateUtil.yyyy_MM_dd_HH_mm_ss);
|
|
|
|
Date timeEnd = DateUtil.strToDate(timeEndStr,DateUtil.yyyy_MM_dd_HH_mm_ss);
|
|
|
|
String sql = " SELECT r.value,CAST(DATE_FORMAT(r.create_time,'%Y-%m-%d %H:%i:%S') as char) create_time " +
|
|
|
|
" from wlyy_patient_device pd,base_device_health_index r WHERE pd.device_sn = r.device_sn " +
|
|
|
|
" and r.device_sn='"+deviceSn+"' order by r.create_time asc";
|
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
|
|
|
|
|
//遍历时间区间,无数据时间点产生数据
|
|
|
|
int i=0; //list遍历索引
|
|
|
|
int length = list.size();
|
|
|
|
Date prTimeBegin = timeBegin;
|
|
|
|
Date listIndexTime = null;
|
|
|
|
if (length>0){
|
|
|
|
listIndexTime = DateUtil.strToDate(list.get(0).get("create_time").toString(),DateUtil.yyyy_MM_dd_HH_mm_ss);
|
|
|
|
}
|
|
|
|
for (;timeEnd.after(timeBegin);){
|
|
|
|
timeBegin = DateUtil.getNextMin(timeBegin,15);
|
|
|
|
Map<String,Object> map = new HashMap<>();
|
|
|
|
if (length>0&&i<length){
|
|
|
|
if ((prTimeBegin.before(listIndexTime)||prTimeBegin.equals(listIndexTime))&&(timeBegin.after(listIndexTime)||timeBegin.equals(listIndexTime))){
|
|
|
|
map.put("value",Double.parseDouble( list.get(i).get("value").toString()));
|
|
|
|
map.put("createTime",list.get(i).get("create_time").toString());
|
|
|
|
i++;
|
|
|
|
if (i<length){
|
|
|
|
listIndexTime = DateUtil.strToDate(list.get(i).get("create_time").toString(),DateUtil.yyyy_MM_dd_HH_mm_ss);
|
|
|
|
}
|
|
|
|
}else {
|
|
|
|
map.put("value",0.00);
|
|
|
|
map.put("createTime",DateUtil.dateToStr(timeBegin,DateUtil.yyyy_MM_dd_HH_mm_ss));
|
|
|
|
}
|
|
|
|
}else {
|
|
|
|
map.put("value",0.00);
|
|
|
|
map.put("createTime",DateUtil.dateToStr(timeBegin,DateUtil.yyyy_MM_dd_HH_mm_ss));
|
|
|
|
}
|
|
|
|
result.add(map);
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 根据设备sn及居民code获取居民有效的设备绑定数据
|
|
* 根据设备sn及居民code获取居民有效的设备绑定数据
|
|
* @param deviceSn 设备sn码
|
|
* @param deviceSn 设备sn码
|
|
@ -1260,6 +1389,10 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
|
|
long count = jdbcTemplate.queryForObject(sqlCount,long.class);
|
|
long count = jdbcTemplate.queryForObject(sqlCount,long.class);
|
|
|
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
|
for (Map<String,Object> map:list){
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
String str = JSON.toJSONString(list,SerializerFeature.WriteMapNullValue);
|
|
String str = JSON.toJSONString(list,SerializerFeature.WriteMapNullValue);
|
|
com.alibaba.fastjson.JSONArray arr = com.alibaba.fastjson.JSONArray.parseArray(str);
|
|
com.alibaba.fastjson.JSONArray arr = com.alibaba.fastjson.JSONArray.parseArray(str);
|
|
|
|
|
|
@ -1316,7 +1449,7 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
|
|
Date dateNow = new Date();
|
|
Date dateNow = new Date();
|
|
Date dateNow1 = DateUtil.strToDate(DateUtil.getStringDateShort()+" 08:00:00");
|
|
Date dateNow1 = DateUtil.strToDate(DateUtil.getStringDateShort()+" 08:00:00");
|
|
Date dateNow2 = DateUtil.strToDate(DateUtil.getStringDateShort()+" 20:00:00");
|
|
Date dateNow2 = DateUtil.strToDate(DateUtil.getStringDateShort()+" 20:00:00");
|
|
List<String> noWarnDays = new ArrayList<>();
|
|
|
|
|
|
List<String> noWarnDays = new ArrayList<>();//无预警记录
|
|
String dateTmp = "";
|
|
String dateTmp = "";
|
|
if (dateNow.after(dateNow1)){
|
|
if (dateNow.after(dateNow1)){
|
|
dateTmp = DateUtil.dateToStr(dateNow1,DateUtil.yyyy_MM_dd_HH_mm_ss);
|
|
dateTmp = DateUtil.dateToStr(dateNow1,DateUtil.yyyy_MM_dd_HH_mm_ss);
|