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