Files
bj_power/bj_power_mes/apis/work_order.api
T

279 lines
8.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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"`
}
DockQuantity {
DockNo int `json:"dockNo"`
Quantity int `json:"quantity"`
}
CreateWorkOrderReq {
ProductTypeId int `json:"productTypeId"`
PartNoId int `json:"partNoId,optional"` // 零件号ID(高压清洗机按零件号选 FANUC 程序),一个工单只选一个
DockQuantities []DockQuantity `json:"dockQuantities" validate:"required"`
WorkOrderNo string `json:"workOrderNo,optional"`
Remark string `json:"remark,optional"`
AllowAppend bool `json:"allowAppend,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"`
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"`
}
// === 停止工单 ===
QueryStopJobsReply {
Items []StopWorkOrderItem `json:"items"`
}
StopWorkOrderItem {
TempSlotNo int `json:"tempSlotNo"`
DockNo int `json:"dockNo"`
DockSlotNo int `json:"dockSlotNo"`
WorkpieceNo string `json:"workpieceNo"`
JobId int `json:"jobId"`
ProductTypeName string `json:"productTypeName"`
CurrentStepId string `json:"currentStepId"`
}
StopWorkOrderReply {
OrderId int `json:"orderId"`
Phase string `json:"phase"` // cancelled / cancelling
}
StopWorkOrderConfirmReply {
Success bool `json:"success"`
}
CancelStopWorkOrderReply {
Success bool `json:"success"`
}
StopWorkOrderConfirmReq {
OrderId int `json:"orderId"`
Confirmed bool `json:"confirmed"`
}
)
@server (
jwt: Auth
group: workorder
prefix: /api/v1
)
service hougai-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) returns (StopWorkOrderReply)
@doc "查询停止工单的待搬运工件"
@handler queryStopJobs
get /work-orders/stop/jobs/:id (PathId) returns (QueryStopJobsReply)
@doc "确认停止工单(搬运完成后)"
@handler stopWorkOrderConfirm
post /work-orders/:id/stop-confirm (StopWorkOrderConfirmReq) returns (StopWorkOrderConfirmReply)
@doc "删除工单"
@handler deleteWorkOrder
delete /work-orders/:id (PathId)
@doc "批量删除工单"
@handler deleteWorkOrders
delete /work-orders (BatchExecIds) returns (BatchExecReply)
@doc "取消停止(取消 CANCELLING"
@handler cancelStopWorkOrder
post /work-orders/:id/cancel-stop (PathId) returns (CancelStopWorkOrderReply)
}