diff --git a/meta/me/ProductWorkLineLst.meta.go b/meta/me/ProductWorkLineLst.meta.go index 74266f1..71826b7 100644 --- a/meta/me/ProductWorkLineLst.meta.go +++ b/meta/me/ProductWorkLineLst.meta.go @@ -18,6 +18,7 @@ import ( ******************************************************************************/ var ProductWorkLineLst_PlantNr = grmi.NewField("PlantNr", "[ME_ProductWorkLineLst].PlantNr", "plantnr", grmi.TypeInt) var ProductWorkLineLst_ProductId = grmi.NewField("ProductId", "[ME_ProductWorkLineLst].ProductId", "productid", grmi.TypeString) +var ProductWorkLineLst_ProjectId = grmi.NewField("ProjectId", "[ME_ProductWorkLineLst].ProjectId", "projectid", grmi.TypeString) var ProductWorkLineLst_WorkLineId = grmi.NewField("WorkLineId", "[ME_ProductWorkLineLst].WorkLineId", "worklineid", grmi.TypeString) var ProductWorkLineLst_WorkLineDescr = grmi.NewField("WorkLineDescr", "[ME_ProductWorkLineLst].WorkLineDescr", "worklinedescr", grmi.TypeString) var ProductWorkLineLst_LastModify = grmi.NewField("LastModify", "[ME_ProductWorkLineLst].LastModify", "lastmodify", grmi.TypeDateTime) @@ -39,6 +40,7 @@ var ProductWorkLineLst = grmi.NewEntity( map[string]grmi.Field{ ProductWorkLineLst_PlantNr.Name: ProductWorkLineLst_PlantNr, ProductWorkLineLst_ProductId.Name: ProductWorkLineLst_ProductId, + ProductWorkLineLst_ProjectId.Name: ProductWorkLineLst_ProjectId, ProductWorkLineLst_WorkLineId.Name: ProductWorkLineLst_WorkLineId, ProductWorkLineLst_WorkLineDescr.Name: ProductWorkLineLst_WorkLineDescr, ProductWorkLineLst_LastModify.Name: ProductWorkLineLst_LastModify, diff --git a/models/me/ProductFamily.model.go b/models/me/ProductFamily.model.go index 7bd25eb..61ab3a9 100644 --- a/models/me/ProductFamily.model.go +++ b/models/me/ProductFamily.model.go @@ -29,6 +29,7 @@ type ProductFamily struct { ColorValue string `xorm:"nvarchar(40) 'ColorValue' not null" json:"ME_ProductFamily-ColorValue"` BroadcastPoint string `xorm:"nvarchar(40) 'BroadcastPoint' not null" json:"ME_ProductFamily-BroadcastPoint"` AutoGenPackToggle bool `xorm:"bit 'AutoGenPackToggle' not null" json:"ME_ProductFamily-AutoGenPackToggle"` + MultiWorkLineToggle bool `xorm:"bit 'MultiWorkLineToggle' not null" json:"ME_ProductFamily-MultiWorkLineToggle"` Jph float64 `xorm:"float 'Jph' not null" json:"ME_ProductFamily-Jph"` WorkLineId string `xorm:"nvarchar(40) 'WorkLineId' not null" json:"ME_ProductFamily-WorkLineId"` PackTypeId string `xorm:"nvarchar(40) 'PackTypeId' not null" json:"ME_ProductFamily-PackTypeId"` diff --git a/models/me/ProductWorkLineLst.model.go b/models/me/ProductWorkLineLst.model.go index f77aea1..c08b064 100644 --- a/models/me/ProductWorkLineLst.model.go +++ b/models/me/ProductWorkLineLst.model.go @@ -22,6 +22,7 @@ import ( type ProductWorkLineLst struct { PlantNr int `xorm:"pk int 'PlantNr'" json:"ME_ProductWorkLineLst-PlantNr"` ProductId string `xorm:"pk nvarchar(40) 'ProductId'" json:"ME_ProductWorkLineLst-ProductId"` + ProjectId string `xorm:"pk nvarchar(40) 'ProjectId'" json:"ME_ProductWorkLineLst-ProjectId"` WorkLineId string `xorm:"pk nvarchar(40) 'WorkLineId'" json:"ME_ProductWorkLineLst-WorkLineId"` WorkLineDescr string `xorm:"nvarchar(100) 'WorkLineDescr' not null" json:"ME_ProductWorkLineLst-WorkLineDescr"` LastModify grmi.DateTime `xorm:"datetime 'LastModify' not null updated" json:"ME_ProductWorkLineLst-LastModify"` diff --git a/models/me/me.go b/models/me/me.go index a11d0c8..08a97f1 100644 --- a/models/me/me.go +++ b/models/me/me.go @@ -14,8 +14,14 @@ type BomLstWithArt struct { // ProductWorkLineData 产品和产线绑定关系前端传入结构体 type ProductWorkLineData struct { ProductId string `json:"productId"` - ProjectId string `json:"projectId"` - ProductWorkLineLstLi []ProductWorkLineLst `json:"productWorkLineLstLi"` + ProjectId string `json:"projectId"` + WorkLineIdLi []string `json:"workLineIdLi"` +} + +// ProductFamilyWorkLineData 产品和产线绑定关系前端传入结构体 +type ProductFamilyWorkLineData struct { + ProductFamilyId string `json:"productFamilyId"` + WorkLineIdLi []string `json:"workLineIdLi"` } // ProductFamilyRelateAndProduct ProductFamilyRelate Product连表 diff --git a/services/me/implments/ProductFamily.service.impl.go b/services/me/implments/ProductFamily.service.impl.go index 7ec1d3a..8adc982 100644 --- a/services/me/implments/ProductFamily.service.impl.go +++ b/services/me/implments/ProductFamily.service.impl.go @@ -28,28 +28,29 @@ import ( ******************************************************************************/ var DefaultConditionOfProductFamily = grmi.NewCondition( map[string]grmi.ConditionItem{ - meta.ProductFamily_ProductFamilyId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ProductFamilyId, grmi.Equal, true), - meta.ProductFamily_Descr.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_Descr, grmi.Equal, false), - meta.ProductFamily_ProjectId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ProjectId, grmi.Equal, false), - meta.ProductFamily_ConfigValue.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ConfigValue, grmi.Equal, false), - meta.ProductFamily_ModelValue.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ModelValue, grmi.Equal, false), - meta.ProductFamily_ColorValue.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ColorValue, grmi.Equal, false), - meta.ProductFamily_BroadcastPoint.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_BroadcastPoint, grmi.Equal, false), - meta.ProductFamily_AutoGenPackToggle.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_AutoGenPackToggle, grmi.Equal, false), - meta.ProductFamily_Jph.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_Jph, grmi.Equal, false), - meta.ProductFamily_WorkLineId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_WorkLineId, grmi.Equal, false), - meta.ProductFamily_PackTypeId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_PackTypeId, grmi.Equal, false), - meta.ProductFamily_CheckSyncKey.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CheckSyncKey, grmi.Equal, false), - meta.ProductFamily_Enable.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_Enable, grmi.Equal, false), - meta.ProductFamily_CtrlPara1.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlPara1, grmi.Equal, false), - meta.ProductFamily_CtrlPara2.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlPara2, grmi.Equal, false), - meta.ProductFamily_CtrlStr1.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlStr1, grmi.Equal, false), - meta.ProductFamily_CtrlStr2.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlStr2, grmi.Equal, false), - meta.ProductFamily_CtrlTime1.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlTime1, grmi.Approximate, false), - meta.ProductFamily_CtrlTime2.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlTime2, grmi.Approximate, false), - meta.ProductFamily_LastModify.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_LastModify, grmi.Approximate, false), - meta.ProductFamily_LastUser.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_LastUser, grmi.Equal, false), - meta.ProductFamily_CreateTime.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CreateTime, grmi.Approximate, false), + meta.ProductFamily_ProductFamilyId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ProductFamilyId, grmi.Equal, true), + meta.ProductFamily_Descr.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_Descr, grmi.Equal, false), + meta.ProductFamily_ProjectId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ProjectId, grmi.Equal, false), + meta.ProductFamily_ConfigValue.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ConfigValue, grmi.Equal, false), + meta.ProductFamily_ModelValue.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ModelValue, grmi.Equal, false), + meta.ProductFamily_ColorValue.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_ColorValue, grmi.Equal, false), + meta.ProductFamily_BroadcastPoint.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_BroadcastPoint, grmi.Equal, false), + meta.ProductFamily_AutoGenPackToggle.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_AutoGenPackToggle, grmi.Equal, false), + meta.ProductFamily_MultiWorkLineToggle.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_MultiWorkLineToggle, grmi.Equal, false), + meta.ProductFamily_Jph.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_Jph, grmi.Equal, false), + meta.ProductFamily_WorkLineId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_WorkLineId, grmi.Equal, false), + meta.ProductFamily_PackTypeId.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_PackTypeId, grmi.Equal, false), + meta.ProductFamily_CheckSyncKey.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CheckSyncKey, grmi.Equal, false), + meta.ProductFamily_Enable.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_Enable, grmi.Equal, false), + meta.ProductFamily_CtrlPara1.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlPara1, grmi.Equal, false), + meta.ProductFamily_CtrlPara2.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlPara2, grmi.Equal, false), + meta.ProductFamily_CtrlStr1.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlStr1, grmi.Equal, false), + meta.ProductFamily_CtrlStr2.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlStr2, grmi.Equal, false), + meta.ProductFamily_CtrlTime1.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlTime1, grmi.Approximate, false), + meta.ProductFamily_CtrlTime2.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CtrlTime2, grmi.Approximate, false), + meta.ProductFamily_LastModify.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_LastModify, grmi.Approximate, false), + meta.ProductFamily_LastUser.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_LastUser, grmi.Equal, false), + meta.ProductFamily_CreateTime.UrlParameterName: grmi.NewConditionItem(meta.ProductFamily_CreateTime, grmi.Approximate, false), }, nil, ) diff --git a/services/me/implments/ProductWorkLineLst.service.impl.go b/services/me/implments/ProductWorkLineLst.service.impl.go index f21b2ac..2bc6cff 100644 --- a/services/me/implments/ProductWorkLineLst.service.impl.go +++ b/services/me/implments/ProductWorkLineLst.service.impl.go @@ -25,6 +25,7 @@ import ( var DefaultConditionOfProductWorkLineLst = grmi.NewCondition( map[string]grmi.ConditionItem{ meta.ProductWorkLineLst_ProductId.UrlParameterName: grmi.NewConditionItem(meta.ProductWorkLineLst_ProductId, grmi.Equal, true), + meta.ProductWorkLineLst_ProjectId.UrlParameterName: grmi.NewConditionItem(meta.ProductWorkLineLst_ProjectId, grmi.Equal, true), meta.ProductWorkLineLst_WorkLineId.UrlParameterName: grmi.NewConditionItem(meta.ProductWorkLineLst_WorkLineId, grmi.Equal, true), meta.ProductWorkLineLst_WorkLineDescr.UrlParameterName: grmi.NewConditionItem(meta.ProductWorkLineLst_WorkLineDescr, grmi.Equal, false), meta.ProductWorkLineLst_LastModify.UrlParameterName: grmi.NewConditionItem(meta.ProductWorkLineLst_LastModify, grmi.Approximate, false), @@ -338,48 +339,57 @@ func (impl *ProductWorkLineLstServiceImplement) Save(user *global.User, entity * engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() - if err := session.Begin(); err != nil { - return err - } + dao := dal.NewProductWorkLineLstDAO(session, user.PlantNr, user.UserId) productDao := dal.NewProductDAO(session, user.PlantNr, user.UserId) workLineDao := baseDal.NewWorkLineDAO(session, user.PlantNr, user.UserId) productId := entity.ProductId projectId := entity.ProjectId - li := entity.ProductWorkLineLstLi + li := entity.WorkLineIdLi product, err := productDao.SelectOne(productId, projectId) if err != nil { - _ = session.Rollback() return grmi.NewBusinessError("查询产品数据失败, error:" + err.Error()) } if product == nil { - _ = session.Rollback() return grmi.NewBusinessError("不存在对应的产品, 产品ID:" + productId) } - for index, data := range li { + if !product.MultiWorkLineToggle { + return grmi.NewBusinessError("该总成未打开多产线开关!") + } + if len(li) <= 1 { + return grmi.NewBusinessError("产线数量小于两条") + } + var dataLi []model.ProductWorkLineLst + for _, workLineId := range li { + var data model.ProductWorkLineLst data.ProductId = productId + data.ProjectId = projectId + data.WorkLineId = workLineId workLine, err := workLineDao.SelectOne(data.WorkLineId) if err != nil { - _ = session.Rollback() return grmi.NewBusinessError("查询产线数据失败, error:" + err.Error()) } if workLine == nil { - _ = session.Rollback() return grmi.NewBusinessError("不存在对应的产线, 产线ID:" + data.WorkLineId) } if workLine.GroupType != baseModel.WORK_LINE_TYPE_REAL { - _ = session.Rollback() return grmi.NewBusinessError("关联的产线不是实体产线, 产线ID:" + data.WorkLineId) } data.WorkLineDescr = workLine.Descr - li[index] = data + dataLi = append(dataLi, data) + } + if err = session.Begin(); err != nil { + return err } - err = dao.DeleteWhere([]grmi.Predicate{meta.ProductWorkLineLst_ProductId.NewPredicate(grmi.Equal, productId)}) + err = dao.DeleteWhere([]grmi.Predicate{ + meta.ProductWorkLineLst_ProductId.NewPredicate(grmi.Equal, productId), + meta.ProductWorkLineLst_ProjectId.NewPredicate(grmi.Equal, projectId), + }) if err != nil { _ = session.Rollback() return grmi.NewBusinessError("删除原有数据失败, error:" + err.Error()) } - err = dao.Insert(&li) + err = dao.Insert(&dataLi) if err != nil { _ = session.Rollback() return grmi.NewBusinessError("保存失败, error:" + err.Error()) diff --git a/web/controllers/me/me.go b/web/controllers/me/me.go index eeb5301..857e212 100644 --- a/web/controllers/me/me.go +++ b/web/controllers/me/me.go @@ -245,6 +245,31 @@ func RegisterRoutes() { // ShipableAUConfig 保存一条 RegisterSaveShipableAUConfig(shipableauconfig, "/save", serviceOfShipableAUConfig.Save) + // ProductFamilyWorkLineLst的路由组 + productfamilyworklinelst := party.Party("/productfamilyworklinelst") + // ProductFamilyWorkLineLst的服务实例 + var serviceOfProductFamilyWorkLineLst = svr.NewProductFamilyWorkLineLstService() + // ProductFamilyWorkLineLst插入一条 + // RegisterInsertOneProductFamilyWorkLineLst(productfamilyworklinelst, "/insertone", serviceOfProductFamilyWorkLineLst.InsertOne) + // ProductFamilyWorkLineLst插入多条 + // RegisterInsertProductFamilyWorkLineLst(productfamilyworklinelst, "/insert", serviceOfProductFamilyWorkLineLst.Insert) + // ProductFamilyWorkLineLst删除一条 + // RegisterDeleteOneProductFamilyWorkLineLst(productfamilyworklinelst, "/deleteone", serviceOfProductFamilyWorkLineLst.DeleteOne) + // ProductFamilyWorkLineLst删除多条 + // RegisterDeleteProductFamilyWorkLineLst(productfamilyworklinelst, "/delete", serviceOfProductFamilyWorkLineLst.Delete) + // ProductFamilyWorkLineLst查询多条 + RegisterSelectProductFamilyWorkLineLst(productfamilyworklinelst, "/selectlist", serviceOfProductFamilyWorkLineLst.Select) + // ProductFamilyWorkLineLst查询多条并分页 + RegisterQueryProductFamilyWorkLineLst(productfamilyworklinelst, "/query", serviceOfProductFamilyWorkLineLst.SelectAndPaging) + // ProductFamilyWorkLineLst查询一条 + RegisterSelectOneProductFamilyWorkLineLst(productfamilyworklinelst, "/selectone", serviceOfProductFamilyWorkLineLst.SelectOne) + // ProductFamilyWorkLineLst修改一条 + // RegisterUpdateOneProductFamilyWorkLineLst(productfamilyworklinelst, "/updateone", serviceOfProductFamilyWorkLineLst.UpdateOne) + // ProductFamilyWorkLineLst修改多条 + // RegisterUpdateProductFamilyWorkLineLst(productfamilyworklinelst, "/update", serviceOfProductFamilyWorkLineLst.Update) + // RegisterSaveFamilyWorkLineLst 保存派生和产线关联关系 + RegisterSaveFamilyWorkLineLst(productfamilyworklinelst, "/save", serviceOfProductFamilyWorkLineLst.Save) + }) }