From ca64d931ce30254e34d64ce28cf3a53e54a9159f Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期一, 26 八月 2024 09:32:50 +0800 Subject: [PATCH] update --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/queueController.java | 15 +++-- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomPageReqVO.java | 5 + jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomSaveReqVO.java | 6 + jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java | 27 +++++++++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/room/RoomMapper.java | 7 + sql/mysql/jh.sql | 3 jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/BedStatusEnum.java | 49 ++++++++++++++++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomRespVO.java | 6 + jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/room/RoomDO.java | 14 +++- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/room/RoomStatisticsDO.java | 2 jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java | 10 +- 11 files changed, 120 insertions(+), 24 deletions(-) diff --git a/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/BedStatusEnum.java b/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/BedStatusEnum.java new file mode 100644 index 0000000..47a256d --- /dev/null +++ b/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); + } +*/ + +} diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/queueController.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/queueController.java index 413f552..3174a56 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/queueController.java +++ b/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() { - // 浠嶥B鍚屾宸ヤ綅鐨勬偅鑰呴槦鍒楁暟鎹埌 宸ヤ綅浼樺厛闃熷垪, 鍙兘鏈夋柊寮�宸ヤ綅 - 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); } diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomPageReqVO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomPageReqVO.java index 54431fa..99d343d 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomPageReqVO.java +++ b/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) diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomRespVO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomRespVO.java index cb522f1..a892bd4 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomRespVO.java +++ b/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("鍒涘缓鏃堕棿") diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomSaveReqVO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomSaveReqVO.java index 03786de..ba2d9f2 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/room/vo/RoomSaveReqVO.java +++ b/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; } \ No newline at end of file diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/room/RoomDO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/room/RoomDO.java index ac0b47f..0fde66d 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/room/RoomDO.java +++ b/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; -} \ No newline at end of file + /** + * 璇婄枟搴婄姸鎬� 0:鍋滆瘖 10:寮�璇� 20:鏆傚仠 + */ + private Integer status; + /** + * 鍖荤敓鍚� + */ + private String doctorName; +} diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/room/RoomStatisticsDO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/room/RoomStatisticsDO.java index cb7e2dc..d1b16fd 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/room/RoomStatisticsDO.java +++ b/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; } diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/room/RoomMapper.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/room/RoomMapper.java index 7298f70..0f0a194 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/room/RoomMapper.java +++ b/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(); -} \ No newline at end of file + @Update( "update lihu.clinic_room set status=#{status} where room_id=#{roomId} and bed_no=#{bedNo}" ) + Integer setBedStatus(Long roomId, String bedNo, Integer status); +} diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java index 2555762..c342b25 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java +++ b/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); - - /** - * 绯荤粺閲嶅惎鏃讹紝浠嶥B鍚屾宸ヤ綅鐨勬偅鑰呴槦鍒楁暟鎹埌 宸ヤ綅浼樺厛闃熷垪 - */ - void initBedQueueAndSeqNumFromDB(); /** * 鎶婂尰鐢熷�欒瘖鐨勯槦鍒楀婊� diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java index 6bdd64e..8a806d3 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java +++ b/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); diff --git a/sql/mysql/jh.sql b/sql/mysql/jh.sql index aa49538..79a456c 100644 --- a/sql/mysql/jh.sql +++ b/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 '鍒涘缓鏃堕棿', -- Gitblit v1.9.3