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"))
|
|
}
|
|
}
|
|
}
|