将Engine中的CodeGen移入到VisualDev
This commit is contained in:
@@ -24,9 +24,7 @@ using JNPF.VisualDev.Interfaces;
|
||||
using JNPF.WorkFlow.Entitys.Entity;
|
||||
using JNPF.WorkFlow.Interfaces.Repository;
|
||||
using Mapster;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using SqlSugar;
|
||||
using Yitter.IdGenerator;
|
||||
|
||||
namespace JNPF.VisualDev;
|
||||
|
||||
@@ -205,7 +203,9 @@ public class RunService : IRunService, ITransient
|
||||
|
||||
if (realList.list.Any())
|
||||
{
|
||||
realList.list = await _formDataParsing.GetKeyData(templateInfo.SingleFormData, realList.list, templateInfo.ColumnData, actionType, templateInfo.WebType, primaryKey);
|
||||
if (templateInfo.SingleFormData.Any(x => x.__config__.templateJson != null && x.__config__.templateJson.Any()))
|
||||
realList.list = await _formDataParsing.GetKeyData(templateInfo.SingleFormData.Where(x => x.__config__.templateJson != null && x.__config__.templateJson.Any()).ToList(), realList.list, templateInfo.ColumnData, actionType, templateInfo.WebType, primaryKey);
|
||||
realList.list = await _formDataParsing.GetKeyData(templateInfo.SingleFormData.Where(x => x.__config__.templateJson == null).ToList(), realList.list, templateInfo.ColumnData, actionType, templateInfo.WebType, primaryKey);
|
||||
|
||||
// 如果是无表数据并且排序字段不为空,再进行数据排序
|
||||
if (!templateInfo.IsHasTable && input.sidx.IsNotEmptyOrNull())
|
||||
@@ -338,7 +338,9 @@ public class RunService : IRunService, ITransient
|
||||
|
||||
if (realList.list.Any())
|
||||
{
|
||||
realList.list = await _formDataParsing.GetKeyData(templateInfo.SingleFormData.Where(x => !x.__config__.jnpfKey.Equals(JnpfKeyConst.RELATIONFORM)).ToList(), realList.list, templateInfo.ColumnData, actionType, templateInfo.WebType.ParseToInt(), primaryKey);
|
||||
if (templateInfo.SingleFormData.Any(x => x.__config__.templateJson != null && x.__config__.templateJson.Any()))
|
||||
realList.list = await _formDataParsing.GetKeyData(templateInfo.SingleFormData.Where(x => x.__config__.templateJson != null && x.__config__.templateJson.Any()).ToList(), realList.list, templateInfo.ColumnData, actionType, templateInfo.WebType, primaryKey);
|
||||
realList.list = await _formDataParsing.GetKeyData(templateInfo.SingleFormData.Where(x => !x.__config__.jnpfKey.Equals(JnpfKeyConst.RELATIONFORM) && x.__config__.templateJson == null).ToList(), realList.list, templateInfo.ColumnData, actionType, templateInfo.WebType.ParseToInt(), primaryKey);
|
||||
|
||||
if (input.queryJson.IsNotEmptyOrNull())
|
||||
{
|
||||
@@ -539,14 +541,23 @@ public class RunService : IRunService, ITransient
|
||||
if (childModelData.Count > 0)
|
||||
{
|
||||
// 将关键字查询传输的id转换成名称
|
||||
newDataMap[strKey[i]] = await _formDataParsing.GetKeyData(model.__config__.children, childModelData, templateInfo.ColumnData.ToObject<ColumnDesignModel>());
|
||||
if (model.__config__.children.Any(x => x.__config__.templateJson != null && x.__config__.templateJson.Any()))
|
||||
newDataMap[strKey[i]] = await _formDataParsing.GetKeyData(model.__config__.children.Where(x => x.__config__.templateJson != null && x.__config__.templateJson.Any()).ToList(), childModelData, templateInfo.ColumnData, "List", 2, "F_Id", dataMap);
|
||||
newDataMap[strKey[i]] = await _formDataParsing.GetKeyData(model.__config__.children.Where(x => x.__config__.templateJson == null).ToList(), childModelData, templateInfo.ColumnData.ToObject<ColumnDesignModel>());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<Dictionary<string, object>> listEntity = new List<Dictionary<string, object>>() { dataMap };
|
||||
|
||||
foreach (var entryMap in (await _formDataParsing.GetKeyData(templateInfo.SingleFormData, listEntity, templateInfo.ColumnData)).FirstOrDefault())
|
||||
// 控件联动
|
||||
var tempDataMap = new Dictionary<string, object>();
|
||||
if (templateInfo.SingleFormData.Any(x => x.__config__.templateJson != null && x.__config__.templateJson.Any()))
|
||||
tempDataMap = (await _formDataParsing.GetKeyData(templateInfo.SingleFormData.Where(x => x.__config__.templateJson != null && x.__config__.templateJson.Any()).ToList(), listEntity, templateInfo.ColumnData)).FirstOrDefault();
|
||||
tempDataMap = (await _formDataParsing.GetKeyData(templateInfo.SingleFormData.Where(x => x.__config__.templateJson == null).ToList(), listEntity, templateInfo.ColumnData)).FirstOrDefault();
|
||||
|
||||
// 将关键字查询传输的id转换成名称
|
||||
foreach (var entryMap in tempDataMap)
|
||||
{
|
||||
if (entryMap.Value != null)
|
||||
{
|
||||
@@ -820,7 +831,6 @@ public class RunService : IRunService, ITransient
|
||||
templateInfo.DbLink = await GetDbLink(templateEntity.DbLinkId);
|
||||
return await GetUpdateSqlByTemplate(templateInfo, visualdevModelDataUpForm, id);
|
||||
}
|
||||
|
||||
public async Task<List<string>> GetUpdateSqlByTemplate(TemplateParsingBase templateInfo, VisualDevModelDataUpInput visualdevModelDataUpForm, string id)
|
||||
{
|
||||
Dictionary<string, object>? allDataMap = visualdevModelDataUpForm.data.ToObject<Dictionary<string, object>>();
|
||||
@@ -2207,6 +2217,7 @@ public class RunService : IRunService, ITransient
|
||||
|
||||
var idField = templateInfo.AllTable.Where(x => x.table.Equals(item.Key)).First().tableField;
|
||||
var itemSql = string.Format(sqlStr, idField.IsNullOrEmpty() ? primaryKey : idField, item.Key);
|
||||
dataPermissionsList = GetIConditionalModelListByTableName(dataPermissionsList, item.Key);// 删除非当前表条件
|
||||
var itemWhere = _visualDevRepository.AsSugarClient().SqlQueryable<dynamic>("@").Where(item.Value).Where(dataPermissionsList).ToSqlString();
|
||||
if (itemWhere.Contains("WHERE"))
|
||||
{
|
||||
@@ -2348,6 +2359,32 @@ public class RunService : IRunService, ITransient
|
||||
|
||||
return sql;
|
||||
}
|
||||
private List<IConditionalModel> GetIConditionalModelListByTableName(List<IConditionalModel> cList, string tableName)
|
||||
{
|
||||
for (int i = 0; i < cList.Count; i++)
|
||||
{
|
||||
if (cList[i] is ConditionalTree)
|
||||
{
|
||||
var newItem = (ConditionalTree)cList[i];
|
||||
for (int j = 0; j < newItem.ConditionalList.Count; j++)
|
||||
{
|
||||
var value = GetIConditionalModelListByTableName(new List<IConditionalModel>() { newItem.ConditionalList[j].Value }, tableName);
|
||||
if (value != null && value.Any()) newItem.ConditionalList[j] = new KeyValuePair<WhereType, IConditionalModel>(newItem.ConditionalList[j].Key, value.First());
|
||||
else newItem.ConditionalList.RemoveAt(j);
|
||||
}
|
||||
|
||||
if(newItem.ConditionalList.Any()) cList[i] = newItem;
|
||||
else cList.RemoveAt(i);
|
||||
}
|
||||
else if (cList[i] is ConditionalModel)
|
||||
{
|
||||
var newItem = (ConditionalModel)cList[i];
|
||||
if (!newItem.FieldName.Contains(tableName)) cList.RemoveAt(i);
|
||||
}
|
||||
}
|
||||
|
||||
return cList;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 组装单条信息查询sql.
|
||||
@@ -3050,8 +3087,9 @@ public class RunService : IRunService, ITransient
|
||||
});
|
||||
if (pList.Any())
|
||||
{
|
||||
var json = pList.ToJsonString();
|
||||
json = json.Replace(item.Key + ".", string.Empty);
|
||||
dataPermissionsList = _visualDevRepository.AsSugarClient().Utilities.JsonToConditionalModels(pList.ToJsonString());
|
||||
dataPermissionsList = GetIConditionalModelListByTableName(dataPermissionsList, item.Key);
|
||||
var json = dataPermissionsList.ToJsonString().Replace(item.Key + ".", string.Empty);
|
||||
dataPermissionsList = _visualDevRepository.AsSugarClient().Utilities.JsonToConditionalModels(json);
|
||||
}
|
||||
}
|
||||
@@ -3066,7 +3104,11 @@ public class RunService : IRunService, ITransient
|
||||
{
|
||||
var rows = dt.Where(x => x[relationField[item.Key]].ToString().Equals(it[primaryKey].ToString())).ToList();
|
||||
var childTableModel = templateInfo.ChildTableFieldsModelList.First(x => x.__vModel__.Equals(vModel));
|
||||
var datas = await _formDataParsing.GetKeyData(childTableModel.__config__.children, rows, templateInfo.ColumnData.ToObject<ColumnDesignModel>());
|
||||
|
||||
var datas = new List<Dictionary<string, object>>();
|
||||
if (childTableModel.__config__.children.Any(x => x.__config__.templateJson != null && x.__config__.templateJson.Any()))
|
||||
datas = (await _formDataParsing.GetKeyData(childTableModel.__config__.children.Where(x => x.__config__.templateJson != null && x.__config__.templateJson.Any()).ToList(), rows, templateInfo.ColumnData, "List",2, "F_Id", it));
|
||||
datas = await _formDataParsing.GetKeyData(childTableModel.__config__.children.Where(x => x.__config__.templateJson == null).ToList(), rows, templateInfo.ColumnData);
|
||||
var newDatas = datas.Copy();
|
||||
newDatas.ForEach(x => x.Remove(relationField[item.Key]));
|
||||
it.Add(vModel, newDatas);
|
||||
|
||||
Reference in New Issue
Block a user