import request from '@/config/axios'

// PMS 保养工单明细设备BOM挂载物料关联 VO
export interface IotMainWorkOrderBomMaterialVO {
  id: number // 主键
  mainPlanId: number // 保养计划id
  workOrderId: number // 保养工单id
  mainWorkOrderDetailId: number // 保养工单明细id
  deviceCategoryId: number // 物料所属设备分类
  bomNodeId: number // 保养工单明细设备BOM节点id
  name: string // 设备分类公共BOM节点名称
  code: string // 设备分类公共BOM节点编码
  materialId: number // 物料id
  materialCode: string // 物料编码
  materialName: string // 物料名称
  quantity: number // 消耗数量
  unitPrice: number // 单价(元)
  totalPrice: number // 总金额(元)
  kilometerCycle: number // 公里数周期(千米)
  kiloCycleLead: number // 公里数周期-提前量(千米)
  timePeriod: number // 时间周期(小时)
  timePeriodLead: number // 时间周期-提前量(小时)
  naturalDatePeriod: number // 自然日周期(天)
  naturalDatePeroidLead: number // 自然日周期-提前量(天)
  materialSource: string // 物料来源 (SAP库存 本地库存...)
  inventoryAddress: string // 库存地点
  sort: number // 排序
  status: number // 状态 0启用  1停用
  remark: string // 备注
  factoryId: number // 工厂id
  costCenterId: number  // 成本中心id
  storageLocationId: number // 存储地点id
}

// PMS 保养工单明细设备BOM挂载物料关联 API
export const IotMainWorkOrderBomMaterialApi = {
  // 查询PMS 保养工单明细设备BOM挂载物料关联分页
  getIotMainWorkOrderBomMaterialPage: async (params: any) => {
    return await request.get({ url: `/pms/iot-main-work-order-bom-material/page`, params })
  },

  // 查询PMS 保养工单明细设备BOM挂载物料关联详情
  getIotMainWorkOrderBomMaterial: async (id: number) => {
    return await request.get({ url: `/pms/iot-main-work-order-bom-material/get?id=` + id })
  },

  // 新增PMS 保养工单明细设备BOM挂载物料关联
  createIotMainWorkOrderBomMaterial: async (data: IotMainWorkOrderBomMaterialVO) => {
    return await request.post({ url: `/pms/iot-main-work-order-bom-material/create`, data })
  },

  // 修改PMS 保养工单明细设备BOM挂载物料关联
  updateIotMainWorkOrderBomMaterial: async (data: IotMainWorkOrderBomMaterialVO) => {
    return await request.put({ url: `/pms/iot-main-work-order-bom-material/update`, data })
  },

  // 删除PMS 保养工单明细设备BOM挂载物料关联
  deleteIotMainWorkOrderBomMaterial: async (id: number) => {
    return await request.delete({ url: `/pms/iot-main-work-order-bom-material/delete?id=` + id })
  },

  // 导出PMS 保养工单明细设备BOM挂载物料关联 Excel
  exportIotMainWorkOrderBomMaterial: async (params) => {
    return await request.download({ url: `/pms/iot-main-work-order-bom-material/export-excel`, params })
  },

  workOrderMaterials: async (params) => {
    return await request.get({ url: `/pms/iot-main-work-order-bom-material/workOrderMaterials`, params })
  },

  // 获得PMS 保养工单明细BOM关联的所有物料列表
  getWorkOrderBomMaterials: async (params: any) => {
    return await request.get({ url: `/pms/iot-main-work-order-bom-material/list`, params })
  },
}
