• 预约挂号项目之预约挂号模块


    学习指南:

    https://www.zhihu.com/question/351439302/answer/2362637429?utm_id=0

    一、预约挂号详情

    1、需求分析

    在这里插入图片描述

    1、接口分析
    (1)根据预约周期,展示可预约日期数据,按分页展示
    (2)选择一个日期展示当天可预约列表(该接口后台已经实现过)

    2、页面展示分析
    (1)分页展示可预约日期,根据有号、无号、约满等状态展示不同颜色,以示区分
    (2)可预约最后一个日期为即将放号日期,根据放号时间页面展示倒计时 (此日期是在10天预约周期额外增加的一天)

    请详细看下图:

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    比如我们只能预约从当前09-01时间到往后十天的号,即09-10的号,则想要预约第十一天的号(09-11),只能等明天(09-02)放号时间到了才能预约。预约周期是十天(09-01—09-10)

    2、api接口

    2.1 、controller代码:

    添加controller的两个接口方法:
    第一个接口:获取可预约排班数据
    第二个接口:获取排班具体数据详情

    在HospitalApiController类添加方法

    在以下模块中开发2个接口的编写:
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    代码:

      /*=========预约挂号=========*/
        //第一个接口:获取可预约排班数据
        /**
         * 获取排班可预约日期数据
         * //根据医院编号和部门编号参数来获取
         * @param page
         * @param limit
         * @param hoscode  医院编号
         * @param depcode  部门编号
         * @return
         */
        @ApiOperation("获取可预约排班数据")
        @GetMapping("auth/getBookingScheduleRule/{page}/{limit}/{hoscode}/{depcode}")
        public Result getBookingScheduleRule(
                @ApiParam(name = "page",value = "当前页码",required = true ) 
                @PathVariable Integer page,
                
                @ApiParam(name = "limit",value = "每页记录数",required = true)
                 @PathVariable Integer limit,
                 
                @ApiParam(name = "hoscode" ,value = "医院code",required = true) 
                @PathVariable String hoscode,
                
                @ApiParam(name = "depcode",value = "科室编号",required = true)
                 @PathVariable String  depcode
        ){
    
            return Result.ok(scheduleService
            .getBookingScheduleRule(page,limit,hoscode,depcode));
        }
    
        //第二个接口:获取排班具体数据
        /**
         * 获取排班可预约日期数据
         * //根据医院编号和部门编号参数来获取
         * @param hoscode  医院编号
         * @param depcode  部门编号
         * @param workDate  排班日期
         * @return
         */
        @ApiOperation(value = "获取排班具体数据")
        @GetMapping("auth/findScheduleList/{hoscode}/{depcode}/{workDate}")
        public Result findScheduleList(
                @ApiParam(name = "hoscode", value = "医院code", required = true)
                @PathVariable String hoscode,
                @ApiParam(name = "depcode", value = "科室code", required = true)
                @PathVariable String depcode,
                @ApiParam(name = "workDate", value = "排班日期", required = true)
                @PathVariable String workDate) {
            return Result.ok(scheduleService
            .getScheduleDetail(hoscode, depcode, workDate));
        }
    
    • 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

    补充接口方法:

    在这里插入图片描述

    2.2 、Service类接口:

    在ScheduleService类添加接口
    interface ScheduleService:

    /**
     * 获取排班可预约日期数据
     * @param page
    * @param limit
    * @param hoscode
    * @param depcode
    * @return
    */
    Map getBookingScheduleRule
    (int page, int limit, String hoscode, String depcode);
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述

    2.3 、添加service接口实现:

    在ScheduleServiceImpl类实现接口

    第①步:根据医院编号获取预约规则:

    在这里插入图片描述

    Hospital实体类中有预约属性:private BookingRule bookingRule

    第②步:

    2.1 写一个工具方法getDateTime():将Date和放号时间 拼装成DateTime

    在这里插入图片描述

    2.2 写一个方法getListDate(参数是page,limit,bookingRule): 获取可预约日期的分页数据

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    方法一:将DateTime格式转换为字符串:
    String time = dateTime.toString(“yyyy-MM-dd hh:mm:ss.SSSa”);
    方法二:将字符串转换为DateTime格式:

    DateTimeFormatter format = DateTimeFormat .forPattern(“yyyy-MM-dd HH:mm:ss”);

    DateTime dateTime = DateTime.parse(“2018-4-23 23:12:16”, format);

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    查询数据:

    在这里插入图片描述

    在这里插入图片描述

    合并数据:

    在这里插入图片描述

    在这里插入图片描述

    获取可预约排班规则:

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

     //可预约日期规则数据
            result.put("bookingScheduleList", bookingScheduleRuleVoList);
            result.put("total", iPage.getTotal());
            //其他基础数据
            Map baseMap = new HashMap<>();
            //医院名称
            baseMap.put("hosname", hospitalService.getHospName(hoscode));
            //科室
            Department department =departmentService.getDepartment(hoscode, depcode);
            //大科室名称
            baseMap.put("bigname", department.getBigname());
            //科室名称
            baseMap.put("depname", department.getDepname());
    //月
            baseMap.put("workDateString", new DateTime().toString("yyyy年MM月"));
    //放号时间
            baseMap.put("releaseTime", bookingRule.getReleaseTime());
    //停号时间
            baseMap.put("stopTime", bookingRule.getStopTime());
            result.put("baseMap", baseMap);
            return result;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    在这里插入图片描述

    调用的一个补充方法:
    在这里插入图片描述

    总结;

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

  • 相关阅读:
    C /C++ 中的堆栈使用
    Hive 动态分区向表插入数据报错 GC overhead limit exceeded (分区过多场景)
    【CVPR2021】MLP-Mixer: An all-MLP Architecture for Vision
    138. 随机链表的复制
    自己实现 SpringMVC 底层机制 系列之-实现任务阶段 7- 完成简单视图解析
    R语言ggplot2可视化:去除可视化结果中的NA图例、删除缺失值图例
    HK32F030MF4P6的Linux GCC工具链开发环境
    智能座舱的「交互设计」大战
    如何使用python快速修改Excel表单中的大量数据
    Web相机和浏览器的二维码扫描方案
  • 原文地址:https://blog.csdn.net/weixin_38568503/article/details/127857083