17 小时以前 0c221f3e96cc6aae6b6bcf67e984cb446dcfac87
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
import type { PageParam, PageResult } from '@vben/request';
 
import { requestClient } from '#/api/request';
 
export namespace MesProTaskApi {
  /** MES 生产任务 */
  export interface Task {
    id?: number;
    code?: string; // 任务编码
    name?: string; // 任务名称
    workOrderId?: number; // 生产订单编号
    workOrderCode?: string; // 订单编码
    workOrderName?: string; // 订单名称
    workstationId?: number; // 工作站编号
    workstationCode?: string; // 工作站编码
    workstationName?: string; // 工作站名称
    routeId?: number; // 工艺路线编号
    processId?: number; // 工序编号
    processName?: string; // 工序名称
    itemId?: number; // 产品物料编号
    itemCode?: string; // 产品编码
    itemName?: string; // 产品名称
    itemSpecification?: string; // 规格型号
    unitMeasureId?: number; // 单位编号
    unitMeasureName?: string; // 单位名称
    quantity?: number; // 排产数量
    producedQuantity?: number; // 已生产数量
    qualifyQuantity?: number; // 合格品数量
    unqualifyQuantity?: number; // 不良品数量
    changedQuantity?: number; // 调整数量
    clientId?: number; // 客户编号
    clientName?: string; // 客户名称
    startTime?: number; // 开始生产时间
    endTime?: number; // 结束生产时间
    duration?: number; // 生产时长(工作日,1=8小时)
    requestDate?: number; // 需求日期(从订单查)
    finishDate?: number; // 完成日期
    cancelDate?: number; // 取消日期
    colorCode?: string; // 甘特图显示颜色
    status?: number; // 任务状态
    checkFlag?: boolean; // 是否质检(派生自工艺路线工序)
    remark?: string; // 备注
  }
 
  /** MES 生产任务分页查询参数 */
  export interface PageParams extends PageParam {
    code?: string;
    name?: string;
    workOrderId?: number;
    workstationId?: number;
    routeId?: number;
    processId?: number;
    itemId?: number;
    statuses?: number[];
    status?: number;
  }
 
  /** 待报工台账任务(pending-feedback-page 响应) */
  export interface PendingFeedbackTask extends Task {
    pendingQuantity?: number; // 待报工数量(= 排产 - 已生产)
    inTransitQuantity?: number; // 在途报工数量(草稿/审批中/待检验合计)
    reportableQuantity?: number; // 可报工数量(= 排产 - 已生产 - 在途)
    feedbackRate?: number; // 报工完成率(%)
  }
 
  /** 待报工台账分页查询参数 */
  export interface PendingFeedbackPageParams extends PageParam {
    processId?: number;
    routeId?: number;
    workOrderId?: number;
    workstationId?: number;
    code?: string;
    name?: string;
    checkFlag?: boolean;
    createTime?: string[];
  }
}
 
/** 查询生产任务分页 */
export function getTaskPage(params: MesProTaskApi.PageParams) {
  return requestClient.get<PageResult<MesProTaskApi.Task>>(
    '/mes/pro/task/page',
    { params },
  );
}
 
/** 查询生产任务详情 */
export function getTask(id: number) {
  return requestClient.get<MesProTaskApi.Task>(`/mes/pro/task/get?id=${id}`);
}
 
/** 新增生产任务 */
export function createTask(data: MesProTaskApi.Task) {
  return requestClient.post('/mes/pro/task/create', data);
}
 
/** 修改生产任务 */
export function updateTask(data: MesProTaskApi.Task) {
  return requestClient.put('/mes/pro/task/update', data);
}
 
/** 删除生产任务 */
export function deleteTask(id: number) {
  return requestClient.delete(`/mes/pro/task/delete?id=${id}`);
}
 
/** 导出生产任务 */
export function exportTask(params: any) {
  return requestClient.download('/mes/pro/task/export-excel', { params });
}
 
/** 查询甘特图任务列表(非分页) */
export function getGanttTaskList(params: any) {
  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,
) {
  return requestClient.get<PageResult<MesProTaskApi.PendingFeedbackTask>>(
    '/mes/pro/task/pending-feedback-page',
    { params },
  );
}