Files
bj_power/bj_power_mes/apis/work_order.api
T

219 lines
6.5 KiB
Plaintext

syntax = "v1"
import (
"base.api"
)
type (
// === 工站监控(对齐 frontend-api.md 7.2 节)===
StationJobBrief {
JobId int `json:"jobId"`
WorkOrderId int `json:"workOrderId"`
ProductTypeId int `json:"productTypeId"`
Status string `json:"status"`
PositionRefId string `json:"positionRefId"`
CurrentStepId string `json:"currentStepId"`
CurrentStepName string `json:"currentStepName"`
}
StationMonitorItem {
Id string `json:"id"`
Type string `json:"type"`
Name string `json:"name"`
Status string `json:"status"`
HeartbeatOnline bool `json:"heartbeatOnline"`
CurrentJobs []StationJobBrief `json:"currentJobs"`
WaitingUnloadJobs []StationJobBrief `json:"waitingUnloadJobs"`
UpdatedAt string `json:"updatedAt"`
}
ActiveOrderSummary {
OrderId int `json:"orderId"`
OrderNo string `json:"orderNo"`
Status string `json:"status"`
ProductTypeId int `json:"productTypeId"`
TotalJobs int `json:"totalJobs"`
CompletedJobs int `json:"completedJobs"`
ScrappedJobs int `json:"scrappedJobs"`
}
StationMonitorReply {
Stations []StationMonitorItem `json:"stations"`
ActiveOrders []ActiveOrderSummary `json:"activeOrders"`
}
// === 工单管理(对齐 frontend-api.md 第 5 节)===
QueryWorkOrdersReq {
PageReq
SortReq
Keyword string `form:"keyword,optional"`
Statuses []string `form:"statuses,optional"`
ProductTypeId int `form:"productTypeId,optional"`
}
CreateWorkOrderReq {
ProductTypeId int `json:"productTypeId"`
Quantity int `json:"quantity,optional"`
WorkOrderNo string `json:"workOrderNo,optional"`
Remark string `json:"remark,optional"`
}
CreateWorkOrderReply {
Id int `json:"id"`
}
UpdateWorkOrderReq {
PathId
ProductTypeId int `json:"productTypeId,optional"`
Quantity int `json:"quantity,optional"`
WorkOrderNo string `json:"workOrderNo,optional"`
Remark string `json:"remark,optional"`
}
RestoreWorkOrderReply {
OrderId int `json:"orderId"`
RestoredJobs int `json:"restoredJobs"`
Level string `json:"level"`
ManualRequired bool `json:"manualRequired"`
Message string `json:"message,omitempty"`
}
// === 恢复扫描 ===
RecoveryScanItem {
OrderId int `json:"orderId"`
Status string `json:"status"`
Recoverable bool `json:"recoverable"`
Grade string `json:"grade"`
TotalJobs int `json:"totalJobs"`
RestorableJobs int `json:"restorableJobs"`
Reason string `json:"reason,omitempty"`
}
RecoveryScanReply {
Items []RecoveryScanItem `json:"items"`
}
// === 工单信息 ===
QueryWorkOrdersReply {
PageReply
Data []WorkOrderReply `json:"data"`
}
WorkOrderReply {
Id int `json:"id"`
No string `json:"no"`
WorkOrderNo string `json:"workOrderNo"`
ProductTypeId int `json:"productTypeId"`
ProductTypeName string `json:"productTypeName"`
ProductTypeCode string `json:"productTypeCode"`
Quantity int `json:"quantity"`
FinishedNum int `json:"finishedNum"`
FailNum int `json:"failNum"`
Status string `json:"status"`
Source string `json:"source"`
Remark string `json:"remark,omitempty"`
CreatedTime string `json:"createdTime"`
UpdatedTime string `json:"updatedTime"`
CompletedTime string `json:"completedTime,omitempty"`
}
JobStatusCount {
Status string `json:"status"`
Count int `json:"count"`
}
WorkOrderDetailReply {
WorkOrderReply
ProductTypeName string `json:"productTypeName"`
RecipeName string `json:"recipeName,omitempty"`
JobStats []JobStatusCount `json:"jobStats"`
TotalJobs int `json:"totalJobs"`
}
// === 任务日志(对齐 frontend-api.md 8.4 节)===
QueryTaskLogsReq {
PageReq
SortReq
JobId int `form:"jobId,optional"`
Status string `form:"status,optional"`
TaskKind string `form:"taskKind,optional"`
StartTime string `form:"startTime,optional"`
EndTime string `form:"endTime,optional"`
}
QueryTaskLogsReply {
PageReply
Data []TaskLogReply `json:"data"`
}
TaskLogReply {
Id int `json:"id"`
WorkOrderId int `json:"workOrderId"`
JobId int `json:"jobId"`
StepId string `json:"stepId"`
StepName string `json:"stepName"`
TaskKind string `json:"taskKind"`
Status string `json:"status"`
Content string `json:"content"`
DurationMs int64 `json:"durationMs"`
CreatedAt string `json:"createdAt"`
}
)
@server (
jwt: Auth
group: workorder
prefix: /api/v1
)
service spherical-api {
@doc "工站监控"
@handler stationMonitor
get /stations/monitor returns (StationMonitorReply)
@doc "恢复扫描"
@handler scanRecovery
get /work-orders/recovery/scan returns (RecoveryScanReply)
@doc "查询工单分页列表"
@handler queryWorkOrders
get /work-orders (QueryWorkOrdersReq) returns (QueryWorkOrdersReply)
@doc "查询任务日志分页列表"
@handler queryTaskLogs
get /work-orders/:id/task-logs (QueryTaskLogsReq) returns (QueryTaskLogsReply)
@doc "获取最新任务日志"
@handler getLatestTaskLogs
get /work-orders/logs/latest returns ([]TaskLogReply)
@doc "获取工单详情"
@handler getWorkOrder
get /work-orders/:id (PathId) returns (WorkOrderReply)
@doc "获取带工艺流程信息的工单详情"
@handler getWorkOrderDetail
get /work-orders/:id/detail (PathId) returns (WorkOrderDetailReply)
@doc "创建工单"
@handler createWorkOrder
post /work-orders (CreateWorkOrderReq) returns (CreateWorkOrderReply)
@doc "编辑工单"
@handler updateWorkOrder
put /work-orders/:id (UpdateWorkOrderReq)
@doc "开始工单"
@handler startWorkOrder
post /work-orders/:id/start (PathId)
@doc "暂停工单"
@handler pauseWorkOrder
post /work-orders/:id/pause (PathId)
@doc "恢复工单"
@handler resumeWorkOrder
post /work-orders/:id/resume (PathId)
@doc "断电恢复工单"
@handler restoreWorkOrder
post /work-orders/:id/restore (PathId) returns (RestoreWorkOrderReply)
@doc "取消工单"
@handler cancelWorkOrder
post /work-orders/:id/cancel (PathId)
@doc "停止工单"
@handler stopWorkOrder
post /work-orders/:id/stop (PathId)
@doc "删除工单"
@handler deleteWorkOrder
delete /work-orders/:id (PathId)
@doc "批量删除工单"
@handler deleteWorkOrders
delete /work-orders (BatchExecIds) returns (BatchExecReply)
}