Commit 9068f922 by 朱淼

修改bug

parent f1816774
package com.makeit.module.controller.dataScreen;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO;
import com.makeit.dto.platform.space.PlatBedQueryDTO;
import com.makeit.module.system.entity.ChinaArea;
import com.makeit.service.platform.dataScreen.DataScreenService;
import com.makeit.utils.area.ChinaAreaVO;
import com.makeit.vo.platform.dataScreen.*;
import com.makeit.vo.platform.space.PlatBedVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -55,6 +59,12 @@ public class DataScreenController {
return ApiResponseUtils.success(dataScreenService.alarmStatistics(dto));
}
@ApiOperation("实时告警分页列表")
@PostMapping("alarmPage")
public ApiResponseEntity<PageVO<PlatAlarmStatisticsListVo>> alarmPage(@RequestBody PageReqDTO<PlatDataScreenQueryDTO> page) {
return ApiResponseUtils.success(dataScreenService.alarmPage(page));
}
@ApiOperation("机构养老-基础数据统计")
@PostMapping("baseInfoStatistics")
public ApiResponseEntity<PlatBaseInfoStatisticsVO> baseInfoStatistics(@RequestBody PlatDataScreenQueryDTO dto) {
......
package com.makeit.service.platform.dataScreen;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO;
import com.makeit.utils.area.ChinaAreaVO;
import com.makeit.vo.platform.dataScreen.*;
......@@ -26,4 +28,6 @@ public interface DataScreenService {
List<PlatMapStatisticsVO> mapStatistics(PlatDataScreenQueryDTO dto);
List<ChinaAreaVO> mapList(PlatDataScreenQueryDTO dto);
PageVO<PlatAlarmStatisticsListVo> alarmPage(PageReqDTO<PlatDataScreenQueryDTO> page);
}
package com.makeit.service.platform.dataScreen.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO;
import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.entity.platform.auth.PlatOrg;
......@@ -8,6 +11,7 @@ import com.makeit.entity.platform.auth.PlatUser;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.space.PlatBed;
import com.makeit.entity.platform.space.PlatRoom;
import com.makeit.entity.platform.space.PlatSpace;
import com.makeit.enums.CommonEnum;
import com.makeit.enums.platform.alarm.PlatAlarmConfigEnum;
......@@ -26,6 +30,7 @@ import com.makeit.service.platform.space.PlatSpaceService;
import com.makeit.utils.area.AreaUtil;
import com.makeit.utils.area.ChinaAreaVO;
import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.PageUtil;
import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.sql.join.JoinUtil;
import com.makeit.vo.platform.dataScreen.*;
......@@ -180,6 +185,7 @@ public class DataScreenServiceImpl implements DataScreenService {
long onlineNumber = devices.stream().filter(t-> DeviceState.online.getValue().equals(t.getStatus())).count();
long offlineNumber = devices.stream().filter(t-> DeviceState.offline.getValue().equals(t.getStatus())).count();
long disableNumber = devices.stream().filter(t-> DeviceState.notActive.getValue().equals(t.getStatus())).count();
long faultNumber = devices.stream().filter(t-> DeviceState.abnormal.getValue().equals(t.getStatus())).count();
long heartNumber = devices.stream().filter(t-> PlatDeviceEnum.CategoryEnum.HEART.getValue().equals(t.getCategory())).count();
long fallNumber = devices.stream().filter(t-> PlatDeviceEnum.CategoryEnum.FALL.getValue().equals(t.getCategory())).count();
long spaceNumber = devices.stream().filter(t-> PlatDeviceEnum.CategoryEnum.SPACE.getValue().equals(t.getCategory())).count();
......@@ -191,6 +197,7 @@ public class DataScreenServiceImpl implements DataScreenService {
vo.setHeartNumber(heartNumber);
vo.setFallNumber(fallNumber);
vo.setSpaceNumber(spaceNumber);
vo.setFaultNumber(faultNumber);
return vo;
}
......@@ -219,63 +226,17 @@ public class DataScreenServiceImpl implements DataScreenService {
}
List<PlatAlarmRecord> alarmRecords = platAlarmRecordService.list(new QueryWrapper<PlatAlarmRecord>().lambda()
.between(PlatAlarmRecord::getAlarmDate,dto.getStartTime(),dto.getEndTime())
.isNotNull(PlatAlarmRecord::getElderIds)
.in(PlatAlarmRecord::getOrgId, dto.getOrgIds()));
List<PlatElder> platElders = platElderService.list();
Map<String,String> elderNameMap = platElders.stream().collect(Collectors.toMap(PlatElder::getId,PlatElder::getName));
Map<String, PlatElderListVO> elderBedPathMap = mapElderBedPath(platElders);
List<PlatAlarmStatisticsListVo> list = new ArrayList<>();
long total = 0;
long handledNumber = 0;
long unhandledNumber = 0;
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
DateFormat dft = new SimpleDateFormat("HH:mm:ss");
for (PlatAlarmRecord record : alarmRecords){
if(StringUtil.isNotEmpty(record.getElderIds())){
List<String> elderIds = Arrays.asList(record.getElderIds().split(","));
PlatAlarmStatisticsListVo listVo = new PlatAlarmStatisticsListVo();
String elderName = "";
String pathName = "";
for (String elderId : elderIds){
if(elderNameMap.get(elderId)!=null){
elderName = "".equals(elderName) ? elderNameMap.get(elderId) : elderName + "," + elderNameMap.get(elderId);
}
if(PlatAlarmConfigEnum.AlarmTypeEnum.HEART.getValue().equals(record.getAlarmType()) ||
PlatAlarmConfigEnum.AlarmTypeEnum.BREATHE.getValue().equals(record.getAlarmType()) ){
if(elderBedPathMap.get(elderId)!= null){
pathName = elderBedPathMap.get(elderId).getSpacePathName();
}
}else {
if(elderBedPathMap.get(elderId)!= null){
pathName = "".equals(pathName) ? elderBedPathMap.get(elderId).getSpacePathName()
: pathName + "," + elderBedPathMap.get(elderId).getRoomName();
}
}
}
if(PlatAlarmConfigEnum.AlarmTypeEnum.HEART.getValue().equals(record.getAlarmType()) ||
PlatAlarmConfigEnum.AlarmTypeEnum.BREATHE.getValue().equals(record.getAlarmType()) ){
listVo.setStatus(record.getRemark());
}
listVo.setPath(pathName);
listVo.setElderName(elderName);
listVo.setType(record.getAlarmType());
listVo.setAlarmDate(df.format(record.getAlarmDate()));
listVo.setAlarmTime(dft.format(record.getAlarmDate()));
total ++;
if(PlatAlarmRecordEnum.AlarmRecordStatusEnum.HANDLED.getValue().equals(record.getStatus())){
handledNumber ++;
}else {
unhandledNumber ++;
}
list.add(listVo);
}
}
long total = alarmRecords.size();
long handledNumber = alarmRecords.stream()
.filter(record->PlatAlarmRecordEnum.AlarmRecordStatusEnum.HANDLED.getValue().equals(record.getStatus())).count();
long unhandledNumber = alarmRecords.stream()
.filter(record->!PlatAlarmRecordEnum.AlarmRecordStatusEnum.HANDLED.getValue().equals(record.getStatus())).count();
vo.setTotal(total);
vo.setHandledNumber(handledNumber);
vo.setUnhandledNumber(unhandledNumber);
vo.setList(list);
return vo;
}
......@@ -441,6 +402,81 @@ public class DataScreenServiceImpl implements DataScreenService {
return list;
}
@Override
public PageVO<PlatAlarmStatisticsListVo> alarmPage(PageReqDTO<PlatDataScreenQueryDTO> page) {
PlatDataScreenQueryDTO dto = page.getData();
Page<PlatAlarmRecord> p = PageUtil.toMpPage(page);
if(dto.getOrgIds().isEmpty()){
//获取该账号的权限组织
List<PlatOrg> orgs = belongToScopeList(dto.getType());
if(orgs.isEmpty()){
return new PageVO<>();
}
List<String> orgIds = orgs.stream().map(PlatOrg::getId).collect(Collectors.toList());
dto.setOrgIds(orgIds);
}else {
//根据类型过滤数据
List<PlatOrg> platOrgs = platOrgService.list(new QueryWrapper<PlatOrg>().lambda()
.in(PlatOrg::getId, dto.getOrgIds())
.eq(PlatOrg::getType, dto.getType()));
if(platOrgs.isEmpty()){
return new PageVO<>();
}
List<String> orgIdList = platOrgs.stream().map(PlatOrg::getId).collect(Collectors.toList());
dto.setOrgIds(orgIdList);
}
Page<PlatAlarmRecord> pages = platAlarmRecordService.page(p, new QueryWrapper<PlatAlarmRecord>().lambda()
.between(dto.getStartTime()!=null && dto.getEndTime()!=null, PlatAlarmRecord::getAlarmDate,dto.getStartTime(),dto.getEndTime())
.in(PlatAlarmRecord::getOrgId, dto.getOrgIds())
.isNotNull(PlatAlarmRecord::getElderIds)
.orderByDesc(PlatAlarmRecord::getAlarmDate));
List<PlatAlarmRecord> alarmRecords = pages.getRecords();
List<PlatElder> platElders = platElderService.list(new QueryWrapper<PlatElder>().lambda()
.in(PlatElder::getOrgId, dto.getOrgIds()));
Map<String,String> elderNameMap = platElders.stream().collect(Collectors.toMap(PlatElder::getId,PlatElder::getName));
Map<String, PlatElderListVO> elderBedPathMap = mapElderBedPath(platElders);
List<PlatAlarmStatisticsListVo> list = new ArrayList<>();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
DateFormat dft = new SimpleDateFormat("HH:mm:ss");
for (PlatAlarmRecord record : alarmRecords){
List<String> elderIds = Arrays.asList(record.getElderIds().split(","));
PlatAlarmStatisticsListVo listVo = new PlatAlarmStatisticsListVo();
String elderName = "";
String pathName = "";
for (String elderId : elderIds){
if(elderNameMap.get(elderId)!=null){
elderName = "".equals(elderName) ? elderNameMap.get(elderId) : elderName + "," + elderNameMap.get(elderId);
}
if(PlatAlarmConfigEnum.AlarmTypeEnum.HEART.getValue().equals(record.getAlarmType()) ||
PlatAlarmConfigEnum.AlarmTypeEnum.BREATHE.getValue().equals(record.getAlarmType()) ){
if(elderBedPathMap.get(elderId)!= null){
pathName = elderBedPathMap.get(elderId).getSpacePathName();
}
}else {
if(elderBedPathMap.get(elderId)!= null){
pathName = "".equals(pathName) ? elderBedPathMap.get(elderId).getSpacePathName()
: pathName + "," + elderBedPathMap.get(elderId).getRoomName();
}
}
}
if(PlatAlarmConfigEnum.AlarmTypeEnum.HEART.getValue().equals(record.getAlarmType()) ||
PlatAlarmConfigEnum.AlarmTypeEnum.BREATHE.getValue().equals(record.getAlarmType()) ){
listVo.setStatus(record.getRemark());
}
listVo.setPath(pathName);
listVo.setElderName(elderName);
listVo.setType(record.getAlarmType());
listVo.setAlarmDate(df.format(record.getAlarmDate()));
listVo.setAlarmTime(dft.format(record.getAlarmDate()));
list.add(listVo);
}
return PageUtil.toPageVO(list, pages);
}
private List<PlatOrg> getAncestorsOrgList(List<PlatOrg> orgs, Set<String> parentOrgIds) {
orgs = orgs.stream().filter(t->parentOrgIds.contains(t.getId())).collect(Collectors.toList());
Set<String> ancestorsOrgIdList = new HashSet<>();
......
......@@ -23,6 +23,6 @@ public class PlatAlarmStatisticsVO {
@ApiModelProperty(value = "待处理数")
private Long unhandledNumber;
private List<PlatAlarmStatisticsListVo> list;
// private List<PlatAlarmStatisticsListVo> list;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment