import request from '@/config/axios'

// 员工 VO
export interface EmployeeVO {
  id: number // 主键
  employeeName: string // 员工姓名
  mobile: string // 手机
  workNo: string // 工号
  country: string // 国家地区
  nation: string // 民族
  idType: number // 证件类型 1 身份证 2 港澳通行证 3 台湾通行证 4 护照 5 其他
  idNumber: string // 证件号码
  sex: number // 性别 1 男 2 女
  email: string // 邮箱
  nativePlace: string // 籍贯
  dateOfBirth: Date // 出生日期
  birthdayType: number // 生日类型 1 阳历 2 农历
  birthday: string // 生日 示例：0323
  age: number // 年龄
  address: string // 户籍地址
  highestEducation: number // 最高学历
  entryTime: Date // 入职时间
  probation: number // 试用期 0 无试用期
  becomeTime: Date // 转正日期
  deptId: number // 部门ID
  parentId: number // 直属上级ID
  post: string // 职位
  postLevel: string // 岗位职级
  workAddress: string // 工作地点
  workDetailAddress: string // 工作详细地址
  workCity: string // 工作城市
  channelId: number // 招聘渠道
  employmentForms: number // 聘用形式 1 正式 2 非正式
  status: number // 员工状态 1正式 2试用  3实习 4兼职 5劳务 6顾问 7返聘 8外包
  companyAgeStartTime: Date // 司龄开始日期
  companyAge: number // 司龄
  entryStatus: number // 入职状态 1 在职 2 待入职 3 待离职 4 离职
  contractFile: string // 合同附件
  otherFile: string // 其他附件
  candidateId: number // 候选人id
  schemeId: number // 参保方案
  ruleId: number // 参保方案
}

// 获取用户精简信息列表
export const getSimpleUserList = (): Promise<EmployeeVO[]> => {
  return request.get({ url: '/hr/employee/simple-list' })
}
// 下载用户导入模板
export const importEmployTemplate = () => {
  return request.download({ url: '/hr/employee/get-import-template' })
}
// 员工 API
export const EmployeeApi = {
  // 查询员工分页
  getEmployeePage: async (params: any) => {
    return await request.get({ url: `/hr/employee/page`, params })
  },
  getSimpleUserList: async () => {
    return request.get({ url: '/hr/employee/simple-list' })
  },
  getSimpleUserListByCompanyId: async (companyId: number) => {
    return request.get({ url: '/hr/employee/simple-list?companyId=' + companyId })
  },
  // 查询员工详情
  getEmployee: async (id: number) => {
    return await request.get({ url: `/hr/employee/get?id=` + id })
  },

  // 新增员工
  createEmployee: async (data: EmployeeVO) => {
    return await request.post({ url: `/hr/employee/create`, data })
  },

  // 修改员工
  updateEmployee: async (data: EmployeeVO) => {
    return await request.put({ url: `/hr/employee/update`, data })
  },

  // 修改社保
  updateInsuranceScheme: async (data: EmployeeVO) => {
    return await request.post({ url: `/hr/employee/updateInsuranceScheme`, data })
  },

  // 删除员工
  deleteEmployee: async (id: number) => {
    return await request.delete({ url: `/hr/employee/delete?id=` + id })
  },

  // 离职员工
  resignEmployee: async (id: number) => {
    return await request.delete({ url: `/hr/employee/resign?id=` + id })
  },

  // 导出员工 Excel
  exportEmployee: async (params) => {
    return await request.download({ url: `/hr/employee/export-excel`, params })
  },
  //确认密码
  getEmployeePersonalInfo: async (params: any) => {
    return await request.get({ url: `/hr/employee/personalInfo`, params })
  },
  // 批量更新经办人
  updateHandler: async (data) => {
    return await request.post({ url: `/hr/employee/batch/updateHandler`, data })
  }
}
