package constants import "sort" // === 工件分类 === type WorkpieceCategory string const ( WorkpieceCategory_AVM107 WorkpieceCategory = "A6VM107" WorkpieceCategory_AVM160 WorkpieceCategory = "A6VM160" WorkpieceCategory_AVM200 WorkpieceCategory = "A6VM200" ) func (WorkpieceCategory) Values() []string { return []string{ string(WorkpieceCategory_AVM107), string(WorkpieceCategory_AVM160), string(WorkpieceCategory_AVM200), } } // MomDockMap MOM 接驳台 → 工件分类的硬编码映射 // - 接驳台 1-4 专用于 A6VM107 // - 接驳台 5-8 专用于 A6VM160 // - 接驳台 9-10 专用于 A6VM200 // // 同 category 同时占用的接驳台数即额度(107=4 / 160=4 / 200=2)。 var MomDockMap = map[int]WorkpieceCategory{ 1: WorkpieceCategory_AVM107, 2: WorkpieceCategory_AVM107, 3: WorkpieceCategory_AVM107, 4: WorkpieceCategory_AVM107, 5: WorkpieceCategory_AVM160, 6: WorkpieceCategory_AVM160, 7: WorkpieceCategory_AVM160, 8: WorkpieceCategory_AVM160, 9: WorkpieceCategory_AVM200, 10: WorkpieceCategory_AVM200, } // MomDocksByCategory 反查表:category → 该 category 专属接驳台号列表(按号码升序) var MomDocksByCategory = func() map[WorkpieceCategory][]int { out := map[WorkpieceCategory][]int{} for dockNo, cat := range MomDockMap { out[cat] = append(out[cat], dockNo) } for _, v := range out { sort.Ints(v) // map 遍历无序 → 排序保证调度稳定 } return out }() // === 设备类型编码 === type EquipmentTypeCode string const ( EquipmentTypeCode_CNC EquipmentTypeCode = "CNC" EquipmentTypeCode_WashingMachine EquipmentTypeCode = "WASHER_HP" EquipmentTypeCode_Deburr EquipmentTypeCode = "DEBURR" EquipmentTypeCode_CleaningLine EquipmentTypeCode = "CLEANING_LINE" EquipmentTypeCode_Inspection EquipmentTypeCode = "INSPECTION" EquipmentTypeCode_Sampling EquipmentTypeCode = "SAMPLING" EquipmentTypeCode_Marking EquipmentTypeCode = "MARKING" EquipmentTypeCode_TempStore EquipmentTypeCode = "TEMP_STORE" EquipmentTypeCode_Robot EquipmentTypeCode = "ROBOT" ) func (EquipmentTypeCode) Values() []string { return []string{ string(EquipmentTypeCode_CNC), string(EquipmentTypeCode_WashingMachine), string(EquipmentTypeCode_Deburr), string(EquipmentTypeCode_CleaningLine), string(EquipmentTypeCode_Inspection), string(EquipmentTypeCode_Sampling), string(EquipmentTypeCode_Marking), string(EquipmentTypeCode_TempStore), string(EquipmentTypeCode_Robot), } } // === 批处理模式 === type BatchMode string const ( BatchMode_None BatchMode = "NONE" BatchMode_FullBatch BatchMode = "FULL_BATCH" ) func (BatchMode) Values() []string { return []string{ string(BatchMode_None), string(BatchMode_FullBatch), } } // === 槽位状态 === type SlotStatus string const ( SlotStatus_Empty SlotStatus = "EMPTY" SlotStatus_Occupied SlotStatus = "OCCUPIED" SlotStatus_Done SlotStatus = "DONE" ) func (SlotStatus) Values() []string { return []string{ string(SlotStatus_Empty), string(SlotStatus_Occupied), string(SlotStatus_Done), } } // === 工序类型 === type StepType string const ( StepType_Operation StepType = "OPERATION" StepType_BufferStage StepType = "BUFFER_STAGE" StepType_Decision StepType = "DECISION" StepType_FinalScan StepType = "FINAL_SCAN" StepType_Judge StepType = "JUDGE" StepType_LaserMark StepType = "LASER_MARK" StepType_UnloadDock StepType = "UNLOAD_DOCK" ) func (StepType) Values() []string { return []string{ string(StepType_Operation), string(StepType_BufferStage), string(StepType_Decision), string(StepType_FinalScan), string(StepType_Judge), string(StepType_LaserMark), string(StepType_UnloadDock), } } // === 工件(Job)状态 === type JobStatus string const ( JobStatus_Created JobStatus = "CREATED" JobStatus_Processing JobStatus = "PROCESSING" JobStatus_WaitingUnload JobStatus = "WAITING_UNLOAD" JobStatus_OnBuffer JobStatus = "ON_BUFFER" JobStatus_WaitingDecision JobStatus = "WAITING_DECISION" JobStatus_Completed JobStatus = "COMPLETED" JobStatus_Scrapped JobStatus = "SCRAPPED" JobStatus_Suspended JobStatus = "SUSPENDED" JobStatus_WaitingWaste JobStatus = "WAITING_WASTE" JobStatus_Cancelled JobStatus = "CANCELLED" ) func (JobStatus) Values() []string { return []string{ string(JobStatus_Created), string(JobStatus_Processing), string(JobStatus_WaitingUnload), string(JobStatus_OnBuffer), string(JobStatus_WaitingDecision), string(JobStatus_Completed), string(JobStatus_Scrapped), string(JobStatus_Suspended), string(JobStatus_WaitingWaste), string(JobStatus_Cancelled), } } // === 质检结果(内窥镜/抽检共用) === type QCResult string const ( QCResult_Pass QCResult = "PASS" QCResult_Fail QCResult = "FAIL" ) func (QCResult) Values() []string { return []string{ string(QCResult_Pass), string(QCResult_Fail), } } // === 工单状态 === type WorkOrderStatus string const ( WorkOrderStatus_Created WorkOrderStatus = "CREATED" WorkOrderStatus_InProgress WorkOrderStatus = "IN_PROGRESS" WorkOrderStatus_Pausing WorkOrderStatus = "PAUSING" WorkOrderStatus_Cancelling WorkOrderStatus = "CANCELLING" WorkOrderStatus_Paused WorkOrderStatus = "PAUSED" WorkOrderStatus_Completed WorkOrderStatus = "COMPLETED" WorkOrderStatus_Cancelled WorkOrderStatus = "CANCELLED" WorkOrderStatus_Error WorkOrderStatus = "ERROR" ) func (WorkOrderStatus) Values() []string { return []string{ string(WorkOrderStatus_Created), string(WorkOrderStatus_Pausing), string(WorkOrderStatus_InProgress), string(WorkOrderStatus_Cancelling), string(WorkOrderStatus_Paused), string(WorkOrderStatus_Completed), string(WorkOrderStatus_Cancelled), string(WorkOrderStatus_Error), } } // === 设备状态 === type EquipmentStatus string const ( EquipmentStatus_Idle EquipmentStatus = "IDLE" EquipmentStatus_Loading EquipmentStatus = "LOADING" EquipmentStatus_Processing EquipmentStatus = "PROCESSING" EquipmentStatus_Unloading EquipmentStatus = "UNLOADING" EquipmentStatus_Fault EquipmentStatus = "FAULT" EquipmentStatus_Offline EquipmentStatus = "OFFLINE" ) func (EquipmentStatus) Values() []string { return []string{ string(EquipmentStatus_Idle), string(EquipmentStatus_Loading), string(EquipmentStatus_Processing), string(EquipmentStatus_Unloading), string(EquipmentStatus_Fault), string(EquipmentStatus_Offline), } } // === 位置类型 === type PositionType string const ( PositionType_OnEquipment PositionType = "ON_EQUIPMENT" PositionType_OnBuffer PositionType = "ON_BUFFER" PositionType_OnDock PositionType = "ON_DOCK" ) func (PositionType) Values() []string { return []string{ string(PositionType_OnEquipment), string(PositionType_OnBuffer), string(PositionType_OnDock), } } // === 手持工具类型 === type ToolType string const ( ToolType_Scanner ToolType = "SCANNER" ToolType_Laser ToolType = "LASER" ) func (ToolType) Values() []string { return []string{ string(ToolType_Scanner), string(ToolType_Laser), } } // === 任务状态 === type TaskStatus string const ( TaskStatus_Created TaskStatus = "CREATED" TaskStatus_Dispatched TaskStatus = "DISPATCHED" TaskStatus_Running TaskStatus = "RUNNING" TaskStatus_Success TaskStatus = "SUCCESS" TaskStatus_Failed TaskStatus = "FAILED" TaskStatus_Timeout TaskStatus = "TIMEOUT" ) func (TaskStatus) Values() []string { return []string{ string(TaskStatus_Created), string(TaskStatus_Dispatched), string(TaskStatus_Running), string(TaskStatus_Success), string(TaskStatus_Failed), string(TaskStatus_Timeout), } } // === 工站状态 === type StationStatus string const ( StationStatus_Idle StationStatus = "IDLE" StationStatus_Busy StationStatus = "BUSY" StationStatus_Waiting StationStatus = "WAITING" StationStatus_Fault StationStatus = "FAULT" StationStatus_Offline StationStatus = "OFFLINE" // 兼容旧命名 StationStatus_Processing = StationStatus_Busy StationStatus_Done = StationStatus_Waiting StationStatus_Error = StationStatus_Fault ) func (StationStatus) Values() []string { return []string{ string(StationStatus_Idle), string(StationStatus_Busy), string(StationStatus_Waiting), string(StationStatus_Fault), string(StationStatus_Offline), } } // === 报警等级 === type AlarmLevel string const ( AlarmLevel_INFO AlarmLevel = "INFO" AlarmLevel_WARN AlarmLevel = "WARN" AlarmLevel_ERROR AlarmLevel = "ERROR" AlarmLevel_CRITICAL AlarmLevel = "CRITICAL" ) func (AlarmLevel) Values() []string { return []string{ string(AlarmLevel_INFO), string(AlarmLevel_WARN), string(AlarmLevel_ERROR), string(AlarmLevel_CRITICAL), } } // === 报警状态 === type AlarmStatus string const ( AlarmStatus_ACTIVE AlarmStatus = "ACTIVE" AlarmStatus_ACKED AlarmStatus = "ACKED" AlarmStatus_CLEARED AlarmStatus = "CLEARED" ) func (AlarmStatus) Values() []string { return []string{ string(AlarmStatus_ACTIVE), string(AlarmStatus_ACKED), string(AlarmStatus_CLEARED), } } // === 人工交互类型 === type ManualActionType string const ( ManualActionType_ScanFailed ManualActionType = "SCAN_FAILED" ManualActionType_RecoveryRequired ManualActionType = "RECOVERY_REQUIRED" ManualActionType_InspectionDecision ManualActionType = "INSPECTION_DECISION" ManualActionType_FaultConfirm ManualActionType = "FAULT_CONFIRM" ) func (ManualActionType) Values() []string { return []string{ string(ManualActionType_ScanFailed), string(ManualActionType_RecoveryRequired), string(ManualActionType_InspectionDecision), string(ManualActionType_FaultConfirm), } } // === 人工交互状态 === type ManualActionStatus string const ( ManualActionStatus_PENDING ManualActionStatus = "PENDING" ManualActionStatus_RESOLVED ManualActionStatus = "RESOLVED" ManualActionStatus_EXPIRED ManualActionStatus = "EXPIRED" ) func (ManualActionStatus) Values() []string { return []string{ string(ManualActionStatus_PENDING), string(ManualActionStatus_RESOLVED), string(ManualActionStatus_EXPIRED), } } // === 恢复决策 === type RecoveryDecision string const ( RecoveryDecision_RESUME RecoveryDecision = "RESUME" RecoveryDecision_WAIT_UNLOAD RecoveryDecision = "WAIT_UNLOAD" RecoveryDecision_SUSPEND RecoveryDecision = "SUSPEND" RecoveryDecision_SCRAP RecoveryDecision = "SCRAP" ) func (RecoveryDecision) Values() []string { return []string{ string(RecoveryDecision_RESUME), string(RecoveryDecision_WAIT_UNLOAD), string(RecoveryDecision_SUSPEND), string(RecoveryDecision_SCRAP), } } // === 托盘状态 === type PalletStatus string const ( PalletStatus_PendingDelivery PalletStatus = "PENDING_DELIVERY" PalletStatus_PendingProcess PalletStatus = "PENDING_PROCESS" PalletStatus_Processing PalletStatus = "PROCESSING" PalletStatus_Completed PalletStatus = "COMPLETED" PalletStatus_Reported PalletStatus = "REPORTED" PalletStatus_Departed PalletStatus = "DEPARTED" ) func (PalletStatus) Values() []string { return []string{ string(PalletStatus_PendingDelivery), string(PalletStatus_PendingProcess), string(PalletStatus_Processing), string(PalletStatus_Completed), string(PalletStatus_Reported), string(PalletStatus_Departed), } } // === 工单来源 === type WorkOrderSource string const ( WorkOrderSource_SYSTEM WorkOrderSource = "SYSTEM" WorkOrderSource_MOM WorkOrderSource = "MOM" ) func (WorkOrderSource) Values() []string { return []string{ string(WorkOrderSource_SYSTEM), string(WorkOrderSource_MOM), } }