|
|
- package service
-
- import (
- "LAPP_AS/common"
- base_model "LAPP_AS/models/base"
- "fmt"
- "time"
- )
-
- // 工具类型资源对象
- type ToolSrv struct{
- ToolId string
- ToolGrpId string
- Status int // 可用状态
- UnAvailTimeLineArray []TimeLineSrv // 不可用时段
- WaitTaskArray []SchedTaskSrv // 任务等待队列
- SchedTaskArray []OperationSrv // 已计划任务队列
- ToolTab base_model.Tool
- }
-
- // 可选工具资源对象
- type OptionalToolSrv struct{
- ToolId string
- Priority int
- }
-
- // 初始化工具对象
- func(ts *ToolSrv)Init(tnr, tgnr string){
- ts.ToolId = tnr
- ts.ToolGrpId = tgnr
- ts.Status = common.RES_STATUS_AVAIL
- ts.UnAvailTimeLineArray = []TimeLineSrv{}
- ts.WaitTaskArray = []SchedTaskSrv{}
- ts.SchedTaskArray = []OperationSrv{}
- }
-
- // 创建工具对象
- func(ts *ToolSrv)Create(tooltab base_model.Tool){
- ts.ToolId = tooltab.ToolId
- ts.ToolGrpId = tooltab.ToolGrpId
- ts.ToolTab = tooltab
- ts.Status = common.RES_STATUS_AVAIL
- ts.UnAvailTimeLineArray = []TimeLineSrv{}
- ts.WaitTaskArray = []SchedTaskSrv{}
- ts.SchedTaskArray = []OperationSrv{}
- }
-
- // 获取工位状态可用事件
- func(ts *ToolSrv)GetAvailEvent(t time.Time)(SchedEvent){
- var(
- tevt ToolEvent
- )
-
- tevt = ToolEvent{TriggerTime: t, EventType: EVENT_OBJ_TOOL, Event: EVENT_TOOL_STATUS_AVAIL}
- tevt.ToolId = ts.ToolId
- return SchedEvent(tevt)
- }
-
- // 获取工位状态可用事件
- func(ts *ToolSrv)GetUnAvailEvent(t time.Time)(SchedEvent){
- var(
- tevt ToolEvent
- )
-
- tevt = ToolEvent{TriggerTime: t, EventType: EVENT_OBJ_TOOL, Event: EVENT_TOOL_STATUS_UNAVAIL}
- tevt.ToolId = ts.ToolId
- return SchedEvent(tevt)
- }
-
- // 打印工位的调度任务结果集
- func(ts *ToolSrv)Print(){
- fmt.Println("调度工具:",ts.ToolId)
- for idx, op := range ts.SchedTaskArray{
- if idx == 0 {
- fmt.Printf("|%s<--%s(%d)-->%s|",op.PlanStartTime.Format("01-02 15:04"),op.OrderId,op.OperationNr,op.PlanEndTime.Format("01-02 15:04"))
- }else{
- fmt.Printf("%s<--%s(%d)-->%s|",op.PlanStartTime.Format("01-02 15:04"),op.OrderId,op.OperationNr,op.PlanEndTime.Format("01-02 15:04"))
- }
- }
-
- fmt.Printf("\n")
- }
|