From 1ec288a29f0d847e2263f5cfe09319757cb46a04 Mon Sep 17 00:00:00 2001
From: eight <641137800@qq.com>
Date: 星期三, 21 八月 2024 18:32:13 +0800
Subject: [PATCH] update
---
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java | 13 ++++++
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/BedQueueStatisticDO.java | 14 +++++++
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/AppointmentController.java | 9 ----
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/vo/PatientStatisticVO.java | 17 ++++++++
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueServiceImpl.java | 29 +++++++++++---
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/queue/queueMapper.java | 19 ++++++++-
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/QueueStatisticDO.java | 7 ---
jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/queue/queueService.java | 6 +--
8 files changed, 86 insertions(+), 28 deletions(-)
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/AppointmentController.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/AppointmentController.java
index 0376e30..8db650a 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/AppointmentController.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/appointment/AppointmentController.java
@@ -1,11 +1,7 @@
package cn.lihu.jh.module.ecg.controller.admin.appointment;
import cn.hutool.core.bean.BeanUtil;
-import cn.lihu.jh.framework.common.enums.CommonStatusEnum;
import cn.lihu.jh.module.ecg.controller.admin.queue.vo.QueueSaveReqVO;
-import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueDO;
-import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueStatisticDO;
-import cn.lihu.jh.module.ecg.dal.dataobject.room.RoomStatisticsDO;
import cn.lihu.jh.module.ecg.feign.RemoteDataService;
import cn.lihu.jh.module.ecg.feign.RestApiReqBodyVo;
import cn.lihu.jh.module.ecg.feign.RestApiResult;
@@ -13,8 +9,6 @@
import cn.lihu.jh.module.ecg.service.queue.QueueService;
import cn.lihu.jh.module.ecg.service.room.RoomService;
import cn.lihu.jh.module.system.api.dept.DeptApi;
-import cn.lihu.jh.module.system.api.dept.dto.DeptRespDTO;
-import com.alibaba.fastjson.JSONObject;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -23,13 +17,10 @@
import io.swagger.v3.oas.annotations.Operation;
import java.time.LocalDateTime;
-import java.time.chrono.IsoChronology;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
-import java.time.format.ResolverStyle;
import java.util.*;
import java.io.IOException;
-import java.util.function.Supplier;
import java.util.stream.Collectors;
import cn.lihu.jh.framework.common.pojo.PageParam;
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 c444d26..006744d 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
@@ -6,6 +6,7 @@
import cn.lihu.jh.framework.common.pojo.PageResult;
import cn.lihu.jh.framework.common.util.object.BeanUtils;
import cn.lihu.jh.framework.excel.core.util.ExcelUtils;
+import cn.lihu.jh.module.ecg.controller.admin.queue.vo.PatientStatisticVO;
import cn.lihu.jh.module.ecg.controller.admin.queue.vo.QueuePageReqVO;
import cn.lihu.jh.module.ecg.controller.admin.queue.vo.QueueRespVO;
import cn.lihu.jh.module.ecg.controller.admin.queue.vo.QueueSaveReqVO;
@@ -93,4 +94,16 @@
return success(BeanUtils.toBean(queueDOList, QueueRespVO.class));
}
+ @GetMapping("/get-patient-statistic")
+ @Operation(summary = "鍙栨偅鑰呯粺璁�")
+ @Parameter(name = "roomId", description = "璇婂缂栧彿", required = true, example = "116")
+ @Parameter(name = "bedNo", description = "宸ヤ綅缂栧彿", required = true, example = "B2")
+ @PreAuthorize("@ss.hasPermission('ecg:doctor:patientstatistic')")
+ public CommonResult<PatientStatisticVO> getPatientStatistic(
+ @RequestParam("roomId") Long roomId,
+ @RequestParam("bedNo") String bedNo)
+ {
+ PatientStatisticVO patientStatisticVO = queueService.getPatientStatistic(roomId, bedNo);
+ return success(patientStatisticVO);
+ }
}
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/vo/PatientStatisticVO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/vo/PatientStatisticVO.java
new file mode 100644
index 0000000..df9b271
--- /dev/null
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/queue/vo/PatientStatisticVO.java
@@ -0,0 +1,17 @@
+package cn.lihu.jh.module.ecg.controller.admin.queue.vo;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+@Schema(description = "绠$悊鍚庡彴 - 鎮h�呯粺璁� Response VO")
+@Data
+public class PatientStatisticVO {
+
+ private Integer finishedNum;
+
+ private Integer readyNum;
+
+ private Integer passedNum;
+
+ private Integer queuingNum;
+}
diff --git a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/BedQueueStatisticDO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/BedQueueStatisticDO.java
new file mode 100644
index 0000000..4346337
--- /dev/null
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/BedQueueStatisticDO.java
@@ -0,0 +1,14 @@
+package cn.lihu.jh.module.ecg.dal.dataobject.queue;
+
+import lombok.Data;
+
+/**
+ * 鎺掗槦 DO
+ *
+ * @author 鑺嬮亾婧愮爜
+ */
+@Data
+public class BedQueueStatisticDO {
+ private Byte status;
+ private Integer totalInStatus;
+}
\ 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/queue/QueueStatisticDO.java b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/QueueStatisticDO.java
index f2b51e6..955aa26 100644
--- a/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/QueueStatisticDO.java
+++ b/jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/queue/QueueStatisticDO.java
@@ -1,9 +1,5 @@
package cn.lihu.jh.module.ecg.dal.dataobject.queue;
-import cn.lihu.jh.framework.mybatis.core.dataobject.BaseDO;
-import com.baomidou.mybatisplus.annotation.KeySequence;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;
/**
@@ -13,10 +9,9 @@
*/
@Data
public class QueueStatisticDO {
-
private Long roomId;
private String bedNo;
private Integer totalInStatus;
-}
\ 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/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 e121bac..a07c7a7 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
@@ -4,8 +4,8 @@
import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX;
import cn.lihu.jh.framework.mybatis.core.mapper.BaseMapperX;
import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueDO;
+import cn.lihu.jh.module.ecg.dal.dataobject.queue.BedQueueStatisticDO;
import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueStatisticDO;
-import cn.lihu.jh.module.ecg.dal.dataobject.room.RoomStatisticsDO;
import org.apache.ibatis.annotations.Mapper;
import cn.lihu.jh.module.ecg.controller.admin.queue.vo.*;
import org.apache.ibatis.annotations.Param;
@@ -43,6 +43,14 @@
Integer getMaxSeqNum();
@Select("<script>" +
+ "SELECT count(1) as total_in_status FROM lihu.queue where status in (" +
+ " <foreach collection='statusList' separator=',' item='status'>" +
+ " #{status} " +
+ " </foreach> );" +
+ "</script>")
+ Integer statusStatistic(@Param("statusList")List<Byte> statusList);
+
+ @Select("<script>" +
"SELECT room_id, bed_no, count(1) as total_in_status FROM lihu.queue where status in (" +
" <foreach collection='statusList' separator=',' item='status'>" +
" #{status} " +
@@ -52,6 +60,13 @@
List<QueueStatisticDO> queueStatistic(@Param("statusList")List<Byte> statusList);
@Select("<script>" +
+ "SELECT status, count(1) as total_in_status FROM lihu.queue where " +
+ " room_id = #{roomId} and bed_no = #{bedNo} " +
+ " group by status " +
+ "</script>")
+ List<BedQueueStatisticDO> bedQueueStatistic(@Param("roomId")Long roomId, @Param("bedNo")String bedNo);
+
+ @Select("<script>" +
"SELECT * FROM lihu.queue where status in (" +
" <foreach collection='statusList' separator=',' item='status'>" +
" #{status} " +
@@ -59,8 +74,6 @@
" order by book_timeslot, create_time " +
"</script>")
List<QueueDO> getOrderedQueue(@Param("statusList")List<Byte> statusList);
-
- //@Update("update lihu.queue set status = #{newStatus} where pat_id = #{patId} ans status = #{curStatus} ")
@Update("update lihu.queue set status = #{newStatus} where seq_num = \n" +
"(select a.min_seq_num from \n" +
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 a4d4204..bbb31e8 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
@@ -3,8 +3,6 @@
import cn.lihu.jh.module.ecg.controller.admin.queue.vo.*;
import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueDO;
import cn.lihu.jh.framework.common.pojo.PageResult;
-import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueStatisticDO;
-import cn.lihu.jh.module.ecg.dal.dataobject.room.RoomStatisticsDO;
import javax.validation.Valid;
import java.util.List;
@@ -54,8 +52,6 @@
*/
PageResult<QueueDO> getqueuePage(QueuePageReqVO pageReqVO);
- List<QueueStatisticDO> queueStatistics(List<Byte> statusList);
-
/**
* 鎮h�呮帓闃�
* @param queueSaveReqVO
@@ -88,4 +84,6 @@
void passNextPatient(Long roomId, String bedNo);
List<QueueDO> getDoctorQueueByStatus(Long roomId, String bedNo, List<Byte> statusList);
+
+ PatientStatisticVO getPatientStatistic(Long roomId, String bedNo);
}
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 ceb0e55..f649486 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
@@ -1,5 +1,6 @@
package cn.lihu.jh.module.ecg.service.queue;
+import cn.lihu.jh.module.ecg.dal.dataobject.queue.BedQueueStatisticDO;
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;
@@ -32,7 +33,7 @@
@Validated
public class QueueServiceImpl implements QueueService {
- final static Integer MAX_QUEUE_NUM = 2;
+ final static Integer MAX_QUEUE_NUM = 3;
AtomicInteger curSeqNum = new AtomicInteger(0);
@@ -87,11 +88,6 @@
@Override
public PageResult<QueueDO> getqueuePage(QueuePageReqVO pageReqVO) {
return queueMapper.selectPage(pageReqVO);
- }
-
- @Override
- public List<QueueStatisticDO> queueStatistics(List<Byte> statusList) {
- return queueMapper.queueStatistic(statusList);
}
public void initQueue() {
@@ -227,4 +223,25 @@
return queueDOList;
}
+ public PatientStatisticVO getPatientStatistic(Long roomId, String bedNo) {
+ PatientStatisticVO patientStatisticVO = new PatientStatisticVO();
+ List<BedQueueStatisticDO> bedQueueStatisticDOList = queueMapper.bedQueueStatistic(roomId, bedNo);
+ bedQueueStatisticDOList.forEach(item -> {
+ if (QueueStatusEnum.READY.getStatus() == item.getStatus()) {
+ patientStatisticVO.setReadyNum(item.getTotalInStatus());
+ } else if (QueueStatusEnum.FINISH.getStatus() == item.getStatus()) {
+ patientStatisticVO.setFinishedNum(item.getTotalInStatus());
+ } else if (QueueStatusEnum.PASSED.getStatus() == item.getStatus()) {
+ patientStatisticVO.setPassedNum(item.getTotalInStatus());
+ }
+ });
+
+ List<Byte> statusList = new ArrayList<>();
+ statusList.add(QueueStatusEnum.WAITING.getStatus());
+ Integer num = queueMapper.statusStatistic(statusList);
+ patientStatisticVO.setQueuingNum(num);
+
+ return patientStatisticVO;
+ }
+
}
--
Gitblit v1.9.3