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.CodeGen.ExportImport; @:using JNPF.Common.Core.Manager.Files; @:using JNPF.Common.Dtos; } using JNPF.Common.CodeGen.DataParsing; using JNPF.Common.Manager; using JNPF.Common.Const; 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.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.TableRelations) { @*循环出子表的命名空间*@ @:using JNPF.@(Model.NameSpace).Entitys.Dto.@(table.ClassName); } using JNPF.@(Model.NameSpace).Entitys; using JNPF.@(Model.NameSpace).Interfaces; @if(Model.EnableFlow) { @:using JNPF.WorkFlow.Entitys.Entity; } 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){@(importField==0 ? "\"" + table.OriginalColumnName + "\"" : ", \"" + table.OriginalColumnName + "\"") 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 data = (await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()" : "_repository.AsQueryable()") @if(Model.IsSystemControl) { @:.Select(it => new @(Model.ClassName)Entity @:{ @*循环展示字段*@ @foreach (var column in Model.TableField){ @if (column.PrimaryKey){ @:@(column.ColumnName) = it.@column.ColumnName, }else if(column.jnpfKey != null){ @switch(column.jnpfKey) { case "modifyUser": case "createUser": @:@(column.ColumnName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_" + Model.ConfigId + "." + Model.DBName + ".dbo.BASE_USER\")" : "").Where(u => u.Id.Equals(it.@(column.ColumnName))).Select(u => SqlFunc.MergeString(u.RealName, "/", u.Account)), break; case "currOrganize": @:@(column.ColumnName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_" + Model.ConfigId + "." + Model.DBName + ".dbo.BASE_ORGANIZE\")" : "").Where(o => o.Id.Equals(it.@(column.ColumnName))).Select(o => o.FullName), break; case "currPosition": @:@(column.ColumnName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_" + Model.ConfigId + "." + Model.DBName + ".dbo.BASE_POSITION\")" : "").Where(p => p.Id.Equals(it.@(column.ColumnName))).Select(p => p.FullName), break; default: @:@(column.ColumnName) = it.@column.ColumnName, break; } } } @if(Model.ConcurrencyLock) { @:Version = it.Version, } @:}) } @:.Where(it => it.@(Model.EnableFlow && Model.PrimaryKeyPolicy == 2 ? "FlowTaskId" : Model.PrimaryKey).Equals(id)).ToListAsync()).Adapt>(); @: @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").ThenMapperAsync(data, async item => @:{ @foreach(var table in Model.TableRelations) { @:item.@table.ControlModel = (await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Queryable<@(table.ClassName)Entity>().SetContextAsync(scl => scl.@(table.TableField), () => item.@(table.LowerRelationField), item)).Adapt>(); } @:}); @: @:return data.FirstOrDefault(); @:} break; @*流程保存*@ case "save": @: @:/// @:/// 保存. @:/// @:/// 主键值. @:/// 表单数据. @:/// @:[HttpPost("{id}")] @: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(it => it.@(Model.PrimaryKeyPolicy == 1 ? Model.PrimaryKey : "FlowTaskId").Equals(id)@(Model.PrimaryKeyPolicy == 2 ? " || it." + 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.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 "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) { @:var 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.TableRelations) { @:@(table.LowerClassName)AuthorizeWhere = allAuthorizeWhere.Find(it => it.FieldRule == 2 && it.TableName.Equals("@(table.OriginalTableName)"))?.conditionalModel; } @:} @: } @if(Model.HasSuperQuery) { @: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.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); @: } } @{ GetPrimaryTableQueryFieldTemplate(); }@*主表查询字段*@ @{ GetSubTableQueryFieldTemplate(); }@*子表查询字段*@ @:var data = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()" : "_repository.AsQueryable()") @{ GetSubTableNavigationQueryConfigurationTemplate(); }@*子表导航查询配置*@ @{ GetPrimaryTableQueryCriteriaTemplate(); }@*主表查询条件*@ @{ GetSubTableQueryCriteriaTemplate();}@*子表查询条件*@ @if(Model.UseDataPermission) { @:.Where(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.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 @:{ @{ GetTheListDisplayFieldTemplate(); }@*主子模式列表展示字段*@ @:}); @: @:var inlineEditorList = data.list.Adapt>(); @: @{ GetMasterTableListDataConversionTemplate(); }@*主表列表数据转换*@ @if(Model.IsChildIndexShow) { @: @:if (!_userManager.UserOrigin.Equals("pc")) @:{ @{ GetSubTableListDataConversionTemplate(); }@*子表列表数据转换*@ @:} @:else @:{ @:foreach (var item in inlineEditorList) @:{ @foreach (var table in Model.TableRelations) { @:item.@(@table.ControlModel) = new List<@(@table.ClassName)ListOutput>(); } @:} @:} } @if(Model.ParsJnpfKeyConstList.Count>0) { @:var resData = inlineEditorList.ToObject>>(CommonConst.options); @foreach (var jnpfKeyConst in Model.ParsJnpfKeyConstList) { @:resData = await _controlParsing.GetParsDataList(resData,"@(jnpfKeyConst[1])","@(jnpfKeyConst[0])",_userManager.TenantId); } @:inlineEditorList = resData.ToObject>(CommonConst.options); } @: @:return PageResult<@(@Model.ClassName)InlineEditorOutput>.SqlSugarPageResult(new SqlSugarPagedList<@(@Model.ClassName)InlineEditorOutput> @:{ @:pagination = data.pagination, @:list = inlineEditorList @:}); @:} 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) { @:var 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.TableRelations) { @:@(table.LowerClassName)AuthorizeWhere = allAuthorizeWhere.Find(it => it.FieldRule == 2 && it.TableName.Equals("@(table.OriginalTableName)"))?.conditionalModel; } @:} @: } @if(Model.HasSuperQuery) { @: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.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); @: } } @: @{ GetPrimaryTableQueryFieldTemplate(); }@*主表查询字段*@ @{ GetSubTableQueryFieldTemplate(); }@*子表查询字段*@ @: @:var list = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()" : "_repository.AsQueryable()") @{ GetSubTableNavigationQueryConfigurationTemplate(); }@*子表导航查询配置*@ @{ GetPrimaryTableQueryCriteriaTemplate(); }@*主表查询条件*@ @{ GetSubTableQueryCriteriaTemplate();}@*子表查询条件*@ @if(Model.UseDataPermission) { @:.Where(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.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 @:{ @{ GetTheListDisplayFieldTemplate(); }@*主子模式列表展示字段*@ @:}); @: @:var inlineEditorList = list.Adapt>(); @: @{ GetMasterTableListDataConversionTemplate(); }@*主表列表数据转换*@ @if(Model.IsChildIndexShow) { @: @:if (!_userManager.UserOrigin.Equals("pc")) @:{ @{ GetSubTableListDataConversionTemplate(); }@*子表列表数据转换*@ @:} @:else @:{ @:foreach (var item in inlineEditorList) @:{ @foreach (var table in Model.TableRelations) { @:item.@(@table.ControlModel) = new List<@(@table.ClassName)ListOutput>(); } @:} @:} } @if(Model.ParsJnpfKeyConstList.Count > 0) { @: @:var resData = inlineEditorList.ToObject>>(CommonConst.options); @foreach (var jnpfKeyConst in Model.ParsJnpfKeyConstList) { @:resData = await _controlParsing.GetParsDataList(resData,"@(jnpfKeyConst[1])","@(jnpfKeyConst[0])",_userManager.TenantId); } @: @:inlineEditorList = resData.ToObject>(CommonConst.options); } @: @:return inlineEditorList; @:} 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.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 "detail": @: @:/// @:/// @(Model.BusName)详情. @:/// @:/// 主键值. @:/// @:[HttpGet("Detail/{id}")] @:public async Task GetDetails(@(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); @: } @:var data = (await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()" : "_repository.AsQueryable()") @:.Where(a => a.@(Model.PrimaryKey) == id) @:.Select(it => new @(Model.ClassName)Entity @:{ @*循环展示字段*@ @foreach (var column in Model.TableField){ @if (column.PrimaryKey){ @:@(column.ColumnName) = it.@column.ColumnName, }else if(column.jnpfKey != null){ @switch(column.jnpfKey) { case "modifyUser": case "createUser": @:@(column.ColumnName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_" + Model.ConfigId + "." + Model.DBName + ".dbo.BASE_USER\")" : "").Where(u => u.Id.Equals(it.@(column.ColumnName))).Select(u => SqlFunc.MergeString(u.RealName, "/", u.Account)), break; case "currOrganize": @:@(column.ColumnName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_" + Model.ConfigId + "." + Model.DBName + ".dbo.BASE_ORGANIZE\")" : "").Where(o => o.Id.Equals(it.@(column.ColumnName))).Select(o => o.FullName), break; case "currPosition": @:@(column.ColumnName) = SqlFunc.Subqueryable()@(Model.DbLinkId != "0" ? ".AS(\"db_" + Model.ConfigId + "." + Model.DBName + ".dbo.BASE_POSITION\")" : "").Where(p => p.Id.Equals(it.@(column.ColumnName))).Select(p => p.FullName), break; case "switch": @:@(column.ColumnName) = SqlFunc.IIF(it.@(column.ColumnName) == 0, "@(column.InactiveTxt)", "@(column.ActiveTxt)"), break; default: @:@(column.ColumnName) = it.@column.ColumnName@(column.NetType == "int" ? ".ToString()" : ""), break; } } } @:}).ToListAsync()).Adapt>(); @: @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").ThenMapperAsync(data, async item => @:{ @foreach(var table in Model.TableRelations) { @:item.@(table.ControlModel) = (await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Queryable<@(table.ClassName)Entity>().SetContextAsync(scl => scl.@(table.TableField), () => item.@(table.LowerRelationField), item)).Adapt>(); } @:}); @: @if(Model.IsConversion) { @:await _repository.AsSugarClient().ThenMapperAsync(data, async item => @:{ @foreach (var column in Model.TableField) { @{var dataCount = column.StaticData != null ? column.StaticData.Count : 0;} @if(column.IsConversion) { @switch(column.jnpfKey) { 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(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:item.@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => item.@(column.LowerColumnName).Equals(it.id))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} break; case "dictionary": @:if(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:item.@(column.LowerColumnName) = await _repository.AsSugarClient().Queryable().Where(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(item.@(column.LowerColumnName)) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(it => it.FullName).FirstAsync(); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(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(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:item.@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(item.@(column.LowerColumnName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(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(item.@(column.LowerColumnName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); @:} break; case "dictionary": @:if(item.@(column.LowerColumnName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(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(item.@(column.LowerColumnName) != null) @:{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(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(item.@(column.LowerColumnName) != null) @:{ @:@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(dic => dic.@(column.Value == "id" ? "Id" : "EnCode").Equals(item.@(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(item.@(column.LowerColumnName) != null) @:{ @:item.@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => item.@(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(item.@(column.LowerColumnName) != null) @:{ @:item.@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.Find(it => it.id.Equals(item.@(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(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(column.LowerColumnName) = string.Join("@(column.Separator)", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName)); }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(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(s => s.fullName))); @:} @: @:item.@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} break; case "dictionary": @:if(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(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) = item.@(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())); @:} @: @:item.@(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(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(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) = item.@(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))); @:} @: @:item.@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} break; } @: break; case "comSelect": @:// @column.ColumnComment @:if(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(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) = item.@(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())); @:} @: @:item.@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive); } @:} @: break; case "depSelect": @:// @column.ColumnComment @:if(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:item.@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(item.@(column.LowerColumnName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(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(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:item.@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(a => a.Id.Equals(item.@(column.LowerColumnName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(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(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:item.@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(item.@(column.LowerColumnName))))?.RealName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(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(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:item.@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(item.@(column.LowerColumnName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(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(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:item.@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(item.@(column.LowerColumnName))))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(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(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:item.@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(item.@(column.LowerColumnName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(it => it.fullName)); } @:} break; case "dictionary": @:if(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:item.@(column.LowerColumnName) = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(item.@(column.LowerColumnName)) && it.DictionaryTypeId.Equals("@(column.propsUrl)")))?.FullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(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(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:item.@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(item.@(column.LowerColumnName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(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(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(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) = item.@(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())); @:} @: @:item.@(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(item.@(column.LowerColumnName) != null) @:{ @if(!column.IsMultiple) { @:item.@(column.LowerColumnName) = @(column.LowerColumnName)Data.Find(it => it.id.Equals(item.@(column.LowerColumnName)))?.fullName; }else{ @:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject>(); @:item.@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)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.IsConversion) { @switch(column.jnpfKey) { 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).FirstAsync(); } @:} 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)); }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.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(a => a.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(a => a.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(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 "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(a => @(column.LowerColumnName + @column.upperJnpfKey).Contains(a.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(a => @(column.LowerColumnName).Contains(a.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; } } } @:}); } @: } @if(Model.ParsJnpfKeyConstListDetails.Count > 0) { @:var resData = data.ToObject>>(); @foreach (var jnpfKeyConst in Model.ParsJnpfKeyConstListDetails) { @:resData = await _controlParsing.GetParsDataList(resData,"@(jnpfKeyConst[1])","@(jnpfKeyConst[0])",_userManager.TenantId); } @:data = resData.ToObject>(); } @:return data.FirstOrDefault(); @:} 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.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.TableRelations) { @if(table.IsImportData) { @:var table@(table.TableNo) = @(tableName == 0 ? "dicItem" : "table" + tableName).Concat(@(table.ControlModel)).ToDictionary(k => k.Key, v => v.Value); tableName++; if(tableName > 0) { tableName = table.TableNo; } } } @: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.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.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.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.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)"@(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.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.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 GetPrimaryTableQueryFieldTemplate() { @foreach(var table in Model.TableField) { @*是查询条件*@ @if(table.QueryWhether) { @switch(table.QueryType) { case 1: @switch(table.jnpfKey) { case "cascader": case "address": case "comSelect": case "currOrganize": @:var @(table.LowerColumnName) = input.@(table.LowerColumnName)?.Split(',').ToList().Last(); break; default: @if(table.IsMultiple) { @:var @(table.LowerColumnName) = input.@(table.LowerColumnName)?.Split(',').ToList().Last(); } break; } break; case 3: @switch(table.jnpfKey) { case "time": @:List query@(table.ColumnName) = input.@(table.LowerColumnName)?.Split(',').ToObject>(); @:var start@(table.ColumnName) = query@(table.ColumnName)?.First(); @:var end@(table.ColumnName) = query@(table.ColumnName)?.Last(); break; case "numInput": case "calculate": @:List query@(table.ColumnName) = input.@(table.LowerColumnName)?.Split(',').ToObject>(); @:var start@(table.ColumnName) = query@(table.ColumnName)?.First().ParseToDecimal() == 0 ? decimal.MinValue : query@(table.ColumnName)?.First().ParseToDecimal(); @:var end@(table.ColumnName) = query@(table.ColumnName)?.Last().ParseToDecimal() == 0 ? decimal.MaxValue : query@(table.ColumnName)?.Last().ParseToDecimal(); break; default: @:List query@(table.ColumnName) = input.@(table.LowerColumnName)?.Split(',').ToObject>(); @:DateTime? start@(table.ColumnName) = query@(table.ColumnName)?.First(); @:DateTime? end@(table.ColumnName) = query@(table.ColumnName)?.Last(); break; } break; } } } } @*获取子表查询字段模板*@ void GetSubTableQueryFieldTemplate() { @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 GetSubTableNavigationQueryConfigurationTemplate() { @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 GetPrimaryTableQueryCriteriaTemplate() { @*循环查询条件*@ @foreach(var table in Model.TableField) { @*是否查询条件*@ @if(table.QueryWhether) { @*查询方式*@ @switch(table.QueryType) { @*查询方式为等于*@ case 1: @*多选控件*@ @if(table.IsMultiple) { @:.WhereIF(!string.IsNullOrEmpty(input.@(table.LowerColumnName)), it => it.@(table.ColumnName).Contains(@(table.LowerColumnName))) }else{ @switch(table.jnpfKey) { case "cascader": case "address": case "comSelect": case "currOrganize": @:.WhereIF(!string.IsNullOrEmpty(input.@(table.LowerColumnName)), it => it.@(table.ColumnName).Contains(@(table.LowerColumnName))) break; case "checkbox": @:.WhereIF(!string.IsNullOrEmpty(input.@(table.LowerColumnName)), it => it.@(table.ColumnName).Contains(input.@(table.LowerColumnName))) break; case "usersSelect": @:.Where(_controlParsing.GetUsersSelectQueryWhere("@(table.OriginalColumnName)", input.@(table.LowerColumnName), @(table.IsMultiple.ToString().ToLower()))) break; default: @:.WhereIF(!string.IsNullOrEmpty(input.@(table.LowerColumnName)), it => it.@(table.ColumnName).Equals(input.@(table.LowerColumnName))) break; } } break; @*查询类型为模糊查询*@ case 2: @:.WhereIF(!string.IsNullOrEmpty(input.@(table.LowerColumnName)), it => it.@(table.ColumnName).Contains(input.@(table.LowerColumnName))) break; @*查询类型为范围查询*@ case 3: @switch(table.jnpfKey) { case "time": case "numInput": case "calculate": @:.WhereIF(query@(table.ColumnName) != null, it => SqlFunc.Between(it.@(table.ColumnName), start@(table.ColumnName), end@(table.ColumnName))) break; default: @if(table.IsDateTime) { @:.WhereIF(query@(table.ColumnName) != null, it => SqlFunc.Between(it.@(table.ColumnName), start@(table.ColumnName).ParseToDateTime("yyyy-MM-dd HH:mm:ss"), end@(table.ColumnName).ParseToDateTime("yyyy-MM-dd HH:mm:ss"))) }else{ @:.WhereIF(query@(table.ColumnName) != null, it => SqlFunc.Between(it.@(table.ColumnName), start@(table.ColumnName).ParseToDateTime("yyyy-MM-dd 00:00:00"), end@(table.ColumnName).ParseToDateTime("yyyy-MM-dd 23:59:59"))) } break; } break; } } } } @*获取子表查询条件模板*@ void GetSubTableQueryCriteriaTemplate() { @*循环查询条件*@ @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 GetTheListDisplayFieldTemplate() { @*循环展示字段*@ @foreach (var column in Model.TableField){ @if (column.PrimaryKey){ @:@(@column.LowerColumnName) = it.@column.ColumnName, }else if(column.IsShow){ @switch(column.jnpfKey) { case "switch": @:@(@column.LowerColumnName) = it.@(@column.ColumnName), @:@(@column.LowerColumnName)_name = it.@(@column.ColumnName) == 0 ? "@(@column.InactiveTxt)" : "@(@column.ActiveTxt)"), break; default: @:@(@column.LowerColumnName) = it.@column.ColumnName, @:@(@column.LowerColumnName)_name = it.@column.ColumnName, break; } } } @if(Model.ConcurrencyLock) { @:version = it.Version, } @foreach(var table in Model.TableRelations) { @if(table.IsShowField) { @:@table.ControlModel = it.@(table.ClassName)List.Adapt>(), } } } @*获取主表列表数据转换模板*@ void GetMasterTableListDataConversionTemplate() { @if(Model.IsConversion || Model.EnableFlow) { @:await _repository.AsSugarClient().ThenMapperAsync(inlineEditorList, async item => @:{ @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) { @switch(column.jnpfKey) { case "modifyUser": case "createUser": @:// @column.ColumnComment @:var @(@column.LowerColumnName)Data = await _repository.AsSugarClient().Queryable().FirstAsync(u => u.Id.Equals(item.@(@column.LowerColumnName))); @:item.@(@column.LowerColumnName)_name = @(@column.LowerColumnName)Data != null ? string.Format("{0}/{1}", @(@column.LowerColumnName)Data.RealName, @(@column.LowerColumnName)Data.Account) : null; @: break; case "currOrganize": @:// @column.ColumnComment @:var @(@column.LowerColumnName)Data = await _repository.AsSugarClient().Queryable().FirstAsync(u => u.Id.Equals(item.@(@column.LowerColumnName))); @:item.@(@column.LowerColumnName)_name = @(@column.LowerColumnName)Data != null ? @(@column.LowerColumnName)Data.FullName : null; @: break; case "currPosition": @:// @column.ColumnComment @:var @(@column.LowerColumnName)Data = await _repository.AsSugarClient().Queryable().FirstAsync(u => u.Id.Equals(item.@(@column.LowerColumnName))); @:item.@(@column.LowerColumnName)_name = @(@column.LowerColumnName)Data != null ? @(@column.LowerColumnName)Data.FullName : null; @: 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(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = @(@column.LowerColumnName)Data.Find(it => item.@(@column.LowerColumnName).Equals(it.id))?.fullName; @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", @(@column.LowerColumnName)Data.FindAll(it => item.@(@column.LowerColumnName).Contains(it.id)).Select(it => it.fullName)); @:} } break; case "dictionary": @if(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = await _repository.AsSugarClient().Queryable().Where(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(item.@(@column.LowerColumnName)) && it.DictionaryTypeId.Equals("@(@column.propsUrl)")).Select(it => it.FullName)); @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => item.@(@column.LowerColumnName).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(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = @(@column.LowerColumnName)Data.Find(it => it.id.Equals(item.@(@column.LowerColumnName)))?.fullName; @:} }else{ @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", @(@column.LowerColumnName)Data.FindAll(it => item.@(@column.LowerColumnName).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(item.@(@column.LowerColumnName).Count > 0) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", @(@column.LowerColumnName)Data.FindAll(it => item.@(@column.LowerColumnName).Contains(it.id)).Select(it => it.fullName)); @:} break; case "dictionary": @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => item.@(@column.LowerColumnName).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(item.@(@column.LowerColumnName).Count > 0) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", @(@column.LowerColumnName)Data.FindAll(it => item.@(@column.LowerColumnName).Contains(it.id)).Select(it => it.fullName)); @:} break; } @: break; case "radio": @:// @column.ColumnComment @switch(column.ControlsDataType) { case "dictionary": @:if(item.@(@column.LowerColumnName) != null) @:{ @:@(@column.LowerColumnName)_name = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(item.@(@column.LowerColumnName)) && it.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(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = @(@column.LowerColumnName)Data.Find(it => item.@(@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(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", @(@column.LowerColumnName)Data .Find(it => it.id.Equals(item.@(@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(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = string.Join("@(@column.Separator)", @(@column.LowerColumnName)Data.FindAll(it => item.@(@column.LowerColumnName).Contains(it.id)).Select(it => it.fullName)); @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:var @(@column.LowerColumnName)Excessive = new List(); @:foreach (var @(@column.LowerColumnName) in item.@(@column.LowerColumnName)) @:{ @:@(@column.LowerColumnName)Excessive.Add(string.Join("@(@column.Separator)", @(@column.LowerColumnName)Data.FindAll(it => @(@column.LowerColumnName).Contains(it.id)).Select(it => it.fullName))); @:} @: @:item.@(@column.LowerColumnName)_name = string.Join(",", @(@column.LowerColumnName)Excessive); @:} } break; case "dictionary": @if(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = string.Join("@(@column.Separator)", await _repository.AsSugarClient().Queryable().Where(it => item.@(@column.LowerColumnName).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(@column.propsUrl)")).Select(it => it.FullName).ToListAsync()); @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:var @(@column.LowerColumnName)Excessive = new List(); @:foreach (var @(@column.LowerColumnName) in item.@(@column.LowerColumnName)) @:{ @:@(@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.@(@column.LowerColumnName)_name = string.Join(",", @(@column.LowerColumnName)Excessive); @:} } break; case "dynamic": @:var @(@column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(@column.propsUrl)", "@(@column.Value)", "@(@column.Label)", "@(@column.Children)"); @if(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = string.Join("@(@column.Separator)", @(@column.LowerColumnName)Data.FindAll(it => item.@(@column.LowerColumnName).Contains(it.id)).Select(it => it.fullName)); @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:var @(@column.LowerColumnName)Excessive = new List(); @:foreach (var @(@column.LowerColumnName) in item.@(@column.LowerColumnName)) @:{ @:@(@column.LowerColumnName)Excessive.Add(string.Join("@(@column.Separator)", @(@column.LowerColumnName)Data.FindAll(it => @(@column.LowerColumnName).Contains(it.id)).Select(it => it.fullName))); @:} @: @:item.@(@column.LowerColumnName)_name = string.Join(",", @(@column.LowerColumnName)Excessive); @:} } break; } @: break; case "comSelect": @:// @column.ColumnComment @if(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => item.@(@column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:var @(@column.LowerColumnName)Excessive = new List(); @:foreach (var @(@column.LowerColumnName) in item.@(@column.LowerColumnName)) @:{ @:@(@column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(@column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync())); @:} @: @:item.@(@column.LowerColumnName)_name = string.Join(",", @(@column.LowerColumnName)Excessive); @:} } @: break; case "depSelect": @:// @column.ColumnComment @if(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(item.@(@column.LowerColumnName))))?.FullName; @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => item.@(@column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); @:} } @: break; case "posSelect": @:// @column.ColumnComment @if(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(item.@(@column.LowerColumnName))))?.FullName; @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => item.@(@column.LowerColumnName).Contains(it.Id)).Select(a => a.FullName).ToListAsync()); @:} } @: break; case "userSelect": @:// @column.ColumnComment @if(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(item.@(@column.LowerColumnName))))?.RealName; @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => item.@(@column.LowerColumnName).Contains(it.Id)).Select(it => it.RealName).ToListAsync()); @:} } @: break; case "roleSelect": @:// @column.ColumnComment @if(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(item.@(@column.LowerColumnName))))?.FullName; @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => item.@(@column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); @:} } @: break; case "groupSelect": @if(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.Id.Equals(item.@(@column.LowerColumnName))))?.FullName; @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => item.@(@column.LowerColumnName).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(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = @(@column.LowerColumnName)Data.Find(it => it.id.Equals(item.@(@column.LowerColumnName)))?.fullName; @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", @(@column.LowerColumnName)Data.FindAll(it => item.@(@column.LowerColumnName).Contains(it.id)).Select(it => it.fullName)); @:} } break; case "dictionary": @if(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = (await _repository.AsSugarClient().Queryable().FirstAsync(it => it.@(column.Value == "id" ? "Id" : "EnCode").Equals(item.@(@column.LowerColumnName)) && it.DictionaryTypeId.Equals("@(@column.propsUrl)")))?.FullName; @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", await _repository.AsSugarClient().Queryable().Where(it => item.@(@column.LowerColumnName).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(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = @(@column.LowerColumnName)Data.Find(it => it.id.Equals(item.@(@column.LowerColumnName)))?.fullName; @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", @(@column.LowerColumnName)Data.FindAll(it => item.@(@column.LowerColumnName).Contains(it.id)).Select(it => it.fullName)); @:} } break; } @: break; case "address": @:// @column.ColumnComment @if(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => item.@(@column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync()); @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:var @(@column.LowerColumnName)Excessive = new List(); @:foreach (var @(@column.LowerColumnName) in item.@(@column.LowerColumnName)) @:{ @:@(@column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable().Where(it => @(@column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync())); @:} @: @:item.@(@column.LowerColumnName)_name = 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(!column.IsMultiple) { @:if(item.@(@column.LowerColumnName) != null) @:{ @:item.@(@column.LowerColumnName)_name = @(@column.LowerColumnName)Data.Find(it => it.id.Equals(item.@(@column.LowerColumnName)))?.fullName; @:} }else{ @:if(item.@(@column.LowerColumnName).Count > 0) @:{ @:item.@(@column.LowerColumnName)_name = string.Join(",", @(@column.LowerColumnName)Data.FindAll(it => item.@(@column.LowerColumnName).Contains(it.id)).Select(it => it.fullName)); @:} } @: break; } } } @:}); } } @*获取子表列表数据转换模板*@ void GetSubTableListDataConversionTemplate() { @foreach (var table in Model.TableRelations) { @if(table.IsConversion && table.IsShowField) { @:await _repository.AsSugarClient().ThenMapperAsync(inlineEditorList.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(a => a.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(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(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(a => a.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; } } } @:}); } } } @*获取新增数据方法模板*@ void GetTheNewDataMethodTemplate() { @if(Model.ConcurrencyLock) { @:entity.Version = 0; } @foreach(var column in Model.TableField) { @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) { @: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.TableRelations) { @:var @(table.LowerClassName)EntityList = input.@(table.ControlModel).Adapt>(); @if(Model.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(a => a.@(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.TableRelations) { @:.Include(it => it.@(table.ClassName)List) } @:.ExecuteCommandAsync(); } void GetAndModifyDataMethodTemplate() { @foreach(var column in Model.TableField) { @switch(column.jnpfKey) { case "modifyTime": @:entity.@column.ColumnName = DateTime.Now; break; case "modifyUser": @:entity.@column.ColumnName = _userManager.UserId; break; } } @if(Model.IsUnique) { @: @foreach(var column in Model.TableField) { @if(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.TableRelations) { @: @:// 移除@(table.TableComment)可能被删除数据 @:await @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").Deleteable<@(table.ClassName)Entity>().Where(it => it.@(table.TableField) == entity.@(table.RelationField) && !input.@(table.ControlModel).Select(a => a.@(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.Updateable<" + Model.ClassName + "Entity>" : "_repository.AsUpdateable")(entity) @if(Model.IsUpdate || Model.ConcurrencyLock) { @:.UpdateColumns(it => new { @foreach(var column in Model.TableField) { @if(column.IsUpdate) { @:it.@(column.ColumnName), } } @if(Model.ConcurrencyLock) { @:it.Version, } @:}) } @if(Model.ConcurrencyLock) { @:.ExecuteCommandWithOptLockAsync(true); }else{ @:.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); @:} } }