eight
2024-09-01 c98f3f5dc2d9e7bcffdb505f226bb9888f9b3869
update
已修改2个文件
89 ■■■■■ 文件已修改
jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java 85 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java
@@ -13,9 +13,11 @@
    ErrorCode APPOINTMENT_NOT_EXISTS = new ErrorCode(1_010_001_000, "预约不存在");
    ErrorCode ROOM_NOT_EXISTS = new ErrorCode(1_010_002_000, "诊室和诊疗床不存在");
    ErrorCode ROOM_NOT_SIT = new ErrorCode(1_010_002_000, "请重新就座");
    ErrorCode ROOM_INVALID_STATUS = new ErrorCode(1_010_002_001, "诊室和诊疗床状态异常");
    ErrorCode QUEUE_NOT_EXISTS = new ErrorCode(1_010_003_000, "排队不存在");
    ErrorCode QUEUE_BED_ABNORMAL = new ErrorCode(1_010_003_001, "工位队列不存在");
    ErrorCode QUEUE_BED_NOT_EXIST = new ErrorCode(1_010_003_001, "工位队列不存在");
    ErrorCode QUEUE_BED_EXIST = new ErrorCode(1_010_003_001, "工位队列已存在");
    ErrorCode QUEUE_HAVE_PATIENT = new ErrorCode(1_010_003_002, "队列中有患者");
    ErrorCode QUEUE_NOT_READY_PATIENT = new ErrorCode(1_010_003_003, "没有准备中的患者");
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java
@@ -236,13 +236,20 @@
     */
    @Override
    public ErrorCode bedOpen(Long roomId, String bedNo) {
        BedQueueBO bedQueueBO2 = mapBedVsQueue.get(String.format("%09d%s", roomId, bedNo));
        if (null != bedQueueBO2) {
            log.error("bedOpen mapBedVsQueue has existed" + roomId + " " + bedNo);
            return QUEUE_BED_EXIST;
        }
        // DB update
        List statusList = new ArrayList<BedStatusEnum>();
        statusList.add(BedStatusEnum.CLOSED);
        Integer updateNum = roomMapper.setBedOpeningClosed(roomId, bedNo,
                BedStatusEnum.OPENING, statusList);
        if ( null==updateNum || 0 == updateNum )
        Integer updateNum = roomMapper.setBedOpeningClosed(roomId, bedNo, BedStatusEnum.OPENING, statusList);
        if ( null==updateNum || 0 == updateNum ) {
            log.error("bedOpen DB invalid status " + roomId + " " + bedNo);
            return ROOM_INVALID_STATUS;
        }
        List<Byte> queueStatusList = new ArrayList<>();
        queueStatusList.add(QueueStatusEnum.READY.getStatus());
@@ -263,8 +270,10 @@
    @Override
    public ErrorCode bedClose(Long roomId, String bedNo) {
        BedQueueBO bedQueueBO = mapBedVsQueue.get(String.format("%09d%s", roomId, bedNo));
        if (null == bedQueueBO)
            return QUEUE_BED_ABNORMAL;
        if (null == bedQueueBO) {
            log.error("bedClose mapBedVsQueue DONOT existed" + roomId + " " + bedNo);
            return QUEUE_BED_NOT_EXIST;
        }
        // 除了判断 准备候诊中 的人数,还需要 判断 过号的人数
        //if (bedQueueBO.getQueueNum().get() >0)
@@ -284,8 +293,10 @@
        statusList.add(BedStatusEnum.PAUSE);
        Integer updateNum = roomMapper.setBedOpeningClosed(roomId, bedNo,
                BedStatusEnum.CLOSED, statusList);
        if ( null==updateNum || 0 == updateNum )
        if ( null==updateNum || 0 == updateNum ) {
            log.error("bedClose DB invalid status " + roomId + " " + bedNo);
            return ROOM_INVALID_STATUS;
        }
        mapBedVsQueue.remove(String.format("%09d%s", roomId, bedNo));
        priorityQueue.remove(bedQueueBO);
@@ -296,13 +307,13 @@
    public CommonResult<RoomRespVO> getRoom(Long roomId, String bedNo, Long docId) {
        BedQueueBO bedQueueBO = mapBedVsQueue.get(String.format("%09d%s", roomId, bedNo));
        if (null == bedQueueBO) {
            return error(QUEUE_BED_ABNORMAL);
            log.error("getRoom mapBedVsQueue DONOT existed" + roomId + " " + bedNo);
            return error(QUEUE_BED_NOT_EXIST);
        }
        RoomDO roomDO = roomMapper.getRoom(roomId, bedNo, docId);
        if (null == roomDO) {
            System.out.println("getRoom ========");
            return error(ECG_INNER_ERROR);
            return error(ROOM_NOT_SIT);
        }
        RoomRespVO roomRespVO = BeanUtils.toBean(roomDO, RoomRespVO.class);
@@ -312,16 +323,19 @@
    @Override
    public ErrorCode bedDoctorPause(Long roomId, String bedNo, Long docId, String docName) {
        BedQueueBO bedQueueBO = mapBedVsQueue.get(String.format("%09d%s", roomId, bedNo));
        if (null == bedQueueBO)
            return QUEUE_BED_ABNORMAL;
        if (null == bedQueueBO) {
            log.error("bedDoctorPause mapBedVsQueue DONOT existed" + roomId + " " + bedNo);
            return QUEUE_BED_NOT_EXIST;
        }
        // DB update
        List statusList = new ArrayList<BedStatusEnum>();
        statusList.add(BedStatusEnum.DOCTOR_ON);
        Integer updateNum = roomMapper.setBedDoctorStatus(roomId, bedNo, docId,
                BedStatusEnum.PAUSE, statusList);
        if ( null==updateNum || 0 == updateNum )
        Integer updateNum = roomMapper.setBedDoctorStatus(roomId, bedNo, docId, BedStatusEnum.PAUSE, statusList);
        if ( null==updateNum || 0 == updateNum ) {
            log.error("bedDoctorPause DB invalid status " + roomId + " " + bedNo);
            return ROOM_INVALID_STATUS;
        }
        bedQueueBO.setStatus(BedStatusEnum.PAUSE.getStatus());
        priorityQueue.remove(bedQueueBO);
@@ -331,22 +345,27 @@
    @Override
    public ErrorCode bedDoctorResume(Long roomId, String bedNo, Long docId, String docName) {
        BedQueueBO bedQueueBO = mapBedVsQueue.get(String.format("%09d%s", roomId, bedNo));
        if (null == bedQueueBO || !bedQueueBO.getStatus().equals(BedStatusEnum.PAUSE.getStatus()))
            return QUEUE_BED_ABNORMAL;
        if (null == bedQueueBO || !bedQueueBO.getStatus().equals(BedStatusEnum.PAUSE.getStatus())) {
            log.error("bedDoctorResume mapBedVsQueue DONOT existed OR NOT Paused. " + roomId + " " + bedNo);
            return QUEUE_BED_NOT_EXIST;
        }
        // DB update
        List statusList = new ArrayList<BedStatusEnum>();
        statusList.add(BedStatusEnum.PAUSE);
        Integer updateNum = roomMapper.setBedDoctorStatus(roomId, bedNo, docId,
                BedStatusEnum.DOCTOR_ON, statusList);
        if ( null==updateNum || 0 == updateNum )
        if ( null==updateNum || 0 == updateNum ) {
            log.error("bedDoctorResume DB invalid status " + roomId + " " + bedNo);
            return ROOM_INVALID_STATUS;
        }
        bedQueueBO.setStatus(BedStatusEnum.DOCTOR_ON.getStatus());
        if (!priorityQueue.contains(bedQueueBO)) {
            priorityQueue.offer(bedQueueBO);
        } else {
            log.error("bedDoctorResume HAVE EXCEPTION!");
            log.error("bedDoctorResume priorityQueue still exist!. " + roomId + " " + bedNo);
            return ECG_INNER_ERROR;
        }
        hurryup();
@@ -356,38 +375,42 @@
    @Override
    public ErrorCode bedDoctorOn(Long roomId, String bedNo, Long docId, String docName) {
        BedQueueBO bedQueueBO = mapBedVsQueue.get(String.format("%09d%s", roomId, bedNo));
        if (null == bedQueueBO)
            return QUEUE_BED_ABNORMAL;
        if (null == bedQueueBO) {
            log.error("bedDoctorOn mapBedVsQueue DONOT existed. " + roomId + " " + bedNo);
            return QUEUE_BED_NOT_EXIST;
        }
        // DB update
        List statusList = new ArrayList<BedStatusEnum>();
        statusList.add(BedStatusEnum.OPENING);
        Integer updateNum = roomMapper.setBedDoctorOn(roomId, bedNo, docId, docName,
                BedStatusEnum.DOCTOR_ON, statusList);
        if ( null==updateNum || 0 == updateNum )
        Integer updateNum = roomMapper.setBedDoctorOn(roomId, bedNo, docId, docName, BedStatusEnum.DOCTOR_ON, statusList);
        if ( null==updateNum || 0 == updateNum ) {
            log.error("bedDoctorOn DB invalid status " + roomId + " " + bedNo);
            return ROOM_INVALID_STATUS;
        }
        bedQueueBO.setStatus(BedStatusEnum.DOCTOR_ON.getStatus());
        return SUCCESS;
    }
    @Override
    public ErrorCode bedDoctorOff(Long roomId, String bedNo, Long docId, String docName) {
        BedQueueBO bedQueueBO = mapBedVsQueue.get(String.format("%09d%s", roomId, bedNo));
        if (null == bedQueueBO)
            return QUEUE_BED_ABNORMAL;
        if (null == bedQueueBO) {
            log.error("bedDoctorOff mapBedVsQueue DONOT existed. " + roomId + " " + bedNo);
            return QUEUE_BED_NOT_EXIST;
        }
        // DB update
        List statusList = new ArrayList<BedStatusEnum>();
        statusList.add(BedStatusEnum.DOCTOR_ON);
        Integer updateNum = roomMapper.setBedDoctorOff(roomId, bedNo, docId,
                BedStatusEnum.OPENING, statusList);
        if ( null==updateNum || 0 == updateNum )
        Integer updateNum = roomMapper.setBedDoctorOff(roomId, bedNo, docId, BedStatusEnum.OPENING, statusList);
        if ( null==updateNum || 0 == updateNum ) {
            log.error("bedDoctorOff DB invalid status " + roomId + " " + bedNo);
            return ROOM_INVALID_STATUS;
        }
        bedQueueBO.setStatus(BedStatusEnum.OPENING.getStatus());
        return SUCCESS;
    }
@@ -461,6 +484,7 @@
        if (0 == openingFlag.get())
            return;
        // TODO
        if (mapBedVsQueue.size() != priorityQueue.size()) {
            log.error("map " + mapBedVsQueue.size() + " priority " + priorityQueue.size());
        }
@@ -546,7 +570,6 @@
        // 从 DB 把 序号最小的 就诊准备中的人 设置为就诊中
        Integer updateNum = queueMapper.updateQueueStatus(roomId, bedNo,
                QueueStatusEnum.READY.getStatus(), QueueStatusEnum.ONSTAGE.getStatus());
        // 该工位 没有 就诊准备中 人员
        if (null == updateNum || 0 == updateNum) {
            return QUEUE_NOT_READY_PATIENT;