package service
|
|
|
|
import (
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
// 调度事件接口定义
|
|
type SchedEvent interface {
|
|
GetEventTime() time.Time // 事件触发事件
|
|
GetEventType() int // 获取调度任务类型,参见event类型定义
|
|
GetEvent() int // 获取调度对象具体事件
|
|
}
|
|
|
|
// 订单调度事件对象定义
|
|
type OrderEvent struct {
|
|
TriggerTime time.Time
|
|
EventType string
|
|
Event string
|
|
}
|
|
func(ore OrderEvent)GetEventTime()(time.Time){
|
|
return ore.TriggerTime
|
|
}
|
|
func(ore OrderEvent)GetEventType()(string){
|
|
return ore.EventType
|
|
}
|
|
func(ore OrderEvent)GetEvent()(string){
|
|
return ore.Event
|
|
}
|
|
|
|
// 获取事件类型的优先级
|
|
func GetSchedEventTypePriority(itype int)(prio int){
|
|
prio = 0
|
|
switch itype {
|
|
case EVENT_OBJ_ORDER:
|
|
prio = 89
|
|
case EVENT_OBJ_OPTASK:
|
|
prio = 88
|
|
case EVENT_OBJ_WPGRP:
|
|
prio = 99
|
|
case EVENT_OBJ_WP:
|
|
prio = 98
|
|
case EVENT_OBJ_TOOLGRP:
|
|
prio = 69
|
|
case EVENT_OBJ_TOOL:
|
|
prio = 68
|
|
case EVENT_OBJ_PERSONGRP:
|
|
prio = 59
|
|
case EVENT_OBJ_PERSON:
|
|
prio = 58
|
|
case EVENT_OBJ_SECRES:
|
|
prio = 38
|
|
}
|
|
return
|
|
}
|
|
|
|
// 工序调度事件对象定义
|
|
type OperationEvent struct {
|
|
TriggerTime time.Time
|
|
EventType int
|
|
Event int
|
|
OrderId string
|
|
OperationNr int
|
|
SplitNr int
|
|
}
|
|
func(ope OperationEvent)GetEventTime()(time.Time){
|
|
return ope.TriggerTime
|
|
}
|
|
func(ope OperationEvent)GetEventType()(int){
|
|
return ope.EventType
|
|
}
|
|
func(ope OperationEvent)GetEvent()(int){
|
|
return ope.Event
|
|
}
|
|
func(ope OperationEvent)GetOpKey()(string){
|
|
return strconv.Itoa(ope.OperationNr) + "-" + strconv.Itoa(ope.SplitNr)
|
|
}
|
|
|
|
// 工位组组调度事件对象定义
|
|
type WorkPlaceGrpEvent struct {
|
|
TriggerTime time.Time
|
|
EventType int
|
|
Event int
|
|
WorkPlaceGrpNr int
|
|
}
|
|
func(wpge WorkPlaceGrpEvent)GetEventTime()(time.Time){
|
|
return wpge.TriggerTime
|
|
}
|
|
func(wpge WorkPlaceGrpEvent)GetEventType()(int){
|
|
return wpge.EventType
|
|
}
|
|
func(wpge WorkPlaceGrpEvent)GetEvent()(int){
|
|
return wpge.Event
|
|
}
|
|
|
|
// 工位调度事件对象定义
|
|
type WorkPlaceEvent struct {
|
|
TriggerTime time.Time
|
|
EventType int
|
|
Event int
|
|
WorkPlaceNr int
|
|
}
|
|
func(wpe WorkPlaceEvent)GetEventTime()(time.Time){
|
|
return wpe.TriggerTime
|
|
}
|
|
func(wpe WorkPlaceEvent)GetEventType()(int){
|
|
return wpe.EventType
|
|
}
|
|
func(wpe WorkPlaceEvent)GetEvent()(int){
|
|
return wpe.Event
|
|
}
|
|
|
|
// 工具组调度事件对象定义
|
|
type ToolGrpEvent struct {
|
|
TriggerTime time.Time
|
|
EventType int
|
|
Event int
|
|
ToolGrpNr int
|
|
}
|
|
func(tge ToolGrpEvent)GetEventTime()(time.Time){
|
|
return tge.TriggerTime
|
|
}
|
|
func(tge ToolGrpEvent)GetEventType()(int){
|
|
return tge.EventType
|
|
}
|
|
func(tge ToolGrpEvent)GetEvent()(int){
|
|
return tge.Event
|
|
}
|
|
|
|
// 工具调度事件对象定义
|
|
type ToolEvent struct {
|
|
TriggerTime time.Time
|
|
EventType int
|
|
Event int
|
|
ToolNr int
|
|
}
|
|
func(tle ToolEvent)GetEventTime()(time.Time){
|
|
return tle.TriggerTime
|
|
}
|
|
func(tle ToolEvent)GetEventType()(int){
|
|
return tle.EventType
|
|
}
|
|
func(tle ToolEvent)GetEvent()(int){
|
|
return tle.Event
|
|
}
|
|
|
|
// 人员组调度事件对象定义
|
|
type PersonGrpEvent struct {
|
|
TriggerTime time.Time
|
|
EventType int
|
|
Event int
|
|
PersonGrpNr int
|
|
}
|
|
func(pge PersonGrpEvent)GetEventTime()(time.Time){
|
|
return pge.TriggerTime
|
|
}
|
|
func(pge PersonGrpEvent)GetEventType()(int){
|
|
return pge.EventType
|
|
}
|
|
func(pge PersonGrpEvent)GetEvent()(int){
|
|
return pge.Event
|
|
}
|
|
|
|
// 人员调度事件对象定义
|
|
type PersonEvent struct {
|
|
TriggerTime time.Time
|
|
EventType int
|
|
Event int
|
|
PersonNr int
|
|
}
|
|
func(poe PersonEvent)GetEventTime()(time.Time){
|
|
return poe.TriggerTime
|
|
}
|
|
func(poe PersonEvent)GetEventType()(int){
|
|
return poe.EventType
|
|
}
|
|
func(poe PersonEvent)GetEvent()(int){
|
|
return poe.Event
|
|
}
|
|
|
|
// 物料调度事件对象定义
|
|
type ArticleEvent struct {
|
|
TriggerTime time.Time
|
|
EventType int
|
|
Event int
|
|
ArtId string
|
|
}
|
|
func(ae ArticleEvent)GetEventTime()(time.Time){
|
|
return ae.TriggerTime
|
|
}
|
|
func(ae ArticleEvent)GetEventType()(int){
|
|
return ae.EventType
|
|
}
|
|
func(ae ArticleEvent)GetEvent()(int){
|
|
return ae.Event
|
|
}
|
|
|
|
// 次要资源调度事件对象定义
|
|
type SecondaryResourceEvent struct {
|
|
TriggerTime time.Time
|
|
EventType int
|
|
Event int
|
|
ResourceNr int
|
|
}
|
|
func(sre SecondaryResourceEvent)GetEventTime()(time.Time){
|
|
return sre.TriggerTime
|
|
}
|
|
func(sre SecondaryResourceEvent)GetEventType()(int){
|
|
return sre.EventType
|
|
}
|
|
func(sre SecondaryResourceEvent)GetEvent()(int){
|
|
return sre.Event
|
|
}
|