|
|
@ -4,6 +4,7 @@ import ( |
|
|
|
"LAPP_GAAS_GFrame_BACKEND/db" |
|
|
|
"LAPP_GAAS_GFrame_BACKEND/utils" |
|
|
|
"LAPP_GAAS_GFrame_BACKEND/web/middleware/glog" |
|
|
|
"github.com/go-xorm/xorm" |
|
|
|
"context" |
|
|
|
"errors" |
|
|
|
"fmt" |
|
|
@ -82,24 +83,91 @@ func (t *PmWo) Add() error { |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
//增
|
|
|
|
func (t *PmWo) AddSession(session *xorm.Session) error { |
|
|
|
count := new(PmWo) |
|
|
|
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 = session.Table("pm_wo").Insert(t) |
|
|
|
|
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
return nil |
|
|
|
} |
|
|
|
|
|
|
|
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 |
|
|
|
} |
|
|
|
|
|
|
|
//删
|
|
|
@ -420,7 +488,7 @@ func (t *PmWo) CreateOrder() { |
|
|
|
query = query.Join("INNER", "pm_template_servicelst", "pm_template.finr = pm_template_servicelst.finr and pm_template.maintemplatenr = pm_template_servicelst.maintemplatenr") |
|
|
|
query = query.Join("INNER", "pm_service", "pm_service.finr = pm_template_servicelst.finr and pm_service.mainserviceid = pm_template_servicelst.mainservicenr") |
|
|
|
|
|
|
|
query = query.Where("pm_asset.finr = ? and pm_service.schedtype = ?", t.Finr,"AUTO") |
|
|
|
query = query.Where("pm_asset.finr = ? and pm_service.schedtype = ?", t.Finr, "AUTO") |
|
|
|
err := query.Find(&data) |
|
|
|
if err != nil { |
|
|
|
return |
|
|
|