From f55ceba171663af45cfbf0aeaf14a19cfb58425f Mon Sep 17 00:00:00 2001 From: yubaolee Date: Sat, 24 Dec 2022 21:38:48 +0800 Subject: [PATCH] =?UTF-8?q?fix=20issue=20#I62YDO=20=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E6=8B=96=E6=8B=BD=E8=A1=A8=E5=8D=95=E9=BB=98=E8=AE=A4=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0InstanceId=EF=BC=8C=E6=96=B9=E4=BE=BF=E5=8F=96?= =?UTF-8?q?=E5=85=B3=E5=8D=A1=E7=9A=84=E5=AE=A1=E6=89=B9=E6=84=8F=E8=A7=81?= =?UTF-8?q?=E7=AD=89=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Infrastructure/Define.cs | 2 ++ OpenAuth.App/FlowInstance/FlowInstanceApp.cs | 8 ++++++++ OpenAuth.App/Form/DragForm.cs | 18 ++++++++++-------- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/Infrastructure/Define.cs b/Infrastructure/Define.cs index 8101ed5d..96b8aa94 100644 --- a/Infrastructure/Define.cs +++ b/Infrastructure/Define.cs @@ -28,5 +28,7 @@ public const string DATAPRIVILEGE_LOGINORG = "{loginOrg}"; //数据权限配置中,当前登录用户部门的key public const string JOBMAPKEY = "OpenJob"; + + public const string DEFAULT_FORM_INSTANCE_ID_NAME = "InstanceId"; } } diff --git a/OpenAuth.App/FlowInstance/FlowInstanceApp.cs b/OpenAuth.App/FlowInstance/FlowInstanceApp.cs index 73d4637d..61a62f58 100644 --- a/OpenAuth.App/FlowInstance/FlowInstanceApp.cs +++ b/OpenAuth.App/FlowInstance/FlowInstanceApp.cs @@ -156,6 +156,14 @@ namespace OpenAuth.App continue; } + //讲流程实例ID赋值到表单数据表中,实现表单记录与流程实例关联 + if (column.ColumnName == Define.DEFAULT_FORM_INSTANCE_ID_NAME) + { + columnstr += $"{Define.DEFAULT_FORM_INSTANCE_ID_NAME},"; + valstr += "'" + flowInstance.Id + "',"; + continue; + } + var val = json[column.ColumnName]; if (val == null) { diff --git a/OpenAuth.App/Form/DragForm.cs b/OpenAuth.App/Form/DragForm.cs index 76a8fa1a..5db71b0d 100644 --- a/OpenAuth.App/Form/DragForm.cs +++ b/OpenAuth.App/Form/DragForm.cs @@ -26,18 +26,19 @@ namespace OpenAuth.App if (dbType == Define.DBTYPE_SQLSERVER) //Sql Server { // 获取字段并处理 - var jsonArray = JsonHelper.Instance.Deserialize(form.ContentData)["list"]; - // 数据库名称 + var jsonArray = JsonHelper.Instance.Deserialize(form.ContentData)["widgetList"]; string tableName = form.DbName; + //如果数据库已经存在该表,则不用创建 var exist = _unitWork.FromSql($"select '1' as value from sysobjects where name = '{tableName}' and type = 'U'").SingleOrDefault(); if (exist != null) return string.Empty; - // 创建数据表 + // 如果数据库没有指定的表,则创建表 StringBuilder sql = new StringBuilder($"CREATE TABLE {tableName} ( [Id] varchar(50) COLLATE Chinese_PRC_CI_AS NOT NULL,"); //主键 + sql.Append($"[{Define.DEFAULT_FORM_INSTANCE_ID_NAME}] varchar(50) COLLATE Chinese_PRC_CI_AS,"); //默认加上FlowinstanceId字段,记录关联的流程实例ID string sqlDefault = ""; foreach (var json in jsonArray) { string type = json["type"].ToString(); - string name = json["model"].ToString(); + string name = json["options"]["name"].ToString(); sql.Append("[" + name + "] " + field_type_sql(type)); //字段拼接 if ("checkboxs" == type) sqlDefault += field_type_sql_default(tableName, name, "0"); @@ -58,17 +59,18 @@ namespace OpenAuth.App else { // 获取字段并处理 - var jsonArray = JsonHelper.Instance.Deserialize(form.ContentData)["list"]; - // 数据库名称 + var jsonArray = JsonHelper.Instance.Deserialize(form.ContentData)["widgetList"]; string tableName = form.DbName; + //如果数据库已经存在该表,则不用创建 var exist = _unitWork.FromSql($"select distinct table_name as value from information_schema.tables where table_name ='{tableName}'").SingleOrDefault(); if (exist != null) return string.Empty; - // 创建数据表 + // 如果数据库没有指定的表,则创建表 StringBuilder sql = new StringBuilder($"create table if not exists `{tableName}` ( Id varchar(50) not null primary key,"); //主键 + sql.Append($"`{Define.DEFAULT_FORM_INSTANCE_ID_NAME}` varchar(50),"); //默认加上FlowinstanceId字段,记录关联的流程实例ID foreach (var json in jsonArray) { string type = json["type"].ToString(); - string name = json["model"].ToString(); + string name = json["options"]["name"].ToString(); sql.Append("`" + name + "` " + field_type_mysql(type)); //字段拼接 }