Commit 93fddd61 by 朱淼

数据大屏

parent c8987595
Showing with 624 additions and 9 deletions
...@@ -17,6 +17,8 @@ CREATE TABLE `plat_space` ...@@ -17,6 +17,8 @@ CREATE TABLE `plat_space`
`update_date` datetime DEFAULT NULL COMMENT '更新时间', `update_date` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` INT(1) DEFAULT '0' COMMENT '删除标记', `del_flag` INT(1) DEFAULT '0' COMMENT '删除标记',
`tenant_id` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ' 租户id ', `tenant_id` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ' 租户id ',
`org_id` varchar(64) DEFAULT NULL COMMENT '组织id',
`attribute` char(1) DEFAULT NULL COMMENT '属性 1-居家 2-机构',
PRIMARY KEY (`id`) USING BTREE PRIMARY KEY (`id`) USING BTREE
) ENGINE = INNODB ) ENGINE = INNODB
DEFAULT CHARSET = utf8mb4 COMMENT = '空间管理'; DEFAULT CHARSET = utf8mb4 COMMENT = '空间管理';
......
package com.makeit.module.controller.dataScreen;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO;
import com.makeit.service.platform.dataScreen.DataScreenService;
import com.makeit.vo.platform.dataScreen.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
@Api(tags = "平台端-数据大屏")
@RestController
@RequestMapping("/plat/data/screen")
public class DataScreenController {
@Autowired
private DataScreenService dataScreenService;
@ApiOperation("长者年龄分布")
@PostMapping("ageStatistics")
public ApiResponseEntity<PlatAgeStatisticsVO> ageStatistics(@RequestBody PlatDataScreenQueryDTO dto) {
return ApiResponseUtils.success(dataScreenService.ageStatistics(dto));
}
@ApiOperation("长者性别比例分布")
@PostMapping("sexStatistics")
public ApiResponseEntity<PlatSexStatisticsVO> sexStatistics(@RequestBody PlatDataScreenQueryDTO dto) {
return ApiResponseUtils.success(dataScreenService.sexStatistics(dto));
}
@ApiOperation("设备概况")
@PostMapping("deviceStatistics")
public ApiResponseEntity<PlatDeviceStatisticsVO> deviceStatistics(@RequestBody PlatDataScreenQueryDTO dto) {
return ApiResponseUtils.success(dataScreenService.deviceStatistics(dto));
}
@ApiOperation("实时告警")
@PostMapping("alarmStatistics")
public ApiResponseEntity<PlatAlarmStatisticsVO> alarmStatistics(@RequestBody PlatDataScreenQueryDTO dto) {
return ApiResponseUtils.success(dataScreenService.alarmStatistics(dto));
}
@ApiOperation("机构养老-基础数据统计")
@PostMapping("baseInfoStatistics")
public ApiResponseEntity<PlatBaseInfoStatisticsVO> baseInfoStatistics(@RequestBody PlatDataScreenQueryDTO dto) {
return ApiResponseUtils.success(dataScreenService.baseInfoStatistics(dto));
}
@ApiOperation("地图统计")
@PostMapping("mapStatistics")
public ApiResponseEntity<PlatAlarmStatisticsVO> mapStatistics(@RequestBody PlatDataScreenQueryDTO dto) {
return ApiResponseUtils.success(dataScreenService.alarmStatistics(dto));
}
}
...@@ -2,8 +2,10 @@ package com.makeit.module.controller.space; ...@@ -2,8 +2,10 @@ package com.makeit.module.controller.space;
import com.makeit.common.response.ApiResponseEntity; import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils; import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.PlatElderQueryDTO;
import com.makeit.dto.platform.space.PlatBedPanoramaDTO; import com.makeit.dto.platform.space.PlatBedPanoramaDTO;
import com.makeit.dto.platform.space.PlatRoomPanoramaDTO; import com.makeit.dto.platform.space.PlatRoomPanoramaDTO;
import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.service.platform.space.PlatRoomDynamicService; import com.makeit.service.platform.space.PlatRoomDynamicService;
import com.makeit.vo.platform.space.PlatBedPanoramaVO; import com.makeit.vo.platform.space.PlatBedPanoramaVO;
import com.makeit.vo.platform.space.PlatRoomPanoramaVO; import com.makeit.vo.platform.space.PlatRoomPanoramaVO;
...@@ -60,4 +62,11 @@ public class PlatRoomDynamicController { ...@@ -60,4 +62,11 @@ public class PlatRoomDynamicController {
return ApiResponseUtils.success(data); return ApiResponseUtils.success(data);
} }
@ApiOperation("房间详细-下拉长者")
@PostMapping("elderList")
public ApiResponseEntity<List<PlatElder>> elderList(@RequestBody PlatElderQueryDTO dto) {
List<PlatElder> data = platRoomDynamicService.elderList(dto);
return ApiResponseUtils.success(data);
}
} }
package com.makeit.module.controller.wechat.space;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.space.PlatRegionSettingDTO;
import com.makeit.dto.platform.space.PlatRegionSettingQueryDTO;
import com.makeit.service.platform.space.PlatRegionSettingService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
@Api(tags = "平台端小程序-区域设置")
@RestController
@RequestMapping("/wechat/plat/region/setting")
public class PlatRegionSettingWechatController {
@Autowired
private PlatRegionSettingService platRegionSettingService;
@ApiOperation("列表")
@PostMapping("list")
public ApiResponseEntity<List<PlatRegionSettingDTO>> list(@RequestBody PlatRegionSettingQueryDTO dto) {
List<PlatRegionSettingDTO> data = platRegionSettingService.list(dto);
return ApiResponseUtils.success(data);
}
@ApiOperation("编辑")
@PostMapping("edit")
public ApiResponseEntity<?> edit(@RequestBody PlatRegionSettingDTO dto) {
platRegionSettingService.edit(dto);
return ApiResponseUtils.success();
}
}
package com.makeit.module.controller.wechat.space;
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.device.PlatDeviceDTO;
import com.makeit.dto.platform.space.PlatBedDeviceQueryDTO;
import com.makeit.dto.platform.space.PlatRoomBindDeviceDTO;
import com.makeit.dto.platform.space.PlatSpaceDeviceQueryDTO;
import com.makeit.dto.platform.space.PlatUnbindingDeviceDTO;
import com.makeit.enums.CommonEnum;
import com.makeit.service.platform.space.PlatRoomBedDeviceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
@Api(tags = "平台端小程序-绑定设备")
@RestController
@RequestMapping("/wechat/plat/binding/device/")
public class PlatRoomBedDeviceWechatController {
@Autowired
private PlatRoomBedDeviceService platRoomBedDeviceService;
@ApiOperation("设备列表(选择设备)-房间绑定")
@PostMapping("pageRoomDevice")
public ApiResponseEntity<PageVO<PlatDeviceDTO>> pageRoomDevice(@RequestBody PageReqDTO<PlatSpaceDeviceQueryDTO> page) {
page.getData().setIsRoom(CommonEnum.YES.getValue());
PageVO<PlatDeviceDTO> data = platRoomBedDeviceService.pageDevice(page);
return ApiResponseUtils.success(data);
}
@ApiOperation("设备列表(选择设备)-床位绑定")
@PostMapping("pageBedDevice")
public ApiResponseEntity<PageVO<PlatDeviceDTO>> pageBedDevice(@RequestBody PageReqDTO<PlatSpaceDeviceQueryDTO> page) {
page.getData().setIsRoom(CommonEnum.NO.getValue());
PageVO<PlatDeviceDTO> data = platRoomBedDeviceService.pageDevice(page);
return ApiResponseUtils.success(data);
}
@ApiOperation("已绑定设备列表")
@PostMapping("listBindDevice")
public ApiResponseEntity<List<PlatDeviceDTO>> listBindDevice(@RequestBody PlatBedDeviceQueryDTO dto) {
List<PlatDeviceDTO> data = platRoomBedDeviceService.listBindDevice(dto);
return ApiResponseUtils.success(data);
}
@ApiOperation("绑定设备")
@PostMapping("bindingDevice")
public ApiResponseEntity<?> bindingDevice(@RequestBody PlatRoomBindDeviceDTO dto) {
platRoomBedDeviceService.bindingDevice(dto);
return ApiResponseUtils.success();
}
@ApiOperation("解绑设备")
@PostMapping("unbindingDevice")
public ApiResponseEntity<?> unbindingDevice(@RequestBody PlatUnbindingDeviceDTO dto) {
platRoomBedDeviceService.unbindingDevice(dto);
return ApiResponseUtils.success();
}
}
package com.makeit.dto.platform.dataScreen;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.List;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
@Data
@ApiModel("PlatDataScreenQueryDto参数")
public class PlatDataScreenQueryDTO {
@ApiModelProperty("组织ids")
private List<String> orgIds;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("开始时间")
private LocalDateTime startTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty("结束时间")
private LocalDateTime endTime;
}
...@@ -38,5 +38,8 @@ public class PlatElderQueryDTO extends BaseTenantDTO { ...@@ -38,5 +38,8 @@ public class PlatElderQueryDTO extends BaseTenantDTO {
@ApiModelProperty(value = "组织id") @ApiModelProperty(value = "组织id")
private String orgId; private String orgId;
@ApiModelProperty(value = "房间id")
private String roomId;
} }
...@@ -46,5 +46,9 @@ public class PlatSpace extends BaseBusEntity { ...@@ -46,5 +46,9 @@ public class PlatSpace extends BaseBusEntity {
@ApiModelProperty(value = "上级全路径") @ApiModelProperty(value = "上级全路径")
private String parentPath; private String parentPath;
@ApiModelProperty(value = "组织id")
private String orgId;
@ApiModelProperty(value = "属性 1-居家 2-机构")
private String attribute;
} }
package com.makeit.enums.platform.auth;
import com.makeit.enums.BaseEnum;
import com.makeit.utils.sys.SysDictUtil;
/**
* Controller
*
* @author zm
* @version 2023/9/8
*/
public class PlatOrgEnum {
public enum OrgTypeEnum implements BaseEnum {
HOME("org.type.home"),
INSTITUTION("org.type.institution");
private String code;
OrgTypeEnum(String code) {
this.code = code;
}
@Override
public String getValue() {
return SysDictUtil.getValue(code);
}
}
}
...@@ -17,4 +17,6 @@ public interface PlatBedMapper extends BaseMapper<PlatBed> { ...@@ -17,4 +17,6 @@ public interface PlatBedMapper extends BaseMapper<PlatBed> {
List<PlatBedPanoramaVO> selectBySpaceIdAndStatus(@Param("dto") PlatBedPanoramaDTO dto); List<PlatBedPanoramaVO> selectBySpaceIdAndStatus(@Param("dto") PlatBedPanoramaDTO dto);
List<PlatBedPanoramaVO> selectByRoomIdAndStatus(@Param("dto")PlatBedPanoramaDTO dto); List<PlatBedPanoramaVO> selectByRoomIdAndStatus(@Param("dto")PlatBedPanoramaDTO dto);
long countByOrdIdsAndType(@Param("orgIds") List<String> orgIds, @Param("orgType")String orgType);
} }
package com.makeit.service.platform.dataScreen;
import com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO;
import com.makeit.vo.platform.dataScreen.*;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
public interface DataScreenService {
PlatAgeStatisticsVO ageStatistics(PlatDataScreenQueryDTO dto);
PlatSexStatisticsVO sexStatistics(PlatDataScreenQueryDTO dto);
PlatDeviceStatisticsVO deviceStatistics(PlatDataScreenQueryDTO dto);
PlatAlarmStatisticsVO alarmStatistics(PlatDataScreenQueryDTO dto);
PlatBaseInfoStatisticsVO baseInfoStatistics(PlatDataScreenQueryDTO dto);
}
package com.makeit.service.platform.dataScreen.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO;
import com.makeit.entity.platform.auth.PlatUser;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.enums.CommonEnum;
import com.makeit.enums.platform.device.PlatDeviceEnum;
import com.makeit.enums.platform.elder.PlatElderEnum;
import com.makeit.service.platform.auth.PlatUserService;
import com.makeit.service.platform.dataScreen.DataScreenService;
import com.makeit.service.platform.device.PlatDeviceService;
import com.makeit.service.platform.elder.PlatElderService;
import com.makeit.service.platform.space.PlatBedService;
import com.makeit.vo.platform.dataScreen.*;
import jodd.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.List;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
@Service
public class DataScreenServiceImpl implements DataScreenService {
@Autowired
private PlatElderService platElderService;
@Autowired
private PlatDeviceService platDeviceService;
@Autowired
private PlatBedService platBedService;
@Autowired
private PlatUserService platUserService;
@Override
public PlatAgeStatisticsVO ageStatistics(PlatDataScreenQueryDTO dto) {
List<PlatElder> elders = platElderService.list(new QueryWrapper<PlatElder>().lambda()
.in(PlatElder::getOrgId, dto.getOrgIds()));
long belowSixtyNumber = elders.stream().filter(t->t.getAge()!=null && t.getAge()<60).count();
long sixtyToSeventyNumber = elders.stream().filter(t->t.getAge()!=null && t.getAge()>=60 && t.getAge()<=70).count();
long seventyOneToEightyNumber = elders.stream().filter(t->t.getAge()!=null && t.getAge()>70 && t.getAge()<=80).count();
long EightyOneToNinetyNumber = elders.stream().filter(t->t.getAge()!=null && t.getAge()>80 && t.getAge()<=90).count();
long aboveNinetyNumber = elders.stream().filter(t->t.getAge()!=null && t.getAge()>90).count();
PlatAgeStatisticsVO vo = new PlatAgeStatisticsVO();
vo.setBelowSixtyNumber(belowSixtyNumber);
vo.setSixtyToSeventyNumber(sixtyToSeventyNumber);
vo.setSeventyOneToEightyNumber(seventyOneToEightyNumber);
vo.setEightyOneToNinetyNumber(EightyOneToNinetyNumber);
vo.setAboveNinetyNumber(aboveNinetyNumber);
return vo;
}
@Override
public PlatSexStatisticsVO sexStatistics(PlatDataScreenQueryDTO dto) {
long manElderNumber = platElderService.count(new QueryWrapper<PlatElder>().lambda()
.in(PlatElder::getOrgId, dto.getOrgIds())
.eq(PlatElder::getSex, PlatElderEnum.SexEnum.MAN.getValue()));
long womanElderNumber = platElderService.count(new QueryWrapper<PlatElder>().lambda()
.in(PlatElder::getOrgId, dto.getOrgIds())
.eq(PlatElder::getSex, PlatElderEnum.SexEnum.WOMAN.getValue()));
long total = womanElderNumber + manElderNumber;
BigDecimal manRate = new BigDecimal(manElderNumber).divide(new BigDecimal(total), 4, BigDecimal.ROUND_HALF_UP)
.multiply(new BigDecimal(100));
BigDecimal womanRate = new BigDecimal(100).subtract(manRate);
PlatSexStatisticsVO vo = new PlatSexStatisticsVO();
vo.setManNumber(manElderNumber);
vo.setManRate(manRate);
vo.setWomanNumber(womanElderNumber);
vo.setWomanRate(womanRate);
return vo;
}
@Override
public PlatDeviceStatisticsVO deviceStatistics(PlatDataScreenQueryDTO dto) {
List<PlatDevice> devices = platDeviceService.list(new QueryWrapper<PlatDevice>().lambda()
.in(PlatDevice::getOrgId, dto.getOrgIds()));
long total = devices.size();
return null;
}
@Override
public PlatAlarmStatisticsVO alarmStatistics(PlatDataScreenQueryDTO dto) {
return null;
}
@Override
public PlatBaseInfoStatisticsVO baseInfoStatistics(PlatDataScreenQueryDTO dto) {
List<PlatElder> elders = platElderService.list(new QueryWrapper<PlatElder>().lambda()
.in(PlatElder::getOrgId, dto.getOrgIds()));
long elderNumber = elders.size();
long currentElderNumber = elders.stream().filter(t-> StringUtil.isNotEmpty(t.getBedId())).count();
long bedNumber = platBedService.countByOrdIds(dto.getOrgIds());
long userNumber = platUserService.count(new QueryWrapper<PlatUser>().lambda()
.in(PlatUser::getOrgId, dto.getOrgIds())
.eq(PlatUser::getStatus, CommonEnum.YES.getValue()));
PlatBaseInfoStatisticsVO vo = new PlatBaseInfoStatisticsVO();
vo.setElderNumber(elderNumber);
vo.setCurrentElderNumber(currentElderNumber);
vo.setBedNumber(bedNumber);
vo.setUserNumber(userNumber);
return vo;
}
}
...@@ -57,4 +57,6 @@ public interface PlatBedService extends IService<PlatBed> { ...@@ -57,4 +57,6 @@ public interface PlatBedService extends IService<PlatBed> {
List<PlatBedPanoramaVO> selectBySpaceIdAndStatus(PlatBedPanoramaDTO dto); List<PlatBedPanoramaVO> selectBySpaceIdAndStatus(PlatBedPanoramaDTO dto);
List<PlatBedPanoramaVO> selectByRoomIdAndStatus(PlatBedPanoramaDTO dto); List<PlatBedPanoramaVO> selectByRoomIdAndStatus(PlatBedPanoramaDTO dto);
long countByOrdIds(List<String> orgIds);
} }
package com.makeit.service.platform.space; package com.makeit.service.platform.space;
import com.makeit.dto.platform.elder.PlatElderQueryDTO;
import com.makeit.dto.platform.space.PlatBedPanoramaDTO; import com.makeit.dto.platform.space.PlatBedPanoramaDTO;
import com.makeit.dto.platform.space.PlatRoomPanoramaDTO; import com.makeit.dto.platform.space.PlatRoomPanoramaDTO;
import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.vo.platform.space.PlatBedPanoramaVO; import com.makeit.vo.platform.space.PlatBedPanoramaVO;
import com.makeit.vo.platform.space.PlatRoomPanoramaVO; import com.makeit.vo.platform.space.PlatRoomPanoramaVO;
import com.makeit.vo.platform.space.PlatSpaceAndRoomVO; import com.makeit.vo.platform.space.PlatSpaceAndRoomVO;
...@@ -23,4 +25,5 @@ public interface PlatRoomDynamicService { ...@@ -23,4 +25,5 @@ public interface PlatRoomDynamicService {
List<PlatSpaceAndRoomVO> bedPanoramaTree(); List<PlatSpaceAndRoomVO> bedPanoramaTree();
List<PlatElder> elderList(PlatElderQueryDTO dto);
} }
...@@ -6,21 +6,19 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; ...@@ -6,21 +6,19 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.dto.StatusDTO; import com.makeit.common.dto.StatusDTO;
import com.makeit.common.page.PageReqDTO; import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO; import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.device.PlatDeviceDTO;
import com.makeit.dto.platform.space.*; import com.makeit.dto.platform.space.*;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.space.PlatBed; import com.makeit.entity.platform.space.PlatBed;
import com.makeit.entity.platform.space.PlatRoom; import com.makeit.entity.platform.space.PlatRoom;
import com.makeit.entity.platform.space.PlatRoomBedDevice; import com.makeit.entity.platform.space.PlatRoomBedDevice;
import com.makeit.enums.CodeMessageEnum; import com.makeit.enums.CodeMessageEnum;
import com.makeit.enums.CommonEnum; import com.makeit.enums.CommonEnum;
import com.makeit.enums.platform.device.PlatDeviceEnum; import com.makeit.enums.platform.auth.PlatOrgEnum;
import com.makeit.exception.BusinessException; import com.makeit.exception.BusinessException;
import com.makeit.mapper.platform.space.PlatBedMapper; import com.makeit.mapper.platform.space.PlatBedMapper;
import com.makeit.service.platform.device.PlatDeviceService; import com.makeit.service.platform.device.PlatDeviceService;
import com.makeit.service.platform.space.PlatBedService; import com.makeit.service.platform.space.PlatBedService;
import com.makeit.service.platform.space.PlatRoomBedDeviceService; import com.makeit.service.platform.space.PlatRoomBedDeviceService;
import com.makeit.utils.data.convert.BeanDtoVoUtils; import com.makeit.service.platform.space.PlatRoomService;
import com.makeit.utils.data.convert.PageUtil; import com.makeit.utils.data.convert.PageUtil;
import com.makeit.vo.platform.space.PlatBedPanoramaVO; import com.makeit.vo.platform.space.PlatBedPanoramaVO;
import jodd.util.StringUtil; import jodd.util.StringUtil;
...@@ -29,7 +27,6 @@ import org.springframework.stereotype.Service; ...@@ -29,7 +27,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
/** /**
* @Author:lzy * @Author:lzy
...@@ -44,6 +41,8 @@ public class PlatBedServiceImpl extends ServiceImpl<PlatBedMapper, PlatBed> impl ...@@ -44,6 +41,8 @@ public class PlatBedServiceImpl extends ServiceImpl<PlatBedMapper, PlatBed> impl
@Autowired @Autowired
private PlatRoomBedDeviceService platRoomBedDeviceService; private PlatRoomBedDeviceService platRoomBedDeviceService;
@Autowired
private PlatRoomService platRoomService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -127,8 +126,14 @@ public class PlatBedServiceImpl extends ServiceImpl<PlatBedMapper, PlatBed> impl ...@@ -127,8 +126,14 @@ public class PlatBedServiceImpl extends ServiceImpl<PlatBedMapper, PlatBed> impl
if(platRoomBedDeviceService.count(queryWrapper) > 0){ if(platRoomBedDeviceService.count(queryWrapper) > 0){
throw new BusinessException(CodeMessageEnum.PLATFORM_ERROR_BAD_NOT_DEL); throw new BusinessException(CodeMessageEnum.PLATFORM_ERROR_BAD_NOT_DEL);
} }
removeById(id); removeById(id);
//更新房间床位数
PlatRoom room = platRoomService.getById(platBed.getRoomId());
if(room != null){
Integer bedNumber = room.getBedNumber()-1;
room.setBedNumber(bedNumber);
platRoomService.updateById(room);
}
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
...@@ -157,5 +162,10 @@ public class PlatBedServiceImpl extends ServiceImpl<PlatBedMapper, PlatBed> impl ...@@ -157,5 +162,10 @@ public class PlatBedServiceImpl extends ServiceImpl<PlatBedMapper, PlatBed> impl
return baseMapper.selectByRoomIdAndStatus(dto); return baseMapper.selectByRoomIdAndStatus(dto);
} }
@Override
public long countByOrdIds(List<String> orgIds) {
return baseMapper.countByOrdIdsAndType(orgIds, PlatOrgEnum.OrgTypeEnum.INSTITUTION.getValue());
}
} }
package com.makeit.service.platform.space.impl; package com.makeit.service.platform.space.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.makeit.dto.platform.elder.PlatElderQueryDTO;
import com.makeit.dto.platform.space.PlatBedPanoramaDTO; import com.makeit.dto.platform.space.PlatBedPanoramaDTO;
import com.makeit.dto.platform.space.PlatRoomPanoramaDTO; import com.makeit.dto.platform.space.PlatRoomPanoramaDTO;
import com.makeit.entity.platform.elder.PlatElder;
import com.makeit.entity.platform.space.PlatBed; import com.makeit.entity.platform.space.PlatBed;
import com.makeit.entity.platform.space.PlatRoom; import com.makeit.entity.platform.space.PlatRoom;
import com.makeit.entity.platform.space.PlatSpace; import com.makeit.entity.platform.space.PlatSpace;
import com.makeit.enums.platform.space.PlatBedPanoramaSpaceType; import com.makeit.enums.platform.space.PlatBedPanoramaSpaceType;
import com.makeit.enums.platform.space.PlatRoomStatusEnum; import com.makeit.enums.platform.space.PlatRoomStatusEnum;
import com.makeit.mapper.platform.space.PlatBedMapper; import com.makeit.service.platform.elder.PlatElderService;
import com.makeit.mapper.platform.space.PlatRoomMapper;
import com.makeit.mapper.platform.space.PlatSpaceMapper;
import com.makeit.service.platform.space.PlatBedService; import com.makeit.service.platform.space.PlatBedService;
import com.makeit.service.platform.space.PlatRoomDynamicService; import com.makeit.service.platform.space.PlatRoomDynamicService;
import com.makeit.service.platform.space.PlatRoomService; import com.makeit.service.platform.space.PlatRoomService;
...@@ -43,6 +43,8 @@ public class PlatRoomDynamicServiceImpl implements PlatRoomDynamicService { ...@@ -43,6 +43,8 @@ public class PlatRoomDynamicServiceImpl implements PlatRoomDynamicService {
private PlatRoomService platRoomService; private PlatRoomService platRoomService;
@Autowired @Autowired
private PlatBedService platBedService; private PlatBedService platBedService;
@Autowired
private PlatElderService platElderService;
@Override @Override
...@@ -168,6 +170,13 @@ public class PlatRoomDynamicServiceImpl implements PlatRoomDynamicService { ...@@ -168,6 +170,13 @@ public class PlatRoomDynamicServiceImpl implements PlatRoomDynamicService {
return data; return data;
} }
@Override
public List<PlatElder> elderList(PlatElderQueryDTO dto) {
List<PlatElder> list = platElderService.list(new QueryWrapper<PlatElder>().lambda()
.eq(PlatElder::getRoomId, dto.getRoomId()));
return list;
}
private PlatSpaceAndRoomVO child(PlatSpaceAndRoomVO vo,Map<String,List<PlatSpaceAndRoomVO>> map){ private PlatSpaceAndRoomVO child(PlatSpaceAndRoomVO vo,Map<String,List<PlatSpaceAndRoomVO>> map){
if(!map.containsKey(vo.getId())){ if(!map.containsKey(vo.getId())){
......
package com.makeit.vo.platform.dataScreen;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
@Data
@ApiModel("PlatAgeStatisticsVO对象")
public class PlatAgeStatisticsVO {
@ApiModelProperty(value = "60以下")
private Long belowSixtyNumber;
@ApiModelProperty(value = "60-70")
private Long sixtyToSeventyNumber;
@ApiModelProperty(value = "71-80")
private Long seventyOneToEightyNumber;
@ApiModelProperty(value = "81-90")
private Long EightyOneToNinetyNumber;
@ApiModelProperty(value = "90以上")
private Long aboveNinetyNumber;
}
package com.makeit.vo.platform.dataScreen;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Controller
*
* @author zm
* @version 2023/9/12
*/
@Data
@ApiModel("PlatAlarmStatisticsListVo对象")
public class PlatAlarmStatisticsListVo {
@ApiModelProperty(value = "长者姓名")
private String elderName;
@ApiModelProperty(value = "告警类型")
private String type;
@ApiModelProperty(value = "状态")
private String status;
}
package com.makeit.vo.platform.dataScreen;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
@Data
@ApiModel("PlatAlarmStatisticsVO对象")
public class PlatAlarmStatisticsVO {
@ApiModelProperty(value = "累计告警")
private Long totla;
@ApiModelProperty(value = "已处理数")
private Long handledNumber;
@ApiModelProperty(value = "待处理数")
private Long unhandledNumber;
private List<PlatAlarmStatisticsListVo> list;
}
package com.makeit.vo.platform.dataScreen;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
@Data
@ApiModel("PlatAlarmStatisticsVO对象")
public class PlatBaseInfoStatisticsVO {
@ApiModelProperty(value = "累计服务长者")
private Long elderNumber;
@ApiModelProperty(value = "当前在住长者")
private Long currentElderNumber;
@ApiModelProperty(value = "床位总数")
private Long bedNumber;
@ApiModelProperty(value = "服务人员")
private Long userNumber;
}
package com.makeit.vo.platform.dataScreen;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
@Data
@ApiModel("PlatDeviceStatisticsVO对象")
public class PlatDeviceStatisticsVO {
@ApiModelProperty(value = "总数")
private Long totla;
@ApiModelProperty(value = "在线数")
private Long onlineNumber;
@ApiModelProperty(value = "故障数")
private Long faultNumber;
@ApiModelProperty(value = "离线数")
private Long offlineNumber;
@ApiModelProperty(value = "禁用数")
private Long disableNumber;
@ApiModelProperty(value = "禁用数")
private Long heartNumber;
}
package com.makeit.vo.platform.dataScreen;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* Controller
*
* @author zm
* @version 2023/9/11
*/
@Data
@ApiModel("PlatSexStatisticsVO对象")
public class PlatSexStatisticsVO {
@ApiModelProperty(value = "男性人数")
private Long manNumber;
@ApiModelProperty(value = "女性人数")
private Long womanNumber;
@ApiModelProperty(value = "男性比例")
private BigDecimal manRate;
@ApiModelProperty(value = "女性比例")
private BigDecimal womanRate;
}
...@@ -33,5 +33,21 @@ ...@@ -33,5 +33,21 @@
</where> </where>
</select> </select>
<select id="countByOrdIdsAndType" resultType="java.lang.Long">
SELECT count(*) from plat_bed pb LEFT JOIN plat_space ps ON pb.space_id = ps.id
<where>
ps.del_flag = 0
<if test="orgIds != null and orgIds != '' ">
AND ps.org_id IN
<foreach collection="orgIds" item="item" separator="," open="(" close=")" index="">
#{item}
</foreach>
</if>
<if test="orgType != null and orgType != ''">
AND ps.type = #{orgType}
</if>
</where>
</select>
</mapper> </mapper>
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