diff --git a/dao/base/AttributeGroupValst.dao.go b/dao/base/AttributeGroupValst.dao.go index c9b9743..50a8144 100644 --- a/dao/base/AttributeGroupValst.dao.go +++ b/dao/base/AttributeGroupValst.dao.go @@ -221,6 +221,36 @@ type AttributeGroupValstDAO interface { * ******************************************************************************/ UpdateWhere([]grmi.Predicate, *model.AttributeGroupValst, ...string) error + /****************************************************************************** + * + * @Function Name : SelectAllot + *----------------------------------------------------------------------------- + * + * @Description : 通过AttributeGroupValst和Attribute联查出已分配的属性 + * + * @Return Value : 执行时发生的错误 + * + * @Author : Lou Wen Zhi + * + * @Date : 2021-04-15 09:53:49 + * + ******************************************************************************/ + SelectAllot(attrGrpCode int) ([]model.Attribute, error) + /****************************************************************************** + * + * @Function Name : SelectUnAllot + *----------------------------------------------------------------------------- + * + * @Description : 通过AttributeGroupValst查询出未分配的属性 + * + * @Return Value : 执行时发生的错误 + * + * @Author : Lou Wen Zhi + * + * @Date : 2021-04-15 09:53:49 + * + ******************************************************************************/ + SelectUnAllot(attrCodes []int) ([]model.Attribute, error) } /****************************************************************************** diff --git a/dao/base/implments/AttributeGroupValst.dao.impl.go b/dao/base/implments/AttributeGroupValst.dao.impl.go index 6ce9855..1a7330d 100644 --- a/dao/base/implments/AttributeGroupValst.dao.impl.go +++ b/dao/base/implments/AttributeGroupValst.dao.impl.go @@ -300,3 +300,37 @@ func (impl *AttributeGroupValstDAOImplement) UpdateWhere(predicates []grmi.Predi } return nil } + +/****************************************************************************** + * + * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/AttributeGroupValstDAO.SelectAllot + * + ******************************************************************************/ +func (impl *AttributeGroupValstDAOImplement) SelectAllot(attrGrpCode int) ([]model.Attribute, error) { + + data := make([]model.Attribute, 0) + session := impl.session.Table(meta.Attribute.TableName).Join("LEFT",meta.AttributeGroupValst.TableName,"AttributeGroupValst.AttrCode = Attribute.AttrCode").Where("Attribute.PlantNr = ? and AttributeGroupValst.AttrCode = ?", impl.plantNr, attrGrpCode) + + err := session.Find(&data) + if err != nil { + return nil, grmi.NewDataBaseError(err) + } + return data, nil +} + +/****************************************************************************** + * + * @Reference LAPP_GAAS_GFrame_BACKEND/dao/base/AttributeGroupValstDAO.SelectUnAllot + * + ******************************************************************************/ +func (impl *AttributeGroupValstDAOImplement) SelectUnAllot(attrCodes []int) ([]model.Attribute, error) { + + data := make([]model.Attribute, 0) + session := impl.session.Table(meta.Attribute.TableName).Where("PlantNr = ?", impl.plantNr).NotIn("AttrCode",attrCodes) + + err := session.Find(&data) + if err != nil { + return nil, grmi.NewDataBaseError(err) + } + return data, nil +} \ No newline at end of file diff --git a/models/base/Attribute.model.go b/models/base/Attribute.model.go index ca15ea7..ce02130 100644 --- a/models/base/Attribute.model.go +++ b/models/base/Attribute.model.go @@ -20,19 +20,20 @@ import ( * ******************************************************************************/ type Attribute struct { - PlantNr int `xorm:"pk int 'PlantNr'" json:"Attribute-PlantNr"` - AttrCode int `xorm:"pk int 'AttrCode'" json:"Attribute-AttrCode"` - AttrName string `xorm:"nvarchar(100) 'AttrName' not null" json:"Attribute-AttrName"` - Descr string `xorm:"nvarchar(100) 'Descr' not null" json:"Attribute-Descr"` - AttrGroup int `xorm:"int 'AttrGroup' not null" json:"Attribute-AttrGroup"` - ShortCode string `xorm:"nvarchar(20) 'ShortCode' not null" json:"Attribute-ShortCode"` - AttrType int `xorm:"int 'AttrType' not null" json:"Attribute-AttrType"` - AttrDataType int `xorm:"int 'AttrDataType' not null" json:"Attribute-AttrDataType"` - AttrValType int `xorm:"int 'AttrValType' not null" json:"Attribute-AttrValType"` - ValFormat string `xorm:"nvarchar(100) 'ValFormat' not null" json:"Attribute-ValFormat"` - LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"Attribute-LastModify"` - LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"Attribute-LastUser"` - CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"Attribute-CreateTime"` + PlantNr int `xorm:"pk int 'PlantNr'" json:"Attribute-PlantNr"` + AttrCode int `xorm:"pk int 'AttrCode'" json:"Attribute-AttrCode"` + AttrName string `xorm:"nvarchar(100) 'AttrName' not null" json:"Attribute-AttrName"` + Descr string `xorm:"nvarchar(100) 'Descr' not null" json:"Attribute-Descr"` + AttrGroup int `xorm:"int 'AttrGroup' not null" json:"Attribute-AttrGroup"` + ShortCode string `xorm:"nvarchar(20) 'ShortCode' not null" json:"Attribute-ShortCode"` + AttrType int `xorm:"int 'AttrType' not null" json:"Attribute-AttrType"` + AttrDataType int `xorm:"int 'AttrDataType' not null" json:"Attribute-AttrDataType"` + AttrValType int `xorm:"int 'AttrValType' not null" json:"Attribute-AttrValType"` + ValFormat string `xorm:"nvarchar(100) 'ValFormat' not null" json:"Attribute-ValFormat"` + LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"Attribute-LastModify"` + LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"Attribute-LastUser"` + CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"Attribute-CreateTime"` + Valst []AttributeValst `json:"valst" xorm:"-"` } /****************************************************************************** diff --git a/models/base/AttributeGroup.model.go b/models/base/AttributeGroup.model.go index cd3e723..864a260 100644 --- a/models/base/AttributeGroup.model.go +++ b/models/base/AttributeGroup.model.go @@ -20,17 +20,19 @@ import ( * ******************************************************************************/ type AttributeGroup struct { - PlantNr int `xorm:"pk int 'PlantNr'" json:"AttributeGroup-PlantNr"` - AttrGrpCode int `xorm:"pk int 'AttrGrpCode'" json:"AttributeGroup-AttrGrpCode"` - Descr string `xorm:"nvarchar(100) 'Descr' not null" json:"AttributeGroup-Descr"` - Color string `xorm:"nvarchar(20) 'Color' not null" json:"AttributeGroup-Color"` - AgiPara1 int `xorm:"int 'AgiPara1' not null" json:"AttributeGroup-AgiPara1"` - AgiPara2 int `xorm:"int 'AgiPara2' not null" json:"AttributeGroup-AgiPara2"` - AgcPara1 string `xorm:"nvarchar(20) 'AgcPara1' not null" json:"AttributeGroup-AgcPara1"` - AgcPara2 string `xorm:"nvarchar(20) 'AgcPara2' not null" json:"AttributeGroup-AgcPara2"` - LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"AttributeGroup-LastModify"` - LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"AttributeGroup-LastUser"` - CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"AttributeGroup-CreateTime"` + PlantNr int `xorm:"pk int 'PlantNr'" json:"AttributeGroup-PlantNr"` + AttrGrpCode int `xorm:"pk int 'AttrGrpCode'" json:"AttributeGroup-AttrGrpCode"` + Descr string `xorm:"nvarchar(100) 'Descr' not null" json:"AttributeGroup-Descr"` + Color string `xorm:"nvarchar(20) 'Color' not null" json:"AttributeGroup-Color"` + AgiPara1 int `xorm:"int 'AgiPara1' not null" json:"AttributeGroup-AgiPara1"` + AgiPara2 int `xorm:"int 'AgiPara2' not null" json:"AttributeGroup-AgiPara2"` + AgcPara1 string `xorm:"nvarchar(20) 'AgcPara1' not null" json:"AttributeGroup-AgcPara1"` + AgcPara2 string `xorm:"nvarchar(20) 'AgcPara2' not null" json:"AttributeGroup-AgcPara2"` + LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"AttributeGroup-LastModify"` + LastUser string `xorm:"nvarchar(20) 'LastUser' not null" json:"AttributeGroup-LastUser"` + CreateTime grmi.DateTime `xorm:"datetime 'CreateTime' not null created" json:"AttributeGroup-CreateTime"` + Valst []Attribute `json:"Valst" xorm:"-"` + UnValst []Attribute `json:"Unvalst" xorm:"-"` } /****************************************************************************** diff --git a/services/base/implments/Attribute.service.impl.go b/services/base/implments/Attribute.service.impl.go index ee1b71d..b9077de 100644 --- a/services/base/implments/Attribute.service.impl.go +++ b/services/base/implments/Attribute.service.impl.go @@ -97,6 +97,10 @@ func (impl *AttributeServiceImplement) InsertOne(user *models.Usertab, entity *m engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() + // add Begin() before any action + if err := session.Begin(); err != nil { + return err + } dao := dal.NewAttributeDAO(session, user.Pid, user.Userid) record, err := dao.SelectOne(entity.AttrCode) if err != nil { @@ -107,8 +111,22 @@ func (impl *AttributeServiceImplement) InsertOne(user *models.Usertab, entity *m } err = dao.InsertOne(entity) if err != nil { + session.Rollback() + return err + } + + /**处理数据**/ + for k, _ := range entity.Valst { + entity.Valst[k].AttrCode = entity.AttrCode + entity.Valst[k].Pos = k+1 + } + lstdao := dal.NewAttributeValstDAO(session, user.Pid, user.Userid) + err = lstdao.Insert(&entity.Valst) + if err != nil { + session.Rollback() return err } + session.Commit() return nil } @@ -124,6 +142,10 @@ func (impl *AttributeServiceImplement) DeleteOne(user *models.Usertab, attrCode engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() + // add Begin() before any action + if err := session.Begin(); err != nil { + return err + } dao := dal.NewAttributeDAO(session, user.Pid, user.Userid) record, err := dao.SelectOne(attrCode) if err != nil { @@ -134,8 +156,18 @@ func (impl *AttributeServiceImplement) DeleteOne(user *models.Usertab, attrCode } err = dao.DeleteOne(attrCode) if err != nil { + session.Rollback() + return err + } + lstdao := dal.NewAttributeValstDAO(session, user.Pid, user.Userid) + err = lstdao.DeleteWhere([]grmi.Predicate{ + meta.Attribute_AttrCode.NewPredicate(grmi.Equal, attrCode), + }) + if err != nil { + session.Rollback() return err } + session.Commit() return nil } @@ -156,6 +188,14 @@ func (impl *AttributeServiceImplement) SelectOne(user *models.Usertab, attrCode if err != nil { return nil, err } + lstdao := dal.NewAttributeValstDAO(session, user.Pid, user.Userid) + list, err := lstdao.Select([]grmi.Predicate{ + meta.Attribute_AttrCode.NewPredicate(grmi.Equal, attrCode), + }, nil) + if err != nil { + return nil, err + } + result.Valst = list return result, nil } @@ -171,6 +211,10 @@ func (impl *AttributeServiceImplement) UpdateOne(user *models.Usertab, entity *m engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() + // add Begin() before any action + if err := session.Begin(); err != nil { + return err + } dao := dal.NewAttributeDAO(session, user.Pid, user.Userid) record, err := dao.SelectOne(entity.AttrCode) if err != nil { @@ -180,9 +224,28 @@ func (impl *AttributeServiceImplement) UpdateOne(user *models.Usertab, entity *m return grmi.NewBusinessError("不存在指定记录!") } err = dao.UpdateOne(entity) + if err != nil { + session.Rollback() + return err + } + /**处理数据**/ + for k, _ := range entity.Valst { + entity.Valst[k].AttrCode = entity.AttrCode + entity.Valst[k].Pos = k+1 + } + lstdao := dal.NewAttributeValstDAO(session, user.Pid, user.Userid) + err = lstdao.DeleteWhere([]grmi.Predicate{ + meta.Attribute_AttrCode.NewPredicate(grmi.Equal, entity.AttrCode), + }) + if err != nil { + session.Rollback() + return err + } + err = lstdao.Insert(&entity.Valst) if err != nil { return err } + session.Commit() return nil } @@ -311,3 +374,4 @@ func (impl *AttributeServiceImplement) Update(user *models.Usertab, entities *[] } return nil } + diff --git a/services/base/implments/AttributeGroup.service.impl.go b/services/base/implments/AttributeGroup.service.impl.go index e72346b..25d1af9 100644 --- a/services/base/implments/AttributeGroup.service.impl.go +++ b/services/base/implments/AttributeGroup.service.impl.go @@ -95,6 +95,10 @@ func (impl *AttributeGroupServiceImplement) InsertOne(user *models.Usertab, enti engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() + // add Begin() before any action + if err := session.Begin(); err != nil { + return err + } dao := dal.NewAttributeGroupDAO(session, user.Pid, user.Userid) record, err := dao.SelectOne(entity.AttrGrpCode) if err != nil { @@ -105,8 +109,27 @@ func (impl *AttributeGroupServiceImplement) InsertOne(user *models.Usertab, enti } err = dao.InsertOne(entity) if err != nil { + session.Rollback() + return err + } + + /**处理数据**/ + GroupValst := make([]model.AttributeGroupValst, 0) + for k, v := range entity.Valst { + onedata := model.AttributeGroupValst{} + onedata.AttrGrpCode = entity.AttrGrpCode + onedata.Pos = (k+1) + onedata.AttrCode = v.AttrCode + GroupValst = append(GroupValst, onedata) + } + lstdao := dal.NewAttributeGroupValstDAO(session, user.Pid, user.Userid) + err = lstdao.Insert(&GroupValst) + if err != nil { + session.Rollback() return err } + session.Commit() + return nil } @@ -122,6 +145,10 @@ func (impl *AttributeGroupServiceImplement) DeleteOne(user *models.Usertab, attr engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() + // add Begin() before any action + if err := session.Begin(); err != nil { + return err + } dao := dal.NewAttributeGroupDAO(session, user.Pid, user.Userid) record, err := dao.SelectOne(attrGrpCode) if err != nil { @@ -132,8 +159,18 @@ func (impl *AttributeGroupServiceImplement) DeleteOne(user *models.Usertab, attr } err = dao.DeleteOne(attrGrpCode) if err != nil { + session.Rollback() return err } + lstdao := dal.NewAttributeGroupValstDAO(session, user.Pid, user.Userid) + err = lstdao.DeleteWhere([]grmi.Predicate{ + meta.AttributeGroup_AttrGrpCode.NewPredicate(grmi.Equal, attrGrpCode), + }) + if err != nil { + session.Rollback() + return err + } + session.Commit() return nil } @@ -154,6 +191,24 @@ func (impl *AttributeGroupServiceImplement) SelectOne(user *models.Usertab, attr if err != nil { return nil, err } + lstdao := dal.NewAttributeGroupValstDAO(session, user.Pid, user.Userid) + list, err := lstdao.SelectAllot(attrGrpCode) + if err != nil { + return nil, err + } + //获取已分配的属性集合 + var attrCodes []int + for _,v := range list{ + attrCodes = append(attrCodes,v.AttrCode) + } + unlist, err := lstdao.SelectUnAllot(attrCodes) + if err != nil { + return nil, err + } + //查询已分配 + result.Valst = list + //查询未分配 + result.UnValst = unlist return result, nil } @@ -169,6 +224,10 @@ func (impl *AttributeGroupServiceImplement) UpdateOne(user *models.Usertab, enti engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() + // add Begin() before any action + if err := session.Begin(); err != nil { + return err + } dao := dal.NewAttributeGroupDAO(session, user.Pid, user.Userid) record, err := dao.SelectOne(entity.AttrGrpCode) if err != nil { @@ -178,9 +237,32 @@ func (impl *AttributeGroupServiceImplement) UpdateOne(user *models.Usertab, enti return grmi.NewBusinessError("不存在指定记录!") } err = dao.UpdateOne(entity) + if err != nil { + session.Rollback() + return err + } + /**处理数据**/ + GroupValst := make([]model.AttributeGroupValst, 0) + for k, v := range entity.Valst { + onedata := model.AttributeGroupValst{} + onedata.AttrGrpCode = entity.AttrGrpCode + onedata.Pos = (k+1) + onedata.AttrCode = v.AttrCode + GroupValst = append(GroupValst, onedata) + } + lstdao := dal.NewAttributeGroupValstDAO(session, user.Pid, user.Userid) + err = lstdao.DeleteWhere([]grmi.Predicate{ + meta.AttributeGroup_AttrGrpCode.NewPredicate(grmi.Equal, entity.AttrGrpCode), + }) + if err != nil { + session.Rollback() + return err + } + err = lstdao.Insert(&GroupValst) if err != nil { return err } + session.Commit() return nil } diff --git a/web/controllers/base/base.go b/web/controllers/base/base.go index 499f053..92d5eb4 100644 --- a/web/controllers/base/base.go +++ b/web/controllers/base/base.go @@ -408,11 +408,11 @@ func RegisterRoutes() { // CostCenter的服务实例 var serviceOfCostCenter = svr.NewCostCenterService() // CostCenter插入一条 - // RegisterInsertOneCostCenter(costcenter, "/insertone", serviceOfCostCenter.InsertOne) + RegisterInsertOneCostCenter(costcenter, "/insertone", serviceOfCostCenter.InsertOne) // CostCenter插入多条 // RegisterInsertCostCenter(costcenter, "/insert", serviceOfCostCenter.Insert) // CostCenter删除一条 - // RegisterDeleteOneCostCenter(costcenter, "/deleteone", serviceOfCostCenter.DeleteOne) + RegisterDeleteOneCostCenter(costcenter, "/deleteone", serviceOfCostCenter.DeleteOne) // CostCenter删除多条 // RegisterDeleteCostCenter(costcenter, "/delete", serviceOfCostCenter.Delete) // CostCenter查询多条 @@ -420,7 +420,7 @@ func RegisterRoutes() { // CostCenter查询一条 RegisterSelectOneCostCenter(costcenter, "/get", serviceOfCostCenter.SelectOne) // CostCenter修改一条 - // RegisterUpdateOneCostCenter(costcenter, "/updateone", serviceOfCostCenter.UpdateOne) + RegisterUpdateOneCostCenter(costcenter, "/updateone", serviceOfCostCenter.UpdateOne) // CostCenter修改多条 // RegisterUpdateCostCenter(costcenter, "/update", serviceOfCostCenter.Update) @@ -429,11 +429,11 @@ func RegisterRoutes() { // StatusColor的服务实例 var serviceOfStatusColor = svr.NewStatusColorService() // StatusColor插入一条 - // RegisterInsertOneStatusColor(statuscolor, "/insertone", serviceOfStatusColor.InsertOne) + RegisterInsertOneStatusColor(statuscolor, "/insertone", serviceOfStatusColor.InsertOne) // StatusColor插入多条 // RegisterInsertStatusColor(statuscolor, "/insert", serviceOfStatusColor.Insert) // StatusColor删除一条 - // RegisterDeleteOneStatusColor(statuscolor, "/deleteone", serviceOfStatusColor.DeleteOne) + RegisterDeleteOneStatusColor(statuscolor, "/deleteone", serviceOfStatusColor.DeleteOne) // StatusColor删除多条 // RegisterDeleteStatusColor(statuscolor, "/delete", serviceOfStatusColor.Delete) // StatusColor查询多条 @@ -441,7 +441,7 @@ func RegisterRoutes() { // StatusColor查询一条 RegisterSelectOneStatusColor(statuscolor, "/get", serviceOfStatusColor.SelectOne) // StatusColor修改一条 - // RegisterUpdateOneStatusColor(statuscolor, "/updateone", serviceOfStatusColor.UpdateOne) + RegisterUpdateOneStatusColor(statuscolor, "/updateone", serviceOfStatusColor.UpdateOne) // StatusColor修改多条 // RegisterUpdateStatusColor(statuscolor, "/update", serviceOfStatusColor.Update) @@ -450,11 +450,11 @@ func RegisterRoutes() { // Attribute的服务实例 var serviceOfAttribute = svr.NewAttributeService() // Attribute插入一条 - // RegisterInsertOneAttribute(attribute, "/insertone", serviceOfAttribute.InsertOne) + RegisterInsertOneAttribute(attribute, "/insertone", serviceOfAttribute.InsertOne) // Attribute插入多条 // RegisterInsertAttribute(attribute, "/insert", serviceOfAttribute.Insert) // Attribute删除一条 - // RegisterDeleteOneAttribute(attribute, "/deleteone", serviceOfAttribute.DeleteOne) + RegisterDeleteOneAttribute(attribute, "/deleteone", serviceOfAttribute.DeleteOne) // Attribute删除多条 // RegisterDeleteAttribute(attribute, "/delete", serviceOfAttribute.Delete) // Attribute查询多条 @@ -462,7 +462,7 @@ func RegisterRoutes() { // Attribute查询一条 RegisterSelectOneAttribute(attribute, "/get", serviceOfAttribute.SelectOne) // Attribute修改一条 - // RegisterUpdateOneAttribute(attribute, "/updateone", serviceOfAttribute.UpdateOne) + RegisterUpdateOneAttribute(attribute, "/updateone", serviceOfAttribute.UpdateOne) // Attribute修改多条 // RegisterUpdateAttribute(attribute, "/update", serviceOfAttribute.Update) @@ -492,11 +492,11 @@ func RegisterRoutes() { // AttributeGroup的服务实例 var serviceOfAttributeGroup = svr.NewAttributeGroupService() // AttributeGroup插入一条 - // RegisterInsertOneAttributeGroup(attributegroup, "/insertone", serviceOfAttributeGroup.InsertOne) + RegisterInsertOneAttributeGroup(attributegroup, "/insertone", serviceOfAttributeGroup.InsertOne) // AttributeGroup插入多条 // RegisterInsertAttributeGroup(attributegroup, "/insert", serviceOfAttributeGroup.Insert) // AttributeGroup删除一条 - // RegisterDeleteOneAttributeGroup(attributegroup, "/deleteone", serviceOfAttributeGroup.DeleteOne) + RegisterDeleteOneAttributeGroup(attributegroup, "/deleteone", serviceOfAttributeGroup.DeleteOne) // AttributeGroup删除多条 // RegisterDeleteAttributeGroup(attributegroup, "/delete", serviceOfAttributeGroup.Delete) // AttributeGroup查询多条 @@ -504,7 +504,7 @@ func RegisterRoutes() { // AttributeGroup查询一条 RegisterSelectOneAttributeGroup(attributegroup, "/get", serviceOfAttributeGroup.SelectOne) // AttributeGroup修改一条 - // RegisterUpdateOneAttributeGroup(attributegroup, "/updateone", serviceOfAttributeGroup.UpdateOne) + RegisterUpdateOneAttributeGroup(attributegroup, "/updateone", serviceOfAttributeGroup.UpdateOne) // AttributeGroup修改多条 // RegisterUpdateAttributeGroup(attributegroup, "/update", serviceOfAttributeGroup.Update)