fix: 代码审查修复
- 会签:一人多组时取消其所在**每个组**的其余待办(原先只取消点击任务所在组,另一组永久 PENDING 卡单) - 跨库:提交首节点审批人解析移出事务;协调单受理部门改为 prepare 事务外解析 - 回填:CONFIRM 节点支持 writableFields(ADR 0006 三类节点均可声明) - 收据单:受理部门(财务部)快照到实例,列表/导出可见 - 明细导出:ENUM 列输出中文文案而非存储编码 - 价格表:历史版本包含未来生效的已归档版本 - 导出会签进度一次装配,去掉按节点重复查询 - 菜单种子:价格菜单在 superAdmin 授权之前,授权条件覆盖 approval:% - doc_type 与 flow_code 常量分开;删除未使用的 findByDocType / ApprovalDetail.fieldChanges - 补附件三档白名单用例(VOUCHER 通过、EXTERNAL 被拒)
This commit is contained in:
+15
-13
@@ -65,19 +65,6 @@ WHERE NOT EXISTS (
|
||||
SELECT 1 FROM sys_menu WHERE tenant_id = 10150 AND authority = 'approval:instance:export' AND menu_type = 1 AND deleted = 0
|
||||
);
|
||||
|
||||
-- 授权 superAdmin(role_id = 586, tenant 10150)
|
||||
INSERT INTO sys_role_menu (role_id, menu_id, tenant_id)
|
||||
SELECT 586, m.menu_id, 10150
|
||||
FROM sys_menu m
|
||||
WHERE m.tenant_id = 10150
|
||||
AND m.deleted = 0
|
||||
AND (m.path IN ('/approval', '/approval/todo', '/approval/instance') OR m.authority LIKE 'approval:instance:%')
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 586 AND rm.menu_id = m.menu_id AND rm.tenant_id = 10150
|
||||
);
|
||||
|
||||
SET @instanceMenu = (SELECT menu_id FROM sys_menu WHERE tenant_id = 10150 AND path = '/approval/instance' AND menu_type = 0 AND deleted = 0 ORDER BY menu_id LIMIT 1);
|
||||
|
||||
-- 价格表查看(ADR 0008):受众全体员工,独立权限点,配 /approval/price 只读页
|
||||
SET @parent = (SELECT menu_id FROM sys_menu WHERE tenant_id = 10150 AND path = '/approval' AND menu_type = 0 AND deleted = 0 ORDER BY menu_id LIMIT 1);
|
||||
|
||||
@@ -94,3 +81,18 @@ FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM sys_menu WHERE tenant_id = 10150 AND authority = 'approval:price:view' AND menu_type = 1 AND deleted = 0
|
||||
);
|
||||
|
||||
-- 授权 superAdmin(role_id = 586, tenant 10150)
|
||||
INSERT INTO sys_role_menu (role_id, menu_id, tenant_id)
|
||||
SELECT 586, m.menu_id, 10150
|
||||
FROM sys_menu m
|
||||
WHERE m.tenant_id = 10150
|
||||
AND m.deleted = 0
|
||||
AND (m.path IN ('/approval', '/approval/todo', '/approval/instance', '/approval/price')
|
||||
OR m.authority LIKE 'approval:%')
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM sys_role_menu rm WHERE rm.role_id = 586 AND rm.menu_id = m.menu_id AND rm.tenant_id = 10150
|
||||
);
|
||||
|
||||
SET @instanceMenu = (SELECT menu_id FROM sys_menu WHERE tenant_id = 10150 AND path = '/approval/instance' AND menu_type = 0 AND deleted = 0 ORDER BY menu_id LIMIT 1);
|
||||
|
||||
|
||||
@@ -90,18 +90,5 @@ CREATE TABLE IF NOT EXISTS approval_field_change (
|
||||
KEY idx_field (tenant_id, field_key, new_value)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审批字段改值历史';
|
||||
|
||||
-- 老数据回填:一期实例没有 title/search_text(幂等,只补空值)
|
||||
UPDATE approval_instance i
|
||||
JOIN approval_completion_form f ON f.instance_id = i.id
|
||||
SET i.title = f.name,
|
||||
i.search_text = CONCAT_WS(' ', f.name, f.implement_org, f.service_content)
|
||||
WHERE i.title IS NULL;
|
||||
|
||||
UPDATE approval_instance i
|
||||
JOIN approval_coordination_form c ON c.instance_id = i.id
|
||||
SET i.title = c.title,
|
||||
i.search_text = CONCAT_WS(' ', c.title, c.content, c.remark)
|
||||
WHERE i.title IS NULL;
|
||||
|
||||
DROP PROCEDURE IF EXISTS approval_phase2_add_column;
|
||||
DROP PROCEDURE IF EXISTS approval_phase2_add_index;
|
||||
|
||||
Reference in New Issue
Block a user