eight
2024-09-27 e458133f5db4afe2e497af8ac3e1fc29bbc979aa
bug fix : 开启工位 提示工位队列已经存在
已修改3个文件
41 ■■■■■ 文件已修改
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/room/RoomServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueService.java
@@ -51,6 +51,7 @@
     */
    void startHurryUp();
    void startBedReload();
    void startResetRoom();
    MonitorInfoVO getMonitorInfo();
    ErrorCode startBedOpen(Long roomId, String roomName, String bedNo);
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/QueueServiceImpl.java
@@ -10,6 +10,7 @@
import cn.lihu.jh.module.ecg.dal.mysql.call.CallMapper;
import cn.lihu.jh.module.ecg.dal.mysql.devrent.DevRentMapper;
import cn.lihu.jh.module.ecg.enums.DevRentStateEnum;
import cn.lihu.jh.module.system.api.oauth2.OAuth2TokenApi;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -45,6 +46,9 @@
@Validated
@Slf4j
public class QueueServiceImpl implements QueueService {
    @Resource
    private OAuth2TokenApi oAuth2TokenApi;
    @Resource
    private queueMapper queueMapper;
@@ -240,6 +244,15 @@
        singleThreadExecutor.execute( () -> {
            bedReload();
            hurryup();
            monitorInfo();
        });
    }
    @Override
    public void startResetRoom() {
        singleThreadExecutor.execute( () -> {
            resetRoom();
            bedReload();
            monitorInfo();
        });
    }
@@ -468,7 +481,6 @@
    }
    /**
     * !!开诊期间,不能执行这个方法,否则会有 P0 问题
     * 1. 每天开诊前 从DB同步工位的患者队列数据到 工位优先队列
     * 2. 服务运维重启时
     */
@@ -708,4 +720,17 @@
        return roomMapper.getRoomByDocId(docId);
    }
    public void resetRoom() {
        // 踢出在座的医生
        List<BedStatusEnum> bedStatusEnumList = new ArrayList<BedStatusEnum>();
        bedStatusEnumList.add(BedStatusEnum.DOCTOR_ON);
        bedStatusEnumList.add(BedStatusEnum.PAUSE);
        List<RoomDO> roomDOList = roomMapper.simpleRoomList(bedStatusEnumList);
        List<Long> userIdList = roomDOList.stream().map(roomDO -> roomDO.getDocId()).toList();
        oAuth2TokenApi.tick(userIdList);
        // 关闭所有工位
        Integer ret = roomMapper.resetRoom(BedStatusEnum.CLOSED.getStatus());
    }
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/room/RoomServiceImpl.java
@@ -110,18 +110,7 @@
    @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);
        Integer ret = roomMapper.resetRoom(BedStatusEnum.CLOSED.getStatus());
        //
        List<Long> userIdList = roomDOList.stream().map(roomDO -> roomDO.getDocId()).toList();
        oAuth2TokenApi.tick(userIdList);
        queueService.startBedReload();
        queueService.startResetRoom();
    }
    @Override