部门对于服务人员设置
3.16 KB
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
参数:
p_dept_no,
p_service_no
1:参数为空校验
2:获取部门所在的机构:
select bi.branch_code
from department_info di ,branch_info bi,branch_code_relation bcr
where di.dept_no = p_dept_no
and di.branch_code = bcr.relative_branch_code
and bcr.branch_code = bi.branch_code
and bi.branch_level = p_branch_level;
3.判断人员是否在机构下
2.1:判断机构等级:2级分公司和3级机构
select bi.branch_level
from branch_info bi
where bi.branch_code = p_branch_code;
2.1.1:如果是2级机构则表明是经代保单,需要对比在同一2级机构下即可
2.1.2:如果是3级机构需要对比是否为同一三级机构
判断是否在同一机构sql:
select bi.branch_code
from branch_code_relation bcr, branch_info bi
where bcr.relative_branch_code = p_branch_code
and bcr.branch_code = bi.branch_code
and bi.branch_level = p_branch_level
and bcr.relative_grade < 1;
2.2:判断人员类型是否可以进行服务
2.2.1:判断是否为续收人员--查询staff_info表是否存在记录----->查询人员类型,判断是否为续收人员
查询staff_info表信息和department_info表信息
获取成功,当v_department_info.channel_type = '07' 人员为续收人员 -返回 05
如果获取失败:
SELECT COUNT(DISTINCT si.emp_no)
FROM staff_info si
WHERE si.emp_no = p_emp_no
AND si.emp_no LIKE 'H%';
查询表是否存在该人员,存在则返回05
返回值如果不等于05,则return
2.2.2:查询人员是否为离职或待离职
获取人员状态sql:
SELECT decode(TRIM(es.emp_status_code),
'0501',
'01',
'0701',
'01',
'0301',
'01',
'0601',
'01',
'0801',
'01',
'0401',
'01',
'0201',
'01',
'0101',
'01',
'1101',
'01',
'0400',
'02',
'0102',
'02',
'0103',
'03',
'0403',
'04',
'0503',
'04',
'0203',
'04',
'0303',
'04',
'0104',
'04',
'0703',
'04',
'1103',
'04',
'0105',
'05',
'0404',
'06',
''),
si.is_valid
INTO v_emp_status,
v_is_valid
FROM staff_info si,
emp_status es
WHERE si.emp_no = p_emp_no
AND si.emp_status_code = es.emp_status_code;
其中v_is_valid = 'N' 作废也当离职
2.3:判断人员类型是否可以服务这个部门
2.4:判断这个部门是否已经存在督导,如果有,作废原记录