select emp.employee_number, -- 8位员工工号 emp.x_15number, -- 15位员工工号 emp.name, -- 员工姓名 per_national_id.national_id, -- 身份证号码 CASE employee_status.name WHEN 'Active' THEN '在职' when 'Inactive' THEN '离职' when 'Pre-hire' then '预入职' when 'Abandonment' then '放弃入职' ELSE '' END employee_status, -- 员工状态 employee_resignation.confirmed_resignation_date,-- 离职生效日期 resignation_type.name x_reducetype, -- 减员类型 x_reducereason, -- 减员原因 resignation_reason.name resignation_reason, -- 离职原因类型 x_dimission_to, -- 离职去向 ir_translation_quxiang.value x_lizhiquxiangleixing, -- 离职去向类型 employee_resignation.notes, -- 离职原因说明 case when is_event_done='t' then '已审批' when is_event_done='f' then '未审批' else '' end is_event_done, -- 是否审批 array_to_string(dep_full.dep_full_name,'/') dep_full_name, -- 部门 emp_job.eroad_start_date, -- 雇佣信息生效日期 case when emp_job.eroad_end_date is null then '2999-01-01' else emp_job.eroad_end_date end -- 雇佣信息失效日期 from employee_resignation left join hr_employee emp on employee_resignation.employee_id=emp.id left join per_person person on emp.person_id = person.id left join per_national_id on person.id = per_national_id.person_id left join emp_job on emp_job.employee_id=emp.id left join employee_status on emp_job.employee_status = employee_status.id left join resignation_type on employee_resignation.resignation_type=resignation_type.id left join res_selection quxiang_selection on employee_resignation.x_lizhiquxiangleixing=quxiang_selection.id left join ir_translation ir_translation_quxiang on quxiang_selection.id=ir_translation_quxiang.res_id and ir_translation_quxiang.name='res.selection,name' left join resignation_reason on employee_resignation.resignation_reason=resignation_reason.id left join (select id, dep_id, dep_name, dep_code, x_jigoucategory, case when (dep_array::varchar[])[1]=dep_name then dep_array else dep_array||array[dep_name] end dep_full_name from (WITH RECURSIVE subordinates (id,dep_id,dep_name,dep_code,dep_array,x_jigoucategory) AS ( SELECT id, id dep_id, name dep_name, code dep_code, array[name] dep_array, x_jigoucategory FROM hr_department WHERE id = (select hr_department.eroad_index_id from hr_department where hr_department.eroad_start_date<=current_date and (hr_department.eroad_end_date>=current_date or hr_department.eroad_end_date is null) and hr_department.active=True and eroad_current_record_id is null and parent_department_id is null and status='active' and code='JXJK0001') UNION all SELECT s.id, eroad_index_id dep_id, name dep_name, code dep_code, case when s.dep_name='建信金融科技有限责任公司' then array[s.dep_name] else s.dep_array||array[s.dep_name] end dep_array, s.x_jigoucategory FROM hr_department e INNER JOIN subordinates s ON s.dep_id = e.parent_department_id where e.eroad_start_date<=current_date and (e.eroad_end_date>=current_date or e.eroad_end_date is null) and e.active=True and e.eroad_current_record_id is null ) select * from subordinates order by rpad(dep_code::varchar,100,'0') asc) dep_all) dep_full on emp_job.department_id=dep_full.dep_id where per_national_id.is_primary = True or per_national_id.person_id is null and emp_job.active=TRUE and emp_job.EROAD_END_DATE<=employee_resignation.confirmed_resignation_date and emp_job.EROAD_END_DATE is not null