import request from '@/config/axios'

// 设备保养计划 VO
export interface MaintenancePlanVO {
  id: number // 主键ID
  planNo: string // 计划编码
  planName: string // 计划名称
  standardId: number // 保养标准id
  teamId: number // 保养班组id
  teamStaffIds: string // 班组成员ID，逗号分隔
  timeoutHour: number // 任务限制工时
  timeoutReminder: number // 超时提醒人id
  firstDate: Date // 首次执行时间
  secondDate: Date // 下次执行时间
  periodType: number // 周期方式
  periodOneType: number // 年月日间隔周期
  periodOneNum: number // 年月日间隔周期
  periodTowType: number // 按月方式
  periodTowTypeDay: number // 按月具体日期 第几天
  periodTowTypeHour: number // 按月具体日期 几时
  processInstanceId: string // 流程实例的编号
  state: string // 状态
}

// 设备保养计划 API
export const MaintenancePlanApi = {
  // 查询设备保养计划分页
  getMaintenancePlanPage: async (params: any) => {
    return await request.get({ url: `/device/maintenance-plan/page`, params })
  },

  // 查询设备保养计划详情
  getMaintenancePlan: async (id: number) => {
    return await request.get({ url: `/device/maintenance-plan/get?id=` + id })
  },

  // 新增设备保养计划
  createMaintenancePlan: async (data: MaintenancePlanVO) => {
    return await request.post({ url: `/device/maintenance-plan/create`, data })
  },

  // 修改设备保养计划
  updateMaintenancePlan: async (data: MaintenancePlanVO) => {
    return await request.put({ url: `/device/maintenance-plan/update`, data })
  },

  // 删除设备保养计划
  deleteMaintenancePlan: async (id: number) => {
    return await request.delete({ url: `/device/maintenance-plan/delete?id=` + id })
  },

  // 导出设备保养计划 Excel
  exportMaintenancePlan: async (params) => {
    return await request.download({ url: `/device/maintenance-plan/export-excel`, params })
  },

// ==================== 子表（设备保养计划耗材） ====================

  // 获得设备保养计划耗材列表
  getMaintenancePlanConsumableListByPlanId: async (planId) => {
    return await request.get({ url: `/device/maintenance-plan/maintenance-plan-consumable/list-by-plan-id?planId=` + planId })
  },

// ==================== 子表（设备保养计划内容） ====================

  // 获得设备保养计划内容列表
  getMaintenancePlanItemListByPlanId: async (planId) => {
    return await request.get({ url: `/device/maintenance-plan/maintenance-plan-item/list-by-plan-id?planId=` + planId })
  },

// ==================== 子表（设备保养计划范围） ====================

  // 获得设备保养计划范围列表
  getMaintenancePlanScopeListByPlanId: async (planId) => {
    return await request.get({ url: `/device/maintenance-plan/maintenance-plan-scope/list-by-plan-id?planId=` + planId })
  },

  // 手动执行设备保养计划
  executeMaintenancePlan: async (id: number) => {
    return await request.post({ url: `/device/maintenance-plan/execute?id=` + id })
  },
}
