部门对于服务人员设置 3.16 KB
参数:
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:判断这个部门是否已经存在督导,如果有,作废原记录