|  |  | 
 |  |  | import javax.annotation.Resource; | 
 |  |  |  | 
 |  |  | import cn.lihu.jh.framework.common.pojo.PageResult; | 
 |  |  | import cn.lihu.jh.module.ecg.controller.admin.room.vo.RoomRespVO; | 
 |  |  | 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.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 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.dataobject.room.RoomStatisticsDO; | 
 |  |  | 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; | 
 |  |  | 
 |  |  |  | 
 |  |  |     @Resource | 
 |  |  |     private OAuth2TokenApi oAuth2TokenApi; | 
 |  |  |  | 
 |  |  |     @Resource | 
 |  |  |     QueueService queueService; | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public Integer createRoom(RoomSaveReqVO createReqVO) { | 
 |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public PageResult<RoomDO> getRoomPage(RoomPageReqVO pageReqVO) { | 
 |  |  |         return roomMapper.selectPage(pageReqVO); | 
 |  |  |     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 List<RoomStatisticsDO> roomStatistics() { | 
 |  |  |         return roomMapper.roomStatistic(); | 
 |  |  |     public PageResult<RoomDO> getRoomPage(RoomPageReqVO pageReqVO) { | 
 |  |  |         return roomMapper.selectPage(pageReqVO); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  | 
 |  |  |         List<BedStatusEnum> bedStatusEnumList = new ArrayList<BedStatusEnum>(); | 
 |  |  |         bedStatusEnumList.add(BedStatusEnum.OPENING); | 
 |  |  |         bedStatusEnumList.add(BedStatusEnum.DOCTOR_ON); | 
 |  |  |         bedStatusEnumList.add(BedStatusEnum.PAUSE); | 
 |  |  |         bedStatusEnumList.add(BedStatusEnum.DOCTOR_PAUSE); | 
 |  |  |         return  roomMapper.simpleRoomList(bedStatusEnumList); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     @Override | 
 |  |  |     public void resetRoom() { | 
 |  |  |         List<BedStatusEnum> bedStatusEnumList = new ArrayList<BedStatusEnum>(); | 
 |  |  |         bedStatusEnumList.add(BedStatusEnum.DOCTOR_ON); | 
 |  |  |         bedStatusEnumList.add(BedStatusEnum.PAUSE); | 
 |  |  |         List<RoomDO> roomDOList = roomMapper.simpleRoomList(bedStatusEnumList); | 
 |  |  |     public void resetRoom(Boolean needCloseBed) { | 
 |  |  |         queueService.startResetRoom(needCloseBed); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |         Integer ret = roomMapper.resetRoom(BedStatusEnum.CLOSED.getStatus()); | 
 |  |  |  | 
 |  |  |         // | 
 |  |  |         List<Long> userIdList = roomDOList.stream().map(roomDO -> roomDO.getDocId()).toList(); | 
 |  |  |         oAuth2TokenApi.tick(userIdList); | 
 |  |  |     @Override | 
 |  |  |     public MonitorInfoVO getMonitorInfo() { | 
 |  |  |         return queueService.getMonitorInfo(); | 
 |  |  |     } | 
 |  |  | } |