import request from '@/config/axios'

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

// 设备巡检计划 API
export const InspectionPlanApi = {
  // 查询设备巡检计划分页
  getInspectionPlanPage: async (params: any) => {
    return await request.get({ url: `/device/inspection-plan/page`, params })
  },

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

  // 新增设备巡检计划
  createInspectionPlan: async (data: InspectionPlanVO) => {
    return await request.post({ url: `/device/inspection-plan/create`, data })
  },

  // 修改设备巡检计划
  updateInspectionPlan: async (data: InspectionPlanVO) => {
    return await request.put({ url: `/device/inspection-plan/update`, data })
  },

  // 删除设备巡检计划
  deleteInspectionPlan: async (id: number) => {
    return await request.delete({ url: `/device/inspection-plan/delete?id=` + id })
  },

  // 批量删除巡检计划
  deleteInspectionPlanList: async (ids: number[]) => {
    return await request.delete({ url: `/device/inspection-plan/delete-list?ids=` + ids  })
  },

  // 导出设备巡检计划 Excel
  exportInspectionPlan: async (params) => {
    return await request.download({ url: `/device/inspection-plan/export-excel`, params })
  },

// ==================== 子表（设备巡检计划内容） ====================

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

// ==================== 子表（设备巡检计划范围） ====================

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

  // 执行设备巡检计划
  executeInspectionPlan: async (id: number)=> {
    return await request.post({ url: `/device/inspection-plan/execute?id=` + id })
  }
}
