diff --git a/models/pm/Asset.model.go b/models/pm/Asset.model.go index f1101c5..a96002b 100644 --- a/models/pm/Asset.model.go +++ b/models/pm/Asset.model.go @@ -60,3 +60,9 @@ type Asset struct { func (self *Asset) GetKey() core.PK { return core.PK{self.PlantNr, self.AssetNr} } + + +type TemplateAsset struct { + AssetTemplateLst `xorm:"extends"` + Template `xorm:"extends"` +} \ No newline at end of file diff --git a/models/pm/TemplateServiceLst.model.go b/models/pm/TemplateServiceLst.model.go index 4fedb1c..40b606b 100644 --- a/models/pm/TemplateServiceLst.model.go +++ b/models/pm/TemplateServiceLst.model.go @@ -27,6 +27,7 @@ type TemplateServiceLst struct { LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"PM_TemplateServiceLst-LastModify"` LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"PM_TemplateServiceLst-LastUser"` CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"PM_TemplateServiceLst-CreateTime"` + Descr string `json:"PM_TemplateServiceLst-Descr" xorm:"-"` } /****************************************************************************** diff --git a/services/pm/implments/Asset.service.impl.go b/services/pm/implments/Asset.service.impl.go index 8a30f76..a28fff2 100644 --- a/services/pm/implments/Asset.service.impl.go +++ b/services/pm/implments/Asset.service.impl.go @@ -222,6 +222,43 @@ func (impl *AssetServiceImplement) SelectOne(user *global.User, assetNr int) (*m if err != nil { return nil, err } + if result == nil{ + return result, err + } + + var datalist []model.Template + var tem1 []model.Template + var tem2 []model.AssetTemplateLst + err = session.Table("PM_AssetTemplateLst").Find(&tem2) + if err != nil { + return result, err + } + err = session.Table("PM_Template").Find(&tem1) + if err != nil { + return result, err + } + + var Maintemplatenrs []int + for _, v := range tem1 { + for _, v2 := range tem2{ + if v.PlantNr == v2.PlantNr && v.MainTemplateNr == v2.MainTemplateNr{ + dataone := model.Template{} + dataone.MainTemplateNr = v2.MainTemplateNr + dataone.Descr = v.Descr + Maintemplatenrs = append(Maintemplatenrs, v2.MainTemplateNr) + datalist = append(datalist, dataone) + } + } + } + result.Valst = datalist + + var templatedata []model.Template + err = session.Table("PM_Template").NotIn("MainTemplateNr", Maintemplatenrs).Where("PlantNr = ?", result.PlantNr).Find(&templatedata) + if err != nil { + return result, err + } + result.UnValst = templatedata + return result, nil } diff --git a/services/pm/implments/Location.service.impl.go b/services/pm/implments/Location.service.impl.go index 29ec3ae..7ae95c7 100644 --- a/services/pm/implments/Location.service.impl.go +++ b/services/pm/implments/Location.service.impl.go @@ -189,8 +189,11 @@ func (impl *LocationServiceImplement) SelectOne(user *global.User, locaNr int) ( if err != nil { return result, err } - result.Valst = valst - result.UnValst = uvalst + if result!=nil{ + result.Valst = valst + result.UnValst = uvalst + } + return result, nil } diff --git a/services/pm/implments/Template.service.impl.go b/services/pm/implments/Template.service.impl.go index 54eaec0..60d987a 100644 --- a/services/pm/implments/Template.service.impl.go +++ b/services/pm/implments/Template.service.impl.go @@ -3,12 +3,14 @@ package implments import ( + baseDal "LAPP_ACURA_MOM_BACKEND/dao/base" dal "LAPP_ACURA_MOM_BACKEND/dao/pm" "LAPP_ACURA_MOM_BACKEND/db" "LAPP_ACURA_MOM_BACKEND/global" "LAPP_ACURA_MOM_BACKEND/grmi" meta "LAPP_ACURA_MOM_BACKEND/meta/pm" model "LAPP_ACURA_MOM_BACKEND/models/pm" + "LAPP_ACURA_MOM_BACKEND/utils" ) /****************************************************************************** @@ -95,15 +97,52 @@ func (impl *TemplateServiceImplement) InsertOne(user *global.User, entity *model engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() + err := session.Begin() + if err != nil { + return err + } dao := dal.NewTemplateDAO(session, user.PlantNr, user.UserId) record, err := dao.SelectOne(entity.MainTemplateNr) if err != nil { return err } if record != nil { + session.Rollback() return grmi.NewBusinessError("已经存在相同主键的记录!") } + snrDao := baseDal.NewSnrDAO(session, user.PlantNr, user.UserId) + Maintemplatenr, err := snrDao.GetNextSnr("Templateid") + if err != nil { + session.Rollback() + return err + } + entity.MainTemplateNr = utils.ValueToInt(Maintemplatenr,0) err = dao.InsertOne(entity) + if err != nil { + session.Rollback() + return err + } + + //批量插入 + alldata := make([]model.TemplateServiceLst, 0) + for k, v := range entity.Valst { + one := model.TemplateServiceLst{} + one.PlantNr = entity.PlantNr + one.Pos = k + 1 + one.Descr = v.Descr + one.MainTemplateNr = entity.MainTemplateNr + one.MainServiceNr = utils.ValueToInt(v.MainServiceNr, 0) + one.CreateTime = entity.CreateTime + one.LastUser = entity.LastUser + one.LastModify = entity.LastModify + alldata = append(alldata, one) + } + _, err = session.Table("PM_TemplateServiceLst").Insert(&alldata) + if err != nil { + session.Rollback() + return err + } + err = session.Commit() if err != nil { return err } @@ -122,6 +161,10 @@ func (impl *TemplateServiceImplement) DeleteOne(user *global.User, mainTemplateN engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() + err := session.Begin() + if err != nil { + return err + } dao := dal.NewTemplateDAO(session, user.PlantNr, user.UserId) record, err := dao.SelectOne(mainTemplateNr) if err != nil { @@ -131,6 +174,18 @@ func (impl *TemplateServiceImplement) DeleteOne(user *global.User, mainTemplateN return grmi.NewBusinessError("不存在指定记录!") } err = dao.DeleteOne(mainTemplateNr) + if err != nil { + session.Rollback() + return err + } + + dao_TemplateServiceLst := dal.NewTemplateServiceLstDAO(session, user.PlantNr, user.UserId) + err = dao_TemplateServiceLst.DeleteWhere([]grmi.Predicate{meta.TemplateServiceLst_PlantNr.NewPredicate(grmi.Equal, record.PlantNr), meta.TemplateServiceLst_MainTemplateNr.NewPredicate(grmi.Equal, record.MainTemplateNr)}) + if err != nil { + session.Rollback() + return err + } + err = session.Commit() if err != nil { return err } @@ -154,6 +209,45 @@ func (impl *TemplateServiceImplement) SelectOne(user *global.User, mainTemplateN if err != nil { return nil, err } + + if result == nil{ + return result, err + } + + var datalist []model.Service + var tem1 []model.Service + var tem2 []model.TemplateServiceLst + var maintemplatenrs []int + err = session.Table("PM_Service").Find(&tem1) + if err != nil { + return result, err + } + err = session.Table("PM_TemplateServiceLst").Find(&tem2) + if err != nil { + return result, err + } + + var Maintemplatenrs []int + for _, v := range tem1 { + for _, v2 := range tem2{ + if v.PlantNr == v2.PlantNr && v.MainServiceNr == v2.MainServiceNr{ + dataone := model.Service{} + dataone.MainServiceNr = v.MainServiceNr + dataone.Descr = v.Descr + maintemplatenrs = append(maintemplatenrs, v2.MainTemplateNr) + datalist = append(datalist, dataone) + } + } + } + result.Valst = datalist + + var templatedata []model.Service + err = session.Table("PM_Service").NotIn("MainServiceNr", Maintemplatenrs).Where("PlantNr = ?", result.PlantNr).Find(&templatedata) + if err != nil { + return result, err + } + result.UnValst = templatedata + return result, nil } @@ -169,6 +263,10 @@ func (impl *TemplateServiceImplement) UpdateOne(user *global.User, entity *model engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() + err := session.Begin() + if err != nil { + return err + } dao := dal.NewTemplateDAO(session, user.PlantNr, user.UserId) record, err := dao.SelectOne(entity.MainTemplateNr) if err != nil { @@ -181,6 +279,38 @@ func (impl *TemplateServiceImplement) UpdateOne(user *global.User, entity *model if err != nil { return err } + + dao_TemplateServiceLst := dal.NewTemplateServiceLstDAO(session, user.PlantNr, user.UserId) + err = dao_TemplateServiceLst.DeleteWhere([]grmi.Predicate{meta.TemplateServiceLst_PlantNr.NewPredicate(grmi.Equal, record.PlantNr), meta.TemplateServiceLst_MainTemplateNr.NewPredicate(grmi.Equal, record.MainTemplateNr)}) + if err != nil { + session.Rollback() + return err + } + //批量插入 + alldata := make([]model.TemplateServiceLst, 0) + for k, v := range entity.Valst { + one := model.TemplateServiceLst{} + one.PlantNr = entity.PlantNr + one.Pos = k + 1 + one.Descr = v.Descr + one.MainTemplateNr = entity.MainTemplateNr + one.MainServiceNr = utils.ValueToInt(v.MainServiceNr, 0) + one.CreateTime = entity.CreateTime + one.LastUser = entity.LastUser + one.LastModify = entity.LastModify + alldata = append(alldata, one) + } + _, err = session.Table("PM_TemplateServiceLst").Insert(&alldata) + if err != nil { + session.Rollback() + return err + } + err = session.Commit() + if err != nil { + return err + } + + return nil }