From 8ac6b65779e0c2268933470d6b90d0d5ba24fc8a Mon Sep 17 00:00:00 2001 From: louwenzhi Date: Thu, 29 Apr 2021 16:08:07 +0800 Subject: [PATCH] =?UTF-8?q?seq=20=20=E4=BA=8B=E5=8A=A1=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- calloff/Callofftask.go | 17 +++++++++++++++-- db/Pln_custorder.go | 4 ++-- seq/Seqtask.go | 5 +++++ service/Workline.go | 6 +++++- 4 files changed, 27 insertions(+), 5 deletions(-) diff --git a/calloff/Callofftask.go b/calloff/Callofftask.go index c45e6c2..379ba2b 100644 --- a/calloff/Callofftask.go +++ b/calloff/Callofftask.go @@ -117,6 +117,7 @@ func ParseCalloffOrder() { cflandtablst2 []db.Pln_calloffdata_landing cftab db.Pln_calloffdata_landing cftablst []db.Pln_calloffdata_landing + edictrltab db.Edi_control bl_co service.BL_CustOrder bl_prevco service.BL_CustOrder wotab db.Pln_workorder @@ -142,9 +143,15 @@ func ParseCalloffOrder() { cfProj.Projecttab = projtablst[i] cfProj.Projectid = projtablst[i].Projectid glog.InfoExtln("CALLOFF-Debug", "----------------循环读取Calloff项目", projtablst[i].Projectid, "----------------") - fmt.Println("Ready to load data for project:", projtablst[i].Projectid) + + // 判断calloff是否已暂停 + edictrltab = db.Edi_control{Projectid: projtablst[i].Projectid, Ediid: "CALLOFF"} + if edictrltab, err = edictrltab.SelectOne(); edictrltab.Enabled <= 0 { + continue + } // 加载项目主数据 + fmt.Println("Ready to load data for project:", projtablst[i].Projectid) if err = cfProj.LoadMasterData(); err != nil { glog.InfoExtln("读取Calloff信息并生成发运包装", "Failed to load project master data due to: !", err) return @@ -155,9 +162,15 @@ func ParseCalloffOrder() { glog.InfoExtln("读取Calloff信息并生成发运包装", "Failed to get unparsed calloff landding data due to:", err) return } + // 遍历未处理的Calloff消息 for j = 0; j < len(cflandtablst); j++ { - fmt.Println("calloff groutine lock success!") + // 判断calloff是否已暂停 + edictrltab = db.Edi_control{Projectid: projtablst[i].Projectid, Ediid: "CALLOFF"} + if edictrltab, err = edictrltab.SelectOne(); edictrltab.Enabled <= 0 { + break + } + errorlst = []db.Pln_calloff_errorlst{} glog.InfoExtln("CALLOFF-Debug", j, "-- calloff 解析请求", cflandtablst[j]) // 读取项目各零件族解析的最大CheckSequence号 diff --git a/db/Pln_custorder.go b/db/Pln_custorder.go index 4d277a9..cdd18c4 100644 --- a/db/Pln_custorder.go +++ b/db/Pln_custorder.go @@ -267,8 +267,8 @@ func (t *Pln_custorder) GetByOemOrderNr() (exist bool, cotab Pln_custorder, err ) e := G_DbEngine - if err = e.Where("finr = ? and oemordernr = ? and partfamilyid = ? and projnr = ?", - G_FINR, t.Oemordernr, t.Partfamilyid, t.Projnr).Desc("credatuz").Limit(1, 0).Find(&cotablst); err != nil { + if err = e.Where("finr = ? and oemordernr = ? and partfamilyid = ? and projnr = ? and orderinfo != ?", + G_FINR, t.Oemordernr, t.Partfamilyid, t.Projnr, "REO").Desc("credatuz").Limit(1, 0).Find(&cotablst); err != nil { return } diff --git a/seq/Seqtask.go b/seq/Seqtask.go index 08f0a58..db08289 100644 --- a/seq/Seqtask.go +++ b/seq/Seqtask.go @@ -228,6 +228,11 @@ func ParseSeqOrder() { //开启事务 session := db.G_DbEngine.NewSession() + if err = session.Begin(); err != nil { + session.Close() + etcd.G_jobLock.UnLock() + return + } // 基于SEQ保存客户订单版本信息(用于追溯) if err = bl_co.SaveSeqCOVSession(session, seqlandtablst[j]); err != nil { glog.InfoExtln("解析并读取SEQ", "Failed to insert SEQ cov data for custorder due to: ", bl_co.Custordernr, err) diff --git a/service/Workline.go b/service/Workline.go index c296be7..018f528 100644 --- a/service/Workline.go +++ b/service/Workline.go @@ -1111,7 +1111,11 @@ LOOPTIME: } //开启事务 session := db.G_DbEngine.NewSession() - + if err = session.Begin(); err != nil { + session.Close() + etcd.G_jobLock.UnLock() + return + } wotab = db.Pln_workorder{} wotab = bl_wolst[i].Workordertab wotab.Schedseq = startseq