package service import ( "fmt" "leit.com/aps_engine/models" "time" ) // 订单对象 type OrderSrv struct{ OrderId string // 订单号 ProjectId string // 项目ID EarliestStartDate time.Time // 最早开始日期 LatestEndDate time.Time // 最晚结束日期,交货期 PlanStartTime time.Time // 计划开始时间 PlanEndTime time.Time // 计划结束时间 OperationArray []OperationSrv // 工序列表 OperationDict map[string]*OperationSrv // 工序对象字典,键值为:工序号-拆分号 Ordtab models.OmWorkorder } // 初始化,传入订单记录 func(os *OrderSrv)Init(){ os.OperationArray = []OperationSrv{} os.OperationDict = make(map[string]*OperationSrv) } // 创建订单对象 func(os *OrderSrv)Create(ordtab models.OmWorkorder){ var ( optab models.OmWooperation opsrv *OperationSrv ) os.OrderId = ordtab.Workorderid os.ProjectId = ordtab.Projectid os.EarliestStartDate= ordtab.Planstartdate os.LatestEndDate = ordtab.Planenddate os.OperationArray = []OperationSrv{} os.OperationDict = make(map[string]*OperationSrv) os.Ordtab = ordtab // 遍历工序 for _, optab = range ordtab.Operationlst { opsrv = &OperationSrv{} opsrv.Create(optab) os.OperationDict[opsrv.GetOpKey()] = opsrv } } // 打印订单工序的计划结果 func(os *OrderSrv)Print(){ fmt.Println("生产订单:",os.OrderId) for _, opa := range os.OperationArray { if op, ok := os.OperationDict[opa.GetOpKey()]; ok { fmt.Println("工序号:",op.OperationNr,"工位:",op.PlanWorkPlaceNr,"工时:",op.PlanDuration.Hours(), " 工序开始:",op.PlanStartTime.Format("2006-01-02 15:04:05"), " 工序结束:",op.PlanEndTime.Format("2006-01-02 15:04:05")) } } }