上传的图像用于项目: 'CST技术支持'
  1. CST技术支持
  2. SLAL2-1979

【pro】建信金科-离职报表

XMLWord打印

    • Icon: Change Change
    • 解决结果: 完成
    • Icon: High High
    • 202103
    • 202103
    • J-建信金科-Y2021013
    • 建信金科-ehrnew.ccbft.com
    • 基础通用功能
    • 隐藏

      sql如下:
      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

      显示
      sql如下: 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

      1.增加离职报表 部门显示为 建信金科公司/总部/XX部门/XX团队
      2.员工花名册 增加字段合约履行地、办公常驻地、财务报销地、社保缴纳地、籍贯、户籍所在地、户口所在地、出生地。
      合同履约地取emp.job/x_hetonglvyuedicity,然后去后台找城市下拉列表里这个值的描述里-后面的字符串。
      办公常驻地取emp.job/worklocation;
      财务报销地取emp.job/x_financelocation;
      社保缴纳地取emp.job/x_societylocaitoncity;
      籍贯取per.personal/x_jiguancity;
      户籍所在地取per.personal/city_id;
      户口所在地取per.personal/x_hukoucity
      出生地取per.person/x_birthcity

            grant.yang 杨光磊
            wanglei 王雷
            表决:
            0 为这个问题表决

              创建日期:
              已更新:
              已解决: