|
@ -304,7 +304,6 @@ func (impl *CustOrderServiceImplement) ReleaseCustOrder(user *global.User, custO |
|
|
// 每个总成生产的时间
|
|
|
// 每个总成生产的时间
|
|
|
duration := custOrderData.PlanEndTime.Restore().Sub(custOrderData.PlanStartTime.Restore()) |
|
|
duration := custOrderData.PlanEndTime.Restore().Sub(custOrderData.PlanStartTime.Restore()) |
|
|
totalQty := custOrderData.PlanQty * len(productLi) |
|
|
totalQty := custOrderData.PlanQty * len(productLi) |
|
|
var current int |
|
|
|
|
|
perDuration := duration.Seconds() / float64(totalQty) |
|
|
perDuration := duration.Seconds() / float64(totalQty) |
|
|
// 产线组与所属产线的MAP数据结构
|
|
|
// 产线组与所属产线的MAP数据结构
|
|
|
workLineGroupMap := make(map[string]map[string]interface{}) |
|
|
workLineGroupMap := make(map[string]map[string]interface{}) |
|
@ -338,7 +337,7 @@ func (impl *CustOrderServiceImplement) ReleaseCustOrder(user *global.User, custO |
|
|
writeLabelDetailLi := make([]baseModel.LabelDetail, 0) |
|
|
writeLabelDetailLi := make([]baseModel.LabelDetail, 0) |
|
|
syncKey := custOrderData.CustOrderId + "-" + strconv.Itoa(custOrderData.OrderQty.ReleasedQty) |
|
|
syncKey := custOrderData.CustOrderId + "-" + strconv.Itoa(custOrderData.OrderQty.ReleasedQty) |
|
|
waitReleaseSerialOrderLi := make([]omModel.SerialOrder, 0, len(productLi)) |
|
|
waitReleaseSerialOrderLi := make([]omModel.SerialOrder, 0, len(productLi)) |
|
|
for _, product := range productLi { |
|
|
|
|
|
|
|
|
for index, product := range productLi { |
|
|
var serialOrder omModel.SerialOrder |
|
|
var serialOrder omModel.SerialOrder |
|
|
orderCraft, exist := productCraftMap[product.ProductId] |
|
|
orderCraft, exist := productCraftMap[product.ProductId] |
|
|
if !exist { |
|
|
if !exist { |
|
@ -372,9 +371,9 @@ func (impl *CustOrderServiceImplement) ReleaseCustOrder(user *global.User, custO |
|
|
} else { |
|
|
} else { |
|
|
resourceId = product.DefaultWorkLineId |
|
|
resourceId = product.DefaultWorkLineId |
|
|
} |
|
|
} |
|
|
planStartTime := custOrderData.PlanStartTime.Restore().Add(time.Duration(int(perDuration)*current) * time.Second) |
|
|
|
|
|
planEndTime := custOrderData.PlanStartTime.Restore().Add(time.Duration(int(perDuration)*(current+1)) * time.Second) |
|
|
|
|
|
current++ |
|
|
|
|
|
|
|
|
currentIndex := custOrderData.OrderQty.ReleasedQty * len(productLi) + index |
|
|
|
|
|
planStartTime := custOrderData.PlanStartTime.Restore().Add(time.Duration(int(perDuration)*currentIndex) * time.Second) |
|
|
|
|
|
planEndTime := custOrderData.PlanStartTime.Restore().Add(time.Duration(int(perDuration)*(currentIndex+1)) * time.Second) |
|
|
planStartDate := grmi.Date(planStartTime) |
|
|
planStartDate := grmi.Date(planStartTime) |
|
|
planEndDate := grmi.Date(planEndTime) |
|
|
planEndDate := grmi.Date(planEndTime) |
|
|
serialOrderId := product.MachineCode + "$serialNumber$" + product.ProductType + product.ColorValue |
|
|
serialOrderId := product.MachineCode + "$serialNumber$" + product.ProductType + product.ColorValue |
|
@ -383,7 +382,6 @@ func (impl *CustOrderServiceImplement) ReleaseCustOrder(user *global.User, custO |
|
|
return grmi.NewBusinessError("通过时间获取工单调度Key失败, error:" + err.Error()) |
|
|
return grmi.NewBusinessError("通过时间获取工单调度Key失败, error:" + err.Error()) |
|
|
} |
|
|
} |
|
|
var dealedSchedKey = int64(timeInt * 100) |
|
|
var dealedSchedKey = int64(timeInt * 100) |
|
|
|
|
|
|
|
|
serialOrder = omModel.SerialOrder{ |
|
|
serialOrder = omModel.SerialOrder{ |
|
|
SerialOrderId: serialOrderId, |
|
|
SerialOrderId: serialOrderId, |
|
|
ArtId: product.ProductId, |
|
|
ArtId: product.ProductId, |
|
@ -427,7 +425,7 @@ func (impl *CustOrderServiceImplement) ReleaseCustOrder(user *global.User, custO |
|
|
copy(orderCraft.SerialOrderOPDetailLi, serialOrder.SerialOrderOPDetailLi) |
|
|
copy(orderCraft.SerialOrderOPDetailLi, serialOrder.SerialOrderOPDetailLi) |
|
|
copy(orderCraft.LabelHeadLi, serialOrder.LabelHeadLi) |
|
|
copy(orderCraft.LabelHeadLi, serialOrder.LabelHeadLi) |
|
|
copy(orderCraft.LabelDetailLi, serialOrder.LabelDetailLi) |
|
|
copy(orderCraft.LabelDetailLi, serialOrder.LabelDetailLi) |
|
|
for _, preOrder := range orderCraft.PreOrderLi { |
|
|
|
|
|
|
|
|
for _, preOrder := range serialOrder.PreOrderLi { |
|
|
newPreOrder := preOrder |
|
|
newPreOrder := preOrder |
|
|
newPreOrder.SerialOrderPOLstLi = make([]omModel.SerialOrderPOLst, len(preOrder.SerialOrderPOLstLi), len(preOrder.SerialOrderPOLstLi)) |
|
|
newPreOrder.SerialOrderPOLstLi = make([]omModel.SerialOrderPOLst, len(preOrder.SerialOrderPOLstLi), len(preOrder.SerialOrderPOLstLi)) |
|
|
newPreOrder.SerialOrderStepLstLi = make([]omModel.SerialOrderStepLst, len(preOrder.SerialOrderStepLstLi), len(preOrder.SerialOrderStepLstLi)) |
|
|
newPreOrder.SerialOrderStepLstLi = make([]omModel.SerialOrderStepLst, len(preOrder.SerialOrderStepLstLi), len(preOrder.SerialOrderStepLstLi)) |
|
@ -439,11 +437,28 @@ func (impl *CustOrderServiceImplement) ReleaseCustOrder(user *global.User, custO |
|
|
copy(newPreOrder.SerialOrderOPDetailLi, preOrder.SerialOrderOPDetailLi) |
|
|
copy(newPreOrder.SerialOrderOPDetailLi, preOrder.SerialOrderOPDetailLi) |
|
|
copy(newPreOrder.LabelHeadLi, preOrder.LabelHeadLi) |
|
|
copy(newPreOrder.LabelHeadLi, preOrder.LabelHeadLi) |
|
|
copy(newPreOrder.LabelDetailLi, preOrder.LabelDetailLi) |
|
|
copy(newPreOrder.LabelDetailLi, preOrder.LabelDetailLi) |
|
|
serialOrder.PreOrderLi = append(serialOrder.PreOrderLi, newPreOrder) |
|
|
|
|
|
|
|
|
orderCraft.PreOrderLi = append(orderCraft.PreOrderLi, newPreOrder) |
|
|
} |
|
|
} |
|
|
productCraftMap[serialOrder.ArtId] = orderCraft |
|
|
productCraftMap[serialOrder.ArtId] = orderCraft |
|
|
} else { |
|
|
} else { |
|
|
serialOrder = orderCraft |
|
|
serialOrder = orderCraft |
|
|
|
|
|
currentIndex := custOrderData.OrderQty.ReleasedQty * len(productLi) + index |
|
|
|
|
|
planStartTime := custOrderData.PlanStartTime.Restore().Add(time.Duration(int(perDuration)*currentIndex) * time.Second) |
|
|
|
|
|
planEndTime := custOrderData.PlanStartTime.Restore().Add(time.Duration(int(perDuration)*(currentIndex+1)) * time.Second) |
|
|
|
|
|
planStartDate := grmi.Date(planStartTime) |
|
|
|
|
|
planEndDate := grmi.Date(planEndTime) |
|
|
|
|
|
timeInt, err := strconv.Atoi(planStartTime.Format("060102150405")) |
|
|
|
|
|
if err != nil { |
|
|
|
|
|
return grmi.NewBusinessError("通过时间获取工单调度Key失败, error:" + err.Error()) |
|
|
|
|
|
} |
|
|
|
|
|
var dealedSchedKey = int64(timeInt * 100) |
|
|
|
|
|
serialOrder.SyncKey = syncKey |
|
|
|
|
|
serialOrder.PlanStartTime = grmi.DateTime(planStartTime) |
|
|
|
|
|
serialOrder.PlanEndTime = grmi.DateTime(planEndTime) |
|
|
|
|
|
serialOrder.PlanStartDate = planStartDate |
|
|
|
|
|
serialOrder.PlanEndDate = planEndDate |
|
|
|
|
|
serialOrder.SchedKey = dealedSchedKey |
|
|
|
|
|
serialOrder.ArtId = product.ProductId |
|
|
serialOrder.PreOrderLi = make([]omModel.SerialOrder, 0, len(orderCraft.PreOrderLi)) |
|
|
serialOrder.PreOrderLi = make([]omModel.SerialOrder, 0, len(orderCraft.PreOrderLi)) |
|
|
serialOrder.SerialOrderPOLstLi = make([]omModel.SerialOrderPOLst, len(orderCraft.SerialOrderPOLstLi), len(orderCraft.SerialOrderPOLstLi)) |
|
|
serialOrder.SerialOrderPOLstLi = make([]omModel.SerialOrderPOLst, len(orderCraft.SerialOrderPOLstLi), len(orderCraft.SerialOrderPOLstLi)) |
|
|
serialOrder.SerialOrderStepLstLi = make([]omModel.SerialOrderStepLst, len(orderCraft.SerialOrderStepLstLi), len(orderCraft.SerialOrderStepLstLi)) |
|
|
serialOrder.SerialOrderStepLstLi = make([]omModel.SerialOrderStepLst, len(orderCraft.SerialOrderStepLstLi), len(orderCraft.SerialOrderStepLstLi)) |
|
@ -457,6 +472,14 @@ func (impl *CustOrderServiceImplement) ReleaseCustOrder(user *global.User, custO |
|
|
copy(serialOrder.LabelDetailLi, orderCraft.LabelDetailLi) |
|
|
copy(serialOrder.LabelDetailLi, orderCraft.LabelDetailLi) |
|
|
for _, preOrder := range orderCraft.PreOrderLi { |
|
|
for _, preOrder := range orderCraft.PreOrderLi { |
|
|
newPreOrder := preOrder |
|
|
newPreOrder := preOrder |
|
|
|
|
|
newPreOrder.MainOrderId = serialOrder.SerialOrderId |
|
|
|
|
|
newPreOrder.SyncKey = serialOrder.SyncKey |
|
|
|
|
|
newPreOrder.SchedKey = serialOrder.SchedKey |
|
|
|
|
|
newPreOrder.PreSchedKey = serialOrder.SchedKey |
|
|
|
|
|
newPreOrder.PlanStartTime = serialOrder.PlanStartTime |
|
|
|
|
|
newPreOrder.PlanEndTime = serialOrder.PlanEndTime |
|
|
|
|
|
newPreOrder.PlanStartDate = serialOrder.PlanStartDate |
|
|
|
|
|
newPreOrder.PlanEndDate = serialOrder.PlanEndDate |
|
|
newPreOrder.SerialOrderPOLstLi = make([]omModel.SerialOrderPOLst, len(preOrder.SerialOrderPOLstLi), len(preOrder.SerialOrderPOLstLi)) |
|
|
newPreOrder.SerialOrderPOLstLi = make([]omModel.SerialOrderPOLst, len(preOrder.SerialOrderPOLstLi), len(preOrder.SerialOrderPOLstLi)) |
|
|
newPreOrder.SerialOrderStepLstLi = make([]omModel.SerialOrderStepLst, len(preOrder.SerialOrderStepLstLi), len(preOrder.SerialOrderStepLstLi)) |
|
|
newPreOrder.SerialOrderStepLstLi = make([]omModel.SerialOrderStepLst, len(preOrder.SerialOrderStepLstLi), len(preOrder.SerialOrderStepLstLi)) |
|
|
newPreOrder.SerialOrderOPDetailLi = make([]omModel.SerialOrderOPDetail, len(preOrder.SerialOrderOPDetailLi), len(preOrder.SerialOrderOPDetailLi)) |
|
|
newPreOrder.SerialOrderOPDetailLi = make([]omModel.SerialOrderOPDetail, len(preOrder.SerialOrderOPDetailLi), len(preOrder.SerialOrderOPDetailLi)) |
|
|