5 天以前 452e5c5e9a340367c8fdb14b0bdecc96dcb29491
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;
@@ -39,7 +52,11 @@
    colorCode?: string; // 甘特图显示颜色
    status?: number; // 任务状态
    checkFlag?: boolean; // 是否质检(派生自工艺路线工序)
    backflushFlag?: boolean; // 是否倒冲(派生自工艺路线工序)
    remark?: string; // 备注
    pauseRecords?: PauseRecord[]; // 停工记录
    reportableQuantity?: number; // 可报工数量
    assigneeUserIds?: number[]; // 报工人
  }
  /** MES 生产任务分页查询参数 */
@@ -114,6 +131,48 @@
  return requestClient.get<any[]>('/mes/pro/task/gantt-list', { params });
}
/** 一键排产预览请求 */
export interface AutoGenerateReq {
  workOrderId: number;
  routeId?: number;
  autoAssignWorkstation?: boolean;
  autoCalculateTime?: boolean;
}
/** 一键排产预览响应 */
export interface AutoGeneratePreview {
  workOrderId?: number;
  routeId?: number;
  routeName?: string;
  taskList?: TaskPreview[];
}
export interface TaskPreview {
  processId?: number;
  processName?: string;
  sort?: number;
  suggestWorkstationId?: number;
  suggestWorkstationName?: string;
  quantity?: number;
  keyFlag?: boolean;
}
/** 一键排产预览 */
export function previewAutoGenerate(data: AutoGenerateReq) {
  return requestClient.post<AutoGeneratePreview>(
    '/mes/pro/task/auto-generate/preview',
    data,
  );
}
/** 一键排产执行 */
export function autoGenerateTasks(data: AutoGenerateReq) {
  return requestClient.post<{ taskIds: number[] }>(
    '/mes/pro/task/auto-generate',
    data,
  );
}
/** 查询待报工台账(分页) */
export function getPendingFeedbackPage(
  params: MesProTaskApi.PendingFeedbackPageParams,
@@ -123,3 +182,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);
}