From cd1148badc87bcb44a334f53f45ff7ab5b62d135 Mon Sep 17 00:00:00 2001 From: louwenzhi Date: Fri, 6 Aug 2021 13:02:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=8B=E5=8A=A8=E5=88=9B=E5=BB=BA=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4=E5=B7=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/models/pm_wo_model.go | 81 +++++++++++++++++++++++++++++++-------- 1 file changed, 65 insertions(+), 16 deletions(-) diff --git a/web/models/pm_wo_model.go b/web/models/pm_wo_model.go index 9ec3c1c..8dc418c 100644 --- a/web/models/pm_wo_model.go +++ b/web/models/pm_wo_model.go @@ -9,6 +9,7 @@ import ( "strings" "time" "xorm.io/core" + "github.com/go-xorm/xorm" ) type PmWo struct { @@ -61,17 +62,16 @@ func (t *PmWo) Clipped() { } //增 -func (t *PmWo) Add() error { - e := db.Eloquent.Master() +func (t *PmWo) AddSession(session *xorm.Session) error { count := new(PmWo) - affw, err := e.Table("pm_wo").ID(core.PK{t.Finr, t.Maintwoid}).Count(count) + affw, err := session.Table("pm_wo").ID(core.PK{t.Finr, t.Maintwoid}).Count(count) if err != nil { return err } if affw > 0 { return errors.New("数据已经存在!") } - _, err = e.Table("pm_wo").Insert(t) + _, err = session.Table("pm_wo").Insert(t) if err != nil { return err @@ -80,23 +80,72 @@ func (t *PmWo) Add() error { } func (t *PmWo) InsertOne() error { + engine := db.Eloquent.Master() + session := engine.NewSession() + defer session.Close() + // add Begin() before any action + err := session.Begin() + if err != nil { + return err + } now := time.Now() - today := now.Format("20060102") - nowTime := now.Format("20060102150405") snr := new(Snrtab) - snr.Finr = 100 - woid, err := snr.GetNextSnr("WOID") + snr.Finr = t.Finr + //生成ID + woid, err := snr.GetNextSnrWithSession(session, "WOID") if err != nil { + session.Rollback() return errors.New("生成Maintwoid出错:" + err.Error()) } - t.Maintwoid = woid - t.Status = 26 - t.Plbegdat = today - t.Schedbegtime = nowTime - t.Schedendtime = nowTime - t.Credatuz = nowTime - t.Lastmodif = nowTime - return t.Add() + //符合逻辑生成维护工单 + pm := new(PmWo) + pm.Finr = t.Finr + pm.Maintwoid = woid + pm.Mainservicenr = t.Mainservicenr + pm.Descr = t.Descr + pm.Status = 26 + pm.Priority = t.Priority + pm.Assetid = t.Assetid + pm.Plbegdat = utils.TimeFormat(now, "yyyyMMdd") + pm.Schedbegtime = utils.TimeFormat(now, "yyyyMMddHHmmss") + pm.Schedendtime = utils.TimeFormat(now, "yyyyMMddHHmmss") + pm.Mainttype = t.Mainttype + pm.Credatuz = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss") + pm.Lastmodif = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss") + err = pm.AddSession(session) + if err != nil { + session.Rollback() + return err + } + me := new(PmServiceAttrlst) + me.Finr = t.Finr + me.Mainserviceid = t.Mainservicenr + data, err := me.SelectAll() + if err != nil { + session.Rollback() + return err + } + //生成属性 + for _, v := range data { + at := new(PmWoAttrlst) + at.Finr = v.Finr + at.Descr = v.Descr + at.Mainservicenr = v.Mainserviceid + at.Maintwoid = woid + at.Pos = v.Pos + at.Parameter = v.Parameter + at.Paravalue = v.Paravalue + at.Attrnr = v.Attrnr + at.Credatuz = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss") + at.Lastmodif = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss") + err := at.AddSession(session) + if err != nil { + session.Rollback() + return err + } + } + session.Commit() + return nil } //删