From 9b18e467d407c66ecc3c46a197aca45dcc3f8056 Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期二, 27 八月 2024 09:11:02 +0800
Subject: [PATCH] update
---
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java | 198 ++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 179 insertions(+), 19 deletions(-)
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 8a806d3..fd31e8c 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
@@ -4,6 +4,7 @@
import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueStatisticDO;
import cn.lihu.jh.module.ecg.dal.dataobject.room.RoomDO;
import cn.lihu.jh.module.ecg.dal.mysql.room.RoomMapper;
+import cn.lihu.jh.module.ecg.enums.BedStatusEnum;
import cn.lihu.jh.module.ecg.enums.QueueStatusEnum;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
@@ -32,8 +33,6 @@
@Service
@Validated
public class QueueServiceImpl implements QueueService {
-
- final static Integer MAX_QUEUE_NUM = 3;
@Resource
private queueMapper queueMapper;
@@ -78,28 +77,190 @@
}
@Override
- public Integer bedControl(Long roomId, String bedNo, Integer status) {
- // 钀ヤ笟鏈熼棿涓嶈兘鍏抽棴宸ヤ綅
- if ( status == 0 && openingFlag.get() == 1 )
- return 301;
+ public Integer startBedOpen(Long roomId, String bedNo) {
+ Future<Integer> future = singleThreadExecutor.submit( new BedOpenCallable(this, roomId, bedNo));
- // 褰撳墠鐘舵��
- roomMapper.select
+ try {
+ Integer ret = future.get();
+ return ret;
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ } catch (ExecutionException e) {
+ e.printStackTrace();
+ }
+ return 100;
+ }
+
+ @Override
+ public Integer startBedClose(Long roomId, String bedNo) {
+ Future<Integer> future = singleThreadExecutor.submit( new BedCloseCallable(this, roomId, bedNo));
+
+ try {
+ Integer ret = future.get();
+ return ret;
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ } catch (ExecutionException e) {
+ e.printStackTrace();
+ }
+
+ return 100;
+ }
+
+ @Override
+ public Integer startBedDoctorPause(Long roomId, String bedNo, Long docId, String docName) {
+ Future<Integer> future = singleThreadExecutor.submit(
+ new BedDoctorPauseCallable(this, roomId, bedNo, docId, docName)
+ );
+
+ try {
+ Integer ret = future.get();
+ return ret;
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ } catch (ExecutionException e) {
+ e.printStackTrace();
+ }
+
+ return 100;
+ }
+
+ @Override
+ public Integer startBedDoctorOn(Long roomId, String bedNo, Long docId, String docName) {
+ Future<Integer> future = singleThreadExecutor.submit(
+ new BedDoctorOnCallable(this, roomId, bedNo, docId, docName)
+ );
+
+ try {
+ Integer ret = future.get();
+ return ret;
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ } catch (ExecutionException e) {
+ e.printStackTrace();
+ }
+
+ return 100;
+ }
+
+ @Override
+ public Integer startBedDoctorOff(Long roomId, String bedNo, Long docId, String docName) {
+ Future<Integer> future = singleThreadExecutor.submit(
+ new BedDoctorOffCallable(this, roomId, bedNo, docId, docName)
+ );
+
+ try {
+ Integer ret = future.get();
+ return ret;
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ } catch (ExecutionException e) {
+ e.printStackTrace();
+ }
+
+ return 100;
+ }
+
+
+ /**
+ * 宸插叧闂� 鎴栬�� 鍏抽棴涓紝鍙互寮�閫氬伐浣�
+ * @param roomId
+ * @param bedNo
+ * @return
+ */
+ @Override
+ public Integer bedOpen(Long roomId, String bedNo) {
// DB update
- Integer updateNum = roomMapper.setBedStatus(roomId, bedNo, status);
+ List statusList = new ArrayList<BedStatusEnum>();
+ statusList.add(BedStatusEnum.CLOSED);
+ statusList.add(BedStatusEnum.CLOSING);
+ Integer updateNum = roomMapper.setBedStatus(roomId, bedNo,
+ BedStatusEnum.OPENING, statusList);
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);
- }
+ List<Byte> queueStatusList = new ArrayList<>();
+ queueStatusList.add(QueueStatusEnum.READY.getStatus());
+ List<QueueDO> queueDOList = queueMapper.getDoctorQueueByStatus(roomId, bedNo, queueStatusList);
+
+ // 鏂板宸ヤ綅 浼樺厛闃熷垪
+ BedQueueBO bedQueueBO = new BedQueueBO();
+ bedQueueBO.setRoomId(roomId);
+ bedQueueBO.setBedNo(bedNo);
+ bedQueueBO.setMaxQueueNum(MAX_QUEUE_NUM);
+ bedQueueBO.setQueueNum(new AtomicInteger(queueDOList.size()));
+ priorityQueue.offer(bedQueueBO);
+ mapBedVsQueue.put(String.format("%09d%s", roomId, bedNo), bedQueueBO);
+ return 0;
+ }
+
+ @Override
+ public Integer bedClose(Long roomId, String bedNo) {
+ BedQueueBO bedQueueBO = mapBedVsQueue.get(String.format("%09d%s", roomId, bedNo));
+ if (null == bedQueueBO)
+ return 320;
+
+ // DB update
+ List statusList = new ArrayList<BedStatusEnum>();
+ statusList.add(BedStatusEnum.OPENING);
+ statusList.add(BedStatusEnum.DOCTOR_ON);
+ statusList.add(BedStatusEnum.PAUSE);
+ Integer updateNum = roomMapper.setBedStatus(roomId, bedNo,
+ BedStatusEnum.CLOSING, statusList);
+ if ( null==updateNum || 0 == updateNum )
+ return 321;
+
+ return 0;
+ }
+
+ @Override
+ public Integer bedDoctorPause(Long roomId, String bedNo, Long docId, String docName) {
+ BedQueueBO bedQueueBO = mapBedVsQueue.get(String.format("%09d%s", roomId, bedNo));
+ if (null == bedQueueBO)
+ return 320;
+
+ // DB update
+ List statusList = new ArrayList<BedStatusEnum>();
+ statusList.add(BedStatusEnum.DOCTOR_ON);
+ Integer updateNum = roomMapper.setBedDoctorPause(roomId, bedNo, docId, docName,
+ BedStatusEnum.PAUSE, statusList);
+ if ( null==updateNum || 0 == updateNum )
+ return 331;
+
+ return 0;
+ }
+
+ @Override
+ public Integer bedDoctorOn(Long roomId, String bedNo, Long docId, String docName) {
+ BedQueueBO bedQueueBO = mapBedVsQueue.get(String.format("%09d%s", roomId, bedNo));
+ if (null == bedQueueBO)
+ return 320;
+
+ // DB update
+ List statusList = new ArrayList<BedStatusEnum>();
+ statusList.add(BedStatusEnum.OPENING);
+ Integer updateNum = roomMapper.setBedDoctorOn(roomId, bedNo, docId, docName,
+ BedStatusEnum.DOCTOR_ON, statusList);
+ if ( null==updateNum || 0 == updateNum )
+ return 341;
+
+ return 0;
+ }
+
+ @Override
+ public Integer bedDoctorOff(Long roomId, String bedNo, Long docId, String docName) {
+ BedQueueBO bedQueueBO = mapBedVsQueue.get(String.format("%09d%s", roomId, bedNo));
+ if (null == bedQueueBO)
+ return 320;
+
+ // DB update
+ List statusList = new ArrayList<BedStatusEnum>();
+ statusList.add(BedStatusEnum.DOCTOR_ON);
+ Integer updateNum = roomMapper.setBedDoctorOff(roomId, bedNo, docId, docName,
+ BedStatusEnum.OPENING, statusList);
+ if ( null==updateNum || 0 == updateNum )
+ return 351;
return 0;
}
@@ -341,4 +502,3 @@
}
}
-
--
Gitblit v1.9.3