部门对于服务人员设置
4.33 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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
参数:
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' 作废也当离职
01-在职 02-休眠 03-待离职 04 -离职 05-培训 06-待入职
返回值为 03,04则直接return 'N'
--DMP-3970 待入职续收人员分单规则调整
--待入职的,审批不通过的
if v_emp_status in ('06') then
select count(*)
into v_count
from renewal_staff_change_history rs
where rs.emp_no = p_emp_no
and rs.change_type = '01' --入职
and rs.change_status in ('2', '3');
if v_count = 0 then
return('N');
end if;
end if;
--判断是否下月离职的人员,下月离职人员不再分单
v_count := 0;
select count(*)
into v_count
from renewal_staff_change_history rsch
where rsch.emp_no = p_emp_no
and rsch.pk_serial = (select max(rs.pk_serial)
from renewal_staff_change_history rs
where rs.emp_no = p_emp_no
and rs.change_status = '2'
and rs.change_type = '12'
and rs.start_date > sysdate);
if v_count>0 then
return('N');
else
return('Y');
N:表示不能进行服务,Y表示可以服务
----end
2.3:判断人员类型是否可以服务这个部门
2.4:判断这个部门是否已经存在督导,如果有,作废原记录