279 lines
8.0 KiB
Plaintext
279 lines
8.0 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"`
|
||
}
|
||
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)
|
||
} |