diff --git a/services/me/Product.service.go b/services/me/Product.service.go index e87e8b9..027514d 100644 --- a/services/me/Product.service.go +++ b/services/me/Product.service.go @@ -233,7 +233,7 @@ type ProductService interface { * @Date : 2021-11-15 * ******************************************************************************/ - SelectByWorkLine(user *global.User, workLineId string) ([]model.Product, error) + SelectByWorkLine(user *global.User, workLineId string, projectId string) ([]model.Product, error) /****************************************************************************** * * @Function Name : Copy diff --git a/services/me/implments/Product.service.impl.go b/services/me/implments/Product.service.impl.go index a301e63..b3b6eda 100644 --- a/services/me/implments/Product.service.impl.go +++ b/services/me/implments/Product.service.impl.go @@ -490,19 +490,36 @@ func (impl *ProductServiceImplement) Update(user *global.User, entities *[]model } // SelectByWorkLine 通过产线查询产品列表 -func (impl *ProductServiceImplement) SelectByWorkLine(user *global.User, workLineId string) ([]model.Product, error) { +func (impl *ProductServiceImplement) SelectByWorkLine(user *global.User, workLineId string, projectId string) ([]model.Product, error) { grmi.Log(user, "/services/me/implments/Product.service.impl.go", "SelectByWorkLine", "通过产线查询product") engine := db.Eloquent.Master() session := engine.NewSession() defer session.Close() dao := dal.NewProductDAO(session, user.PlantNr, user.UserId) - productLi, err := dao.Select([]grmi.Predicate{meta.Product_DefaultWorkLineId.NewPredicate(grmi.Equal, workLineId), meta.Product_MultiWorkLineToggle.NewPredicate(grmi.Equal, false)}, []grmi.Field{meta.Product_ProductId}) - if err != nil { - return nil, grmi.NewBusinessError("查询失败, error:" + err.Error()) + var productLi []model.Product + var err error + if projectId == "" { + productLi, err = dao.Select([]grmi.Predicate{ + meta.Product_DefaultWorkLineId.NewPredicate(grmi.Equal, workLineId), + meta.Product_MultiWorkLineToggle.NewPredicate(grmi.Equal, false), + }, []grmi.Field{meta.Product_ProductId}) + if err != nil { + return nil, grmi.NewBusinessError("查询失败, error:" + err.Error()) + } + } else { + productLi, err = dao.Select([]grmi.Predicate{ + meta.Product_DefaultWorkLineId.NewPredicate(grmi.Equal, workLineId), + meta.Product_MultiWorkLineToggle.NewPredicate(grmi.Equal, false), + meta.Product_ProjectId.NewPredicate(grmi.Equal, projectId), + }, []grmi.Field{meta.Product_ProductId}) + if err != nil { + return nil, grmi.NewBusinessError("查询失败, error:" + err.Error()) + } + } productWorkLineDao := dal.NewProductWorkLineLstDAO(session, user.PlantNr, user.UserId) - relateProductLi, err := productWorkLineDao.SelectByRelate(workLineId) + relateProductLi, err := productWorkLineDao.SelectByRelate(workLineId, projectId) if err != nil { return nil, grmi.NewBusinessError("查询关联多产线的产品数据失败, error:" + err.Error()) } diff --git a/web/controllers/me/Product.rest.go b/web/controllers/me/Product.rest.go index a3393fc..4e12624 100644 --- a/web/controllers/me/Product.rest.go +++ b/web/controllers/me/Product.rest.go @@ -460,7 +460,7 @@ func RegisterUpdateProduct(party router.Party, path string, method func(*global. * @Date : 2021-11-15 * ******************************************************************************/ -func RegisterSelectProductByWorkLine(party router.Party, path string, method func(*global.User, string) ([]model.Product, error)) { +func RegisterSelectProductByWorkLine(party router.Party, path string, method func(*global.User, string, string) ([]model.Product, error)) { party.Get(path, func(ctx iris.Context) { user, ok := jwts.ParseToken(ctx) @@ -469,7 +469,8 @@ func RegisterSelectProductByWorkLine(party router.Party, path string, method fun } workLineId := ctx.URLParam("workLineId") - result, err := method(user, workLineId) + projectId := ctx.URLParam("projectId") + result, err := method(user, workLineId, projectId) if err != nil { supports.Error(ctx, iris.StatusBadRequest, err.Error(), nil) return