Commit 61b4007a by 杨伟程

老人管理房间床位相关逻辑

parents 7422dfda 8a1817d7
......@@ -417,23 +417,24 @@ CREATE TABLE `alarm_config` (
CREATE TABLE `plat_alarm_record` (
`id` VARCHAR ( 64 ) NOT NULL COMMENT 'id',
`alarm_id` VARCHAR ( 64 ) DEFAULT NULL COMMENT '关联告警配置',
`id` varchar(64) NOT NULL COMMENT 'id',
`alarm_id` varchar(64) DEFAULT NULL COMMENT '关联告警配置',
`alarm_date` datetime DEFAULT NULL COMMENT '告警时间',
`type` char ( 1 ) DEFAULT NULL COMMENT '状态 0 待处理 1 已处理',
`status` char ( 1 ) DEFAULT NULL COMMENT '状态 0 待处理 1 已处理',
`notice_status` char ( 1 ) DEFAULT NULL COMMENT '通知家属状态 0 未通知 1 已通知',
`alarm_type` varchar(4) DEFAULT NULL COMMENT '告警类型 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常',
`status` char(1) DEFAULT NULL COMMENT '状态 0 待处理 1 已处理',
`notice_status` char(1) DEFAULT NULL COMMENT '通知家属状态 0 未通知 1 已通知',
`content` varchar(128) NOT NULL COMMENT '告警内容',
`deal_user` VARCHAR ( 64 ) DEFAULT NULL COMMENT '处理人',
`deal_user` varchar(64) DEFAULT NULL COMMENT '处理人',
`deal_date` datetime DEFAULT NULL COMMENT '处理时间',
`create_by` VARCHAR ( 64 ) DEFAULT NULL COMMENT '创建者',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` VARCHAR ( 64 ) DEFAULT NULL COMMENT '更新者',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
`update_date` datetime DEFAULT NULL COMMENT '更新时间',
`del_flag` char ( 1 ) DEFAULT '0' COMMENT '删除标记',
`tenant_id` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ' 租户id ',
PRIMARY KEY ( `id` ) USING BTREE
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4 COMMENT = '告警记录';
`del_flag` char(1) DEFAULT '0' COMMENT '删除标记',
`tenant_id` varchar(64) DEFAULT NULL COMMENT ' 租户id ',
`org_id` varchar(64) DEFAULT NULL COMMENT '所属组织id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='告警记录';
CREATE TABLE `plafform_setting` (
......
......@@ -95,6 +95,6 @@ PLATFORM.ERROR.SPACE.NOT.DEL=该空间下存在下级或者房间,不可删除
PLATFORM.ERROR.ROOM.EXIT.BAD=房间中存在床位,不可删除
PLATFORM.ERROR.ROOM.BAD.NUMBER.NOT.AUTH=床位数量不能改小
PLATFORM.ERROR.BAD.NAME.EXIT=床位名称已存在
PLATFORM.ERROR.BAD.NOT.DEL=床位已绑定长者,不可删除
PLATFORM.ERROR.BAD.NOT.DEL=床位已绑定长者或设备,不可删除
PLATFORM.ERROR.ROOM.OTHER.USED.NOT.DEL=该房间下有床位有其他长者入住
......@@ -5,9 +5,11 @@ 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.PlatBedEditDTO;
import com.makeit.dto.platform.space.PlatBedQueryDTO;
import com.makeit.entity.platform.space.PlatBed;
import com.makeit.service.platform.device.PlatDeviceService;
import com.makeit.service.platform.space.PlatBedService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -45,7 +47,6 @@ public class PlatBedController {
return ApiResponseUtils.success(data);
}
@ApiOperation("编辑")
@PostMapping("edit")
public ApiResponseEntity<?> edit(@Validated @RequestBody PlatBedEditDTO dto) {
......@@ -60,4 +61,11 @@ public class PlatBedController {
return ApiResponseUtils.success();
}
@ApiOperation("设备列表(选择设备)")
@PostMapping("pageDevice")
public ApiResponseEntity<PageVO<PlatDeviceDTO>> pageDevice(@RequestBody PageReqDTO<PlatDeviceDTO> page) {
PageVO<PlatDeviceDTO> data = platBedService.pageDevice(page);
return ApiResponseUtils.success(data);
}
}
......@@ -8,6 +8,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.Date;
/**
* <p>
......@@ -25,9 +26,31 @@ public class PlatAlarmRecordQueryDTO extends BaseTenantDTO {
@ApiModelProperty(value = "所属组织机构id")
private String orgId;
@ApiModelProperty(value = "创建时间")
@ApiModelProperty(value = "告警时间-起")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;
private LocalDateTime createDateFrom;
@ApiModelProperty(value = "告警时间-止")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDateTo;
@ApiModelProperty(value = "状态 0 待处理 1 已处理")
private String status;
@ApiModelProperty(value = "处理人")
private String dealUser;
@ApiModelProperty(value = "处理时间-起")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date dealDateFrom;
@ApiModelProperty(value = "处理时间-止")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date dealDateTo;
@ApiModelProperty(value = "告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常")
private String alarmType;
}
package com.makeit.dto.platform.device;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author:lzy
* @Date:2023/9/6 15:09
* @Describe:
*/
@Data
@ApiModel("PlatDeviceDTO 模型")
public class PlatDeviceDTO {
@ApiModelProperty(value = "原始设备ID")
private String oriDeviceId;
@ApiModelProperty(value = "设备名称")
private String name;
@ApiModelProperty(value = "产品名称")
private String productName;
@ApiModelProperty(value = "状态 数据字典 1 在线 0离线")
private String status;
}
......@@ -2,8 +2,10 @@ package com.makeit.entity.platform.alarm;
import com.baomidou.mybatisplus.annotation.TableName;
import com.makeit.common.entity.BaseBusEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date;
/**
......@@ -19,6 +21,9 @@ public class PlatAlarmRecord extends BaseBusEntity {
*/
private String alarmId;
@ApiModelProperty(value = "告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常")
private String alarmType;
/**
* 告警时间
*/
......@@ -40,14 +45,16 @@ public class PlatAlarmRecord extends BaseBusEntity {
private String content;
/**
* 处理人
* 处理人 存名字
*/
private String dealUser;
/**
* 处理时间
*/
private Date dealDate;
private LocalDateTime dealDate;
private String orgId;
}
......
......@@ -65,5 +65,8 @@ public class PlatDevice extends BaseBusEntity {
@ApiModelProperty(value = "组织路径")
private String orgPath;
@ApiModelProperty(value = "设备类型 0-呼吸心率雷达 1-空间人体雷达 2-跌倒检测雷达")
private String category;
}
......@@ -18,4 +18,18 @@ public class PlatDeviceEnum {
}
}
public enum CategoryEnum implements BaseEnum {
HEART("device.category.heart"), FALL("device.status.fall"), SPACE("device.status.space");
private String code;
CategoryEnum(String code) {
this.code = code;
}
public String getValue() {
return SysDictUtil.getValue(code);
}
}
}
......@@ -3,15 +3,26 @@ package com.makeit.service.platform.alarm.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.entity.BaseEntity;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO;
import com.makeit.entity.platform.alarm.PlatAlarmRecord;
import com.makeit.enums.CommonEnum;
import com.makeit.mapper.platform.alarm.PlatAlarmRecordMapper;
import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.PageUtil;
import com.makeit.utils.user.common.CommonUserUtil;
import com.makeit.utils.user.common.CommonUserVO;
import com.makeit.vo.platform.alarm.PlatAlarmRecordVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Objects;
/**
* @author lixl
......@@ -24,25 +35,49 @@ implements PlatAlarmRecordService{
@Override
public PageVO<PlatAlarmRecordVO> page(PageReqDTO<PlatAlarmRecordQueryDTO> dto) {
PlatAlarmRecordQueryDTO data = dto.getData();
PlatAlarmRecordQueryDTO param = dto.getData();
Page<PlatAlarmRecord> mpPage = PageUtil.toMpPage(dto);
LambdaQueryWrapper<PlatAlarmRecord> queryWrapper = new LambdaQueryWrapper<>();
//queryWrapper.eq()
return null;
LambdaQueryWrapper<PlatAlarmRecord> lambdaQueryWrapper = getLambdaQueryWrapper(param);
Page<PlatAlarmRecord> page = page(mpPage, lambdaQueryWrapper);
List<PlatAlarmRecord> records = page.getRecords();
List<PlatAlarmRecordVO> dtos = BeanDtoVoUtils.listVo(records, PlatAlarmRecordVO.class);
return PageUtil.toPageVO(dtos,page);
}
private LambdaQueryWrapper<PlatAlarmRecord> getLambdaQueryWrapper(PlatAlarmRecordQueryDTO param) {
return new LambdaQueryWrapper<PlatAlarmRecord>().ge(Objects.nonNull(param.getCreateDateFrom()), BaseEntity::getCreateDate, param.getCreateDateFrom())
.le(Objects.nonNull(param.getCreateDateTo()),BaseEntity::getCreateDate, param.getCreateDateTo())
.eq(StringUtils.isNotBlank(param.getAlarmType()),PlatAlarmRecord::getAlarmType, param.getAlarmType())
.eq(StringUtils.isNotBlank(param.getStatus()),PlatAlarmRecord::getStatus, param.getStatus())
.eq(StringUtils.isNotBlank(param.getDealUser()),PlatAlarmRecord::getDealUser, param.getDealUser())
.ge(Objects.nonNull(param.getDealDateFrom()),PlatAlarmRecord::getDealDate, param.getDealDateFrom())
.le(Objects.nonNull(param.getDealDateTo()),PlatAlarmRecord::getDealDate, param.getDealDateTo())
.eq(StringUtils.isNotBlank(param.getOrgId()),PlatAlarmRecord::getOrgId, param.getOrgId())
.orderByDesc(BaseEntity::getCreateDate)
;
}
@Override
public PlatAlarmRecordVO view(String recordId) {
return null;
PlatAlarmRecord platAlarmRecord = getById(recordId);
PlatAlarmRecordVO vo = BeanDtoVoUtils.convert(platAlarmRecord, PlatAlarmRecordVO.class);
return vo;
}
@Override
@Transactional
public void deal(String recordId) {
CommonUserVO user = CommonUserUtil.getUser();
PlatAlarmRecord platAlarmRecord = getById(recordId);
platAlarmRecord.setStatus(CommonEnum.YES.getValue());
platAlarmRecord.setDealDate(LocalDateTime.now());
platAlarmRecord.setDealUser(user.getName());
updateById(platAlarmRecord);
}
@Override
@Transactional
public void notice(String recordId) {
//todo
}
}
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.common.dto.StatusDTO;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.device.PlatDeviceDTO;
import com.makeit.dto.platform.space.PlatBedEditDTO;
import com.makeit.dto.platform.space.PlatBedQueryDTO;
import com.makeit.entity.platform.space.PlatBed;
......@@ -49,6 +50,12 @@ public interface PlatBedService extends IService<PlatBed> {
void del(String id);
void changeStatus(StatusDTO dto);
/**
* 未绑定设备列表
* @param pageReqDTO
* @return
*/
PageVO<PlatDeviceDTO> pageDevice(PageReqDTO<PlatDeviceDTO> pageReqDTO);
}
......@@ -6,24 +6,30 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.dto.StatusDTO;
import com.makeit.common.page.PageReqDTO;
import com.makeit.common.page.PageVO;
import com.makeit.dto.platform.device.PlatDeviceDTO;
import com.makeit.dto.platform.space.PlatBedEditDTO;
import com.makeit.dto.platform.space.PlatBedQueryDTO;
import com.makeit.entity.platform.auth.PlatUser;
import com.makeit.entity.platform.device.PlatDevice;
import com.makeit.entity.platform.space.PlatBed;
import com.makeit.entity.platform.space.PlatRoom;
import com.makeit.enums.CodeMessageEnum;
import com.makeit.enums.CommonEnum;
import com.makeit.enums.platform.device.PlatDeviceEnum;
import com.makeit.exception.BusinessException;
import com.makeit.mapper.platform.space.PlatBedMapper;
import com.makeit.service.platform.device.PlatDeviceService;
import com.makeit.service.platform.space.PlatBedService;
import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.PageUtil;
import jodd.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Author:lzy
......@@ -33,6 +39,9 @@ import java.util.List;
@Service
public class PlatBedServiceImpl extends ServiceImpl<PlatBedMapper, PlatBed> implements PlatBedService {
@Autowired
private PlatDeviceService platDeviceService;
@Override
@Transactional(rollbackFor = Exception.class)
public void add(PlatRoom platRoom) {
......@@ -109,6 +118,11 @@ public class PlatBedServiceImpl extends ServiceImpl<PlatBedMapper, PlatBed> impl
if (CommonEnum.NO.getValue().equals(platBed.getStatus())) {
throw new BusinessException(CodeMessageEnum.PLATFORM_ERROR_BAD_NOT_DEL);
}
if (StringUtil.isNotEmpty(platBed.getEquipmentId())) {
throw new BusinessException(CodeMessageEnum.PLATFORM_ERROR_BAD_NOT_DEL);
}
removeById(id);
}
......@@ -128,4 +142,27 @@ public class PlatBedServiceImpl extends ServiceImpl<PlatBedMapper, PlatBed> impl
updateById(bed);
}
@Override
public PageVO<PlatDeviceDTO> pageDevice(PageReqDTO<PlatDeviceDTO> pageReqDTO) {
LambdaQueryWrapper<PlatBed> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.select(PlatBed::getEquipmentId);
queryWrapper1.isNotNull(PlatBed::getEquipmentId);
List<PlatBed> listBed = list(queryWrapper1);
List<String> listEquipmentIds = listBed.stream().map(item -> item.getEquipmentId()).collect(Collectors.toList());
PlatDeviceDTO dto = pageReqDTO.getData();
Page<PlatDevice> p = PageUtil.toMpPage(pageReqDTO);
LambdaQueryWrapper<PlatDevice> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PlatDevice::getCategory, PlatDeviceEnum.CategoryEnum.HEART);
queryWrapper.notIn(PlatDevice::getId, listEquipmentIds);
queryWrapper.like(StringUtil.isNotEmpty(dto.getOriDeviceId()), PlatDevice::getOriDeviceId, dto.getOriDeviceId());
queryWrapper.like(StringUtil.isNotEmpty(dto.getName()), PlatDevice::getName, dto.getName());
queryWrapper.like(StringUtil.isNotEmpty(dto.getProductName()), PlatDevice::getProductName, dto.getProductName());
queryWrapper.eq(StringUtil.isNotEmpty(dto.getStatus()), PlatDevice::getStatus, dto.getStatus());
Page<PlatDevice> pages = platDeviceService.page(p, queryWrapper);
List<PlatDeviceDTO> listRecord = BeanDtoVoUtils.listVo(pages.getRecords(), PlatDeviceDTO.class);
return PageUtil.toPageVO(listRecord, pages);
}
}
......@@ -71,6 +71,7 @@ public class PlatRoomServiceImpl extends ServiceImpl<PlatRoomMapper, PlatRoom> i
}
@Override
@Transactional(rollbackFor = Exception.class)
public void del(List<String> ids) {
LambdaQueryWrapper<PlatBed> queryWrapper = new LambdaQueryWrapper<>();
......
......@@ -76,6 +76,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
}
@Override
@Transactional(rollbackFor = Exception.class)
public void del(String id) {
LambdaQueryWrapper<PlatSpace> queryWrapper = new LambdaQueryWrapper<>();
......@@ -84,7 +85,6 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
throw new BusinessException(CodeMessageEnum.PLATFORM_ERROR_SPACE_NOT_DEL);
}
//TODO 房间的判断
LambdaQueryWrapper<PlatRoom> queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(PlatRoom::getSpaceId,id);
if(platRoomService.count(queryWrapper1) > 0){
......
package com.makeit.vo.platform.alarm;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.makeit.common.dto.BaseTenantDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.Date;
/**
* <p>
* 告警配置
* 告警记录
* </p>
*
* @author eugene young
......@@ -16,37 +20,37 @@ import lombok.EqualsAndHashCode;
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="PlatAlarmConfig对象", description="告警配置")
@ApiModel(value="PlatAlarmRecord对象", description="告警记录")
public class PlatAlarmRecordVO extends BaseTenantDTO {
@ApiModelProperty(value = "告警类型 数据字典 1 长者跌倒 2 呼吸异常 3 心率异常 4 行为异常")
private String alarmType;
@ApiModelProperty(value = "状态 数据字典 1 启用 0 禁用")
private String status;
@ApiModelProperty(value = "告警时间")
private Date alarmDate;
@ApiModelProperty(value = "状态 0 待处理 1 已处理")
private String status;
@ApiModelProperty(value = "通知家属状态 0 未通知 1 已通知")
private String noticeStatus;
@ApiModelProperty(value = "内容")
@ApiModelProperty(value = "告警内容")
private String content;
@ApiModelProperty(value = "内容(审核中)")
private String contentAudit;
@ApiModelProperty(value = "通知渠道 数据字典 1、短信 2、邮件 3、语音短信 可多选")
private String notifyChannel;
@ApiModelProperty(value = "通知对象 数据字典 1 全部 2 选择人员")
private String notifyWay;
@ApiModelProperty(value = "处理人")
private String dealUser;
@ApiModelProperty(value = "通知人员")
private String notifyUser;
@ApiModelProperty(value = "处理时间")
private Date dealDate;
@ApiModelProperty(value = "通知人员名称")
private String notifyUserName;
@ApiModelProperty(value = "所属组织id")
private String orgId;
@ApiModelProperty(value = "说明")
private String description;
@ApiModelProperty(value = "告警时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createDate;
}
......@@ -134,8 +134,6 @@ tenant:
prefix:
- sys_
- plat_
# - wflow_model
# - wflow_record
ignore:
- sys_file
- sys_dictionary
......@@ -145,6 +143,7 @@ tenant:
- plat_tenant
- plat_tenant_menu
- plat_user
- plat_menu
rsa:
......
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