Skip to content

fix(ldap): 员工工号改用 AD employeeNumber,级别映射 Position - #1485

Merged
Qinyouzeng merged 1 commit into
mainfrom
feat/ldap_employee
Sep 21, 2026
Merged

Qinyouzeng merged 1 commit into
mainfrom
feat/ldap_employee

Conversation

@MayueCif

Copy link
Copy Markdown
Contributor

原逻辑用 ObjectSid 的 RID 冒充工号,与真实工号无关。

变更:

  • 工号取 AD employeeNumber,移除 SID RID 兜底;无值时写空以清除存量 RID 脏数据
  • 超长 employeeNumber 直接丢弃并告警(截断后仍是错值)
  • employeeType 映射为 Position 聚合并绑定 Staff.PositionId,按名匹配/创建,缓存去重,超长截断
  • SyncLdapUserAsync 两个循环各加 per-user try-catch,单账号异常不再中断整批同步
  • Position 创建失败时 Detach 实体,避免 ChangeTracker 污染后续账号导致级联失败
  • Staff.JobNumber 放宽为可空(对齐 Name/IdCard 的 AllowNull 模式)
  • 列宽常量收敛至 BusinessConsts,EF 配置与同步逻辑共用

原逻辑用 ObjectSid 的 RID 冒充工号,与真实工号无关。

变更:
- 工号取 AD employeeNumber,移除 SID RID 兜底;无值时写空以清除存量 RID 脏数据
- 超长 employeeNumber 直接丢弃并告警(截断后仍是错值)
- employeeType 映射为 Position 聚合并绑定 Staff.PositionId,按名匹配/创建,缓存去重,超长截断
- SyncLdapUserAsync 两个循环各加 per-user try-catch,单账号异常不再中断整批同步
- Position 创建失败时 Detach 实体,避免 ChangeTracker 污染后续账号导致级联失败
- Staff.JobNumber 放宽为可空(对齐 Name/IdCard 的 AllowNull 模式)
- 列宽常量收敛至 BusinessConsts,EF 配置与同步逻辑共用
@Qinyouzeng
Qinyouzeng merged commit eabb65a into main Sep 21, 2026
1 of 2 checks passed
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants