Browse Source

fix:大区经理看不到下级发起的工单记录

liuyaqi 2 years ago
parent
commit
36a362adcb

+ 3 - 2
opms_parent/app/service/work/deliver_order.go

@@ -96,8 +96,9 @@ func (s DeliverOrderService) Get(ctx context.Context, id int) (*work.DeliverOrde
 func (s DeliverOrderService) List(ctx context.Context, req *work.DeliverOrderListReq) (int, []*work.DeliverOrder, error) {
 	g.Log().Infof("DeliverOrderService List roles %v", s.userInfo.Roles)
 	dao := s.Dao.DeliverOrderDao.As("a").LeftJoin("ctr_contract b", "a.contract_id=b.id").Unscoped().Where("a.deleted_time is null")
-	// 销售只能看自己所属的,其他人只能看自己所属产品线的
-	if service.StringsContains(s.userInfo.Roles, "SalesEngineer") {
+	// 销售只能看自己所属的,其他人只能看自己所属产品线的 (大区经理有可能同时具有销售角色,这里需要排除大区经理)
+	if service.StringsContains(s.userInfo.Roles, "SalesEngineer") &&
+		!service.StringsContains(s.userInfo.Roles, "RegionalManager") {
 		dao = dao.Where("b.incharge_id = ?", s.userInfo.Id)
 		// } else if service.StringsContains(s.userInfo.Roles, "ProjectDeliveryManager") {
 		// 	dao = dao.Where("a.deliver_man_id = ?", s.userInfo.Id)

+ 3 - 2
opms_parent/app/service/work/work_order.go

@@ -61,8 +61,9 @@ func NewOrderService(ctx context.Context) (svc *OrderService, err error) {
 // 列表
 func (s *OrderService) GetList(req *model.WorkOrderSearchReq) (total int, orderList []*model.WorkOrder, err error) {
 	db := s.Dao.FieldsEx(s.Dao.C.DeletedTime).As("a").LeftJoin("proj_business b", "a.nbo_id=b.id").Unscoped().Where("a.deleted_time is null")
-	// 销售只能看自己所属的,其他人只能看自己所属产品线的
-	if service.StringsContains(s.CxtUser.Roles, "SalesEngineer") {
+	// 销售只能看自己所属的,其他人只能看自己所属产品线的 (大区经理有可能同时具有销售角色,这里需要排除大区经理)
+	if service.StringsContains(s.CxtUser.Roles, "SalesEngineer") &&
+		!service.StringsContains(s.CxtUser.Roles, "RegionalManager") {
 		db = db.Where("b.sale_id = ?", s.CxtUser.Id)
 		// } else if service.StringsContains(s.userInfo.Roles, "ProjectDeliveryManager") {
 		// 	dao = dao.Where("a.deliver_man_id = ?", s.userInfo.Id)