|
|
@ -947,7 +947,7 @@ func (self *PackOrderServiceImplement) IsCreatePackOrder(user *models.Usertab, o |
|
|
|
* @Reference LAPP_GAAS_GFrame_BACKEND/services/log/PackOrderService.SelectTemplates |
|
|
|
* |
|
|
|
******************************************************************************/ |
|
|
|
func (self *PackOrderServiceImplement) SelectTemplates(user *models.Usertab, orderId string) ([]model.PackTemplate, error) { |
|
|
|
func (self *PackOrderServiceImplement) SelectTemplates(user *models.Usertab, orderId string) (*model.CreatePackOrderInfo, error) { |
|
|
|
|
|
|
|
grmi.Log(user, "/services/log/implments/PackOrder.service.impl.go", "SelectTemplates", "查询可用模板") |
|
|
|
|
|
|
@ -989,9 +989,87 @@ func (self *PackOrderServiceImplement) SelectTemplates(user *models.Usertab, ord |
|
|
|
if err != nil { |
|
|
|
return nil, grmi.NewBusinessError("没找到关联的包装单模板!") |
|
|
|
} |
|
|
|
return packTemplants, nil |
|
|
|
|
|
|
|
//如果只有一个模板那么自动创建
|
|
|
|
if len(packTemplants) == 1{ |
|
|
|
//开启session
|
|
|
|
packsession := engine.NewSession() |
|
|
|
defer packsession.Close() |
|
|
|
//开启事务
|
|
|
|
err = packsession.Begin() |
|
|
|
if err != nil { |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
//生成流水号
|
|
|
|
packTemplate := packTemplants[0] |
|
|
|
snr := new(models.Snrtab) |
|
|
|
snr.Finr = user.Pid |
|
|
|
packOrderId, err := snr.GetNextSnr("PackOrder") |
|
|
|
if err != nil { |
|
|
|
packsession.Rollback() |
|
|
|
return nil, grmi.NewBusinessError("生成包装流水号失败!") |
|
|
|
} |
|
|
|
packTemplateItemlstDAO := dal.NewPackTemplateItemlstDAO(session, user.Pid, user.Userid) |
|
|
|
|
|
|
|
packTemplateItems, err := packTemplateItemlstDAO.Select([]grmi.Predicate{ |
|
|
|
meta.PackTemplateItemlst_PackTemplateId.NewPredicate(grmi.Equal, packTemplate.PackTemplateId), |
|
|
|
}, nil) |
|
|
|
if err != nil { |
|
|
|
packsession.Rollback() |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
packOrderDAO := dal.NewPackOrderDAO(session, user.Pid, user.Userid) |
|
|
|
err = packOrderDAO.InsertOne(&model.PackOrder{ |
|
|
|
PlantNr: packTemplate.PlantNr, |
|
|
|
PackOrderId: packOrderId, |
|
|
|
Status: bmodel.PACK_STATUS_RELEASED, |
|
|
|
PackTemplateId: packTemplate.PackTemplateId, |
|
|
|
PackTypeId: packTemplate.PackTypeId, |
|
|
|
MaterialId: packTemplate.MaterialId, |
|
|
|
OpenTime: grmi.DateTime(time.Now()), |
|
|
|
PlanQty: float64(packTemplate.PlanQty), |
|
|
|
}) |
|
|
|
if err != nil { |
|
|
|
packsession.Rollback() |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
items := make([]*model.PackOrderItemlst, 0) |
|
|
|
for _, packTemplateItem := range packTemplateItems { |
|
|
|
items = append(items, &model.PackOrderItemlst{ |
|
|
|
PlantNr: packTemplateItem.PlantNr, |
|
|
|
PackOrderId: packOrderId, |
|
|
|
Pos: packTemplateItem.Pos, |
|
|
|
PosCode: packTemplateItem.PosCode, |
|
|
|
MaterialId: packTemplateItem.MaterialId, |
|
|
|
PlanQty: float64(packTemplateItem.PlanQty), |
|
|
|
ActQty: 0, |
|
|
|
Status: bmodel.PACK_STATUS_RELEASED, |
|
|
|
Seq: packTemplateItem.Seq, |
|
|
|
}) |
|
|
|
} |
|
|
|
packOrderItemlstDAO := dal.NewPackOrderItemlstDAO(session, user.Pid, user.Userid) |
|
|
|
for _, item := range items { |
|
|
|
err = packOrderItemlstDAO.InsertOne(item) |
|
|
|
if err != nil { |
|
|
|
packsession.Rollback() |
|
|
|
return nil, err |
|
|
|
} |
|
|
|
} |
|
|
|
packsession.Commit() |
|
|
|
result := new(model.CreatePackOrderInfo) |
|
|
|
result.InfoType = model.PackOrder_Success |
|
|
|
result.Message = "成功创建包装单!" |
|
|
|
result.Items = packTemplants |
|
|
|
return result, nil |
|
|
|
} |
|
|
|
result := new(model.CreatePackOrderInfo) |
|
|
|
result.InfoType = model.PackOrder_Doing |
|
|
|
result.Message = "手动创建包装单!" |
|
|
|
result.Items = packTemplants |
|
|
|
return result, nil |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/****************************************************************************** |
|
|
|
* |
|
|
|
* @Function Name : CreatePackOrderByTemplate |
|
|
|