背景

企業應用無論大小,必然有組織架構的功能剛需。小到公司只有10幾號人的單一組織,大到幾百上千的集團化公司的多組織集團架構,系統應用的設計如何支撐著這種大小規模不同的組織架構呢?

設計而不接實際業務之氣,設計的再好仍是空談。
–王小七

需求

1、組織架構除了法人組織架構外,還需要業務型的架構。—多維度組織架構
2、集團發展迅猛,組織架構調整頻繁,想看往年某個時間點的組織架構。—組織架構多版本追溯
3、組織架構對業務資料有隔離作用。—組織架構的資料許可權
4、某個部門需要領導人的概念。 —組織特權人
5、組織的崗位與系統許可權會有所關聯。 —崗位許可權
6、除了領導人外,可能涵蓋了管轄的概念。—組織架構的資料許可權

抽象與設計

核心UML

這裡寫圖片描述

Unit

主要用來存放組織單元。

UnitType

主要用來存放組織單元型別,包含:集團、公司、事業部等。

Dimension和DimensionUnit

組織維度,主要用來區別組織所在的不同維度,不同的樹的展現形式。

Position

主要存放組織崗位資訊。

User

主要是使用者表。

核心邏輯

多維度組織架構

將組織架構的樹關係存放在DimensionUnit表中,利用維度(Dimension)+維度組織關係(DimensionUnit)就可以成功構建不同的維度組織架構數。

組織架構多版本追溯

維度組織關係表中存放兩個關鍵欄位【組織生效時間】和【組織失效時間】,通過特定的時間範圍來檢索節點,找到那些節點的【生效時間】且【失效時間】不在這個區間氛圍,從而可以獲取完整架構樹。

資料許可權、特權人、崗位許可權

組織許可權的內容,將移到許可權設計來特別講解。

請期待下一篇《企業應用之許可權設計》。