项目

一般

简介

错误 #301 » zl100_userjob预约排队.txt

刘柳明 13677084873, 2020-04-15 14:35

 
1
CREATE OR REPLACE PROCEDURE zl100_userjob预约排队 as
2
  type rec_病人挂号记录 is record(
3
    队列名称_In 病人挂号记录.执行部门id%Type,
4
    业务id_In   病人挂号记录.id%Type,
5
    患者姓名_In 病人挂号记录.姓名%Type,
6
    诊室_In     病人挂号记录.诊室%Type,
7
    执行人_in  病人挂号记录.执行人%type
8
    );
9
  v_病人挂号记录 rec_病人挂号记录;
10
  v_排队号码     排队叫号队列.排队号码%type;
11
  n_id           病人挂号记录.id%type;
12
  v_Id           排队叫号队列.id%type;
13
  v_排队序号     排队叫号队列.排队序号%type;
14

    
15
begin
16

    
17
  declare
18
    cursor mycusor is
19
      select distinct id
20
        from 病人挂号记录
21
       where 记录状态 = 1
22
         and 预约 = 1
23
         and 预约方式 <> '现场'
24
         and 执行状态=0
25
         and trunc(发生时间) = trunc(sysdate)
26
       order by id;
27
  
28
  begin
29
    open mycusor;
30
  
31
    loop
32
      fetch mycusor
33
        into n_id;
34
      if mycusor% found then
35
      
36
        select 执行部门id, id, 姓名, 诊室,执行人
37
          into v_病人挂号记录
38
          from 病人挂号记录
39
         where id = n_id;
40
      
41
        Select Nvl(Max(lpad(排队号码, 8, 0)), 0) + 1
42
          Into v_排队号码
43
          From 排队叫号队列
44
         where 业务类型 = 0
45
           and 队列名称 = v_病人挂号记录.队列名称_In
46
           and 排队时间 between Trunc(sysdate) and
47
               Trunc(sysdate) + 1 - 1 / 24 / 60 / 60;
48
      
49
        Select 排队叫号队列_Id.Nextval Into v_Id From Dual;
50
      
51
        v_排队序号 := Zl_排队叫号队列_Getqueuenum(0, v_病人挂号记录.队列名称_In);
52
      
53
        Insert Into 排队叫号队列
54
          (ID,
55
           业务类型,
56
           队列名称,
57
           科室id,
58
           医生姓名,
59
           排队号码,
60
           业务id,
61
           患者姓名,
62
           诊室,
63
           排队序号,
64
           排队状态,
65
           排队时间)
66
        Values
67
          (v_Id,
68
           0,
69
           v_病人挂号记录.队列名称_In,
70
           v_病人挂号记录.队列名称_In,
71
           v_病人挂号记录.执行人_In,
72
           v_排队号码,
73
           v_病人挂号记录.业务id_In,
74
           v_病人挂号记录.患者姓名_In,
75
           v_病人挂号记录.诊室_In,
76
           v_排队序号,
77
           0,
78
           Sysdate);
79
      
80
      else
81
        exit;
82
      end if;
83
    end loop;
84
    close mycusor;
85
  end;
86
end zl100_userjob预约排队;
    (1-1/1)