using JNPF.Common.Core.Manager; using JNPF.Common.Models; @if(Model.IsExport) { @:using JNPF.ClayObject; } @if(Model.IsImportData || Model.IsExport) { @:using JNPF.Common.Models.NPOI; } @if(Model.IsImportData) { @:using JNPF.Common.Const; @:using JNPF.Common.CodeGen.ExportImport; @:using JNPF.Common.Core.Manager.Files; @:using JNPF.Common.Dtos; } using JNPF.Common.Manager; using JNPF.Common.CodeGen.DataParsing; using JNPF.Common.Enums; using JNPF.Common.Extension; using JNPF.Common.Filter; using JNPF.Common.Security; using JNPF.DatabaseAccessor; using JNPF.DependencyInjection; using JNPF.DynamicApiController; using JNPF.FriendlyException; using JNPF.Systems.Entitys.System; using JNPF.Systems.Entitys.Permission; using JNPF.Systems.Interfaces.System; @if(Model.EnableFlow) { @:using JNPF.WorkFlow.Entitys.Entity; } @if(Model.IsImportData) { @:using JNPF.VisualDev.Engine; @:using JNPF.VisualDev.Engine.Core; @:using Microsoft.AspNetCore.Http; } using JNPF.@(Model.NameSpace).Entitys.Dto.@Model.ClassName; @foreach(var table in Model.AuxiliayTableRelations) { @*循环出副表的命名空间*@ @:using JNPF.@(Model.NameSpace).Entitys.Dto.@(table.ClassName); } @foreach(var table in Model.TableRelations) { @*循环出子表的命名空间*@ @:using JNPF.@(Model.NameSpace).Entitys.Dto.@(table.ClassName); } using JNPF.@(Model.NameSpace).Entitys; using JNPF.@(Model.NameSpace).Interfaces; using Mapster; using Microsoft.AspNetCore.Mvc; using SqlSugar; namespace JNPF.@(Model.NameSpace); /// /// 业务实现:@(Model.BusName). /// [ApiDescriptionSettings(Tag = "@(Model.Type == 3 ? Model.NameSpace + "Form" : Model.NameSpace)", Name = "@Model.ClassName", Order = 200)] [Route("api/@(Model.Type == 3 ? Model.NameSpace+ "/Form" : Model.NameSpace)/[controller]")] public class @(Model.ClassName)Service : I@(Model.ClassName)Service, IDynamicApiController, ITransient { /// /// 服务基础仓储. /// private readonly ISqlSugarRepository<@(Model.ClassName)Entity> _repository; @if(Model.IsBillRule) { @: @:/// @:/// 单据规则服务. @:/// @:private readonly IBillRullService _billRullService; } @if(Model.DbLinkId != "0" || Model.IsImportData) { @: @:/// @:/// 数据库管理. @:/// @:private readonly IDataBaseManager _dataBaseManager; } /// /// 数据接口服务. /// private readonly IDataInterfaceService _dataInterfaceService; /// /// 缓存管理. /// private readonly ICacheManager _cacheManager; /// /// 通用数据解析. /// private readonly ControlParsing _controlParsing; /// /// 用户管理. /// private readonly IUserManager _userManager; @if(Model.IsImportData) { @: @:/// @:/// 代码生成导出数据帮助类. @:/// @:private readonly ExportImportDataHelper _exportImportDataHelper; @: @:/// @:/// 文件服务. @:/// @:private readonly IFileManager _fileManager; } @if(Model.DbLinkId != "0") { @: @:/// @:/// 客户端. @:/// @:private static SqlSugarScope? _sqlSugarClient; } @if(Model.IsImportData || Model.IsExport) { @: @:/// @:/// 导出字段. @:/// @:private readonly List paramList = "[@(Model.ExportField)]".ToList(); } @if(Model.IsImportData) { @: @{var importField = 0;} @:/// @:/// 导入字段. @:/// @:private readonly List childParanList = "[@foreach(var table in Model.TableRelations){@if(table.IsImportData){@(importField == 0 ? "": ", ")@("{\\\"value\\\":\\\"" + table.ControlTableComment + "\\\",\\\"field\\\":\\\""+ table.ControlModel +"\\\"}")importField++;}}]".ToList(); @: @{importField = 0;} @:/// @:/// 导入字段. @:/// @:private readonly string[] uploaderKey = new string[] {@foreach(var table in Model.TableField){@if(table.IsImportField){@switch(table.IsAuxiliary){case true:@(importField==0 ? "\"" + "jnpf_" + @table.TableName + "_jnpf_" + @table.OriginalColumnName + "\"" : ", \"" + "jnpf_" + @table.TableName + "_jnpf_" + @table.OriginalColumnName + "\"")break;default:@(importField==0 ? "\"" + table.OriginalColumnName + "\"" : ", \"" + table.OriginalColumnName + "\"")break;} importField++;}}@foreach(var table in Model.TableRelations){@if(table.IsImportData){@(", \""+ table.ControlModel + "\"")@foreach(var column in table.ChilderColumnConfigList){@if(column.IsImportField){@(", \""+ table.ControlModel + "-" + column.OriginalColumnName + "\"")}}}} }; } /// /// 初始化一个类型的新实例. /// public @(Model.ClassName)Service( ISqlSugarRepository<@(Model.ClassName)Entity> repository, @if(Model.IsBillRule) { @:IBillRullService billRullService, } IDataInterfaceService dataInterfaceService, @if(Model.DbLinkId != "0" || Model.IsImportData) { @:IDataBaseManager dataBaseManager, } @if(Model.DbLinkId != "0"){ @:ISqlSugarClient context, } @if(Model.IsImportData){ @:ExportImportDataHelper exportImportDataHelper, @:IFileManager fileManager, } ICacheManager cacheManager, ControlParsing controlParsing, IUserManager userManager) { _repository = repository; @if(Model.IsBillRule) { @:_billRullService = billRullService; } @if(Model.DbLinkId != "0" || Model.IsImportData) { @:_dataBaseManager = dataBaseManager; } @if(Model.DbLinkId != "0") { @:_sqlSugarClient = (SqlSugarScope)context; } @if(Model.IsImportData) { @:_exportImportDataHelper = exportImportDataHelper; @:_fileManager = fileManager; } _dataInterfaceService = dataInterfaceService; _cacheManager = cacheManager; _controlParsing = controlParsing; _userManager = userManager; } @foreach(var item in Model.Function) { @switch(item.FullName) { @*信息方法*@ case "info": @: @:/// @:/// 获取@(Model.BusName). @:/// @:/// 主键值. @:/// @:[HttpGet("{id}")] @:public async Task GetInfo(@(Model.PrimaryKeyPolicy == 1 ? "string" : Model.EnableFlow ? "string" : "long") id) @:{ @if(Model.DbLinkId != "0") { @:var dbLink = await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)")); @:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink); @: } @:var output = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()" : "_repository.AsQueryable()") @foreach(var table in Model.AuxiliayTableRelations) { @:.Includes(it => it.@(table.ClassName)) } @foreach(var table in Model.TableRelations) { @:.Includes(it => it.@(table.ClassName)List) } @:.FirstAsync(it => it.@(Model.EnableFlow && Model.PrimaryKeyPolicy == 2 ? "FlowTaskId" : Model.PrimaryKey).Equals(id)); @: @*获取出副表数据*@ @foreach(var table in Model.AuxiliayTableRelations) { @:var auxiliay@(table.ClassName) = output?.@(table.ClassName).Adapt<@(table.ClassName)InfoOutput>(); } @: @:var data = output.Adapt<@(Model.ClassName)InfoOutput>(); @: @:if(output != null) @:{ @*合并*@ @foreach(var table in Model.AuxiliayTableRelations) { @:if (output.@(table.ClassName) != null) @:data = ConcurrentDictionaryExtensions.AssignmentObject(data, auxiliay@(table.ClassName)).Adapt<@(Model.ClassName)InfoOutput>(); } @foreach(var column in Model.TableField) { @{var parameterName = string.Empty;} @switch(column.IsAuxiliary) { case true: @{parameterName = "jnpf_" + @column.TableName + "_jnpf_" + @column.LowerColumnName;} break; default: @{parameterName = @column.LowerColumnName;} break; } @switch(column.jnpfKey) { case "modifyUser": case "createUser": @: @:// @column.ColumnComment @:data.@(parameterName) = await _repository.AsSugarClient().Queryable().Where(it => it.Id.Equals(data.@(parameterName))).Select(it => SqlFunc.MergeString(it.RealName, "/", it.Account)).FirstAsync(); break; case "currOrganize": @: @:// @column.ColumnComment @:data.@(parameterName) = await _repository.AsSugarClient().Queryable().Where(it => it.Id.Equals(data.@(parameterName))).Select(it => it.FullName).FirstAsync(); break; case "currPosition": @: @:// @column.ColumnComment @:data.@(parameterName) = await _repository.AsSugarClient().Queryable().Where(it => it.Id.Equals(data.@(parameterName))).Select(it => it.FullName).FirstAsync(); break; } } @:} @:else @:{ @:data = new @(Model.ClassName)InfoOutput(); @:} @:return data; @:} break; @*流程保存*@ case "save": @: @:/// @:/// 保存. @:/// @:/// 主键值. @:/// 表单数据. @:/// @:[HttpPost("{id}")] @:[UnitOfWork] @:public async Task Save(string id, [FromBody] @(@Model.ClassName)CrInput input) @:{ @*跨库*@ @if(Model.DbLinkId != "0") { @:var dbLink = await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals("@(@Model.DbLinkId)")); @:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink); @: } @:var entity = input.Adapt<@(@Model.ClassName)Entity>(); @:entity.@(Model.PrimaryKeyPolicy == 1 ? Model.PrimaryKey : "FlowTaskId") = id; @:if (await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()." : "_repository.Is")AnyAsync(x => x.@(Model.PrimaryKeyPolicy == 1 ? Model.PrimaryKey : "FlowTaskId").Equals(id)@(Model.PrimaryKeyPolicy == 2 ? " || x." + Model.PrimaryKey + ".Equals(id)" : ""))) @:{ @if(Model.PrimaryKeyPolicy == 2) { @:entity.Id = (await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()." : "_repository.Get")FirstAsync(it=> it.FlowTaskId.Equals(entity.FlowTaskId)@(Model.PrimaryKeyPolicy == 2 ? " || it." + Model.PrimaryKey + ".Equals(entity.FlowTaskId)" : ""))).Id; } @{ GetAndModifyDataMethodTemplate(); } @:} @:else @:{ @{ GetTheNewDataMethodTemplate(); } @:} @:} break; @*新增*@ case "add": @: @:/// @:/// 新建@(Model.BusName). @:/// @:/// 参数. @:/// @:[HttpPost("")] @:[UnitOfWork] @:public async Task Create([FromBody] @(Model.ClassName)CrInput input) @:{ @if(Model.DbLinkId != "0") { @:var dbLink = await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)")); @:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink); @: } @:var entity = input.Adapt<@(Model.ClassName)Entity>(); @if(Model.PrimaryKeyPolicy == 1) { @:entity.@(Model.PrimaryKey) = SnowflakeIdHelper.NextId(); } @{GetTheNewDataMethodTemplate();} @:} break; @*编辑*@ case "edit": @: @:/// @:/// 更新@(Model.BusName). @:/// @:/// 主键值. @:/// 参数. @:/// @:[HttpPut("{id}")] @:[UnitOfWork] @:public async Task Update(@(Model.PrimaryKeyPolicy == 1 ? "string" : "long") id, [FromBody] @(Model.ClassName)UpInput input) @:{ @*跨库*@ @if(Model.DbLinkId != "0") { @:var dbLink = await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)")); @:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink); @: } @:var entity = input.Adapt<@(Model.ClassName)Entity>(); @{ GetAndModifyDataMethodTemplate(); } @:} break; @*删除*@ case "remove": @: @:/// @:/// 删除@(Model.BusName). @:/// @:/// @:[HttpDelete("{id}")] @:[UnitOfWork] @:public async Task Delete(@(Model.PrimaryKeyPolicy == 1 ? "string" : "long") id) @:{ @*跨库*@ @if(Model.DbLinkId != "0") { @:var dbLink = await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)")); @:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink); @: } @:if(!await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()." : "_repository.Is")AnyAsync(it => it.@(Model.PrimaryKey) == id)) @:throw Oops.Oh(ErrorCode.COM1005); @: @*删除主表数据*@ @:var entity = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + @Model.ClassName + "Entity>()." : "_repository.Get")FirstAsync(it => it.@(Model.PrimaryKey).Equals(id)); @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Deleteable<" + Model.ClassName + "Entity>()" : "_repository.AsDeleteable()").Where(it => it.@(Model.PrimaryKey).Equals(id)).ExecuteCommandAsync(); @*删除副表数据*@ @foreach(var table in Model.AuxiliayTableRelations) { @: @:// 清空@(table.TableComment)表数据 @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Deleteable<@(table.ClassName)Entity>().Where(it => it.@(table.TableField).Equals(entity.@(table.RelationField))).ExecuteCommandAsync(); } @*删除子表数据*@ @foreach(var table in Model.TableRelations) { @: @:// 清空@(table.TableComment)表数据 @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Deleteable<@(table.ClassName)Entity>().Where(it => it.@(table.TableField).Equals(entity.@(table.RelationField))).ExecuteCommandAsync(); } @:} break; @*详情*@ case "detail": @: @:/// @:/// @(Model.BusName)详情. @:/// @:/// 主键值. @:/// @:[HttpGet("Detail/{id}")] @:public async Task GetDetails(@(Model.PrimaryKeyPolicy == 1 ? "string" : "long") id) @:{ @{var tableNo = Model.AuxiliayTableRelations.Count; } @*跨库*@ @if(Model.DbLinkId != "0") { @:var dbLink = await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)")); @:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink); @: } @:var data = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()" : "_repository.AsQueryable()") @foreach(var table in Model.AuxiliayTableRelations) { @:.Includes(x => x.@(table.ClassName)) } @:.Where(it => it.@(Model.PrimaryKey) == id).ToListAsync(it => new @(Model.ClassName)DetailOutput @:{ @*循环展示字段*@ @foreach (var column in Model.TableField){ @{var parameterName = string.Empty;} @{var parameterValue = string.Empty;} @switch(column.IsAuxiliary) { case true: @{parameterName = "jnpf_" + @column.TableName + "_jnpf_" + @column.LowerColumnName;} @{parameterValue = "it." + @column.ClassName;} break; default: @{parameterName = @column.LowerColumnName;} @{parameterValue = "it";} break; } @if (column.PrimaryKey){ @:@(column.LowerColumnName) = it.@column.ColumnName, }else if(column.jnpfKey != null){ @switch(column.jnpfKey) { case "uploadFz": case "uploadImg": @:@(parameterName)List = @(parameterValue).@(column.ColumnName), break; case "switch": @:@(parameterName) = SqlFunc.IIF(@(parameterValue).@(column.ColumnName) == 0, "@(column.InactiveTxt)", "@(column.ActiveTxt)"), break; case "date": @:@(parameterName) = @(parameterValue).@(column.ColumnName)@(column.IsAuxiliary ? "" : ".Value.ToString(\"" + column.Format + "\")"), break; case "createTime": case "modifyTime": @:@(parameterName) = @(parameterValue).@(column.ColumnName)@(column.IsAuxiliary ? "" : ".Value.ToString(\"yyyy-MM-dd HH:mm\")"), break; case "modifyUser": case "createUser": @:@(parameterName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_USER\")" : "").Where(u => u.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(u => SqlFunc.MergeString(u.RealName, "/", u.Account)), break; case "currOrganize": @:@(parameterName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_ORGANIZE\")" : "").Where(o => o.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(o => o.FullName), break; case "currPosition": @:@(parameterName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_POSITION\")" : "").Where(p => p.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(p => p.FullName), break; case "userSelect": @if(!column.IsMultiple) { @:@(parameterName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_USER\")" : "").Where(u => u.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(u => u.RealName), }else{ @:@(parameterName) = @(parameterValue).@(column.ColumnName), } break; case "posSelect": @if(!column.IsMultiple) { @:@(parameterName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_POSITION\")" : "").Where(p => p.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(p => p.FullName), }else{ @:@(parameterName) = @(parameterValue).@(column.ColumnName), } break; case "depSelect": @if(!column.IsMultiple) { @:@(parameterName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_ORGANIZE\")" : "").Where(o => o.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(o => o.FullName), }else{ @:@(parameterName) = @(parameterValue).@(column.ColumnName), } break; case "roleSelect": @if(!column.IsMultiple) { @:@(parameterName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_ROLE\")" : "").Where(r => r.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(r => r.FullName), }else{ @:@(parameterName) = @(parameterValue).@(column.ColumnName), } break; case "groupSelect": @if(!column.IsMultiple) { @:@(parameterName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_GROUP\")" : "").Where(g => g.Id.Equals(@(parameterValue).@(column.ColumnName))).Select(g => g.FullName), }else{ @:@(parameterName) = @(parameterValue).@(column.ColumnName), } break; case "radio": @switch(column.ControlsDataType) { case "dictionary": @if(!column.IsMultiple) { @:@(parameterName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_DICTIONARYDATA\")" : "").Where(dic => dic.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(parameterValue).@(column.ColumnName)) && dic.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(dic => dic.FullName), }else{ @:@(parameterName) = @(parameterValue).@(column.ColumnName)@(column.DataType == "int" ? ".ToString()" : ""), } break; default: @:@(parameterName) = @(parameterValue).@(column.ColumnName)@(column.DataType == "int" ? ".ToString()" : ""), break; } break; case "select": case "treeSelect": @switch(column.ControlsDataType) { case "dictionary": @if(!column.IsMultiple) { @:@(parameterName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_DICTIONARYDATA\")" : "").Where(dic => dic.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(parameterValue).@(column.ColumnName)) && dic.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(dic => dic.FullName), }else{ @:@(parameterName) = @(parameterValue).@(column.ColumnName), } break; default: @:@(parameterName) = @(parameterValue).@(column.ColumnName)@(column.NetType == "int" ? ".ToString()" : ""), break; } break; default: @:@(parameterName) = @(parameterValue).@(column.ColumnName)@(column.NetType == "int" ? ".ToString()" : ""), break; } } } @:}); @: @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").ThenMapperAsync(data, async item => @:{ @foreach(var table in Model.TableRelations) { @:item.@(table.ControlModel) = @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Queryable<@(table.ClassName)Entity>().SetContext(scl => scl.@(table.TableField), () => item.@(table.LowerRelationField), item).ToList().Adapt>(); @: } @if(Model.IsConversion) { @foreach (var column in Model.TableField) { @{var dataCount = column.StaticData != null ? column.StaticData.Count : 0;} @*参数名*@ @{var parameterName = string.Empty;} @switch(column.IsAuxiliary) { case true: @{parameterName = "jnpf_" + @column.TableName + "_jnpf_" + @column.LowerColumnName;} break; default: @{parameterName = @column.LowerColumnName;} break; } @if(column.IsDetailConversion) { @switch(column.jnpfKey) { case "uploadFz": case "uploadImg": @:if(item.@(parameterName)List != null) @:{ @:item.@(parameterName) = item.@(parameterName)List.ToObject>(); @:item.@(parameterName)List = null; @:} @:else @:{ @:item.@(parameterName) = new List(); @:} @: break; case "select": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(parameterName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = @(parameterName)Data.Find(it => item.@(parameterName).Equals(it.id))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName)); } @:} break; case "dictionary": @:if(item.@(parameterName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()); @:} break; case "dynamic": @:if(item.@(parameterName) != null) @:{ @:var @(parameterName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", ""); @if(!column.IsMultiple) { @:item.@(parameterName) = @(parameterName)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName)); } @:} break; } @: break; case "checkbox": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(parameterName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(item.@(parameterName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName)); @:} break; case "dictionary": @:if(item.@(parameterName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()); @:} break; case "dynamic": @:if(item.@(parameterName) != null) @:{ @:var @(parameterName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", ""); @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName)); @:} break; } @: break; case "radio": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(parameterName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(item.@(parameterName) != null) @:{ @:item.@(parameterName) = @(parameterName)Data.Find(it => item.@(parameterName).Equals(it.id))?.fullName; @:} break; case "dynamic": @:var @(parameterName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(item.@(parameterName) != null) @:{ @:item.@(parameterName) = string.Join(",", @(parameterName)Data .Find(it => it.id.Equals(item.@(parameterName)))?.fullName); @:} break; } @: break; case "cascader": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(parameterName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join("@(column.Separator)", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName)); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>>(); @:var @(parameterName)Excessive = new List(); @:foreach (var @(parameterName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(parameterName)Excessive.Add(string.Join("@(column.Separator)", @(parameterName)Data.FindAll(it => @(parameterName).Contains(it.id)).Select(s => s.fullName))); @:} @: @:item.@(parameterName) = string.Join(",", @(parameterName)Excessive); } @:} break; case "dictionary": @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>>(); @:var @(parameterName)Excessive = new List(); @:foreach (var @(parameterName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(parameterName)Excessive.Add(string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable().Where(it => @(parameterName).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync())); @:} @:item.@(parameterName) = string.Join(",", @(parameterName)Excessive); } @:} break; case "dynamic": @:var @(parameterName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join("@(column.Separator)", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>>(); @:var @(parameterName)Excessive = new List(); @:foreach (var @(parameterName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(parameterName)Excessive.Add(string.Join("@(column.Separator)", @(parameterName)Data.FindAll(it => @(parameterName).Contains(it.id)).Select(it => it.fullName))); @:} @: @:item.@(parameterName) = string.Join(",", @(parameterName)Excessive); } @:} break; } @: break; case "comSelect": @:// @column.ColumnComment @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>>(); @:var @(parameterName)Excessive = new List(); @:foreach (var @(parameterName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(parameterName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(parameterName).Contains(it.Id)).Select(it => it.FullName).ToListAsync())); @:} @: @:item.@(parameterName) = string.Join(",", @(parameterName)Excessive); } @:} @: break; case "depSelect": @:// @column.ColumnComment @:if(item.@(parameterName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); @:} @: break; case "posSelect": @:// @column.ColumnComment @:if(item.@(parameterName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); @:} @: break; case "userSelect": @:// @column.ColumnComment @:if(item.@(parameterName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => a.RealName).ToListAsync()); @:} @: break; case "roleSelect": @:// @column.ColumnComment @:if(item.@(parameterName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); @:} @: break; case "groupSelect": @:// @column.ColumnComment @:if(item.@(parameterName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); @:} @: break; case "treeSelect": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(parameterName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = @(parameterName)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName)); } @:} break; case "dictionary": @if(column.IsMultiple) { @:if(item.@(parameterName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()); @:} } break; case "dynamic": @:var @(parameterName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = @(parameterName)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} break; } @: break; case "address": @:// @column.ColumnComment @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(a.Id)).Select(it => it.FullName).ToListAsync()); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>>(); @:var @(parameterName)Excessive = new List(); @:foreach (var @(parameterName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(parameterName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(parameterName).Contains(it.Id)).Select(it => it.FullName).ToListAsync())); @:} @: @:item.@(parameterName) = string.Join(",", @(parameterName)Excessive); } @:} @: break; case "popupTableSelect": @:// @column.ColumnComment @:var @(parameterName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = @(parameterName)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", @(parameterName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} @: break; } } } } @:}); @foreach (var table in Model.TableRelations) { @if(table.IsConversion) { @: @:await _repository.AsSugarClient().ThenMapperAsync(data.SelectMany(it => it.@(table.ControlModel)), async @(table.LowerClassName) => @:{ @foreach(var column in table.ChilderColumnConfigList) { @{var dataCount = column.StaticData != null ? column.StaticData.Count : 0;} @if(column.IsShow && column.IsConversion) { @switch(column.jnpfKey) { case "switch": @:// @column.ColumnComment @:@(table.LowerClassName).@(column.LowerColumnName) = @(table.LowerClassName).@(column.LowerColumnName) == "0" ? "@(column.InactiveTxt)" : "@(column.ActiveTxt)"; break; case "select": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => @(table.LowerClassName).@(column.LowerColumnName).Equals(it.id))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} break; case "dictionary": @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = await _repository.AsSugarClient().Queryable().Where(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(table.LowerClassName).@(column.LowerColumnName)) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).FirstAsync(); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()); } @:} break; case "dynamic": @:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", ""); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} break; } @: break; case "checkbox": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); @:} break; case "dictionary": @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()); @:} break; case "dynamic": @:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", ""); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName)); @:} break; } @: break; case "radio": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "dictionary": @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @:@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(dic => dic.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(table.LowerClassName).@(column.LowerColumnName)) && dic.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName; @:} break; case "static": @:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => @(table.LowerClassName).@(column.LowerColumnName).Equals(it.id))?.fullName; @:} break; case "dynamic": @:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName); @:} break; } @: break; case "cascader": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>>(); @:var @(column.LowerColumnName)Excessive = new List(); @:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName).Contains(it.id)).Select(it => it.fullName))); @:} @: @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} break; case "dictionary": @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(itt => it.FullName).ToListAsync()); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>>(); @:var @(column.LowerColumnName)Excessive = new List(); @:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync())); @:} @: @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} break; case "dynamic": @:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>>(); @:var @(column.LowerColumnName)Excessive = new List(); @:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName).Contains(it.id)).Select(it => it.fullName))); @:} @: @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} break; } @: break; case "comSelect": @:// @column.ColumnComment @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>>(); @:var @(column.LowerColumnName)Excessive = new List(); @:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync())); @:} @: @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} @: break; case "depSelect": @:// @column.ColumnComment @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); } @:} @: break; case "posSelect": @:// @column.ColumnComment @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); } @:} @: break; case "userSelect": @:// @column.ColumnComment @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.RealName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.RealName).ToListAsync()); } @:} @: break; case "roleSelect": @:// @column.ColumnComment @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); } @:} @: break; case "groupSelect": @:// @column.ColumnComment @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); } @:} @: break; case "treeSelect": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} break; case "dictionary": @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(table.LowerClassName).@(column.LowerColumnName)) && it.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()); } @:} break; case "dynamic": @:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} break; } @: break; case "address": @:// @column.ColumnComment @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>>(); @:var @(column.LowerColumnName)Excessive = new List(); @:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync())); @:} @: @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} @: break; case "popupTableSelect": @:// @column.ColumnComment @:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} @: break; } } } @:}); } } @:return data.FirstOrDefault(); @:} break; @*分页列表*@ case "page": @: @:/// @:/// 获取@(Model.BusName)列表. @:/// @:/// 请求参数. @:/// @if(item.IsInterface) { @:[HttpPost("List")] } @:@(item.IsInterface ? "public" : "private") async Task GetList(@(item.IsInterface ? "[FromBody] " : "")@(Model.ClassName)ListQueryInput input) @:{ @if(Model.DbLinkId != "0") { @:var dbLink = await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)")); @:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink); @: } @*是否开启数据权限*@ @if(Model.UseDataPermission) { @{DataRightsTemplate();} } @*是否开启高级查询*@ @if(Model.HasSuperQuery) { @{AdvancedQueryTemplate();} } @*列表查询字段处理*@ @{ListQueryFieldProcessingTemplate();} @:var data = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + @Model.ClassName + "Entity>()" : "_repository.AsQueryable()") @foreach(var table in Model.AuxiliayTableRelations) { @:.Includes(x => x.@(table.ClassName)) } @{NavigationQuerySubTableConfigurationTemplate();} @*列表查询条件处理*@ @{ListQueryConditionProcessingTemplate();} @*数据权限*@ @if(Model.UseDataPermission) { @:.Where(authorizeWhere) @foreach(var table in Model.AuxiliayTableRelations) { @:.WhereIF(@(table.LowerClassName)AuthorizeWhere?.Count > 0, it => SqlFunc.Exists(it.@(table.ClassName).@(table.TableField), @(table.LowerClassName)AuthorizeWhere)) } @foreach(var table in Model.TableRelations) { @:.WhereIF(@(table.LowerClassName)AuthorizeWhere?.Count > 0, it => it.@(table.ClassName)List.Any(@(table.LowerClassName)AuthorizeWhere)) } } @if(Model.HasSuperQuery) { @:.Where(mainConditionalModel) @foreach(var table in Model.AuxiliayTableRelations) { @:.WhereIF(@(table.LowerClassName)ConditionalModel.Count > 0, it => SqlFunc.Exists(it.@(table.ClassName).@(table.TableField), @(table.LowerClassName)ConditionalModel)) } @foreach(var table in Model.TableRelations) { @:.WhereIF(@(table.LowerClassName)ConditionalModel.Count > 0, it => it.@(table.ClassName)List.Any(@(table.LowerClassName)ConditionalModel)) } } @:.OrderByIF(string.IsNullOrEmpty(input.sidx), it => it.@(Model.PrimaryKey)).OrderByIF(!string.IsNullOrEmpty(input.sidx), input.sidx + " " + input.sort) @:.ToPagedListAsync(input.currentPage, input.pageSize, it => new @(Model.ClassName)ListOutput @:{ @*列表展示字段模板*@ @{ListDisplayFieldTemplate();} @:}); @:@if(Model.IsConversion|| Model.EnableFlow) { @: @:await _repository.AsSugarClient().ThenMapperAsync(data.list, async item => @:{ @*列表数据转换子副模块模板*@ @{ListDataConversionMainAndSecondaryModuleTemplate();} @:}); } @if(Model.IsChildIndexShow) { @{ListDataConversionSubTableModuleTemplate(1);} } @if(Model.ParsJnpfKeyConstList.Count > 0) { @:var resData = data.list.ToObject>>(CommonConst.options); @:List fieldList = new List(); @:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity())); @foreach (var table in Model.AuxiliayTableRelations) { @if(table.IsImportData) { @:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity(), "@(table.OriginalTableName)")); @: } } @foreach (var table in Model.TableRelations) { @if(table.IsImportData) { @:ConfigModel @(table.ControlModel)Config = new ConfigModel @:{ @:tableName = "@(table.OriginalTableName)", @:jnpfKey = JnpfKeyConst.TABLE, @:label = "@(table.ControlTableComment)", @:children = ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity()) @:}; @:FieldsModel @(table.ControlModel) = new FieldsModel() @:{ @:__config__ = @(table.ControlModel)Config, @:__vModel__ = "@(table.ControlModel)" @:}; @:fieldList.Add(@(table.ControlModel)); @: } } @foreach (var jnpfKeyConst in Model.ParsJnpfKeyConstList) { @:resData = await _controlParsing.GetParsDataList(resData, "@(jnpfKeyConst[1])", "@(jnpfKeyConst[0])", _userManager.TenantId, fieldList); } @:data.list = resData.ToObject>(CommonConst.options); } @: @if(Model.IndexDataType == 3) { @:return _userManager.UserOrigin.Equals("pc") ? CodeGenHelper.GetGroupList(data.list.ToObject>>(),"@(Model.GroupField)", "@(Model.GroupShowField)") : PageResult<@(Model.ClassName)ListOutput>.SqlSugarPageResult(data); }else{ @:return PageResult<@(Model.ClassName)ListOutput>.SqlSugarPageResult(data); } @:} break; case "noPage": @: @:/// @:/// 获取@(Model.BusName)无分页列表. @:/// @:/// 请求参数. @:/// @if(item.IsInterface) { @:[HttpPost("List")] } @:@(item.IsInterface ? "public" : "private") async Task GetNoPagingList(@(item.IsInterface ? "[FromBody] " : "")@(Model.ClassName)ListQueryInput input) @:{ @if(Model.DbLinkId != "0") { @:var dbLink = await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)")); @:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink); @: } @*是否开启数据权限*@ @if(Model.UseDataPermission) { @{DataRightsTemplate();} } @*是否开启高级查询*@ @if(Model.HasSuperQuery) { @{AdvancedQueryTemplate();} } @*列表查询字段处理*@ @{ListQueryFieldProcessingTemplate();} @:var list = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + @Model.ClassName + "Entity>()" : "_repository.AsQueryable()") @foreach(var table in Model.AuxiliayTableRelations) { @:.Includes(x => x.@(table.ClassName)) } @{NavigationQuerySubTableConfigurationTemplate();} @*列表查询条件处理*@ @{ListQueryConditionProcessingTemplate();} @*数据权限*@ @if(Model.UseDataPermission) { @:.Where(authorizeWhere) @foreach(var table in Model.AuxiliayTableRelations) { @:.WhereIF(@(table.LowerClassName)AuthorizeWhere?.Count > 0, it => SqlFunc.Exists(it.@(table.ClassName).@(table.TableField), @(table.LowerClassName)AuthorizeWhere)) } @foreach(var table in Model.TableRelations) { @:.WhereIF(@(table.LowerClassName)AuthorizeWhere?.Count > 0, it => it.@(table.ClassName)List.Any(@(table.LowerClassName)AuthorizeWhere)) } } @if(Model.HasSuperQuery) { @:.Where(mainConditionalModel) @foreach(var table in Model.AuxiliayTableRelations) { @:.WhereIF(@(table.LowerClassName)ConditionalModel.Count > 0, it => SqlFunc.Exists(it.@(table.ClassName).@(table.TableField), @(table.LowerClassName)ConditionalModel)) } @foreach(var table in Model.TableRelations) { @:.WhereIF(@(table.LowerClassName)ConditionalModel.Count > 0, it => it.@(table.ClassName)List.Any(@(table.LowerClassName)ConditionalModel)) } } @:.OrderByIF(string.IsNullOrEmpty(input.sidx), it => it.@(Model.PrimaryKey)).OrderByIF(!string.IsNullOrEmpty(input.sidx), input.sidx + " " + input.sort) @:.ToListAsync(it => new @(Model.ClassName)ListOutput @:{ @*列表展示字段模板*@ @{ListDisplayFieldTemplate();} @:}); @:@if(Model.IsConversion) { @: @:await _repository.AsSugarClient().ThenMapperAsync(list, async item => @:{ @*列表数据转换子副模块模板*@ @{ListDataConversionMainAndSecondaryModuleTemplate();} @:}); } @if(Model.IsChildIndexShow) { @{ListDataConversionSubTableModuleTemplate(0);} } @if(Model.ParsJnpfKeyConstList.Count>0) { @:var resData = list.ToObject>>(CommonConst.options); @:List fieldList = new List(); @:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity())); @foreach (var table in Model.AuxiliayTableRelations) { @if(table.IsImportData) { @:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity(), "@(table.OriginalTableName)")); @: } } @foreach (var table in Model.TableRelations) { @if(table.IsImportData) { @:ConfigModel @(table.ControlModel)Config = new ConfigModel @:{ @:tableName = "@(table.OriginalTableName)", @:jnpfKey = JnpfKeyConst.TABLE, @:label = "@(table.ControlTableComment)", @:children = ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity()) @:}; @:FieldsModel @(table.ControlModel) = new FieldsModel() @:{ @:__config__ = @(table.ControlModel)Config, @:__vModel__ = "@(table.ControlModel)" @:}; @:fieldList.Add(@(table.ControlModel)); @: } } @foreach (var jnpfKeyConst in Model.ParsJnpfKeyConstList) { @:resData = await _controlParsing.GetParsDataList(resData, "@(jnpfKeyConst[1])", "@(jnpfKeyConst[0])", _userManager.TenantId, fieldList); } @:list = resData.ToObject>(CommonConst.options); } @: @if(Model.IndexDataType == 3) { @:return _userManager.UserOrigin.Equals("pc") ? CodeGenHelper.GetGroupList(list.ToObject>>(),"@(Model.GroupField)", "@(Model.PrimaryKey)") : list; }else{ @:return list; } @:} break; @*导出*@ case "download": @: @:/// @:/// 导出@(Model.BusName). @:/// @:/// 请求参数. @:/// @:[HttpGet("Actions/Export")] @:public async Task Export([FromQuery] @(Model.ClassName)ListQueryInput input) @:{ @if(Model.IndexDataType == 3) { @:var exportData = new List>(); @:if (input.dataType == 0) @:exportData = await GetList(input); @:else @:exportData = await GetNoPagingList(input); }else{ @:var exportData = new List<@(Model.ClassName)ListOutput>(); @:if (input.dataType == 0) @:exportData = Clay.Object(await GetList(input)).Solidify>().list; @:else @:exportData = await GetNoPagingList(input); } @:var excelName="@(Model.FullName)"; @:_cacheManager.Set(excelName + ".xls", string.Empty); @:return CodeGenExportDataHelper.GetDataExport(excelName, input.selectKey, _userManager.UserId, exportData.ToObject>>(), paramList, @((Model.IndexDataType == 3).ToString().ToLower())); @:} break; @*批量删除*@ case "batchRemove": @: @:/// @:/// 批量删除@(Model.BusName). @:/// @:/// 主键数组. @:/// @:[HttpPost("batchRemove")] @:[UnitOfWork] @:public async Task BatchRemove([FromBody] List<@(Model.PrimaryKeyPolicy == 1 ? "string" : "long")> ids) @:{ @*跨库*@ @if(Model.DbLinkId != "0") { @:var dbLink = await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)")); @:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink); } @if(Model.EnableFlow) { @:var idList = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()" : "_repository.AsQueryable()").Where(it => ids.Contains(it.@(Model.PrimaryKey))).Select(it => it.@(Model.PrimaryKeyPolicy == 1 ? Model.PrimaryKey : "FlowTaskId")).ToListAsync(); @: @:// 取差集 @:idList = idList.Except(await GetAllowDeleteFlowTaskList(idList)).ToList(); @: @:var entitys = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()" : "_repository.AsQueryable()").In(it => it.@(Model.PrimaryKeyPolicy == 1 ? @Model.PrimaryKey : "FlowTaskId"), idList).ToListAsync(); }else{ @:var entitys = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + @Model.ClassName + "Entity>()" : "_repository.AsQueryable()").In(it => it.@(Model.PrimaryKey), ids).ToListAsync(); } @:if (entitys.Count > 0) @:{ @:// 批量删除@(Model.BusName) @if(Model.EnableFlow) { @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Deleteable<" + Model.ClassName + "Entity>()" : "_repository.AsDeleteable()").In(it => it.@(@Model.PrimaryKey), entitys.Select(s => s.@(@Model.PrimaryKey)).ToList()).ExecuteCommandAsync(); }else{ @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Deleteable<" + @Model.ClassName + "Entity>()" : "_repository.AsDeleteable()").In(it => it.@(Model.PrimaryKey), ids).ExecuteCommandAsync(); } @: @foreach(var table in Model.AuxiliayTableRelations) { @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Deleteable<@(table.ClassName)Entity>().In(it => it.@(table.TableField), entitys.Select(it => it.@(table.RelationField))).ExecuteCommandAsync(); @: } @foreach(var table in Model.TableRelations){ @:// 清空@(table.TableComment)表数据 @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Deleteable<@(table.ClassName)Entity>().In(u => u.@(table.TableField), entitys.Select(s => s.@(table.RelationField)).ToArray()).ExecuteCommandAsync(); @: } @if(Model.EnableFlow) { @: @:await _repository.AsSugarClient().Updateable().SetColumns(it => new FlowTaskEntity() @:{ @:DeleteMark = 1, @:DeleteUserId = _userManager.UserId, @:DeleteTime = SqlFunc.GetDate() @:}).Where(it => idList.Contains(it.Id)).ExecuteCommandAsync(); } @:} @:} @if(Model.EnableFlow) { @: @:/// @:/// 获取不允许删除任务列表. @:/// @:/// id数组 @:/// @:private async Task> GetAllowDeleteFlowTaskList(List ids) @:{ @:return await _repository.AsSugarClient().Queryable().Where(it => ids.Contains(it.ProcessId)).Where(it => !it.Status.Equals(0)).Where(it=> !it.Status.Equals(4)).Select(f => f.ProcessId).ToListAsync(); @:} } break; @*导入*@ case "upload": @: @:/// @:/// 下载模板. @:/// @:/// @:[HttpGet("TemplateDownload")] @:public async Task TemplateDownload() @:{ @:List>? dataList = new List>(); @: @:// 赋予默认值 @:var dicItem = ExportImportDataHelper.GetTemplateHeader<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity(), 1); @foreach(var table in Model.AuxiliayTableRelations) { @if(table.IsImportData) { @:var @table.LowerClassName = ExportImportDataHelper.GetTemplateHeader<@(table.ClassName)Entity>(new @(table.ClassName)Entity(), 2, "@(table.OriginalTableName)"); } } @foreach (var table in Model.TableRelations) { @if(table.IsImportData) { @:var @table.ControlModel = ExportImportDataHelper.GetTemplateHeader<@(table.ClassName)Entity>(new @(table.ClassName)Entity(), 3, "@(table.ControlModel)"); } } @: @:dicItem.Add("id", "id"); @{var tableName = 0;} @foreach (var table in Model.AuxiliayTableRelations) { @if(table.IsImportData) { @:var table@(tableName + 1) = @(tableName == 0 ? "dicItem" : "table" + tableName).Concat(@(table.LowerClassName)).ToDictionary(k => k.Key, v => v.Value); tableName++; } } @foreach (var table in Model.TableRelations) { @if(table.IsImportData) { @:var table@(tableName + 1) = @(tableName == 0 ? "dicItem" : "table" + tableName).Concat(@(table.ControlModel)).ToDictionary(k => k.Key, v => v.Value); tableName++; } } @:dataList.Add(table@(tableName)); @: @:var excelName = string.Format("{0} 导入模板_{1}", "@(Model.FullName)", SnowflakeIdHelper.NextId()); @:_cacheManager.Set(excelName + ".xls", string.Empty); @:return CodeGenExportDataHelper.GetTemplateExport(excelName, string.Join(",", uploaderKey), _userManager.UserId, dataList, childParanList); @:} @: @:/// @:/// Excel导入. @:/// @:/// @:/// @:[HttpPost("Uploader")] @:public async Task Uploader(IFormFile file) @:{ @:var _filePath = _fileManager.GetPathByType(string.Empty); @:var _fileName = DateTime.Now.ToString("yyyyMMdd") + "_" + SnowflakeIdHelper.NextId() + Path.GetExtension(file.FileName); @:var stream = file.OpenReadStream(); @:await _fileManager.UploadFileByType(stream, _filePath, _fileName); @:return new { name = _fileName, url = string.Format("/api/File/Image/{0}/{1}", string.Empty, _fileName) }; @:} @: @:/// @:/// 导入预览. @:/// @:/// @:[HttpGet("ImportPreview")] @:public async Task ImportPreview(string fileName) @:{ @:List fieldList = new List(); @:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity())); @foreach (var table in Model.AuxiliayTableRelations) { @if(table.IsImportData) { @:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity(), "@(table.OriginalTableName)")); @: } } @foreach (var table in Model.TableRelations) { @if(table.IsImportData) { @:ConfigModel @(table.ControlModel)Config = new ConfigModel @:{ @:tableName = "@(table.OriginalTableName)", @:jnpfKey = JnpfKeyConst.TABLE, @:label = "@(table.ControlTableComment)", @:children = ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity()) @:}; @:FieldsModel @(table.ControlModel) = new FieldsModel() @:{ @:__config__ = @(table.ControlModel)Config, @:__vModel__ = "@(table.ControlModel)" @:}; @:fieldList.Add(@(table.ControlModel)); @: } } @:var entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(Model.ClassName)Entity>(); @:List tables = new List() { ExportImportDataHelper.GetTableRelation(entityInfo, "1") }; @foreach (var table in Model.AuxiliayTableRelations) { @if(table.IsImportData) { @:entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>(); @:tables.Add(ExportImportDataHelper.GetTableRelation(entityInfo, "0", "@(table.OriginalTableField)", "@(table.RelationTable)", "@(table.OriginalRelationField)")); @: } } @foreach (var table in Model.TableRelations) { @if(table.IsImportData) { @:entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>(); @:tables.Add(ExportImportDataHelper.GetTableRelation(entityInfo, "0", "@(table.OriginalTableField)", "@(table.RelationTable)", "@(table.OriginalRelationField)")); } } @:DbLinkEntity link = _dataBaseManager.GetTenantDbLink(_userManager.TenantId, _userManager.TenantDbName); // 当前数据库连接 @:var tInfo = new TemplateParsingBase(link, fieldList, tables, "@(Model.OriginalPrimaryKey)", @(Model.WebType), @(Model.PrimaryKeyPolicy), uploaderKey.ToList(), "@(Model.ImportDataType)"); @:return await _exportImportDataHelper.GetImportPreviewData(tInfo, fileName); @:} @: @:/// @:/// 导入数据. @:/// @:/// @:/// @:[HttpPost("ImportData")] @:[UnitOfWork] @:public async Task ImportData([FromBody] DataImportInput input) @:{ @:List fieldList = new List(); @:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity())); @foreach (var table in Model.AuxiliayTableRelations) { @if(table.IsImportData) { @:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity(), "@(table.OriginalTableName)")); @: } } @foreach (var table in Model.TableRelations) { @if(table.IsImportData) { @:ConfigModel @(table.ControlModel)Config = new ConfigModel @:{ @:tableName = "@(table.OriginalTableName)", @:jnpfKey = JnpfKeyConst.TABLE, @:label = "@(table.ControlTableComment)", @:children = ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity()) @:}; @:FieldsModel @(table.ControlModel) = new FieldsModel() @:{ @:__config__ = @(table.ControlModel)Config, @:__vModel__ = "@(table.ControlModel)" @:}; @:fieldList.Add(@(table.ControlModel)); @: } } @:var entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(Model.ClassName)Entity>(); @:List tables = new List() { ExportImportDataHelper.GetTableRelation(entityInfo, "1") }; @foreach (var table in Model.AuxiliayTableRelations) { @if(table.IsImportData) { @:entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>(); @:tables.Add(ExportImportDataHelper.GetTableRelation(entityInfo, "0", "@(table.OriginalTableField)", "@(table.RelationTable)", "@(table.OriginalRelationField)")); @: } } @foreach (var table in Model.TableRelations) { @if(table.IsImportData) { @:entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>(); @:tables.Add(ExportImportDataHelper.GetTableRelation(entityInfo, "0", "@(table.OriginalTableField)", "@(table.RelationTable)", "@(table.OriginalRelationField)")); } } @if(Model.DbLinkId != "0") { @:DbLinkEntity link = await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)")); }else{ @:DbLinkEntity link = _dataBaseManager.GetTenantDbLink(_userManager.TenantId, _userManager.TenantDbName); // 当前数据库连接 } @:var tInfo = new TemplateParsingBase(link, fieldList, tables, "@(Model.OriginalPrimaryKey)", @(Model.WebType), @(Model.PrimaryKeyPolicy), uploaderKey.ToList(), "@(Model.ImportDataType)"@(Model.EnableFlow ? ", 1" : "")); @: @:object[]? res = await _exportImportDataHelper.ImportMenuData(tInfo, input.list); @:var addlist = res.First() as List>; @:var errorlist = res.Last() as List>; @:var result = new DataImportOutput() @:{ @:snum = addlist.Count, @:fnum = errorlist.Count, @:failResult = errorlist, @:resultType = errorlist.Count < 1 ? 0 : 1 @:}; @: @:return result; @:} @: @:/// @:/// 导入数据的错误报告. @:/// @:/// @:/// @:[HttpPost("ImportExceptionData")] @:[UnitOfWork] @:public async Task ExportExceptionData([FromBody] DataImportInput list) @:{ @:List fieldList = new List(); @:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity())); @foreach (var table in Model.AuxiliayTableRelations) { @if(table.IsImportData) { @:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity(), "@(table.OriginalTableName)")); @: } } @foreach (var table in Model.TableRelations) { @if(table.IsImportData) { @:ConfigModel @(table.ControlModel)Config = new ConfigModel @:{ @:tableName = "@(table.OriginalTableName)", @:jnpfKey = JnpfKeyConst.TABLE, @:label = "@(table.ControlTableComment)", @:children = ExportImportDataHelper.GetTemplateParsing<@(table.ClassName)Entity>(new @(table.ClassName)Entity()) @:}; @:FieldsModel @(table.ControlModel) = new FieldsModel() @:{ @:__config__ = @(table.ControlModel)Config, @:__vModel__ = "@(table.ControlModel)" @:}; @:fieldList.Add(@(table.ControlModel)); @: } } @:var entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(Model.ClassName)Entity>(); @:List tables = new List() { ExportImportDataHelper.GetTableRelation(entityInfo, "1") }; @foreach (var table in Model.AuxiliayTableRelations) { @if(table.IsImportData) { @:entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>(); @:tables.Add(ExportImportDataHelper.GetTableRelation(entityInfo, "0", "@(table.OriginalTableField)", "@(table.RelationTable)", "@(table.OriginalRelationField)")); @: } } @foreach (var table in Model.TableRelations) { @if(table.IsImportData) { @:entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>(); @:tables.Add(ExportImportDataHelper.GetTableRelation(entityInfo, "0", "@(table.OriginalTableField)", "@(table.RelationTable)", "@(table.OriginalRelationField)")); } } @:DbLinkEntity link = _dataBaseManager.GetTenantDbLink(_userManager.TenantId, _userManager.TenantDbName); // 当前数据库连接 @:var tInfo = new TemplateParsingBase(link, fieldList, tables, "@(Model.OriginalPrimaryKey)", @(Model.WebType), @(Model.PrimaryKeyPolicy), uploaderKey.ToList(), "@(Model.ImportDataType)"); @: @:// 错误数据 @:tInfo.selectKey.Add("errorsInfo"); @:tInfo.AllFieldsModel.Add(new FieldsModel() { __vModel__ = "errorsInfo", __config__ = new ConfigModel() { label = "异常原因" } }); @:for (var i = 0; i < list.list.Count(); i++) list.list[i].Add("id", i); @: @:var result = ExportImportDataHelper.GetCreateFirstColumnsHeader(tInfo.selectKey, list.list, childParanList); @:var firstColumns = result.First().ToObject>(); @:var resultList = result.Last().ToObject>>(); @:_cacheManager.Set(string.Format("{0} 导入错误报告.xls", tInfo.FullName), string.Empty); @:return firstColumns.Any() @:? await _exportImportDataHelper.ExcelCreateModel(tInfo, resultList, string.Format("{0} 导入错误报告", tInfo.FullName), firstColumns) @:: await _exportImportDataHelper.ExcelCreateModel(tInfo, resultList, string.Format("{0} 导入错误报告", tInfo.FullName)); @:} break; } } } @{ @*数据权限模板*@ void DataRightsTemplate() { @:var authorizeWhere = new List(); @foreach(var table in Model.AuxiliayTableRelations) { @:var @(table.LowerClassName)AuthorizeWhere = new List(); } @foreach(var table in Model.TableRelations) { @:var @(table.LowerClassName)AuthorizeWhere = new List(); } @: @:// 数据权限过滤 @:if (_userManager.User.IsAdministrator == 0) @:{ @:var allAuthorizeWhere = await _userManager.GetCodeGenAuthorizeModuleResource<@(Model.ClassName)ListOutput>(input.menuId, "@(Model.OriginalPrimaryKey)", _userManager.UserOrigin.Equals("pc") ? @(Model.PcUseDataPermission) : @(Model.AppUseDataPermission)); @:authorizeWhere = allAuthorizeWhere.Find(it => it.FieldRule == 0)?.conditionalModel; @foreach(var table in Model.AuxiliayTableRelations) { @:@(table.LowerClassName)AuthorizeWhere = allAuthorizeWhere.Find(it => it.FieldRule == 1 && it.TableName.Equals("@(table.OriginalTableName)"))?.conditionalModel; } @foreach(var table in Model.TableRelations) { @:@(table.LowerClassName)AuthorizeWhere = allAuthorizeWhere.Find(it => it.FieldRule == 2 && it.TableName.Equals("@(table.OriginalTableName)"))?.conditionalModel; } @:} @: } @*高级查询模板*@ void AdvancedQueryTemplate() { @:var entityInfo = @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").EntityMaintenance.GetEntityInfo<@(Model.ClassName)Entity>(); @:input.sidx = CodeGenHelper.GetSortRealField(input.sidx, string.Empty, entityInfo, 0); @:var superQuery = SuperQueryHelper.GetSuperQueryInput(input.superQueryJson, string.Empty, entityInfo, 0); @:List mainConditionalModel = SuperQueryHelper.GetSuperQueryJson(superQuery); @: @foreach(var table in Model.AuxiliayTableRelations) { @:entityInfo = @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>(); @:superQuery = SuperQueryHelper.GetSuperQueryInput(input.superQueryJson, entityInfo.DbTableName, entityInfo, 2); @:List @(table.LowerClassName)ConditionalModel = SuperQueryHelper.GetSuperQueryJson(superQuery); @: } @foreach(var table in Model.TableRelations) { @:entityInfo = @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").EntityMaintenance.GetEntityInfo<@(table.ClassName)Entity>(); @:superQuery = SuperQueryHelper.GetSuperQueryInput(input.superQueryJson, "@(table.ControlModel)-", entityInfo, 1); @:List @(table.LowerClassName)ConditionalModel = SuperQueryHelper.GetSuperQueryJson(superQuery); @: } } @*列表查询字段处理模板*@ void ListQueryFieldProcessingTemplate() { @*主副表查询*@ @foreach(var table in Model.TableField) { @*是查询条件*@ @if(table.QueryWhether) { @{var parameterName = string.Empty;var parameterValue = string.Empty;} @switch(table.IsAuxiliary) { case true: @{parameterName = "jnpf_" + @table.TableName + "_jnpf_" + @table.LowerColumnName;} @{parameterValue = @table.QueryType == 1 ? "auxiliary" + @table.ColumnName + "_" + @table.TableNo : "Auxiliary" + @table.ColumnName + "_" + @table.TableNo;} break; default: @{parameterName = @table.LowerColumnName;} @{parameterValue = @table.QueryType == 1 ? table.LowerColumnName : table.ColumnName;} break; } @switch(table.QueryType) { case 1: @switch(table.jnpfKey) { case "cascader": case "address": case "comSelect": case "currOrganize": @:var @(parameterValue) = input.@(parameterName)?.Split(',').ToList().Last(); break; default: @if(table.IsMultiple) { @:var @(parameterValue) = input.@(parameterName)?.Split(',').ToList().Last(); } break; } break; case 3: @switch(table.jnpfKey) { case "time": @:List query@(parameterValue) = input.@(parameterName)?.Split(',').ToObject>(); @:var start@(parameterValue) = query@(parameterValue)?.First(); @:var end@(parameterValue) = query@(parameterValue)?.Last(); break; case "numInput": case "calculate": @:List query@(parameterValue) = input.@(parameterName)?.Split(',').ToObject>(); @:var start@(parameterValue) = query@(parameterValue)?.First().ParseToDecimal() == 0 ? decimal.MinValue : query@(parameterValue)?.First().ParseToDecimal(); @:var end@(parameterValue) = query@(parameterValue)?.Last().ParseToDecimal() == 0 ? decimal.MaxValue : query@(parameterValue)?.Last().ParseToDecimal(); break; default: @:List query@(parameterValue) = input.@(parameterName)?.Split(',').ToObject>(); @:DateTime? start@(parameterValue) = query@(parameterValue)?.First(); @:DateTime? end@(parameterValue) = query@(parameterValue)?.Last(); break; } break; } } } @foreach(var table in Model.TableRelations) { @*是查询条件*@ @if(table.IsQueryWhether) { @foreach(var column in table.ChilderColumnConfigList) { @switch(column.QueryType) { case 1: @switch(column.jnpfKey) { case "cascader": case "address": case "comSelect": case "currOrganize": @:var @(table.ControlModel + @column.ColumnName) = input.@(table.ControlModel + "_" + @column.LowerColumnName)?.Split(',').ToList().Last(); break; default: @if(column.IsMultiple) { @:var @(table.ControlModel + @column.ColumnName) = input.@(table.ControlModel + "_" + @column.LowerColumnName)?.Split(',').ToList().Last(); } break; } break; case 3: @switch(column.jnpfKey) { case "time": @:List query@(table.ControlModel + @column.ColumnName) = input.@(table.ControlModel + "_" + @column.LowerColumnName)?.Split(',').ToObject>(); @:var start@(table.ControlModel + @column.ColumnName) = query@(table.ControlModel + @column.ColumnName)?.First(); @:var end@(table.ControlModel + @column.ColumnName) = query@(table.ControlModel + @column.ColumnName)?.Last(); break; case "numInput": case "calculate": @:List query@(table.ControlModel + @column.ColumnName) = input.@(table.ControlModel + "_" + @column.LowerColumnName)?.Split(',').ToObject>(); @:var start@(table.ControlModel + @column.ColumnName) = query@(table.ControlModel + @column.ColumnName)?.First().ParseToDecimal() == 0 ? decimal.MinValue : query@(table.ControlModel + @column.ColumnName)?.First().ParseToDecimal(); @:var end@(table.ControlModel + @column.ColumnName) = query@(table.ControlModel + @column.ColumnName)?.Last().ParseToDecimal() == 0 ? decimal.MaxValue : query@(table.ControlModel + @column.ColumnName)?.Last().ParseToDecimal(); break; default: @:List query@(table.ControlModel + @column.ColumnName) = input.@(table.ControlModel + "_" + @column.LowerColumnName)?.Split(',').ToObject>(); @:DateTime? start@(table.ControlModel + @column.ColumnName) = query@(table.ControlModel + @column.ColumnName)?.First(); @:DateTime? end@(table.ControlModel + @column.ColumnName) = query@(table.ControlModel + @column.ColumnName)?.Last(); break; } break; } } } } } @*导航查询子表配置模板*@ void NavigationQuerySubTableConfigurationTemplate() { @foreach(var table in Model.TableRelations) { @if(table.IsQueryWhether || table.IsShowField) { @:.Includes(x => x.@(table.ClassName)List @foreach(var column in table.ChilderColumnConfigList) { @*查询方式*@ @switch(column.QueryType) { @*查询方式为等于*@ case 1: @*多选控件*@ @if(column.IsMultiple) { @:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(column.ColumnName).Contains(@(table.ControlModel + @column.ColumnName))) }else{ @switch(column.jnpfKey) { case "cascader": case "address": case "comSelect": case "currOrganize": @:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(column.ColumnName).Contains(@(table.ControlModel + @column.ColumnName))) break; case "checkbox": @:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(column.ColumnName).Contains(input.@(table.ControlModel + "_" + @column.LowerColumnName))) break; case "usersSelect": @:.Where(_controlParsing.GetUsersSelectQueryWhere("@(column.OriginalColumnName)", input.@(table.ControlModel + "_" + @column.LowerColumnName), @(column.IsMultiple.ToString().ToLower()))) break; default: @:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(column.ColumnName).Equals(input.@(table.ControlModel + "_" + @column.LowerColumnName))) break; } } break; @*查询类型为模糊查询*@ case 2: @:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(column.ColumnName).Contains(input.@(table.ControlModel + "_" + @column.LowerColumnName))) break; @*查询类型为范围查询*@ case 3: @switch(column.jnpfKey) { case "time": case "numInput": case "calculate": @:.WhereIF(query@(table.ControlModel + @column.ColumnName) != null, it => SqlFunc.Between(it.@(column.ColumnName), start@(table.ControlModel + @column.ColumnName), end@(table.ControlModel + @column.ColumnName))) break; default: @if(column.IsDateTime) { @:.WhereIF(query@(table.ControlModel + @column.ColumnName) != null, it => SqlFunc.Between(it.@(column.ColumnName), start@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd HH:mm:ss"), end@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd HH:mm:ss"))) }else{ @:.WhereIF(query@(table.ControlModel + @column.ColumnName) != null, it => SqlFunc.Between(it.@(column.ColumnName), start@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd 00:00:00"), end@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd 23:59:59"))) } break; } break; } } @if(Model.HasSuperQuery) { @:.Where(@(table.LowerClassName)ConditionalModel) } @if(table.IsShowField) { @:.Select(it => new @(table.ClassName)Entity() @:{ @foreach(var column in table.ChilderColumnConfigList) { @if(column.IsShow) { @:@column.ColumnName = it.@column.ColumnName, } } @:}) } @:.ToList()) } } } void ListQueryConditionProcessingTemplate() { @*循环查询条件*@ @foreach(var field in Model.TableField) { @*是否查询条件*@ @switch(field.QueryWhether) { case true: @{var parameterName = string.Empty;var parameterValue = string.Empty;var queryParameter = string.Empty;} @switch(field.IsAuxiliary) { case true: @{parameterName = "jnpf_" + @field.TableName + "_jnpf_" + @field.LowerColumnName;} @{parameterValue = @field.QueryType == 1 ? "auxiliary" + @field.ColumnName + "_" + @field.TableNo : "Auxiliary" + @field.ColumnName + "_" + @field.TableNo;} @{queryParameter = @field.ClassName + "." + @field.ColumnName;} break; default: @{parameterName = @field.LowerColumnName;} @{parameterValue = @field.QueryType == 1 ? field.LowerColumnName : field.ColumnName;} @{queryParameter = @field.ColumnName;} break; } @*查询方式*@ @switch(field.QueryType) { @*查询方式为等于*@ case 1: @*多选控件*@ @if(field.IsMultiple) { @:.WhereIF(!string.IsNullOrEmpty(input.@(parameterName)), it => it.@(queryParameter).Contains(@(parameterValue))) }else{ @switch(field.jnpfKey) { case "cascader": case "address": case "comSelect": case "currOrganize": @:.WhereIF(!string.IsNullOrEmpty(input.@(parameterName)), it => it.@(queryParameter).Contains(@(parameterValue))) break; case "checkbox": @:.WhereIF(!string.IsNullOrEmpty(input.@(parameterName)), it => it.@(queryParameter).Contains(input.@(parameterName))) break; case "usersSelect": @:.Where(_controlParsing.GetUsersSelectQueryWhere("@(field.OriginalColumnName)", input.@(parameterName), @(field.IsMultiple.ToString().ToLower()))) break; default: @:.WhereIF(!string.IsNullOrEmpty(input.@(parameterName)), it => it.@(queryParameter).Equals(input.@(parameterName))) break; } } break; @*查询类型为模糊查询*@ case 2: @:.WhereIF(!string.IsNullOrEmpty(input.@(parameterName)), it => it.@(queryParameter).Contains(input.@(parameterName))) break; @*查询类型为范围查询*@ case 3: @switch(field.jnpfKey) { case "time": case "numInput": case "calculate": @:.WhereIF(query@(parameterValue) != null, it => SqlFunc.Between(it.@(queryParameter), start@(parameterValue), end@(parameterValue))) break; default: @if(field.IsDateTime) { @:.WhereIF(query@(parameterValue) != null, it => SqlFunc.Between(it.@(queryParameter), start@(parameterValue).ParseToDateTime("yyyy-MM-dd HH:mm:ss"), end@(parameterValue).ParseToDateTime("yyyy-MM-dd HH:mm:ss"))) }else{ @:.WhereIF(query@(parameterValue) != null, it => SqlFunc.Between(it.@(queryParameter), start@(parameterValue).ParseToDateTime("yyyy-MM-dd 00:00:00"), end@(parameterValue).ParseToDateTime("yyyy-MM-dd 23:59:59"))) } break; } break; } break; } } @*子表循环查询条件*@ @foreach(var table in Model.TableRelations) { @*是否查询条件*@ @if(table.IsQueryWhether) { @foreach(var column in table.ChilderColumnConfigList) { @*查询方式*@ @switch(column.QueryType) { @*查询方式为等于*@ case 1: @*多选控件*@ @if(column.IsMultiple) { @:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(table.ClassName)List.Any(@(table.LowerClassName) => @(table.LowerClassName).@(column.ColumnName).Contains(@(table.ControlModel + @column.ColumnName)))) }else{ @switch(column.jnpfKey) { case "cascader": case "address": case "comSelect": case "currOrganize": @:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(table.ClassName)List.Any(@(table.LowerClassName) => @(table.LowerClassName).@(column.ColumnName).Contains(@(table.ControlModel + @column.ColumnName)))) break; case "checkbox": @:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(table.ClassName)List.Any(@(table.LowerClassName) => @(table.LowerClassName).@(column.ColumnName).Contains(input.@(table.ControlModel + "_" + @column.LowerColumnName)))) break; case "usersSelect": @:.Where(_controlParsing.GetUsersSelectQueryWhere("@(column.OriginalColumnName)", input.@(table.ControlModel + "_" + @column.LowerColumnName), @(column.IsMultiple.ToString().ToLower()))) break; default: @:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(table.ClassName)List.Any(@(table.LowerClassName) => @(table.LowerClassName).@(column.ColumnName).Equals(input.@(table.ControlModel + "_" + @column.LowerColumnName)))) break; } } break; @*查询类型为模糊查询*@ case 2: @:.WhereIF(!string.IsNullOrEmpty(input.@(table.ControlModel + "_" + @column.LowerColumnName)), it => it.@(table.ClassName)List.Any(@(table.LowerClassName) => @(table.LowerClassName).@(column.ColumnName).Contains(input.@(table.ControlModel + "_" + @column.LowerColumnName)))) break; @*查询类型为范围查询*@ case 3: @switch(column.jnpfKey) { case "time": case "numInput": case "calculate": @:.WhereIF(query@(table.ControlModel + @column.ColumnName) != null, it => it.@(table.ClassName)List.Any(@(table.LowerClassName) => SqlFunc.Between(@(table.LowerClassName).@(column.ColumnName), start@(table.ControlModel + @column.ColumnName), end@(table.ControlModel + @column.ColumnName)))) break; default: @if(column.IsDateTime) { @:.WhereIF(query@(table.ControlModel + @column.ColumnName) != null, it => it.@(table.ClassName)List.Any(@(table.LowerClassName) =>SqlFunc.Between(@(table.LowerClassName).@(column.ColumnName), start@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd HH:mm:ss"), end@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd HH:mm:ss")))) }else{ @:.WhereIF(query@(table.ControlModel + @column.ColumnName) != null, it => it.@(table.ClassName)List.Any(@(table.LowerClassName) => SqlFunc.Between(@(table.LowerClassName).@(column.ColumnName), start@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd 00:00:00"), end@(table.ControlModel + @column.ColumnName).ParseToDateTime("yyyy-MM-dd 23:59:59")))) } break; } break; } } } } } @*列表展示字段模板*@ void ListDisplayFieldTemplate() { @*循环展示字段*@ @foreach (var column in Model.TableField){ @if (column.PrimaryKey){ @:@(column.LowerColumnName) = it.@column.ColumnName, }else if(column.IsShow){ @{var parameterName = string.Empty;var parameterValue = string.Empty;} @switch(column.IsAuxiliary) { case true: @{parameterName = "jnpf_" + @column.TableName + "_jnpf_" + @column.LowerColumnName;} @{parameterValue = @column.ClassName + "." + @column.ColumnName;} break; default: @{parameterName = @column.LowerColumnName;} @{parameterValue = @column.ColumnName;} break; } @switch(column.jnpfKey) { case "date": @:@(parameterName) = it.@(parameterValue) == null ? null : it.@(parameterValue).Value.ToString("@(column.Format)"), break; case "modifyTime": @:@(parameterName) = it.@(parameterValue) == null ? null : it.@(parameterValue).Value.ToString("yyyy-MM-dd HH:mm"), break; case "createTime": @:@(parameterName) = it.@(parameterValue).Value.ToString("yyyy-MM-dd HH:mm"), break; case "switch": @:@(parameterName) = it.@(parameterValue) == 0 ? "@(column.InactiveTxt)" : "@(column.ActiveTxt)", break; default: @:@(parameterName) = it.@parameterValue@(column.NetType == "int" ? ".ToString()" : ""), break; } } } @if(Model.EnableFlow && Model.PrimaryKeyPolicy == 2) { @:flowTaskId = it.FlowTaskId, } @foreach(var table in Model.TableRelations) { @if(table.IsShowField) { @:@table.ControlModel = it.@(table.ClassName)List.Adapt>(), } } } @*列表数据转换主副模块模板*@ void ListDataConversionMainAndSecondaryModuleTemplate() { @if(Model.EnableFlow) { @:item.flowState = (await _repository.AsSugarClient().Queryable().Where(it => it.Id.Equals(item.@(Model.PrimaryKeyPolicy == 1 ? Model.LowerPrimaryKey : "flowTaskId"))).FirstAsync())?.Status; @: } @foreach (var column in Model.TableField) { @{var dataCount = column.StaticData != null ? column.StaticData.Count : 0;} @if(column.IsShow && column.IsConversion) { @{var parameterName = string.Empty;var dataParameter = string.Empty;} @switch(column.IsAuxiliary) { case true: @{parameterName = "jnpf_" + @column.TableName + "_jnpf_" + @column.LowerColumnName;} @{dataParameter = @column.LowerClassName + @column.ColumnName;} break; default: @{parameterName = @column.LowerColumnName;} @{dataParameter = @column.LowerColumnName;} break; } @switch(column.jnpfKey) { case "modifyUser": case "createUser": @:// @column.ColumnComment @:var @(dataParameter)Data = await _repository.AsSugarClient().Queryable().FirstAsync(u => u.Id.Equals(item.@(parameterName))); @:item.@(parameterName) = @(dataParameter)Data != null ? string.Format("{0}/{1}", @(dataParameter)Data.RealName, @(dataParameter)Data.Account) : null; @: break; case "currOrganize": @:// @column.ColumnComment @:var @(dataParameter)Data = await _repository.AsSugarClient().Queryable().FirstAsync(u => u.Id.Equals(item.@(parameterName))); @:item.@(parameterName) = @(dataParameter)Data != null ? @(dataParameter)Data.FullName : null; @: break; case "currPosition": @:// @column.ColumnComment @:var @(dataParameter)Data = await _repository.AsSugarClient().Queryable().FirstAsync(u => u.Id.Equals(item.@(parameterName))); @:item.@(parameterName) = @(dataParameter)Data != null ? @(dataParameter)Data.FullName : null; @: break; case "select": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(dataParameter)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = @(dataParameter)Data.Find(it => item.@(parameterName).Equals(it.id))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} break; case "dictionary": @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(item.@(parameterName)) && it.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()); } @:} break; case "dynamic": @:var @(dataParameter)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", ""); @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = @(dataParameter)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} break; } @: break; case "checkbox": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(dataParameter)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(item.@(parameterName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); @:} break; case "dictionary": @:if(item.@(parameterName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()); @:} break; case "dynamic": @:var @(dataParameter)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", ""); @:if(item.@(parameterName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); @:} break; } @: break; case "radio": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "dictionary": @:if(item.@(parameterName) != null) @:{ @:item.@(parameterName) = (await _repository.AsSugarClient().Queryable().FirstAsync(dic => dic.@(column.Value == "id" ? "Id" : "EnCode").Equals(item.@(parameterName)) && dic.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName; @:} break; case "static": @:var @(dataParameter)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(item.@(parameterName) != null) @:{ @:item.@(parameterName) = @(dataParameter)Data.Find(it => item.@(parameterName).Equals(it.id))?.fullName; @:} break; case "dynamic": @:var @(dataParameter)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(item.@(parameterName) != null) @:{ @:item.@(parameterName) = string.Join(",", @(dataParameter)Data .Find(it => it.id.Equals(item.@(parameterName)))?.fullName); @:} break; } @: break; case "cascader": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(dataParameter)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join("@(column.Separator)", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>>(); @:var @(column.LowerColumnName)Excessive = new List(); @:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName).Contains(it.id)).Select(it => it.fullName))); @:} @: @:item.@(parameterName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} break; case "dictionary": @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>>(); @:var @(column.LowerColumnName)Excessive = new List(); @:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync())); @:} @: @:item.@(parameterName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} break; case "dynamic": @:var @(dataParameter)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join("@(column.Separator)", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>>(); @:var @(column.LowerColumnName)Excessive = new List(); @:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName).Contains(it.id)).Select(it => it.fullName))); @:} @: @:item.@(parameterName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} break; } @: break; case "comSelect": @:// @column.ColumnComment @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>>(); @:var @(column.LowerColumnName)Excessive = new List(); @:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync())); @:} @: @:item.@(parameterName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} @: break; case "depSelect": @:// @column.ColumnComment @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(item.@(parameterName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); } @:} @: break; case "posSelect": @:// @column.ColumnComment @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(item.@(parameterName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); } @:} @: break; case "userSelect": @:// @column.ColumnComment @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(item.@(parameterName))))?.RealName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.RealName).ToListAsync()); } @:} @: break; case "roleSelect": @:// @column.ColumnComment @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(item.@(parameterName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); } @:} @: break; case "groupSelect": @:// @column.ColumnComment @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(item.@(parameterName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); } @:} @: break; case "treeSelect": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(dataParameter)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = @(dataParameter)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} break; case "dictionary": @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(item.@(parameterName)) && a.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(a.@(column.Value == "id" ? "Id" : "EnCode")) && a.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(a => a.FullName).ToListAsync()); } @:} break; case "dynamic": @:var @(dataParameter)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = @(dataParameter)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} break; } @: break; case "address": @:// @column.ColumnComment @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(a.Id)).Select(it => it.FullName).ToListAsync()); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>>(); @:var @(column.LowerColumnName)Excessive = new List(); @:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync())); @:} @: @:item.@(parameterName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} @: break; case "popupTableSelect": @:// @column.ColumnComment @:var @(dataParameter)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(item.@(parameterName) != null) @:{ @if(!column.IsMultiple) { @:item.@(parameterName) = @(dataParameter)Data.Find(it => it.id.Equals(item.@(parameterName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(parameterName).ToObject>(); @:item.@(parameterName) = string.Join(",", @(dataParameter)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} @: break; } } } } @*列表数据转换子表模块模板*@ void ListDataConversionSubTableModuleTemplate(int type) { @foreach (var table in Model.TableRelations) { @if(table.IsConversion && table.IsShowField) { @: @:await _repository.AsSugarClient().ThenMapperAsync(@(type ==0 ? "list" : "data.list").SelectMany(it => it.@(table.ControlModel)), async @(table.LowerClassName) => @:{ @foreach(var column in table.ChilderColumnConfigList) { @{var dataCount = column.StaticData != null ? column.StaticData.Count : 0;} @if(column.IsShow && column.IsConversion) { @switch(column.jnpfKey) { case "switch": @:// @column.ColumnComment @:@(table.LowerClassName).@(column.LowerColumnName) = @(table.LowerClassName).@(column.LowerColumnName) == "0" ? "@(column.InactiveTxt)" : "@(column.ActiveTxt)"; break; case "select": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => @(table.LowerClassName).@(column.LowerColumnName).Equals(it.id))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} break; case "dictionary": @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(table.LowerClassName).@(column.LowerColumnName)) && it.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()); } @:} break; case "dynamic": @:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", ""); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} break; } @: break; case "checkbox": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); @:} break; case "dictionary": @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()); @:} break; case "dynamic": @:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", ""); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); @:} break; } @: break; case "radio": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "dictionary": @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @:@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(dic => dic.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(table.LowerClassName).@(column.LowerColumnName)) && dic.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName; @:} break; case "static": @:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => @(table.LowerClassName).@(column.LowerColumnName).Equals(it.id))?.fullName; @:} break; case "dynamic": @:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data .Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName); @:} break; } @: break; case "cascader": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>>(); @:var @(column.LowerColumnName)Excessive = new List(); @:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName).Contains(it.id)).Select(it => it.fullName))); @:} @: @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} break; case "dictionary": @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>>(); @:var @(column.LowerColumnName)Excessive = new List(); @:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync())); @:} @: @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} break; case "dynamic": @:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>>(); @:var @(column.LowerColumnName)Excessive = new List(); @:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName).Contains(it.id)).Select(it => it.fullName))); @:} @: @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} break; } @: break; case "comSelect": @:// @column.ColumnComment @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>>(); @:var @(column.LowerColumnName)Excessive = new List(); @:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync())); @:} @: @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} @: break; case "depSelect": @:// @column.ColumnComment @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); } @:} @: break; case "posSelect": @:// @column.ColumnComment @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); } @:} @: break; case "userSelect": @:// @column.ColumnComment @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(a => a.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.RealName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.RealName).ToListAsync()); } @:} @: break; case "roleSelect": @:// @column.ColumnComment @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); } @:} @: break; case "groupSelect": @:// @column.ColumnComment @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(a => a.Id.Equals(@(table.LowerClassName).@(column.LowerColumnName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); } @:} @: break; case "treeSelect": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "static": @:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject>(); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} break; case "dictionary": @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(@(table.LowerClassName).@(column.LowerColumnName)) && it.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable().Where(a => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).ToListAsync()); } @:} break; case "dynamic": @:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} break; } @: break; case "address": @:// @column.ColumnComment @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>>(); @:var @(column.LowerColumnName)Excessive = new List(); @:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey)) @:{ @:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync())); @:} @: @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} @: break; case "popupTableSelect": @:// @column.ColumnComment @:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "@(column.Children)"); @:if(@(table.LowerClassName).@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:@(table.LowerClassName).@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(@(table.LowerClassName).@(column.LowerColumnName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = @(table.LowerClassName).@(column.LowerColumnName).ToObject>(); @:@(table.LowerClassName).@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(a => a.fullName)); } @:} @: break; } } } @:}); } } } @*获取新增数据方法模板*@ void GetTheNewDataMethodTemplate() { @if(Model.ConcurrencyLock) { @:entity.Version = 0; } @foreach(var column in Model.TableField) { @if(!column.IsAuxiliary) { @switch(column.jnpfKey) { case "createTime": @:entity.@column.ColumnName = DateTime.Now; break; case "createUser": @:entity.@column.ColumnName = _userManager.UserId; break; case "currPosition": @:entity.@column.ColumnName = _userManager.User.PositionId; break; case "currOrganize": @:entity.@column.ColumnName = _userManager.User.OrganizeId; break; case "billRule": @:entity.@column.ColumnName = await _billRullService.GetBillNumber("@(column.Rule)"); break; } } } @if(Model.IsUnique) { @foreach(var column in Model.TableField) { @if(column.IsUnique && !column.IsAuxiliary) { @: @:if(await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()." : "_repository.Is")AnyAsync(it => it.@(column.ColumnName).Equals(input.@(column.LowerColumnName)))) @:throw Oops.Bah("@(column.ControlLabel)不能重复"); } } } @*副表循环*@ @foreach(var table in Model.AuxiliayTableRelations) { @: @:var auxiliay@(table.ClassName) = input.Adapt<@(table.ClassName)CrInput>().Adapt<@(table.ClassName)Entity>(); @if(Model.PrimaryKeyPolicy == 1) { @:auxiliay@(table.ClassName).@(table.PrimaryKey) = SnowflakeIdHelper.NextId(); } @foreach(var column in Model.TableField) { @if(column.IsAuxiliary && column.TableName == table.OriginalTableName) { @switch(column.jnpfKey) { case "createTime": @:auxiliay@(table.ClassName).@column.ColumnName = DateTime.Now; break; case "createUser": @:auxiliay@(table.ClassName).@column.ColumnName = _userManager.UserId; break; case "currPosition": @:auxiliay@(table.ClassName).@column.ColumnName = _userManager.User.PositionId; break; case "currOrganize": @:auxiliay@(table.ClassName).@column.ColumnName = _userManager.User.OrganizeId; break; case "billRule": @:auxiliay@(table.ClassName).@column.ColumnName = await _billRullService.GetBillNumber("@(column.Rule)"); break; } } } @*副表验证唯一值*@ @foreach(var column in Model.TableField) { @if(column.IsAuxiliary && column.TableName == table.OriginalTableName && column.IsUnique) { @: @:if(await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Queryable<@(table.ClassName)Entity>().AnyAsync(it => it.@(column.ColumnName).Equals(auxiliay@(table.ClassName).@(column.ColumnName)))) @:throw Oops.Bah("@(column.ControlLabel)不能重复"); } } @:entity.@(table.ClassName) = auxiliay@(table.ClassName); } @*子表循环*@ @foreach(var table in Model.TableRelations) { @: @:var @(table.LowerClassName)EntityList = input.@(table.ControlModel).Adapt>(); @if(table.IsUnique) { @*子表验证唯一值*@ @foreach(var column in table.ChilderColumnConfigList) { @if(column.IsUnique) { @: @:if(@(table.LowerClassName)EntityList != null && await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Queryable<@(table.ClassName)Entity>().AnyAsync(it => @(table.LowerClassName)EntityList.Select(it => it.@(column.ColumnName)).Contains(it.@(column.ColumnName)) && it.@(table.TableField).Equals(entity.@(table.RelationField)))) @:throw Oops.Bah("@(column.ControlLabel)不能重复"); } } } @: @:if(@(table.LowerClassName)EntityList != null) @:{ @if(Model.IsBillRule || Model.PrimaryKeyPolicy == 1) { @:foreach (var item in @(table.LowerClassName)EntityList) @:{ @if(Model.PrimaryKeyPolicy == 1) { @:item.@(table.PrimaryKey) = SnowflakeIdHelper.NextId(); } @foreach(var childer in table.ChilderColumnConfigList) { @*使用Switch 为后续添加控件方便*@ @switch(childer.jnpfKey) { case "billRule": @:item.@(childer.ColumnName) = await _billRullService.GetBillNumber("@(childer.Rule)"); break; } } @:} } @: @:entity.@(table.ClassName)List = @(table.LowerClassName)EntityList; @:} @: } @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").InsertNav(entity) @foreach(var table in Model.AuxiliayTableRelations) { @:.Include(it => it.@(table.ClassName)) } @foreach(var table in Model.TableRelations) { @:.Include(it => it.@(table.ClassName)List) } @:.ExecuteCommandAsync(); } @*获取修改数据方法模板*@ void GetAndModifyDataMethodTemplate() { @foreach(var column in Model.TableField) { @if(!column.IsAuxiliary) { @switch(column.jnpfKey) { case "modifyTime": @:entity.@column.ColumnName = DateTime.Now; break; case "modifyUser": @:entity.@column.ColumnName = _userManager.UserId; break; } } } @: @*填充副表数据*@ @foreach(var table in Model.AuxiliayTableRelations) { @:var auxiliay@(table.ClassName) = input.Adapt<@(table.ClassName)CrInput>().Adapt<@(table.ClassName)Entity>(); @:auxiliay@(table.ClassName).@(table.TableField) = entity.@(table.RelationField); @foreach(var column in Model.TableField) { @if(column.IsAuxiliary && column.TableName == table.OriginalTableName) { @switch(column.jnpfKey) { case "modifyTime": @:auxiliay@(table.ClassName).@column.ColumnName = DateTime.Now; break; case "modifyUser": @:auxiliay@(table.ClassName).@column.ColumnName = _userManager.UserId; break; } } } @: } @*主表唯一值验证*@ @if(Model.IsUnique) { @foreach(var column in Model.TableField) { @if(!column.IsAuxiliary && column.IsUnique) { @:if (await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName +"Entity>()." : "_repository.Is")AnyAsync(it => it.@(column.ColumnName).Equals(input.@(column.LowerColumnName)) && !it.@(Model.PrimaryKey).Equals(id))) @:throw Oops.Bah("@(column.ControlLabel)不能重复"); @: } } } @*副表唯一值验证*@ @foreach(var table in Model.AuxiliayTableRelations) { @*跨库*@ @foreach(var column in Model.TableField) { @if(column.IsAuxiliary && column.IsUnique && column.TableName == table.OriginalTableName) { @:if (await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Queryable<@(table.ClassName)Entity>().AnyAsync(it => it.@(column.ColumnName).Equals(auxiliay@(table.ClassName).@(column.ColumnName)) && !it.@(table.TableField).Equals(entity.@(table.RelationField)))) @:throw Oops.Bah("@(column.ControlLabel)不能重复"); @: } } } @*子表唯一值验证*@ @foreach(var table in Model.TableRelations) { @:// 移除子表内本次编辑删除数据 @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Deleteable<@(table.ClassName)Entity>().Where(it => it.@(table.TableField) == entity.@(table.RelationField) && !input.@(table.ControlModel).Select(it => it.@(table.LowerPrimaryKey)).ToList().Contains(it.@(table.PrimaryKey))).ExecuteCommandAsync(); @: @:// 新增@(table.TableComment)新数据 @:var @(table.LowerClassName)EntityList = input.@(table.ControlModel).Adapt>(); @if(table.IsUnique) { @:if(@(table.LowerClassName)EntityList != null) @:{ @:foreach (var item in @(table.LowerClassName)EntityList) @:{ @foreach(var column in table.ChilderColumnConfigList) { @if(column.IsUnique) { @:if(await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Queryable<@(table.ClassName)Entity>().AnyAsync(it => it.@(column.ColumnName) == item.@(column.ColumnName) && it.@(table.TableField).Equals(entity.@(table.RelationField)) && it.@(table.PrimaryKey) != item.@(table.PrimaryKey))) @:throw Oops.Bah("@(column.ControlLabel)不能重复"); @: } } @:} @:} @: } } @:try @:{ @*修改主表数据*@ @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient." : "_repository.As")Updateable(entity) @*主表是否存在系统自动添加字段*@ @if(Model.IsUpdate || Model.ConcurrencyLock) { @:.UpdateColumns(it => new { @foreach(var column in Model.TableField) { @if(!column.IsAuxiliary && column.IsUpdate) { @:it.@(column.ColumnName), } } @if(Model.ConcurrencyLock) { @:it.Version, } @:}) } @if(Model.ConcurrencyLock) { @:.ExecuteCommandWithOptLockAsync(true); }else{ @:.ExecuteCommandAsync(); } @: @*修改副表数据*@ @foreach(var table in Model.AuxiliayTableRelations) { @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Updateable(auxiliay@(table.ClassName)) @if(table.IsUpdate) { @:.UpdateColumns(it => new @:{ @foreach(var column in Model.TableField) { @if(column.IsAuxiliary && column.TableName == table.OriginalTableName && column.IsUpdate) { @:it.@(column.ColumnName), } } @:}) } @:.Where(it => it.@(table.TableField) == entity.@(table.RelationField)).ExecuteCommandAsync(); @: } @*修改子表数据*@ @foreach(var table in Model.TableRelations) { @:if(@(table.LowerClassName)EntityList != null) @:{ @:foreach (var item in @(table.LowerClassName)EntityList) @:{ @if(Model.PrimaryKeyPolicy == 1) { @:item.@(table.PrimaryKey) = item.@(table.PrimaryKey) == null ? SnowflakeIdHelper.NextId() : item.@(table.PrimaryKey); } @:item.@(table.TableField) = entity.@(table.RelationField); @foreach(var childer in table.ChilderColumnConfigList) { @*使用Switch 为后续添加控件方便*@ @switch(childer.jnpfKey) { case "billRule": @:item.@(childer.ColumnName) = item.@(childer.ColumnName) == null ? await _billRullService.GetBillNumber("@(childer.Rule)") : item.@(childer.ColumnName); break; } } @:} @: @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Storageable<@(table.ClassName)Entity>(@(table.LowerClassName)EntityList).ExecuteCommandAsync(); @:} @: } @:} @:catch (Exception) @:{ @:throw Oops.Oh(ErrorCode.COM1001); @:} } }