eight
2024-08-15 c475f2545f477846e984c051f10a4b7ea6b64d02
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package cn.lihu.jh.module.ecg.dal.mysql.queue;
 
import cn.lihu.jh.framework.common.pojo.PageResult;
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.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;
import org.apache.ibatis.annotations.Select;
 
import java.util.List;
 
/**
 * 排队 Mapper
 *
 * @author 芋道源码
 */
@Mapper
public interface queueMapper extends BaseMapperX<QueueDO> {
 
    default PageResult<QueueDO> selectPage(QueuePageReqVO reqVO) {
        return selectPage(reqVO, new LambdaQueryWrapperX<QueueDO>()
                .eqIfPresent(QueueDO::getPatId, reqVO.getPatId())
                .likeIfPresent(QueueDO::getPatName, reqVO.getPatName())
                .eqIfPresent(QueueDO::getPatGender, reqVO.getPatGender())
                .eqIfPresent(QueueDO::getBookTimeslot, reqVO.getBookTimeslot())
                .eqIfPresent(QueueDO::getBookCheckType, reqVO.getBookCheckType())
                .eqIfPresent(QueueDO::getSeqNum, reqVO.getSeqNum())
                .eqIfPresent(QueueDO::getStatus, reqVO.getStatus())
                .eqIfPresent(QueueDO::getPassed, reqVO.getPassed())
                .eqIfPresent(QueueDO::getExpired, reqVO.getExpired())
                .eqIfPresent(QueueDO::getRoomId, reqVO.getRoomId())
                .eqIfPresent(QueueDO::getBedNo, reqVO.getBedNo())
                .betweenIfPresent(QueueDO::getCreateTime, reqVO.getCreateTime())
                .orderByDesc(QueueDO::getId));
    }
 
    @Select("SELECT max(seq_num) FROM lihu.queue")
    Integer getMaxSeqNum();
 
    @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} " +
            " </foreach> )" +
            " group by room_id, bed_no; "
            +"</script>")
    List<QueueStatisticDO> queueStatistic(@Param("statusList")List<Byte> statusList);
}