eight
2024-08-26 ca64d931ce30254e34d64ce28cf3a53e54a9159f
update
已添加1个文件
已修改10个文件
144 ■■■■ 文件已修改
jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/BedStatusEnum.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/queueController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomPageReqVO.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomRespVO.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomSaveReqVO.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/room/RoomDO.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/room/RoomStatisticsDO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/room/RoomMapper.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sql/mysql/jh.sql 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/BedStatusEnum.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
package cn.lihu.jh.module.ecg.enums;
import cn.lihu.jh.framework.common.core.IntArrayValuable;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
/**
 * é€šç”¨çŠ¶æ€æžšä¸¾
 *
 * @author èŠ‹é“æºç 
 */
@Getter
@AllArgsConstructor
public enum BedStatusEnum implements IntArrayValuable {
    CLOSED((byte)0, "已关闭"),
    CLOSING((byte)1, "关闭中"),
    OPENING((byte)10, "已开通"),
    DOCTOR_ON((byte)20, "有医生"),
    PAUSE((byte)30, "暂停");
    public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(BedStatusEnum::getStatus).toArray();
    /**
     * çŠ¶æ€å€¼
     */
    private final Byte status;
    /**
     * çŠ¶æ€å
     */
    private final String name;
    @Override
    public int[] array() {
        return ARRAYS;
    }
/*
    public static boolean isEnable(Integer status) {
        return ObjUtil.equal(ENABLE.status, status);
    }
    public static boolean isDisable(Integer status) {
        return ObjUtil.equal(DISABLE.status, status);
    }
*/
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/queueController.java
@@ -95,12 +95,15 @@
                        BeanUtils.toBean(list, QueueRespVO.class));
    }
    @GetMapping("/opening-setting")
    @Operation(summary = "开诊设置")
    @PreAuthorize("@ss.hasPermission('ecg:queue:setting')")
    public CommonResult<Integer> openingSetting() {
        // ä»ŽDB同步工位的患者队列数据到 å·¥ä½ä¼˜å…ˆé˜Ÿåˆ—, å¯èƒ½æœ‰æ–°å¼€å·¥ä½
        queueService.initBedQueueAndSeqNumFromDB();
    @GetMapping("/bed-control")
    @Operation(summary = "工位控制")
    @PreAuthorize("@ss.hasPermission('ecg:queue:bedcontrol')")
    public CommonResult<Integer> bedControl(
        @RequestParam("roomId") Long roomId,
        @RequestParam("bedNo") String bedNo,
        @RequestParam("status") Integer status)
    {
        queueService.bedControl(roomId, bedNo, status);
        return success(0);
    }
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomPageReqVO.java
@@ -25,7 +25,10 @@
    private String bedNo;
    @Schema(description = "开诊状态")
    private Boolean onstage;
    private Integer status;
    @Schema(description = "医生名")
    private String doctorName;
    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomRespVO.java
@@ -30,7 +30,11 @@
    @Schema(description = "开诊状态", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("开诊状态")
    private Boolean onstage;
    private Integer status;
    @Schema(description = "医生名", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("医生名")
    private String doctorName;
    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomSaveReqVO.java
@@ -29,7 +29,9 @@
    private String bedNo;
    @Schema(description = "开诊状态", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull
    private Boolean onstage;
    private Integer status;
    @Schema(description = "医生名", requiredMode = Schema.RequiredMode.REQUIRED)
    private String doctorName;
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/room/RoomDO.java
@@ -39,9 +39,13 @@
     * è¯Šç–—床编号
     */
    private String bedNo;
    /**
     * è¯Šç–—床开诊状态
     */
    private Boolean onstage;
}
    /**
     * è¯Šç–—床状态  0:停诊 10:开诊 20:暂停
     */
    private Integer status;
    /**
     * åŒ»ç”Ÿå
     */
    private String doctorName;
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/room/RoomStatisticsDO.java
@@ -6,5 +6,5 @@
public class RoomStatisticsDO {
    Long roomId;
    String roomName;
    Integer bedNum;
    Integer bedNo;
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/room/RoomMapper.java
@@ -11,6 +11,7 @@
import cn.lihu.jh.module.ecg.dal.dataobject.room.RoomStatisticsDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
/**
 * è¯Šå®¤å’Œè¯Šç–—床 Mapper
@@ -31,7 +32,9 @@
    @Select({ "SELECT room_id, room_name, count(1) as bed_num FROM lihu.clinic_room group by room_id;" })
    List<RoomStatisticsDO> roomStatistic();
    @Select({ "SELECT id, room_id, room_name, bed_no, onstage FROM lihu.clinic_room where onstage=true;" })
    @Select({ "SELECT id, room_id, room_name, bed_no, status, doctor_name FROM lihu.clinic_room where status > 0;" })
    List<RoomDO> simpleRoomList();
}
    @Update( "update lihu.clinic_room set status=#{status} where room_id=#{roomId} and bed_no=#{bedNo}" )
    Integer setBedStatus(Long roomId, String bedNo, Integer status);
}
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java
@@ -40,6 +40,11 @@
    void deletequeue(Integer id);
    /**
     *
     */
    Integer bedControl(Long roomId, String bedNo, Integer status);
    /**
     * èŽ·å¾—æŽ’é˜Ÿ
     *
     * @param id ç¼–号
@@ -60,11 +65,6 @@
     * @param queueSaveReqVO
     */
    void queue(QueueSaveReqVO queueSaveReqVO);
    /**
     * ç³»ç»Ÿé‡å¯æ—¶ï¼Œä»ŽDB同步工位的患者队列数据到 å·¥ä½ä¼˜å…ˆé˜Ÿåˆ—
     */
    void initBedQueueAndSeqNumFromDB();
    /**
     * æŠŠåŒ»ç”Ÿå€™è¯Šçš„队列塞满
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java
@@ -77,6 +77,33 @@
        queueMapper.deleteById(id);
    }
    @Override
    public Integer bedControl(Long roomId, String bedNo, Integer status) {
        // è¥ä¸šæœŸé—´ä¸èƒ½å…³é—­å·¥ä½
        if ( status == 0 && openingFlag.get() == 1 )
            return 301;
        // å½“前状态
        roomMapper.select
        // DB update
        Integer updateNum = roomMapper.setBedStatus(roomId, bedNo, status);
        if ( null==updateNum || 0 == updateNum )
            return 310;
        if ( status == 10 ) {
            BedQueueBO bedQueueBO = new BedQueueBO();
            bedQueueBO.setRoomId(roomId);
            bedQueueBO.setBedNo(bedNo);
            bedQueueBO.setMaxQueueNum(MAX_QUEUE_NUM);
            bedQueueBO.setQueueNum(new AtomicInteger(0));
            priorityQueue.offer(bedQueueBO);
            mapBedVsQueue.put(String.format("%09d%s", bedQueueBO.roomId, bedQueueBO.bedNo), bedQueueBO);
        }
        return 0;
    }
    private void validatequeueExists(Integer id) {
        if (queueMapper.selectById(id) == null) {
            throw exception(QUEUE_NOT_EXISTS);
sql/mysql/jh.sql
@@ -80,7 +80,8 @@
  `room_id` BIGINT NOT NULL COMMENT '诊室编号',
  `room_name` varchar(10) NOT NULL COMMENT '诊室名称',
  `bed_no` varchar(10) NOT NULL COMMENT '诊疗床编号',
  `onstage` bit(1) 1 COMMENT '开诊',
  `status` int 0 COMMENT '0:停诊 10:开诊 20:暂停',
  `doctor_name` varchar(10) NOT NULL COMMENT '医生名称',
  `tenant_id` int DEFAULT 1 COMMENT '租户编号',
  `creator` varchar(10) DEFAULT '' COMMENT '创建者',
  `create_time` datetime NOT NULL COMMENT '创建时间',