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