import request from '@/config/axios'
import {RepairOrderVO} from "@/api/device/repairorder";

// 设备保养任务 VO
export interface MaintenanceTasksVO {
    id: number // 主键ID
    taskNumber: string // 任务编号
    taskName: string // 任务编号
    planId: number // 计划id
    deviceId: number // 设备ID
    planStartTime: Date // 计划开始时间
    planEndTime: Date // 计划结束时间
    actualStartTime: Date // 实际开始时间
    actualEndTime: Date // 实际完成时间
    taskStatus: number // 任务状态
    actualMaintainerId: number // 开始保养人ID
    actualMaintainerName: string // 开始保养人姓名
    collaboratorIds: string // 协同处理人ID，多个用逗号分隔
    collaboratorNames: string // 协同处理人姓名，多个用逗号分隔
    inspectorId: number // 验收责任人ID
    inspectorName: string // 验收责任人姓名
    inspectionTime: Date // 验收时间
    inspectionDescription: string // 保养遗留问题
    maintenanceType: string // 保养类型
    responsibleId: number // 负责人ID
    responsibleName: string // 负责人姓名
    maintenanceInstructions: string // 保养说明
    maintenanceDescription: string // 保养描述
    attachmentUrls: string // 附件链接，多个用逗号分隔
    inspectionResult: string // 验收结果（合格、不合格、待整改）
    inspectionAttachmentUrls: string // 验收附件
    processInstanceId: string // 流程实例的编号
}

// 设备保养任务 API
export const MaintenanceTasksApi = {
    // 查询设备保养任务分页
    getMaintenanceTasksPage: async (params: any) => {
        return await request.get({url: `/device/maintenance-tasks/page`, params})
    },

    // 查询设备保养任务详情
    getMaintenanceTasks: async (id: number) => {
        return await request.get({url: `/device/maintenance-tasks/get?id=` + id})
    },
    // 查询设备保养任务详情
    getMaintenanceTasksByProcessId: async (processInstanceId: string) => {
          return await request.get({url: `/device/maintenance-tasks/getTasksByProcessId?processInstanceId=` + processInstanceId})
    },

    // 新增设备保养任务
    createMaintenanceTasks: async (data: MaintenanceTasksVO) => {
        return await request.post({url: `/device/maintenance-tasks/create`, data})
    },

    // 修改设备保养任务
    updateMaintenanceTasks: async (data: MaintenanceTasksVO) => {
        return await request.put({url: `/device/maintenance-tasks/update`, data})
    },

    // 删除设备保养任务
    deleteMaintenanceTasks: async (id: number) => {
        return await request.delete({url: `/device/maintenance-tasks/delete?id=` + id})
    },

    // 导出设备保养任务 Excel
    exportMaintenanceTasks: async (params) => {
        return await request.download({url: `/device/maintenance-tasks/export-excel`, params})
    },

    // 提交设备保养任务审核
    submitAudit: async (id: number) => {
        return await request.put({url: `/device/maintenance-tasks/submit-audit?id=${id}`})
    },
    updateExecute: async (data: RepairOrderVO) => {
        return await request.put({ url: `/device/maintenance-tasks/updateExecute`, data })
    },
    updateCheck: async (data: RepairOrderVO) => {
        return await request.put({ url: `/device/maintenance-tasks/updateCheck`, data })
    }
}
