feat: 二期审批引擎扩展与会签/明细/回填/附件分类共享层(#46)
- ApprovalDocumentType SPI + 注册表:新增单据不再改引擎 - ApprovalApproverResolver:会签组、orgLeaderByCode/orgDeputyByCode、租户岗位解析器 - 会签:任务带 group_key/group_name/group_seq,一人多组一次通过,只取消同组待办 - 回填:节点 writableFields、BACKFILL 动作、approval_field_change 留痕 - 附件:新增 VOUCHER 分类并按单据类型校验必传 - 详情:document.fields/lines/lineColumns/groupProgress + permissions.writableFields - 列表/导出:title/search_text 落库、flowCode 筛选、明细行数/合计金额/会签进度列、明细导出 - sql/05-approval_phase2.sql(可重复执行)
This commit is contained in:
@@ -57,3 +57,42 @@ WHERE r.tenant_id = @tenant_id AND r.deleted = 0 AND r.role_code = 'approval_arc
|
||||
SELECT 1 FROM sys_role_menu rm
|
||||
WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id AND rm.tenant_id = @tenant_id
|
||||
);
|
||||
|
||||
-- 4. 相关部门(体验券领用申请单固定角色,ADR 0013;待客户确认)
|
||||
INSERT INTO sys_role (role_name, role_code, comments, sort_number, tenant_id, deleted)
|
||||
SELECT '相关部门', 'approval_related_dept', '审批种子:体验券领用申请单「相关部门」节点,多人或签(ADR 0013)', 926, @tenant_id, 0
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM sys_role WHERE tenant_id = @tenant_id AND deleted = 0 AND role_code = 'approval_related_dept'
|
||||
);
|
||||
|
||||
INSERT INTO sys_role_menu (role_id, menu_id, tenant_id)
|
||||
SELECT r.role_id, m.menu_id, @tenant_id
|
||||
FROM sys_role r
|
||||
JOIN sys_menu m
|
||||
ON m.tenant_id = @tenant_id AND m.deleted = 0
|
||||
AND (m.path IN ('/approval', '/approval/todo', '/approval/instance')
|
||||
OR m.authority IN ('approval:instance:list', 'approval:instance:submit', 'approval:instance:approve'))
|
||||
WHERE r.tenant_id = @tenant_id AND r.deleted = 0 AND r.role_code = 'approval_related_dept'
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM sys_role_menu rm
|
||||
WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id AND rm.tenant_id = @tenant_id
|
||||
);
|
||||
|
||||
-- 5. 价格表查看:全体员工可查当前生效与历史版本(ADR 0008)
|
||||
INSERT INTO sys_role_menu (role_id, menu_id, tenant_id)
|
||||
SELECT r.role_id, m.menu_id, @tenant_id
|
||||
FROM sys_role r
|
||||
JOIN sys_menu m
|
||||
ON m.tenant_id = @tenant_id AND m.deleted = 0
|
||||
AND (m.path = '/approval/price' OR m.authority = 'approval:price:view')
|
||||
WHERE r.tenant_id = @tenant_id AND r.deleted = 0
|
||||
AND (r.role_code = 'approval_staff'
|
||||
OR LEFT(r.role_code, 12) = 'dept_leader_'
|
||||
OR LEFT(r.role_code, 12) = 'dept_deputy_'
|
||||
OR r.role_code IN ('approval_archivist', 'approval_cashier', 'approval_typist',
|
||||
'approval_issuer', 'approval_general_manager', 'approval_related_dept'))
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM sys_role_menu rm
|
||||
WHERE rm.role_id = r.role_id AND rm.menu_id = m.menu_id AND rm.tenant_id = @tenant_id
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user