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)); //字段拼接 }