部门组织架构问题

* 描述问题

部门层级配置,查看列表、统计图 想根据部门组织架构进行上下级查看

* 运行环境

  • NocoBase 版本:
    v1.4.0-alpha.8.20241113112138
  • 数据库种类与版本:
    MYSQL
  • 操作系统:
    Windows
  • 部署方式:
    Docker
  • Docker 镜像版本:
  • NodeJS 版本:

如何重现

1、配置好用户部门信息,想配置图表计数,数据根据部门层级配置,比如【北京总部】能看见他组织下面所有的部门, 但是目前提示报错 column “updatedBy->departments->departmentsUsers.createdAt” must appear in the GROUP BY clause or be used in an aggregate function,
2、列表也想按照部门上下层级配置控制,比如【北京总部】能看见他组织下面所有的部门 而且好像也只能绑定一级而且还是【上级部门】。

预期行为

根据部门进行控制,最上级可以查看他以下的所有部门,组织架构那种概念,但是目前我这边可能刚接触这里,想请问下该如何配置?

我认为是不是要 把那个上级部门是不是加一个为下级部门【包含所有】,这样列表和统计图就可以达到预期。

截图



日志

麻烦发一下 demo 地址。

地址:https://a_en9233chblu.v7.demo-cn.nocobase.com/

账号:admin@nocobase.com

密码:admin123

您好,
这是新的地址,麻烦您看一下,因为有体验时间期限,之前发您的可能过期了。

地址:https://a_ebhnadthbzq.v7.demo-cn.nocobase.com/
账号:admin@nocobase.com
密码:admin123

2个问题,一个报错,还有我想看 部门角色以下的数据,您看一下怎么处理。

你好,这个之前看了,暂时没有很好的解决方法,所以没有及时回复,抱歉,等我们再看看。

还是得用我之前设计的那个带有角色视角的设计,不然这种问题是解决不了的

感谢您回复,我再补充一下:
1、角色是可以的,但是如果公司规模很大的话,得创建N个角色来控制,因为【“经理”可能拥有比“部门主管”更多的权限,而且公司内部经理是看不到其他经理的,只有自己管辖范围,所以要创建多个部门主管A,部门主管B,部门主管C… 然后赋值给各个 经理 】后面可能不太适合所以没使用。
2、因为角色是平级的关系,角色好像没有上级角色可以对下级角色进行管理,如果角色有这种上下级控制的话,那应该是没问题的,我也可以直接通过角色来处理;
3、我看到部门有这种上下级的组织架构的功能,我认为这个应该可以实现业务场景,但是使用下来,部门好像也只能看 一级【上级部门】,看不了部门下级的所有部门数据。

如果是这样的场景,是否可以考虑给将角色绑定给部门,用户会拥有所在部门所绑定的角色。

谢谢,感谢回复:
举个例子 100个销售员工,10个部门经理、5个区域经理,2个总经理,每2个销售是一组,那角色得创建 50个销售角色;【因为 销售不能查看其他部门销售的业务,只能查看自己的】。

还得再创建10个部门经理角色,同理也是不能查看其他同级的业务,然后这10个部门经理,还得绑定各自负责的销售角色。
5个区域经理也要创建5个角色,同时也绑定 各自负责的 部门经理 + 销售员工。
2个总经理,也要创建2个角色,同时也绑定 各自的 区域经理+部门经理+销售经理+销售员工。

这样总经理就可以查看他所在部门下的 区域经理的业务,和区域经理下面的销售员工的业务。

通过角色控制感觉不太合理,所以没考虑,可能公司规模大的话,那个角色要跟着用户量也要扩展的,同时上级的负责人 也要跟着扩展,所以就是想实现一个组织架构查看权限的这种功能,直接在部门下面添加各自管理部门下的成员。

其实 只需要 销售员\部门经理\区域经理\总经理 这些角色,区域和筛选逻辑都应该是以关联扩展来实现,不可用角色来打标,这种逻辑是不对的.

但是销售员要做到隔离的,比如北京的销售A和天津的销售B,都属于销售角色,因为北京的部门经理是要只能看到北京的销售A, 所以这才创建北京销售、天津销售角色的,如果创建一个销售角色,那就没有隔离性了,也没有部门组织架构那种概念了。

组织架构的隔离需要依托组织↔数据观察视角 标签来解决

但是用部门处理只能查看一级【上级部门】看不了管辖的下级所有部门,
通过角色+部门去处理也不行,部门权限配置也只能选择同级部门或上级部门。

:crazy_face:我小弟的小弟,不是我的小弟

1、这种权限应该是“跨级权限”或“多级权限”,但基本概念是,如果你作为系统的最高管理者(老大),能够访问或查看你直接下属(小弟)以及他们下属(小弟的小弟)的数据和信息,而不是只能看自己的小弟
2、而且使用nocobase部门 老大好像还看不了小弟,nocobase是设置上级部门,反过来了,是小弟能看到老大的数据。

为了降低使用的理解难度,用了向上关联的树结构,单独依托部门和角色是无法实现 复合权限的.跳出这个思路才行

感谢回复,您那边团队有更好的思路吗? 跳出部门和角色,我这边再弄个类似于权限控制的表或者插件?