导图社区 表单部署
这是一篇关于表单部署的思维导图,主要内容包括:逻辑,现状。描述了表单部署的各个环节和步骤,包括数据查询、校验、部署逻辑以及物化数据的处理。
社区模板帮助中心,点此进入>>
论语孔子简单思维导图
《傅雷家书》思维导图
《童年》读书笔记
《茶馆》思维导图
《朝花夕拾》篇目思维导图
《昆虫记》思维导图
《安徒生童话》思维导图
《鲁滨逊漂流记》读书笔记
《这样读书就够了》读书笔记
妈妈必读:一张0-1岁孩子认知发展的精确时间表
表单部署
现状
导入后已经导入了视图数据,也可以查询出来
/gate/formService/viewTag/listViewTag 根据formId查询表单视图列表
/gate/formService/viewTag/getViewTag 根据id查询viewtag详情
/gate/formService/dtf/getColumnList 没有返回数据,前端显示未获取到已部署的表单信息
/gate/formService/dtf/deployment 部署
入参formId versionId formTable
逻辑
传的Version与currentVersionId相同,为已部署过,不再部署
查询表单版本信息(form_version_change_record)
查询应用信息(form_application_info)
首次部署,对自定义表名进行校验
校验表名命名是否符合规范
校验表名是否已经存在 icdWebService.checkTableExist
校验表名是否与实体建模表名冲突
非首次部署
获取上个版本表单内容,获取formTable
form status为部署失败
获取存储的formTable
物化数据并保存
从表单版本中获取表单content信息,递归转换获取widget列表
从form_widget_info表获取表单对应组件信息
获取相对于当前部署版本的上个版本组件集合
获取上个版本之前版本的组件集合
获取子表中组件map
获取表名map
校验表单组件code不重复, 存放在uniqueWidgetCodeSet
校验组件code不能与系统字段冲突
校验组件不能变换组件类型(对比上个版本与更老版本的组件类型)
组装表单组件信息,保存到数据库form_widget_info
组装表单物化表字段信息, 保存到数据库
组装表单物化表信息, 保存到数据库
组装关联表单的options,更新关联表单的options
如果是remoteForm调用webService.materializeSysAssistTable创建系统辅助表
获取数据源信息
创建icd_sys_assist表
其它,调用webService.deployForm
InnerRuntimeController.deployForm --> DeployServiceImpl.deployForm
加锁 redis
从content中获取所有层级的widget列表
按照表将widget进行分组,放到map中(主表、各子表)
获取上个版本content中组件,同样按表将widget分组
组装表名map、组装表备注的map
组装物化表信息MaterializeTableInfoDTO
填充系统字段
填充业务字段
关联表单填充名称字段
执行物化
将物化表信息转换成sql
对每个表执行ddl sql
更新部署版本及状态(form_info)
如果是首次部署
设置默认权限组
如果是流程表单
发布默认流程定义workflowService.releaseDefaultDefinition
将json数据转换为BPMN模型,并部署到flowable引擎
更新流程状态等信息
添加版本信息(icd_process_version)
更新每个表单的部署状态(form_version_change_record)
设置deployment_status = 1