|
@ -1280,16 +1280,68 @@ public class PatientDeviceService extends BaseJpaService<DevicePatientDevice, Pa
|
|
|
}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);
|
|
|
|
|
|
"order by create_time desc";
|
|
|
List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
|
|
|
List<String> warnDays = list.stream().map(item->(item).get("create_time").toString()).collect(Collectors.toList());
|
|
|
|
|
|
//获取无预警时间列表
|
|
|
Date dateBegin = DateUtil.strToDate("2021-09-01");
|
|
|
Date dateNow = new Date();
|
|
|
Date dateNow1 = DateUtil.strToDate(DateUtil.getStringDateShort()+" 08:00:00");
|
|
|
Date dateNow2 = DateUtil.strToDate(DateUtil.getStringDateShort()+" 20:00:00");
|
|
|
List<String> noWarnDays = new ArrayList<>();
|
|
|
String dateTmp = "";
|
|
|
if (dateNow.after(dateNow1)){
|
|
|
dateTmp = DateUtil.dateToStr(dateNow1,DateUtil.yyyy_MM_dd_HH_mm_ss);
|
|
|
if (!warnDays.contains(dateTmp)){
|
|
|
noWarnDays.add(dateTmp);
|
|
|
}
|
|
|
}
|
|
|
if (dateNow.after(dateNow2)){
|
|
|
dateTmp = DateUtil.dateToStr(dateNow2,DateUtil.yyyy_MM_dd_HH_mm_ss);
|
|
|
if (!warnDays.contains(dateTmp)){
|
|
|
noWarnDays.add(dateTmp);
|
|
|
}
|
|
|
}
|
|
|
for (;dateNow.after(dateBegin);){
|
|
|
dateNow = DateUtil.getPreDays(dateNow,-1);
|
|
|
dateTmp = DateUtil.dateToStrShort(dateNow)+" 08:00:00";
|
|
|
if (!warnDays.contains(dateTmp)){
|
|
|
noWarnDays.add(dateTmp);
|
|
|
}
|
|
|
dateTmp = DateUtil.dateToStrShort(dateNow)+" 20:00:00";
|
|
|
if (!warnDays.contains(dateTmp)){
|
|
|
noWarnDays.add(dateTmp);
|
|
|
}
|
|
|
}
|
|
|
Integer count = noWarnDays.size();
|
|
|
if (count>0) {
|
|
|
Integer pageCount = 0;
|
|
|
if (count % pageSize == 0) {
|
|
|
pageCount = count / pageSize;
|
|
|
} else {
|
|
|
pageCount = count / pageSize + 1;
|
|
|
}
|
|
|
int fromIndex = 0;
|
|
|
int toIndex = 0;
|
|
|
if (page != pageCount) {
|
|
|
fromIndex = (page) * pageSize;
|
|
|
toIndex = fromIndex + pageSize;
|
|
|
} else {
|
|
|
fromIndex = (page) * pageSize;
|
|
|
toIndex = count;
|
|
|
}
|
|
|
if (toIndex > count) {
|
|
|
toIndex = count;
|
|
|
}
|
|
|
result.put("dailyDataList", noWarnDays.subList(fromIndex,toIndex));
|
|
|
}else {
|
|
|
result.put("dailyDataList", new ArrayList<>());
|
|
|
}
|
|
|
result.put("dailyTotal",count);
|
|
|
result.put("dailyPage",page+1);
|
|
|
result.put("dailyPageSize",pageSize);
|
|
|
result.put("dailyDataList", list);
|
|
|
}
|
|
|
|
|
|
return result;
|