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/
# 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'");
break;
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");
break;
default:

View File

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

View File

@@ -102,7 +102,8 @@ public interface IRunService
/// <param name="id"></param>
/// <param name="templateEntity"></param>
/// <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>
/// 生成系统自动生成字段.

View File

@@ -789,7 +789,8 @@ public class ExportImportDataHelper : ITransient
if (item.ContainsKey("Update_MainTablePrimary_Id"))
{
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); // 修改功能数据
}
else
@@ -802,7 +803,8 @@ public class ExportImportDataHelper : ITransient
else
{
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.
if (haveTableSql.ContainsKey("MainTableReturnIdentity"))

View File

@@ -486,7 +486,8 @@ public class RunService : IRunService, ITransient
/// <param name="templateEntity">模板实体.</param>
/// <param name="isFlowTask"></param>
/// <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); // 解析模板控件
DbLinkEntity link = await GetDbLink(templateEntity.DbLinkId);
@@ -496,7 +497,8 @@ public class RunService : IRunService, ITransient
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();
if (data == null) return id;
// modified by pf 2023-04-12 返回值不序列化
if (data == null) return data;
// 记录全部数据
Dictionary<string, object> dataMap = new Dictionary<string, object>();
@@ -573,7 +575,8 @@ public class RunService : IRunService, ITransient
_formDataParsing.GetBARAndQR(templateInfo.FieldsModelList, newDataMap, dataMap); // 处理 条形码 、 二维码 控件
if (!newDataMap.ContainsKey("id")) newDataMap.Add("id", id);
return newDataMap.ToJsonString();
// modified by pf 2023-04-12 返回值不序列化
return newDataMap;
}
#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)
{
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); // 验证模板
// 处理系统控件(模板开启行编辑)
@@ -794,15 +798,16 @@ public class RunService : IRunService, ITransient
if (templateInfo.ColumnData.type.Equals(4) && _userManager.UserOrigin.Equals("pc"))
{
// 剔除 [增加前端回显字段 : 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>();
foreach (var item in oldDataMap)
{
var key = item.Key.Replace("_name", string.Empty);
if (!newDataMap.ContainsKey(key)) newDataMap.Add(key, oldDataMap[key]);
}
if (newDataMap.Any()) visualdevModelDataUpForm.data = newDataMap.ToJsonString();
// modified by PhilPan 2023-04-12 提交和返回值不序列化
if (newDataMap.Any()) visualdevModelDataUpForm.data = newDataMap;
}
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)
{
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); // 验证模板
// 处理系统控件(模板开启行编辑)
@@ -1017,12 +1023,14 @@ public class RunService : IRunService, ITransient
tInfo.DbLink = await GetDbLink(fEntity.DbLinkId);
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); // 修改功能数据
}
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.
if (sqlList.ContainsKey("MainTableReturnIdentity")) sqlList.Remove("MainTableReturnIdentity");
@@ -3196,12 +3204,10 @@ public class RunService : IRunService, ITransient
var relationValueId = dataItem[item.__vModel__].ToString(); // 获取关联表单id
var relationInfo = await _visualDevRepository.AsQueryable().FirstAsync(x => x.Id == item.modelId); // 获取 关联表单 转换后的数据
var relationValueStr = string.Empty;
relationValueStr = await GetHaveTableInfoDetails(relationValueId, relationInfo);
if (!relationValueStr.IsNullOrEmpty() && !relationValueStr.Equals(relationValueId))
// modified by pf 2023-04-12 返回值不序列化
var relationValue = await GetHaveTableInfoDetails(relationValueId, relationInfo);
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 =>
{

File diff suppressed because it is too large Load Diff