This commit is contained in:
DEVICE8\12494
2023-04-14 09:54:53 +08:00
7 changed files with 2830 additions and 2809 deletions

10
.gitignore vendored
View File

@@ -360,4 +360,12 @@ MigrationBackup/
.ionide/ .ionide/
# Fody - auto-generated XML schema # Fody - auto-generated XML schema
FodyWeavers.xsd FodyWeavers.xsd
JetBrains Rider
.idea/
*.sln.DotSettings.user
*.sln.DotSettings
*.sln.DotSettings.VS2015.user
*.sln.DotSettings.VS2017.user
*.sln.DotSettings.VS2019.user

View File

@@ -843,6 +843,7 @@ WHERE pcolumn.table_name='{0}' ORDER BY ordinal_position";
sb.Append(@"select a.relname F_TABLE,a.n_live_tup F_SUM,b.description F_TABLENAME from sys_stat_user_tables a left outer join sys_description b on a.relid = b.objoid where a.schemaname='public' and b.objsubid='0'"); sb.Append(@"select a.relname F_TABLE,a.n_live_tup F_SUM,b.description F_TABLENAME from sys_stat_user_tables a left outer join sys_description b on a.relid = b.objoid where a.schemaname='public' and b.objsubid='0'");
break; break;
case "postgresql": case "postgresql":
//modified by PhilPan 2023-04-12,修复大小写错误
sb.Append(@"select cast(relname as varchar) as F_TABLE, cast(reltuples as varchar) as F_SUM, cast(obj_description(relfilenode,'pg_class') as varchar) as F_TABLENAME from pg_class c inner join pg_namespace n on n.oid = c.relnamespace and nspname='public' inner join pg_tables z on z.tablename=c.relname where relkind = 'r' and relname not like 'pg_%' and relname not like 'sql_%' and schemaname='public' order by relname"); sb.Append(@"select cast(relname as varchar) as F_TABLE, cast(reltuples as varchar) as F_SUM, cast(obj_description(relfilenode,'pg_class') as varchar) as F_TABLENAME from pg_class c inner join pg_namespace n on n.oid = c.relnamespace and nspname='public' inner join pg_tables z on z.tablename=c.relname where relkind = 'r' and relname not like 'pg_%' and relname not like 'sql_%' and schemaname='public' order by relname");
break; break;
default: default:

View File

@@ -12,7 +12,8 @@ public class VisualDevModelDataCrInput: FlowTaskOtherModel
/// <summary> /// <summary>
/// 数据. /// 数据.
/// </summary> /// </summary>
public string data { get; set; } /// modified by PhilPan 2023-04-12 返回值不序列化
public Dictionary<string, object> data { get; set; }
/// <summary> /// <summary>
/// 1-保存. /// 1-保存.

View File

@@ -102,7 +102,8 @@ public interface IRunService
/// <param name="id"></param> /// <param name="id"></param>
/// <param name="templateEntity"></param> /// <param name="templateEntity"></param>
/// <returns></returns> /// <returns></returns>
Task<string> GetHaveTableInfoDetails(string id, VisualDevEntity templateEntity, bool isFlowTask = false); /// modified by pf 2023-04-12 返回值不序列化
Task<Dictionary<string, object>?> GetHaveTableInfoDetails(string id, VisualDevEntity templateEntity, bool isFlowTask = false);
/// <summary> /// <summary>
/// 生成系统自动生成字段. /// 生成系统自动生成字段.

View File

@@ -789,7 +789,8 @@ public class ExportImportDataHelper : ITransient
if (item.ContainsKey("Update_MainTablePrimary_Id")) if (item.ContainsKey("Update_MainTablePrimary_Id"))
{ {
string? mainId = item["Update_MainTablePrimary_Id"].ToString(); string? mainId = item["Update_MainTablePrimary_Id"].ToString();
var haveTableSql = await _runService.GetUpdateSqlByTemplate(tInfo, new VisualDevModelDataUpInput() { data = item.ToJsonString() }, mainId); // modified by PhilPan 2023-04-12 提交和返回值不序列化
var haveTableSql = await _runService.GetUpdateSqlByTemplate(tInfo, new VisualDevModelDataUpInput() { data = item }, mainId);
foreach (var it in haveTableSql) await _databaseService.ExecuteSql(tInfo.DbLink, it); // 修改功能数据 foreach (var it in haveTableSql) await _databaseService.ExecuteSql(tInfo.DbLink, it); // 修改功能数据
} }
else else
@@ -802,7 +803,8 @@ public class ExportImportDataHelper : ITransient
else else
{ {
string? mainId = YitIdHelper.NextId().ToString(); string? mainId = YitIdHelper.NextId().ToString();
var haveTableSql = await _runService.GetCreateSqlByTemplate(tInfo, new VisualDevModelDataCrInput() { data = item.ToJsonString() }, mainId); // modified by PhilPan 2023-04-12 提交和返回值不序列化
var haveTableSql = await _runService.GetCreateSqlByTemplate(tInfo, new VisualDevModelDataCrInput() { data = item }, mainId);
// 主表自增长Id. // 主表自增长Id.
if (haveTableSql.ContainsKey("MainTableReturnIdentity")) if (haveTableSql.ContainsKey("MainTableReturnIdentity"))

View File

@@ -486,7 +486,8 @@ public class RunService : IRunService, ITransient
/// <param name="templateEntity">模板实体.</param> /// <param name="templateEntity">模板实体.</param>
/// <param name="isFlowTask"></param> /// <param name="isFlowTask"></param>
/// <returns></returns> /// <returns></returns>
public async Task<string> GetHaveTableInfoDetails(string id, VisualDevEntity templateEntity, bool isFlowTask = false) /// modified by pf 2023-04-12 返回值不序列化
public async Task<Dictionary<string, object>?> GetHaveTableInfoDetails(string id, VisualDevEntity templateEntity, bool isFlowTask = false)
{ {
TemplateParsingBase? templateInfo = new TemplateParsingBase(templateEntity, isFlowTask); // 解析模板控件 TemplateParsingBase? templateInfo = new TemplateParsingBase(templateEntity, isFlowTask); // 解析模板控件
DbLinkEntity link = await GetDbLink(templateEntity.DbLinkId); DbLinkEntity link = await GetDbLink(templateEntity.DbLinkId);
@@ -496,7 +497,8 @@ public class RunService : IRunService, ITransient
var sql = GetInfoQuerySql(id, mainPrimary, templateInfo, ref tableFieldKeyValue); // 获取查询Sql var sql = GetInfoQuerySql(id, mainPrimary, templateInfo, ref tableFieldKeyValue); // 获取查询Sql
Dictionary<string, object>? data = _databaseService.GetInterFaceData(link, sql).ToJsonString().ToObject<List<Dictionary<string, string>>>().ToObject<List<Dictionary<string, object>>>().FirstOrDefault(); Dictionary<string, object>? data = _databaseService.GetInterFaceData(link, sql).ToJsonString().ToObject<List<Dictionary<string, string>>>().ToObject<List<Dictionary<string, object>>>().FirstOrDefault();
if (data == null) return id; // modified by pf 2023-04-12 返回值不序列化
if (data == null) return data;
// 记录全部数据 // 记录全部数据
Dictionary<string, object> dataMap = new Dictionary<string, object>(); Dictionary<string, object> dataMap = new Dictionary<string, object>();
@@ -573,7 +575,8 @@ public class RunService : IRunService, ITransient
_formDataParsing.GetBARAndQR(templateInfo.FieldsModelList, newDataMap, dataMap); // 处理 条形码 、 二维码 控件 _formDataParsing.GetBARAndQR(templateInfo.FieldsModelList, newDataMap, dataMap); // 处理 条形码 、 二维码 控件
if (!newDataMap.ContainsKey("id")) newDataMap.Add("id", id); if (!newDataMap.ContainsKey("id")) newDataMap.Add("id", id);
return newDataMap.ToJsonString(); // modified by pf 2023-04-12 返回值不序列化
return newDataMap;
} }
#endregion #endregion
@@ -623,7 +626,8 @@ public class RunService : IRunService, ITransient
} }
public async Task<Dictionary<string, List<Dictionary<string, object>>>> GetCreateSqlByTemplate(TemplateParsingBase templateInfo, VisualDevModelDataCrInput dataInput, string mainId) public async Task<Dictionary<string, List<Dictionary<string, object>>>> GetCreateSqlByTemplate(TemplateParsingBase templateInfo, VisualDevModelDataCrInput dataInput, string mainId)
{ {
Dictionary<string, object>? allDataMap = dataInput.data.ToObject<Dictionary<string, object>>(); // modified by PhilPan 2023-04-12 提交和返回值不序列化
Dictionary<string, object>? allDataMap = dataInput.data;
if (!templateInfo.VerifyTemplate()) throw Oops.Oh(ErrorCode.D1401); // 验证模板 if (!templateInfo.VerifyTemplate()) throw Oops.Oh(ErrorCode.D1401); // 验证模板
// 处理系统控件(模板开启行编辑) // 处理系统控件(模板开启行编辑)
@@ -794,15 +798,16 @@ public class RunService : IRunService, ITransient
if (templateInfo.ColumnData.type.Equals(4) && _userManager.UserOrigin.Equals("pc")) if (templateInfo.ColumnData.type.Equals(4) && _userManager.UserOrigin.Equals("pc"))
{ {
// 剔除 [增加前端回显字段 : key_name] // 剔除 [增加前端回显字段 : key_name]
Dictionary<string, object> oldDataMap = visualdevModelDataUpForm.data.ToObject<Dictionary<string, object>>(); // modified by PhilPan 2023-04-12 提交和返回值不序列化
Dictionary<string, object> oldDataMap = visualdevModelDataUpForm.data;
Dictionary<string, object> newDataMap = new Dictionary<string, object>(); Dictionary<string, object> newDataMap = new Dictionary<string, object>();
foreach (var item in oldDataMap) foreach (var item in oldDataMap)
{ {
var key = item.Key.Replace("_name", string.Empty); var key = item.Key.Replace("_name", string.Empty);
if (!newDataMap.ContainsKey(key)) newDataMap.Add(key, oldDataMap[key]); if (!newDataMap.ContainsKey(key)) newDataMap.Add(key, oldDataMap[key]);
} }
// modified by PhilPan 2023-04-12 提交和返回值不序列化
if (newDataMap.Any()) visualdevModelDataUpForm.data = newDataMap.ToJsonString(); if (newDataMap.Any()) visualdevModelDataUpForm.data = newDataMap;
} }
DbLinkEntity link = await GetDbLink(templateEntity.DbLinkId); DbLinkEntity link = await GetDbLink(templateEntity.DbLinkId);
@@ -836,7 +841,8 @@ public class RunService : IRunService, ITransient
} }
public async Task<List<string>> GetUpdateSqlByTemplate(TemplateParsingBase templateInfo, VisualDevModelDataUpInput visualdevModelDataUpForm, string id) public async Task<List<string>> GetUpdateSqlByTemplate(TemplateParsingBase templateInfo, VisualDevModelDataUpInput visualdevModelDataUpForm, string id)
{ {
Dictionary<string, object>? allDataMap = visualdevModelDataUpForm.data.ToObject<Dictionary<string, object>>(); // modified by PhilPan 2023-04-12 提交和返回值不序列化
Dictionary<string, object>? allDataMap = visualdevModelDataUpForm.data;
if (!templateInfo.VerifyTemplate()) throw Oops.Oh(ErrorCode.D1401); // 验证模板 if (!templateInfo.VerifyTemplate()) throw Oops.Oh(ErrorCode.D1401); // 验证模板
// 处理系统控件(模板开启行编辑) // 处理系统控件(模板开启行编辑)
@@ -1017,12 +1023,14 @@ public class RunService : IRunService, ITransient
tInfo.DbLink = await GetDbLink(fEntity.DbLinkId); tInfo.DbLink = await GetDbLink(fEntity.DbLinkId);
if (isUpdate) if (isUpdate)
{ {
var sqlList = await GetUpdateSqlByTemplate(tInfo, new VisualDevModelDataUpInput() { data = formData }, dataId); // modified by PhilPan 2023-04-12 提交和返回值不序列化
var sqlList = await GetUpdateSqlByTemplate(tInfo, new VisualDevModelDataUpInput() { data = formData.ToObject<Dictionary<string, object>>() }, dataId);
foreach (var item in sqlList) await _databaseService.ExecuteSql(tInfo.DbLink, item); // 修改功能数据 foreach (var item in sqlList) await _databaseService.ExecuteSql(tInfo.DbLink, item); // 修改功能数据
} }
else else
{ {
var sqlList = await GetCreateSqlByTemplate(tInfo, new VisualDevModelDataUpInput() { data = formData }, dataId); // modified by PhilPan 2023-04-12 提交和返回值不序列化
var sqlList = await GetCreateSqlByTemplate(tInfo, new VisualDevModelDataUpInput() { data = formData.ToObject<Dictionary<string, object>>() }, dataId);
// 主表自增长Id. // 主表自增长Id.
if (sqlList.ContainsKey("MainTableReturnIdentity")) sqlList.Remove("MainTableReturnIdentity"); if (sqlList.ContainsKey("MainTableReturnIdentity")) sqlList.Remove("MainTableReturnIdentity");
@@ -3196,12 +3204,10 @@ public class RunService : IRunService, ITransient
var relationValueId = dataItem[item.__vModel__].ToString(); // 获取关联表单id var relationValueId = dataItem[item.__vModel__].ToString(); // 获取关联表单id
var relationInfo = await _visualDevRepository.AsQueryable().FirstAsync(x => x.Id == item.modelId); // 获取 关联表单 转换后的数据 var relationInfo = await _visualDevRepository.AsQueryable().FirstAsync(x => x.Id == item.modelId); // 获取 关联表单 转换后的数据
var relationValueStr = string.Empty; var relationValueStr = string.Empty;
relationValueStr = await GetHaveTableInfoDetails(relationValueId, relationInfo); // modified by pf 2023-04-12 返回值不序列化
var relationValue = await GetHaveTableInfoDetails(relationValueId, relationInfo);
if (!relationValueStr.IsNullOrEmpty() && !relationValueStr.Equals(relationValueId)) if (relationValue != null)
{ {
var relationValue = relationValueStr.ToObject<Dictionary<string, object>>();
// 添加到 子表 列 // 添加到 子表 列
model.__config__.children.Where(x => x.relationField.ReplaceRegex(@"_jnpfTable_(\w+)", string.Empty) == item.__vModel__).ToList().ForEach(citem => model.__config__.children.Where(x => x.relationField.ReplaceRegex(@"_jnpfTable_(\w+)", string.Empty) == item.__vModel__).ToList().ForEach(citem =>
{ {

File diff suppressed because it is too large Load Diff