1 前言
表单创建后发现类型不合适,居多场景是:
- 一开始是普通表单,发现后续需要流程管控,要转换成流程表单,但是不想重新配置
- 最初业务要流程管控,但是验证过程发觉没必要,或者流程不清晰,需要先不用流程,要转换成普通表单
目前继承表单的转换比较复杂,不推荐,本文主要以普通表单转流程表单为例阐述。
2 转换操作说明
以下建议是【开发人员】操作,需对数据库进行操作
2.1 普通表单转换流程表单
2.1.1 找到表单分类id
- 通过【开发平台】进入应用设置
- 切换到对应的产品找到对应的应用
- 点击应用进入【配置应用】界面
- 点击需要转换的表单,链接最后即是表单分类id
2.1.2 执行转换sql
注意:SQL中{}代表变量,需要处理替换
-- 将表单类型转换为流程表单,此处的{formClassId}即为上步骤获取的表单分类id,可全局替换
update obj_class c set form_type = 'FORM_WORKFLOW' where c.id = '{formClassId}';
-- 插入表单与流程的关联配置
-- 变量{表单分类编码_时间戳}示例:REST_MATERIAL_ORDER_202303150939123
INSERT INTO obj_workflow_relation
(id, class_id, config_id, condition_id, workflow_type, is_enable, is_deleted, crt_user, crt_name, crt_time, crt_host, upd_user, upd_name, upd_time, upd_host, reject_reason, status_attr_id, form_id, config_name, descri)
VALUES(replace(gen_random_uuid()::text, '-', ''), '{formClassId}', '{表单分类编码_时间戳}', NULL, 'STATE_MACHINE', '1', '0', 'admin', '超级管理员', 'now()', '172.17.227.161', 'admin', '超级管理员', 'now()', '172.17.227.161', NULL, NULL, NULL, '{表单名称}流程', NULL);
-- 查询状态机模板分类id
select * from state_machine_category t where t.code = 'SUBSTANCE_CODE';
-- 插入状态机模板配置
-- 变量{表单分类编码_时间戳}要与上面一致
-- {state_machine_category_id} 上一步查询到的id
INSERT INTO state_machine_template
(id, code, descri, category_id, is_enabled, is_deleted, crt_user, crt_name, crt_time, crt_host, upd_user, upd_name, upd_time, upd_host, "name", interceptors, config, product_id, tenant_id)
VALUES(replace(gen_random_uuid()::text, '-', ''), '{表单分类编码_时间戳}', NULL, '{state_machine_category_id}', '1', '0', NULL, NULL, 'now()', NULL, NULL, NULL, 'now()', NULL, '{表单名称}流程', 'ObjStatusRewriteInterceptor.class,ObjStatusRewriteInterceptor.class', NULL, '{产品线id}', '{租户id}');
-- 将菜单资源普通表单类型改为流程表单
-- {表单名称} 即为页面上显示的名字,与表单的名称相同
update sys_page p set comp_type = 'WFORM' where p.page_name = '{表单名称}' and p.is_enabled = '1' and p.comp_type = 'FORM';
2.1.3 执行流程表单属性初始化sql
注意:SQL中{}代表变量,需要处理替换
2.1.3.1 根据现有流程表单做参考
利用现有的流程表单的属性配置做参考初始化
insert into obj_attribute
select
substring(t.id,0,30) id,'{当前表单分类id}' class_id,t."name",t.api_name,t.description,t.attr_type,t.is_version_on,t.table_type,t.is_built_in,t.is_enabled,t.is_deleted,t.sort_no
,t.crt_user,t.crt_name,t.crt_time,t.crt_host,t.upd_user,t.upd_name,t.upd_time,t.upd_host,t.integr_column_name,t.is_change_on,t.control_level
,t.unit_value_set,t.module_config_info,t.attribute_tag_id,'{当前表单主表单属性组id}' attribute_group_id,t.is_copiable,t.attr_alias,t.add_type,t.max_length,t.accuracy,t.is_null
,t.old_group_id,t.dict_id,t.dict_config,t.is_virtual,t.is_effective,t.design_id
from obj_attribute t
where t.class_id = '{参考流程表单分类id}' and t.is_built_in = '1' and t.is_deleted = '0' and t.api_name not in (
select a.api_name from obj_attribute a where a.class_id = '{当前表单分类id}' and a.is_built_in = '1'
);
-- 查询当前主表单的属性组id
select a.attribute_group_id from obj_attribute a where a.class_id = '{当前表单分类id}' and a.is_built_in = '1' limit 1;
2.1.3.2 固定初始化数据记录
不推荐,可能会有新增,如果有最新的流程表单数据做参考会更好,id 创建人 更新人相关信息需要自己修改
INSERT INTO obj_attribute (id,class_id,"name",api_name,description,attr_type,is_version_on,table_type,is_built_in,is_enabled,is_deleted,sort_no,crt_user,crt_name,crt_time,crt_host,upd_user,upd_name,upd_time,upd_host,integr_column_name,is_change_on,control_level,unit_value_set,module_config_info,attribute_tag_id,attribute_group_id,is_copiable,attr_alias,add_type,max_length,accuracy,is_null,old_group_id,dict_id,dict_config,is_virtual,is_effective,design_id) VALUES
('5511d1dc02924ebc9bbd44903ed','{当前表单分类id}','工作流关联模板ID','WF_RELATION_ID',NULL,'TEXT',NULL,NULL,'1','1','0',10,'admin','超级管理员','2024-03-15 09:44:39.524','172.17.227.102','huangzebin','黄泽彬','2024-04-11 09:35:45.889','10.21.25.101',NULL,NULL,NULL,NULL,NULL,NULL,'{当前表单主表单属性组id}','1',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
('7ee6f8a14b6443fba3e4c76de1f','{当前表单分类id}','工作流实例ID','WF_INSTANCE_ID',NULL,'TEXT',NULL,NULL,'1','1','0',11,'admin','超级管理员','2024-03-15 09:44:39.524','172.17.227.102','huangzebin','黄泽彬','2024-04-11 09:35:45.910','10.21.25.101',NULL,NULL,NULL,NULL,NULL,NULL,'{当前表单主表单属性组id}','1',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
('020e6bc7b3c5408e94118c9155b','{当前表单分类id}','工作流当前操作人','CURRENT_HANDLER',NULL,'TEXT',NULL,NULL,'1','1','0',12,'admin','超级管理员','2024-03-15 09:44:39.524','172.17.227.102','huangzebin','黄泽彬','2024-04-11 09:35:45.930','10.21.25.101',NULL,NULL,NULL,NULL,NULL,NULL,'{当前表单主表单属性组id}','1',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
('40d4affee3624614aa3ad4df2e1','{当前表单分类id}','工作流当前节点','CURRENT_NODE',NULL,'TEXT',NULL,NULL,'1','1','0',13,'admin','超级管理员','2024-03-15 09:44:39.524','172.17.227.102','huangzebin','黄泽彬','2024-04-11 09:35:45.949','10.21.25.101',NULL,NULL,NULL,NULL,NULL,NULL,'{当前表单主表单属性组id}','1',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
('5fe4cb0ed9394d8d9f2df99d5e1','{当前表单分类id}','工作流当前操作人姓名','CURRENT_HANDLER_NAME',NULL,'TEXT',NULL,NULL,'1','1','0',14,'admin','超级管理员','2024-03-15 09:44:39.524','172.17.227.102','huangzebin','黄泽彬','2024-04-11 09:35:45.971','10.21.25.101',NULL,NULL,NULL,NULL,NULL,NULL,'{当前表单主表单属性组id}','1',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL),
('df29dac576e84007bfe8b9778b7','{当前表单分类id}','工作流当前节点名称','CURRENT_NODE_NAME',NULL,'TEXT',NULL,NULL,'1','1','0',15,'admin','超级管理员','2024-03-15 09:44:39.524','172.17.227.102','huangzebin','黄泽彬','2024-04-11 09:35:45.991','10.21.25.101',NULL,NULL,NULL,NULL,NULL,NULL,'{当前表单主表单属性组id}','1',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL);
作者:聂维 创建时间:2024-03-15 10:59
最后编辑:聂维 更新时间:2025-05-12 18:04
最后编辑:聂维 更新时间:2025-05-12 18:04