From d8a335e8ac9a7701b02b1afc9e8323539c006092 Mon Sep 17 00:00:00 2001 From: zhangxin Date: Thu, 28 Oct 2021 09:56:43 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E7=9A=84=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E6=B5=81=E6=B0=B4=E5=8F=B7=E4=BD=BF=E7=94=A8article=E7=9A=84pa?= =?UTF-8?q?rtId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../om/implments/SerialOrder.service.impl.go | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/services/om/implments/SerialOrder.service.impl.go b/services/om/implments/SerialOrder.service.impl.go index d3a2af4..0260d3c 100644 --- a/services/om/implments/SerialOrder.service.impl.go +++ b/services/om/implments/SerialOrder.service.impl.go @@ -3,6 +3,7 @@ package implments import ( + baseDal "LAPP_GAAS_GFrame_BACKEND/dao/base" dal "LAPP_GAAS_GFrame_BACKEND/dao/om" "LAPP_GAAS_GFrame_BACKEND/db" "LAPP_GAAS_GFrame_BACKEND/grmi" @@ -350,7 +351,7 @@ func (impl *SerialOrderServiceImplement) InsertFromWorkOrder(user *models.Userta workOrderStatusDao := dal.NewWorkOrderStatusDAO(session, user.Pid, user.Userid) workOrderStatusRecDao := dal.NewWorkOrderStatusRecLstDAO(session, user.Pid, user.Userid) serialOrderStatusDao := dal.NewSerialOrderStatusDAO(session, user.Pid, user.Userid) - + articleDao := baseDal.NewArticleDAO(session, user.Pid, user.Userid) for _, workOrderId := range workOrderIds { workOrder, err := workOrderDao.SelectOne(workOrderId) if err != nil { @@ -389,6 +390,7 @@ func (impl *SerialOrderServiceImplement) InsertFromWorkOrder(user *models.Userta } else { perDuration = endTime.Sub(now).Seconds() / workOrder.PlanQty } + artMap := make(map[string]*baseModel.Article) for i := 0; i < int(workOrder.PlanQty); i++ { log.Debug("InsertFromWorkOrder for work order planQty") snr := new(models.Snrtab) @@ -400,7 +402,21 @@ func (impl *SerialOrderServiceImplement) InsertFromWorkOrder(user *models.Userta return nil, err } planStartDate := workOrder.PlanStartDate.Restore().Format("20060102") - prefix := workOrder.ArtId + baseModel.PlantName + planStartDate + article, exist := artMap[workOrder.ArtId] + if !exist { + article, err = articleDao.SelectOne(workOrder.ArtId) + if err != nil { + _ = session.Rollback() + log.Error("InsertFromWorkOrder 获取物料数据失败, error: " + err.Error()) + return nil, err + } + if article == nil { + _ = session.Rollback() + log.Error("InsertFromWorkOrder , 工单物料不存在, 物料ID:"+ workOrder.ArtId) + return nil, err + } + } + prefix := article.PartId + baseModel.PlantName + planStartDate serialOrderId := strings.Replace(serialNum, "SO-", prefix, 1) var planEndTime time.Time if perDuration != 0 {