From 2cb4f97e706193afbddf49e56fcf798e9dc8eb85 Mon Sep 17 00:00:00 2001 From: eight <641137800@qq.com> Date: 星期四, 22 八月 2024 17:04:40 +0800 Subject: [PATCH] update --- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java | 28 ++++++++++++++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/queueDO.java | 10 +++++ jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/QueueStatusEnum.java | 3 + jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java | 33 ++++++++++++++-- sql/mysql/jh.sql | 14 ++++--- jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/queueMapper.java | 18 ++++++++ jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java | 4 ++ 7 files changed, 98 insertions(+), 12 deletions(-) diff --git a/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/QueueStatusEnum.java b/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/QueueStatusEnum.java index 50b5800..e3f6d00 100644 --- a/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/QueueStatusEnum.java +++ b/jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/QueueStatusEnum.java @@ -21,7 +21,8 @@ READY((byte)20, "鍊欒瘖鍑嗗"), ONSTAGE((byte)30, "灏辫瘖涓�"), FINISH((byte)40, "灏辫瘖瀹屾垚"), - PASSED((byte)50, "杩囧彿"); + PASSED((byte)50, "杩囧彿"), + PASSED_RETURN((byte)60, "杩囧彿鍥炴潵"); public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(QueueStatusEnum::getStatus).toArray(); diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java index 006744d..ce97709 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java @@ -106,4 +106,32 @@ PatientStatisticVO patientStatisticVO = queueService.getPatientStatistic(roomId, bedNo); return success(patientStatisticVO); } + + @GetMapping("/passed-patient-return") + @Operation(summary = "杩囨湡鐥呬汉鍥炴潵") + @Parameter(name = "roomId", description = "璇婂缂栧彿", required = true, example = "116") + @Parameter(name = "bedNo", description = "宸ヤ綅缂栧彿", required = true, example = "B2") + @Parameter(name = "patId", description = "鎮h�呯紪鍙�", required = true, example = "B2") + @PreAuthorize("@ss.hasPermission('ecg:doctor:patient')") + public CommonResult<String> passedPatientReturn( + @RequestParam("roomId") Long roomId, + @RequestParam("bedNo") String bedNo, + @RequestParam("patId") String patId ) + { + Integer result = queueService.passedPatientReturn(roomId, bedNo, patId); + return success("success"); + } + + @GetMapping("/queuejump") + @Operation(summary = "鎻掗槦") + @Parameter(name = "patId", description = "鎮h�呯紪鍙�", required = true, example = "B2") + @PreAuthorize("@ss.hasPermission('ecg:doctor:patient')") + public CommonResult<String> queueJump( + @RequestParam("patId") String patId, + @RequestParam("jumpFlag") Byte jumpFlag) + { + Integer result = queueService.queueJump(patId, jumpFlag); + return success("success"); + } + } diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/queueDO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/queueDO.java index dcc8507..6d376db 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/queueDO.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/queueDO.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.*; import cn.lihu.jh.framework.mybatis.core.dataobject.BaseDO; +import java.time.LocalDateTime; + /** * 鎺掗槦 DO * @@ -37,6 +39,10 @@ */ private Byte patGender; /** + * 棰勭害鏃ユ湡 + */ + private LocalDateTime bookDate; + /** * 棰勭害鏃堕棿娈� */ private Integer bookTimeslot; @@ -61,6 +67,10 @@ */ private Byte expired; /** + * 鎻掗槦鏍囪 + */ + private Byte jumpFlag; + /** * 璇婂缂栧彿 */ private Long roomId; diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/queueMapper.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/queueMapper.java index a07c7a7..ca3c9b7 100644 --- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/queueMapper.java +++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/queueMapper.java @@ -96,8 +96,24 @@ @Update("update lihu.queue set status = #{newStatus}, room_id = #{roomId}, room_name = #{roomName}, \n" + " bed_no = #{bedNo}, seq_num = #{seqNum} where id = \n" + " (select a.id from \n" + - " (select id from lihu.queue where status = #{curStatus} order by book_timeslot, create_time limit 1) a)") + " (select id from lihu.queue where status = #{curStatus} order by jump_flag desc, book_timeslot, create_time limit 1) a)") Integer preemptPatient(@Param("roomId")Long roomId, @Param("roomName")String roomName, @Param("bedNo")String bedNo, @Param("seqNum")Integer seqNum, @Param("curStatus")Byte curStatus, @Param("newStatus")Byte newStatus); + @Update("update lihu.queue set status = #{newStatus}, seq_num = #{seqNum}, passed = 1 " + + " where id = " + + " (select a.id from \n" + + " (select id from lihu.queue where status = #{curStatus} and room_id = #{roomId} and room_name = #{roomName} and bed_no = #{bedNo} order by seq_num limit 1) a)") + Integer procPassedReturnPatient(@Param("roomId")Long roomId, @Param("roomName")String roomName, @Param("bedNo")String bedNo, + @Param("seqNum")Integer seqNum, @Param("curStatus")Byte curStatus, @Param("newStatus")Byte newStatus); + + @Update("update lihu.queue set status = #{newStatus} " + + " where pat_id = #{patId} amd status = #{curStatus} and room_id = #{roomId} and bed_no = #{bedNo}") + Integer passedPatientReturn(@Param("roomId")Long roomId, @Param("bedNo")String bedNo, @Param("patId")String patId, + @Param("curStatus")Byte curStatus, @Param("newStatus")Byte newStatus); + + @Update("update lihu.queue set jumped = #{jumped} " + + " where pat_id = #{patId} amd status = #{curStatus}") + Integer queueJump(@Param("patId")String patId, @Param("curStatus")Byte curStatus, @Param("jumped")Byte jumped ); } + 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 e1f1b63..7edae08 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 @@ -88,4 +88,8 @@ List<QueueDO> getDoctorQueueByStatus(Long roomId, String bedNo, List<Byte> statusList); PatientStatisticVO getPatientStatistic(Long roomId, String bedNo); + + Integer passedPatientReturn(Long roomId, String bedNo, String patId); + + Integer queueJump( String patId, Byte jumped ); } 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 b961cb3..16d2883 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 @@ -160,17 +160,29 @@ if (curQueueNum == bedQueueBO.maxQueueNum) return; - Integer updateNum = queueMapper.preemptPatient( + // 鏌ョ湅 褰撳墠宸ヤ綅 鏄惁鏈夎繃鍙�-鍥炴潵鐨勬偅鑰� + Integer updateNum = queueMapper.procPassedReturnPatient( bedQueueBO.getRoomId(), bedQueueBO.getRoomName(), bedQueueBO.getBedNo(), curSeqNum.get() + 1, - QueueStatusEnum.WAITING.getStatus(), + QueueStatusEnum.PASSED_RETURN.getStatus(), QueueStatusEnum.READY.getStatus()); - // 娌℃湁鎶㈠埌鎺掗槦鎮h�� if (null == updateNum || 0 == updateNum) { - return; + // 鏌ョ湅 鏄惁鏈夋帓闃熶腑鐨勬偅鑰� + updateNum = queueMapper.preemptPatient( + bedQueueBO.getRoomId(), + bedQueueBO.getRoomName(), + bedQueueBO.getBedNo(), + curSeqNum.get() + 1, + QueueStatusEnum.WAITING.getStatus(), + QueueStatusEnum.READY.getStatus()); + + // 娌℃湁鎶㈠埌鎺掗槦鎮h�� + if (null == updateNum || 0 == updateNum) { + return; + } } curSeqNum.getAndIncrement(); @@ -270,4 +282,17 @@ hurryup(); } + @Override + public Integer passedPatientReturn(Long roomId, String bedNo, String patId) { + Integer updateNum = queueMapper.passedPatientReturn(roomId, bedNo, patId, + QueueStatusEnum.PASSED.getStatus(), QueueStatusEnum.PASSED_RETURN.getStatus()); + return updateNum; + } + + @Override + public Integer queueJump(String patId, Byte jumped) { + Integer updateNum = queueMapper.queueJump(patId, QueueStatusEnum.WAITING.getStatus(), jumped); + return null; + } + } diff --git a/sql/mysql/jh.sql b/sql/mysql/jh.sql index aa6734a..cae995a 100644 --- a/sql/mysql/jh.sql +++ b/sql/mysql/jh.sql @@ -46,13 +46,15 @@ `id` int NOT NULL AUTO_INCREMENT COMMENT 'id', `pat_id` varchar(30) NOT NULL COMMENT '鎮h�呯紪鍙�', `pat_name` varchar(10) NOT NULL COMMENT '鎮h�呭鍚�', - `pat_gender` tinyint(1) DEFAULT NULL COMMENT '鎮h�呮�у埆', + `pat_gender` tinyint DEFAULT NULL COMMENT '鎮h�呮�у埆', + `book_date` dateTime NOT NULL COMMENT '棰勭害鏃ユ湡', `book_timeslot` int NOT NULL COMMENT '棰勭害鏃堕棿娈�', - `book_check_type` tinyint(1) DEFAULT NULL COMMENT '棰勭害妫�鏌ョ被鍨�', + `book_check_type` tinyint DEFAULT NULL COMMENT '棰勭害妫�鏌ョ被鍨�', `seq_num` int DEFAULT NULL COMMENT '鎺掗槦搴忓彿', - `status` tinyint(1) NOT NULL COMMENT '10:鎺掗槦涓� 20:鍊欒瘖鍑嗗 30:灏辫瘖涓� 40:灏辫瘖瀹屾垚 50:杩囧彿 60:杩囨湡', - `passed` tinyint(1) DEFAULT 0 COMMENT '杩囧彿鏍囪', - `expired` tinyint(1) DEFAULT 0 COMMENT '棰勭害杩囨湡鏍囪', + `status` tinyint NOT NULL COMMENT '10:鎺掗槦涓� 20:鍊欒瘖鍑嗗 30:灏辫瘖涓� 40:灏辫瘖瀹屾垚 50:杩囧彿 60:杩囨湡', + `passed` tinyint DEFAULT 0 COMMENT '杩囧彿鏍囪', + `expired` tinyint DEFAULT 0 COMMENT '棰勭害杩囨湡鏍囪', + `jump_flag` tinyint DEFAULT 0 COMMENT '鎻掗槦鏍囪', `room_id` BIGINT DEFAULT 0 COMMENT '璇婂缂栧彿', `room_name` varchar(10) DEFAULT "" COMMENT '璇婂鍚嶇О', `bed_no` varchar(10) DEFAULT "" COMMENT '璇婄枟搴婄紪鍙�', @@ -61,7 +63,7 @@ `create_time` datetime NOT NULL COMMENT '鍒涘缓鏃堕棿', `updater` varchar(10) DEFAULT '' COMMENT '鏇存柊鑰�', `update_time` datetime NOT NULL COMMENT '鏇存柊鏃堕棿', - `deleted` bit(1) DEFAULT 0 COMMENT '鍒犻櫎鏍囪', + `deleted` bit DEFAULT 0 COMMENT '鍒犻櫎鏍囪', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='鎺掗槦琛�'; -- Gitblit v1.9.3