云
19 小时以前 c2e8526f8f857be5e3a8c6f2b39c5efd424de33e
src/api/mes/pro/task/index.ts
@@ -1,8 +1,21 @@
import type { PageParam, PageResult } from '@vben/request';
import type { PageParam, PageResult } from '@vben/request';
import { requestClient } from '#/api/request';
export namespace MesProTaskApi {
  export interface PauseRecord {
    id: number;
    pauseTime: string;
    pauseUserId: number;
    pauseUserName: string;
    reason: string;
    remark?: string;
    resumeTime?: string;
    resumeUserId?: number;
    resumeUserName?: string;
    taskId: number;
  }
  /** MES 生产任务 */
  export interface Task {
    id?: number;
@@ -16,6 +29,7 @@
    workstationName?: string; // 工作站名称
    routeId?: number; // 工艺路线编号
    processId?: number; // 工序编号
    paramTemplateId?: number; // 工艺参数模板编号
    processName?: string; // 工序名称
    itemId?: number; // 产品物料编号
    itemCode?: string; // 产品编码
@@ -41,6 +55,10 @@
    checkFlag?: boolean; // 是否质检(派生自工艺路线工序)
    backflushFlag?: boolean; // 是否倒冲(派生自工艺路线工序)
    remark?: string; // 备注
    pauseRecords?: PauseRecord[]; // 停工记录
    reportableQuantity?: number; // 可报工数量
    assigneeUserIds?: number[]; // 报工人
    feedbackApprove?: boolean; // 是否报工审批(派生自工单)
  }
  /** MES 生产任务分页查询参数 */
@@ -158,6 +176,55 @@
}
/** 查询待报工台账(分页) */
export interface BatchScheduleRequest {
  workOrderIds: number[];
  startTime: string;
  previewHash?: string;
  previewTime?: string;
  allowLate?: boolean;
}
export interface BatchSchedulePreview {
  canExecute: boolean;
  previewHash: string;
  previewTime: string;
  warnings: string[];
  orders: {
    workOrderId: number;
    workOrderCode?: string;
    workOrderName?: string;
    quantity?: number;
    taskCount: number;
    requestDate?: string;
    endTime?: string;
    late: boolean;
    error?: string;
  }[];
  tasks: {
    workOrderId: number;
    workOrderCode: string;
    processId: number;
    processName: string;
    workstationId: number;
    workstationName: string;
    machineryNames: string;
    quantity: number;
    hourlyCapacity: number;
    duration: number;
    startTime: string;
    endTime: string;
  }[];
}
export function previewBatchSchedule(data: BatchScheduleRequest) {
  return requestClient.post<BatchSchedulePreview>('/mes/pro/task/auto-schedule/preview', data);
}
export function executeBatchSchedule(data: BatchScheduleRequest) {
  return requestClient.post<{ taskIds: number[] }>('/mes/pro/task/auto-schedule', data);
}
/** 查询待报工台账(分页) */
export function getPendingFeedbackPage(
  params: MesProTaskApi.PendingFeedbackPageParams,
) {
@@ -166,3 +233,28 @@
    { params },
  );
}
/** 根据工作站和数量计算生产时长 */
export function calculateTaskDuration(workstationId: number, quantity: number) {
  return requestClient.get<{ duration: number }>(
    '/mes/pro/task/calculate-duration',
    { params: { workstationId, quantity } },
  );
}
/** 生产任务停工请求参数 */
export interface MesProTaskPauseReqVO {
  id: number;
  reason: string;
  remark?: string;
}
/** 生产任务停工 */
export function pauseTask(data: MesProTaskPauseReqVO) {
  return requestClient.put('/mes/pro/task/pause', data);
}
/** 生产任务复工 */
export function resumeTask(data: { id: number }) {
  return requestClient.put('/mes/pro/task/resume', data);
}