From ca5b03f7e43e82e1240088a764ae3134ba059b01 Mon Sep 17 00:00:00 2001 From: louwenzhi Date: Tue, 29 Jun 2021 09:36:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=89=8B=E5=8A=A8=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E5=8C=85=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/log/PackOrder.service.go | 2 +- .../log/implments/PackOrder.service.impl.go | 82 ++++++++++++++++++- web/controllers/log/PackOrder.rest.go | 2 +- 3 files changed, 82 insertions(+), 4 deletions(-) diff --git a/services/log/PackOrder.service.go b/services/log/PackOrder.service.go index 575d172..f69093f 100644 --- a/services/log/PackOrder.service.go +++ b/services/log/PackOrder.service.go @@ -299,7 +299,7 @@ type PackOrderService interface { * @Date : 2021-06-02 * ******************************************************************************/ - SelectTemplates(user *models.Usertab, orderId string) ([]model.PackTemplate, error) + SelectTemplates(user *models.Usertab, orderId string) (*model.CreatePackOrderInfo, error) /****************************************************************************** * * @Function Name : CreatePackOrderByTemplate diff --git a/services/log/implments/PackOrder.service.impl.go b/services/log/implments/PackOrder.service.impl.go index 3cb96a5..cdfe1c7 100644 --- a/services/log/implments/PackOrder.service.impl.go +++ b/services/log/implments/PackOrder.service.impl.go @@ -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 diff --git a/web/controllers/log/PackOrder.rest.go b/web/controllers/log/PackOrder.rest.go index 3cad673..fcd5bd2 100644 --- a/web/controllers/log/PackOrder.rest.go +++ b/web/controllers/log/PackOrder.rest.go @@ -457,7 +457,7 @@ func RegisterCheckPackOrder(party router.Party, path string, method func(*models * @Date : 2021-03-18 22:49:12 * ******************************************************************************/ -func RegisterCheckPackOrderTemplate(party router.Party, path string, method func(*models.Usertab, string) ([]model.PackTemplate, error)) { +func RegisterCheckPackOrderTemplate(party router.Party, path string, method func(*models.Usertab, string) (*model.CreatePackOrderInfo, error)) { party.Get(path+"/{orderId:string}", func(ctx iris.Context) { user, ok := jwts.ParseToken(ctx)