| | |
| | | package cn.lihu.jh.module.ecg.service.room; |
| | | |
| | | import cn.lihu.jh.module.ecg.controller.admin.room.vo.RoomPageReqVO; |
| | | import cn.lihu.jh.module.ecg.controller.admin.room.vo.RoomSaveReqVO; |
| | | import java.util.*; |
| | | import javax.annotation.Resource; |
| | | |
| | | import cn.lihu.jh.framework.common.pojo.PageResult; |
| | | import cn.lihu.jh.module.ecg.controller.admin.room.vo.MonitorInfoVO; |
| | | import cn.lihu.jh.module.ecg.dal.dataobject.room.RoomDO; |
| | | import cn.lihu.jh.module.ecg.dal.dataobject.room.RoomStatisticsDO; |
| | | import cn.lihu.jh.module.ecg.dal.mysql.room.RoomMapper; |
| | | import cn.lihu.jh.module.ecg.dal.dataobject.room.RoomProfile; |
| | | import cn.lihu.jh.module.ecg.enums.RoomCallingScreenEnum; |
| | | import cn.lihu.jh.module.ecg.service.queue.QueueService; |
| | | import cn.lihu.jh.module.system.api.oauth2.OAuth2TokenApi; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.*; |
| | | import cn.lihu.jh.framework.common.pojo.PageResult; |
| | | import cn.lihu.jh.framework.common.pojo.PageParam; |
| | | import cn.lihu.jh.module.ecg.controller.admin.room.vo.RoomPageReqVO; |
| | | import cn.lihu.jh.module.ecg.controller.admin.room.vo.RoomSaveReqVO; |
| | | import cn.lihu.jh.module.ecg.dal.mysql.room.RoomMapper; |
| | | import cn.lihu.jh.module.ecg.enums.BedStatusEnum; |
| | | import cn.lihu.jh.framework.common.util.object.BeanUtils; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception; |
| | | import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.ROOM_NOT_EXISTS; |
| | | |
| | | |
| | | /** |
| | | * 诊室和诊疗床 Service 实现类 |
| | |
| | | |
| | | @Resource |
| | | private RoomMapper roomMapper; |
| | | |
| | | @Resource |
| | | private OAuth2TokenApi oAuth2TokenApi; |
| | | |
| | | @Resource |
| | | QueueService queueService; |
| | | |
| | | @Override |
| | | public Integer createRoom(RoomSaveReqVO createReqVO) { |
| | |
| | | } |
| | | |
| | | @Override |
| | | public RoomProfile getRoomByIP(String ip, Long roomId) { |
| | | List<RoomDO> roomDOList = null; |
| | | if (null != roomId) { |
| | | roomDOList = roomMapper.selectList(RoomDO::getRoomId, roomId); |
| | | } else { |
| | | roomDOList = roomMapper.queueByIp(ip); |
| | | } |
| | | |
| | | RoomProfile roomProfile = new RoomProfile(); |
| | | roomProfile.setBedNum( 0 ); |
| | | roomProfile.setCallingScreenType( RoomCallingScreenEnum.NONE.getCallingScreenType() ); |
| | | |
| | | for (RoomDO roomDO : roomDOList) { |
| | | roomProfile.setRoomId(roomDO.getRoomId()); |
| | | roomProfile.setRoomName(roomDO.getRoomName()); |
| | | roomProfile.setBedNum( roomProfile.getBedNum() + 1); |
| | | |
| | | // 0 检查 1 领用 2 装机 |
| | | |
| | | // 计算 诊间屏类型 |
| | | if (roomProfile.getCallingScreenType() == RoomCallingScreenEnum.NONE.getCallingScreenType()) { |
| | | if ( roomDO.getOpType() == 0 ) { |
| | | roomProfile.setCallingScreenType(RoomCallingScreenEnum.CHECK_ONLY.getCallingScreenType()); |
| | | } else if ( roomDO.getOpType() == 1 ) { |
| | | roomProfile.setCallingScreenType( RoomCallingScreenEnum.RECEIVE_ONLY.getCallingScreenType()); |
| | | } else if ( roomDO.getOpType() == 2 ) { |
| | | roomProfile.setCallingScreenType( RoomCallingScreenEnum.INSTALL_ONLY.getCallingScreenType()); |
| | | } |
| | | } else if (roomProfile.getCallingScreenType() == RoomCallingScreenEnum.CHECK_ONLY.getCallingScreenType()) { |
| | | if ( roomDO.getOpType() == 0 || roomDO.getOpType() == 1 ) { |
| | | // do nothing |
| | | } else if ( roomDO.getOpType() == 2 ) { |
| | | roomProfile.setCallingScreenType( RoomCallingScreenEnum.CHECK_INSTALL.getCallingScreenType()); |
| | | } |
| | | } else if (roomProfile.getCallingScreenType() == RoomCallingScreenEnum.RECEIVE_ONLY.getCallingScreenType()) { |
| | | if ( roomDO.getOpType() == 0 || roomDO.getOpType() == 1 ) { |
| | | // do nothing |
| | | } else if ( roomDO.getOpType() == 2 ) { |
| | | roomProfile.setCallingScreenType( RoomCallingScreenEnum.RECEIVE_INSTALL.getCallingScreenType()); |
| | | } |
| | | } else if (roomProfile.getCallingScreenType() == RoomCallingScreenEnum.INSTALL_ONLY.getCallingScreenType()) { |
| | | if ( roomDO.getOpType() == 0 ) { |
| | | roomProfile.setCallingScreenType( RoomCallingScreenEnum.CHECK_INSTALL.getCallingScreenType()); |
| | | } else if ( roomDO.getOpType() == 1 ) { |
| | | roomProfile.setCallingScreenType( RoomCallingScreenEnum.RECEIVE_INSTALL.getCallingScreenType()); |
| | | } else if ( roomDO.getOpType() == 2 ) { |
| | | // do nothing |
| | | } |
| | | } else if (roomProfile.getCallingScreenType() == RoomCallingScreenEnum.RECEIVE_INSTALL.getCallingScreenType()) { |
| | | // do nothing |
| | | } else if (roomProfile.getCallingScreenType() == RoomCallingScreenEnum.CHECK_INSTALL.getCallingScreenType()) { |
| | | // do nothing |
| | | } |
| | | } |
| | | |
| | | return roomProfile; |
| | | } |
| | | |
| | | @Override |
| | | public PageResult<RoomDO> getRoomPage(RoomPageReqVO pageReqVO) { |
| | | return roomMapper.selectPage(pageReqVO); |
| | | } |
| | | |
| | | @Override |
| | | public List<RoomStatisticsDO> roomStatistics() { |
| | | return roomMapper.roomStatistic(); |
| | | public List<RoomDO> simpleRoomList() { |
| | | List<BedStatusEnum> bedStatusEnumList = new ArrayList<BedStatusEnum>(); |
| | | bedStatusEnumList.add(BedStatusEnum.OPENING); |
| | | bedStatusEnumList.add(BedStatusEnum.DOCTOR_ON); |
| | | bedStatusEnumList.add(BedStatusEnum.DOCTOR_PAUSE); |
| | | return roomMapper.simpleRoomList(bedStatusEnumList); |
| | | } |
| | | |
| | | @Override |
| | | public List<RoomDO> simpleRoomList() { |
| | | return roomMapper.simpleRoomList(); |
| | | public void resetRoom(Boolean needCloseBed) { |
| | | queueService.startResetRoom(needCloseBed); |
| | | } |
| | | |
| | | @Override |
| | | public MonitorInfoVO getMonitorInfo() { |
| | | return queueService.getMonitorInfo(); |
| | | } |
| | | } |