1821 lines
78 KiB
Plaintext
1821 lines
78 KiB
Plaintext
using JNPF.Common.Core.Manager;
|
|
@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.Const;
|
|
using JNPF.Common.Manager;
|
|
using JNPF.Common.Enums;
|
|
using JNPF.Common.Extension;
|
|
using JNPF.Common.Filter;
|
|
using JNPF.Common.Models;
|
|
using JNPF.Common.Security;
|
|
@if(Model.IsBatchRemove)
|
|
{
|
|
@:using JNPF.DatabaseAccessor;
|
|
}
|
|
using JNPF.DependencyInjection;
|
|
using JNPF.DynamicApiController;
|
|
using JNPF.FriendlyException;
|
|
using JNPF.Systems.Entitys.Permission;
|
|
using JNPF.Systems.Entitys.System;
|
|
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;
|
|
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.Type == 3 ? ".WorkFlowForm" : "");
|
|
|
|
/// <summary>
|
|
/// 业务实现:@(Model.BusName).
|
|
/// </summary>
|
|
[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
|
|
{
|
|
/// <summary>
|
|
/// 服务基础仓储.
|
|
/// </summary>
|
|
private readonly ISqlSugarRepository<@(Model.ClassName)Entity> _repository;
|
|
@if(Model.IsBillRule)
|
|
{
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 单据规则服务.
|
|
@:/// </summary>
|
|
@:private readonly IBillRullService _billRullService;
|
|
}
|
|
@if(Model.DbLinkId != "0" || Model.IsImportData)
|
|
{
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 数据库管理.
|
|
@:/// </summary>
|
|
@:private readonly IDataBaseManager _dataBaseManager;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 数据接口服务.
|
|
/// </summary>
|
|
private readonly IDataInterfaceService _dataInterfaceService;
|
|
|
|
/// <summary>
|
|
/// 缓存管理.
|
|
/// </summary>
|
|
private readonly ICacheManager _cacheManager;
|
|
|
|
/// <summary>
|
|
/// 通用数据解析.
|
|
/// </summary>
|
|
private readonly ControlParsing _controlParsing;
|
|
|
|
/// <summary>
|
|
/// 用户管理.
|
|
/// </summary>
|
|
private readonly IUserManager _userManager;
|
|
|
|
@if(Model.IsImportData)
|
|
{
|
|
@:/// <summary>
|
|
@:/// 代码生成导出数据帮助类.
|
|
@:/// </summary>
|
|
@:private readonly ExportImportDataHelper _exportImportDataHelper;
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 文件服务.
|
|
@:/// </summary>
|
|
@:private readonly IFileManager _fileManager;
|
|
}
|
|
@if(Model.DbLinkId != "0")
|
|
{
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 客户端.
|
|
@:/// </summary>
|
|
@:private static SqlSugarScope? _sqlSugarClient;
|
|
}
|
|
@if(Model.IsImportData || Model.IsExport)
|
|
{
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 导出字段.
|
|
@:/// </summary>
|
|
@:private readonly List<ParamsModel> paramList = "[@(Model.ExportField)]".ToList<ParamsModel>();
|
|
}
|
|
@if(Model.IsImportData)
|
|
{
|
|
@:
|
|
@{var importField = 0;}
|
|
@:/// <summary>
|
|
@:/// 导入字段.
|
|
@:/// </summary>
|
|
@:private readonly string[] uploaderKey = new string[] {@foreach(var table in Model.TableField){@if(table.IsImportField){@(importField==0 ? "\"" + table.OriginalColumnName + "\"" : ", \"" + table.OriginalColumnName + "\"") importField++;}} };
|
|
}
|
|
|
|
/// <summary>
|
|
/// 初始化一个<see cref="@(Model.ClassName)Service"/>类型的新实例.
|
|
/// </summary>
|
|
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":
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 获取@(Model.BusName).
|
|
@:/// </summary>
|
|
@:/// <param name="id">主键值.</param>
|
|
@:/// <returns></returns>
|
|
@:[HttpGet("{id}")]
|
|
@:public async Task<dynamic> GetInfo(@(Model.PrimaryKeyPolicy == 1 ? "string" : Model.EnableFlow ? "string" : "long") id)
|
|
@:{
|
|
@if(Model.DbLinkId != "0")
|
|
{
|
|
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
|
|
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
|
|
@:
|
|
}
|
|
@:return (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<UserEntity>()@(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<OrganizeEntity>()@(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<PositionEntity>()@(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,
|
|
}
|
|
@:})
|
|
}
|
|
@:.FirstAsync(it => it.@(Model.EnableFlow && Model.PrimaryKeyPolicy == 2 ? "FlowTaskId" : Model.PrimaryKey).Equals(id))).Adapt<@(Model.ClassName)InfoOutput>();
|
|
@:}
|
|
break;
|
|
@*流程保存*@
|
|
case "save":
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 保存.
|
|
@:/// </summary>
|
|
@:/// <param name="id">主键值.</param>
|
|
@:/// <param name="input">表单数据.</param>
|
|
@:/// <returns></returns>
|
|
@:[HttpPost("{id}")]
|
|
@:public async Task Save(string id, [FromBody] @(Model.ClassName)CrInput input)
|
|
@:{
|
|
@*跨库*@
|
|
@if(Model.DbLinkId != "0")
|
|
{
|
|
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
|
|
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
|
|
@:
|
|
}
|
|
@:var entity = input.Adapt<@(Model.ClassName)Entity>();
|
|
@:entity.@(Model.PrimaryKeyPolicy == 1 ? Model.PrimaryKey : "FlowTaskId") = id;
|
|
@:if (await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()." : "_repository.Is")AnyAsync(x => x.@(Model.PrimaryKeyPolicy == 1 ? Model.PrimaryKey : "FlowTaskId").Equals(id)@(Model.PrimaryKeyPolicy == 2 ? " || x." + Model.PrimaryKey + ".Equals(id)" : "")))
|
|
@:{
|
|
@if(Model.PrimaryKeyPolicy == 2)
|
|
{
|
|
@:entity.Id = (await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()." : "_repository.Get")FirstAsync(it=> it.FlowTaskId.Equals(entity.FlowTaskId)@(Model.PrimaryKeyPolicy == 2 ? " || it." + Model.PrimaryKey + ".Equals(entity.FlowTaskId)" : ""))).Id;
|
|
}
|
|
@{ GetAndModifyDataMethodTemplate(); }
|
|
@:}
|
|
@:else
|
|
@:{
|
|
@{ GetTheNewDataMethodTemplate(); }
|
|
@:}
|
|
@:}
|
|
break;
|
|
@*详情*@
|
|
case "detail":
|
|
@:
|
|
@:/// <summary>
|
|
@:/// @(Model.BusName)详情.
|
|
@:/// </summary>
|
|
@:/// <param name="id">主键值.</param>
|
|
@:/// <returns></returns>
|
|
@:[HttpGet("Detail/{id}")]
|
|
@:public async Task<dynamic> GetDetails(@(Model.PrimaryKeyPolicy == 1 ? "string" : "long") id)
|
|
@:{
|
|
@*跨库*@
|
|
@if(Model.DbLinkId != "0")
|
|
{
|
|
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
|
|
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
|
|
@:
|
|
}
|
|
@:var data = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()" : "_repository.AsQueryable()")
|
|
@:.Select(it => new @(Model.ClassName)DetailOutput
|
|
@:{
|
|
@*循环展示字段*@
|
|
@foreach (var column in Model.TableField){
|
|
@if (column.PrimaryKey){
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName,
|
|
}else if(column.jnpfKey != null){
|
|
@switch(column.jnpfKey)
|
|
{
|
|
case "uploadFz":
|
|
case "uploadImg":
|
|
@:@(column.LowerColumnName)List = it.@column.ColumnName,
|
|
break;
|
|
case "switch":
|
|
@:@(column.LowerColumnName) = SqlFunc.IIF(it.@(column.ColumnName) == 0, "@(column.InactiveTxt)", "@(column.ActiveTxt)"),
|
|
break;
|
|
case "date":
|
|
@:@(column.LowerColumnName) = it.@(column.ColumnName).Value.ToString("@(column.Format)"),
|
|
break;
|
|
case "createTime":
|
|
case "modifyTime":
|
|
@:@(column.LowerColumnName) = it.@(column.ColumnName).Value.ToString("yyyy-MM-dd HH:mm"),
|
|
break;
|
|
case "modifyUser":
|
|
case "createUser":
|
|
@:@(column.LowerColumnName) = SqlFunc.Subqueryable<UserEntity>()@(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.LowerColumnName) = SqlFunc.Subqueryable<OrganizeEntity>()@(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.LowerColumnName) = SqlFunc.Subqueryable<PositionEntity>()@(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 "userSelect":
|
|
@if(!column.IsMultiple)
|
|
{
|
|
@:@(column.LowerColumnName) = SqlFunc.Subqueryable<UserEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_USER\")" : "").Where(u => u.Id.Equals(it.@(column.ColumnName))).Select(u => u.RealName),
|
|
}else{
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName,
|
|
}
|
|
break;
|
|
case "posSelect":
|
|
@if(!column.IsMultiple)
|
|
{
|
|
@:@(column.LowerColumnName) = SqlFunc.Subqueryable<PositionEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_POSITION\")" : "").Where(p => p.Id.Equals(it.@(column.ColumnName))).Select(p => p.FullName),
|
|
}else{
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName,
|
|
}
|
|
break;
|
|
case "depSelect":
|
|
@if(!column.IsMultiple)
|
|
{
|
|
@:@(column.LowerColumnName) = SqlFunc.Subqueryable<OrganizeEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_ORGANIZE\")" : "").Where(o => o.Id.Equals(it.@(column.ColumnName))).Select(o => o.FullName),
|
|
}else{
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName,
|
|
}
|
|
break;
|
|
case "roleSelect":
|
|
@if(!column.IsMultiple)
|
|
{
|
|
@:@(column.LowerColumnName) = SqlFunc.Subqueryable<RoleEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_ROLE\")" : "").Where(r => r.Id.Equals(it.@(column.ColumnName))).Select(r => r.FullName),
|
|
}else{
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName,
|
|
}
|
|
break;
|
|
case "groupSelect":
|
|
@if(!column.IsMultiple)
|
|
{
|
|
@:@(column.LowerColumnName) = SqlFunc.Subqueryable<GroupEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_GROUP\")" : "").Where(g => g.Id.Equals(it.@(column.ColumnName))).Select(g => g.FullName),
|
|
}else{
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName,
|
|
}
|
|
break;
|
|
case "select":
|
|
case "radio":
|
|
case "treeSelect":
|
|
@switch(column.ControlsDataType)
|
|
{
|
|
case "dictionary":
|
|
@if(!column.IsMultiple)
|
|
{
|
|
@:@(column.LowerColumnName) = SqlFunc.Subqueryable<DictionaryDataEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_DICTIONARYDATA\")" : "").Where(dic => dic.@(column.Value == "id" ? "Id" : "EnCode").Equals(it.@(column.ColumnName)) && dic.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(dic => dic.FullName),
|
|
}else{
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName,
|
|
}
|
|
break;
|
|
default:
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName@(column.NetType == "int" ? ".ToString()" : ""),
|
|
break;
|
|
}
|
|
break;
|
|
default:
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName@(column.NetType == "int" ? ".ToString()" : ""),
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
@:}).MergeTable().Where(it => it.@(Model.LowerPrimaryKey) == id).ToListAsync();
|
|
@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 "uploadFz":
|
|
case "uploadImg":
|
|
@:if(item.@(column.LowerColumnName)List != null)
|
|
@:{
|
|
@:item.@(column.LowerColumnName) = item.@(column.LowerColumnName)List.ToObject<List<FileControlsModel>>();
|
|
@:}
|
|
@:else
|
|
@:{
|
|
@:item.@(column.LowerColumnName) = new List<FileControlsModel>();
|
|
@:}
|
|
@:
|
|
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<List<StaticDataModel>>();
|
|
@: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<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName));
|
|
}
|
|
@:}
|
|
break;
|
|
case "dictionary":
|
|
@:if(item.@(column.LowerColumnName) != null)
|
|
@:{
|
|
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().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":
|
|
@:if(item.@(column.LowerColumnName) != null)
|
|
@:{
|
|
@:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "");
|
|
@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<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName));
|
|
}
|
|
@:}
|
|
break;
|
|
}
|
|
@:
|
|
break;
|
|
case "checkbox":
|
|
@:// @column.ColumnComment
|
|
@switch(column.ControlsDataType)
|
|
{
|
|
case "static":
|
|
@:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
|
|
@:if(item.@(column.LowerColumnName) != null)
|
|
@:{
|
|
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName));
|
|
@:}
|
|
break;
|
|
case "dictionary":
|
|
@:if(item.@(column.LowerColumnName) != null)
|
|
@:{
|
|
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().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":
|
|
@:if(item.@(column.LowerColumnName) != null)
|
|
@:{
|
|
@:var @(column.LowerColumnName)Data = await _dataInterfaceService.GetDynamicList("@(column.propsUrl)", "@(column.Value)", "@(column.Label)", "");
|
|
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject<List<string>>();
|
|
@:item.@(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 "static":
|
|
@:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
|
|
@: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":
|
|
@switch(column.ControlsDataType)
|
|
{
|
|
case "static":
|
|
@:// @column.ColumnComment
|
|
@:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
|
|
@:if(item.@(column.LowerColumnName) != null)
|
|
@:{
|
|
@if(!column.IsMultiple)
|
|
{
|
|
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject<List<string>>();
|
|
@: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<List<List<string>>>();
|
|
@:var @(column.LowerColumnName)Excessive = new List<string>();
|
|
@: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<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(a => a.FullName).ToListAsync());
|
|
}else{
|
|
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject<List<List<string>>>();
|
|
@:var @(column.LowerColumnName)Excessive = new List<string>();
|
|
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
|
|
@:{
|
|
@:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(it => @(column.LowerColumnName).Contains(it.@(column.Value == "id" ? "Id" : "EnCode")) && it.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(a => a.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<List<string>>();
|
|
@: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<List<List<string>>>();
|
|
@:var @(column.LowerColumnName)Excessive = new List<string>();
|
|
@: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(a => a.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<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join("/", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(a => a.FullName).ToListAsync());
|
|
}else{
|
|
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject<List<List<string>>>();
|
|
@:var @(column.LowerColumnName)Excessive = new List<string>();
|
|
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
|
|
@:{
|
|
@:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => @(column.LowerColumnName).Contains(it.Id)).Select(a => a.FullName).ToListAsync()));
|
|
@:}
|
|
@:
|
|
@:item.@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Excessive);
|
|
}
|
|
@:}
|
|
@:
|
|
break;
|
|
case "depSelect":
|
|
@:// @column.ColumnComment
|
|
@:if(item.@(column.LowerColumnName) != null)
|
|
@:{
|
|
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(a => a.FullName).ToListAsync());
|
|
@:}
|
|
@:
|
|
break;
|
|
case "posSelect":
|
|
@:// @column.ColumnComment
|
|
@:if(item.@(column.LowerColumnName) != null)
|
|
@:{
|
|
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<PositionEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(a => a.FullName).ToListAsync());
|
|
@:}
|
|
@:
|
|
break;
|
|
case "userSelect":
|
|
@:// @column.ColumnComment
|
|
@:if(item.@(column.LowerColumnName) != null)
|
|
@:{
|
|
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<UserEntity>().Where(a => @(column.LowerColumnName + @column.upperJnpfKey).Contains(a.Id)).Select(a => a.RealName).ToListAsync());
|
|
@:}
|
|
@:
|
|
break;
|
|
case "roleSelect":
|
|
@:// @column.ColumnComment
|
|
@:if(item.@(column.LowerColumnName) != null)
|
|
@:{
|
|
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<RoleEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(a => a.FullName).ToListAsync());
|
|
@:}
|
|
@:
|
|
break;
|
|
case "groupSelect":
|
|
@:// @column.ColumnComment
|
|
@:if(item.@(column.LowerColumnName) != null)
|
|
@:{
|
|
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<GroupEntity>().Where(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.Id)).Select(a => a.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<List<StaticDataModel>>();
|
|
@: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<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(s => s.fullName));
|
|
}
|
|
@:}
|
|
break;
|
|
case "dictionary":
|
|
@if(column.IsMultiple)
|
|
{
|
|
@:if(item.@(column.LowerColumnName) != null)
|
|
@:{
|
|
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().Where(a => @(column.LowerColumnName + @column.upperJnpfKey).Contains(a.@(column.Value == "id" ? "Id" : "EnCode")) && a.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(a => a.FullName).ToListAsync());
|
|
@:}
|
|
}
|
|
break;
|
|
case "dynamic":
|
|
@:var @(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<List<string>>();
|
|
@:item.@(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(item.@(column.LowerColumnName) != null)
|
|
@:{
|
|
@if(!column.IsMultiple)
|
|
{
|
|
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join("/", await _repository.AsSugarClient().Queryable<ProvinceEntity>().Where(a => @(column.LowerColumnName + @column.upperJnpfKey).Contains(a.Id)).Select(a => a.FullName).ToListAsync());
|
|
}else{
|
|
@:var @(column.LowerColumnName + @column.upperJnpfKey) = item.@(column.LowerColumnName).ToObject<List<List<string>>>();
|
|
@:var @(column.LowerColumnName)Excessive = new List<string>();
|
|
@:foreach (var @(column.LowerColumnName) in @(column.LowerColumnName + @column.upperJnpfKey))
|
|
@:{
|
|
@:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable<ProvinceEntity>().Where(a => @(column.LowerColumnName).Contains(a.Id)).Select(a => a.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<List<string>>();
|
|
@:item.@(column.LowerColumnName) = string.Join(",", @(column.LowerColumnName)Data.FindAll(it => @(column.LowerColumnName + @column.upperJnpfKey).Contains(it.id)).Select(a => a.fullName));
|
|
}
|
|
@:}
|
|
@:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
@:});
|
|
}
|
|
@if(Model.ParsJnpfKeyConstListDetails.Count>0)
|
|
{
|
|
@:
|
|
@:var resData = data.ToObject<List<Dictionary<string, object>>>(CommonConst.options);
|
|
@foreach (var jnpfKeyConst in Model.ParsJnpfKeyConstListDetails)
|
|
{
|
|
@:resData = await _controlParsing.GetParsDataList(resData, "@(jnpfKeyConst[1])", "@(jnpfKeyConst[0])", _userManager.TenantId);
|
|
}
|
|
@:
|
|
@:data = resData.ToObject<List<@(Model.ClassName)DetailOutput>>(CommonConst.options);
|
|
}
|
|
@:
|
|
@:return data.FirstOrDefault();
|
|
@:}
|
|
break;
|
|
@*分页列表*@
|
|
case "page":
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 获取@(Model.BusName)列表.
|
|
@:/// </summary>
|
|
@:/// <param name="input">请求参数.</param>
|
|
@:/// <returns></returns>
|
|
@if(item.IsInterface)
|
|
{
|
|
@:[HttpPost("List")]
|
|
}
|
|
@:@(item.IsInterface ? "public" : "private") async Task<dynamic> GetList(@(item.IsInterface ? "[FromBody] " : "")@(Model.ClassName)ListQueryInput input)
|
|
@:{
|
|
@if(Model.DbLinkId != "0")
|
|
{
|
|
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
|
|
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
|
|
@:
|
|
}
|
|
@if(Model.UseDataPermission)
|
|
{
|
|
@:var authorizeWhere = new List<IConditionalModel>();
|
|
@:
|
|
@:// 数据权限过滤
|
|
@:if (_userManager.User.IsAdministrator == 0)
|
|
@:{
|
|
@:authorizeWhere = await _userManager.GetConditionAsync<@(Model.ClassName)ListOutput>(input.menuId, "@(Model.OriginalPrimaryKey)", _userManager.UserOrigin.Equals("pc") ? @(Model.PcUseDataPermission) : @(Model.AppUseDataPermission));
|
|
@:}
|
|
@:
|
|
}
|
|
@if(Model.HasSuperQuery)
|
|
{
|
|
@:var entityInfo = @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").EntityMaintenance.GetEntityInfo<@(Model.ClassName)Entity>();
|
|
@:var superQuery = SuperQueryHelper.GetSuperQueryInput(input.superQueryJson, string.Empty, entityInfo, 0);
|
|
@:List<IConditionalModel> mainConditionalModel = SuperQueryHelper.GetSuperQueryJson(superQuery);
|
|
}
|
|
@{ GetListQueryFieldTemplate(); }
|
|
@:var data = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()" : "_repository.AsQueryable()")
|
|
@{ GetTheListQueryCriteriaTemplate(); }
|
|
@if(Model.UseDataPermission)
|
|
{
|
|
@:.Where(authorizeWhere)
|
|
}
|
|
@if(Model.HasSuperQuery)
|
|
{
|
|
@:.Where(mainConditionalModel)
|
|
}
|
|
@:.Select(it => new @(Model.ClassName)ListOutput
|
|
@:{
|
|
@{ GetTheListDisplayFieldTemplate(); }
|
|
@:}).MergeTable().OrderByIF(string.IsNullOrEmpty(input.sidx), it => it.@(Model.LowerPrimaryKey)).OrderByIF(!string.IsNullOrEmpty(input.sidx), input.sidx + " " + input.sort).ToPagedListAsync(input.currentPage, input.pageSize);
|
|
@:
|
|
@:var inlineEditorList = data.list.Adapt<List<@(Model.ClassName)InlineEditorOutput>>();
|
|
@if(Model.IsConversion)
|
|
{
|
|
@:
|
|
@:await _repository.AsSugarClient().ThenMapperAsync(inlineEditorList, async item =>
|
|
@:{
|
|
@{ GetListDataConversionTemplate(); }
|
|
@:});
|
|
}
|
|
@if(Model.ParsJnpfKeyConstList.Count > 0)
|
|
{
|
|
@:
|
|
@:var resData = inlineEditorList.ToObject<List<Dictionary<string, object>>>(CommonConst.options);
|
|
@foreach (var jnpfKeyConst in Model.ParsJnpfKeyConstList)
|
|
{
|
|
@:resData = await _controlParsing.GetParsDataList(resData, "@(jnpfKeyConst[1])", "@(jnpfKeyConst[0])", _userManager.TenantId);
|
|
}
|
|
@:
|
|
@:inlineEditorList = resData.ToObject<List<@(Model.ClassName)InlineEditorOutput>>(CommonConst.options);
|
|
}
|
|
@:
|
|
@:return PageResult<@(Model.ClassName)InlineEditorOutput>.SqlSugarPageResult(new SqlSugarPagedList<@(Model.ClassName)InlineEditorOutput>
|
|
@:{
|
|
@:pagination = data.pagination,
|
|
@:list = inlineEditorList
|
|
@:});
|
|
@:}
|
|
break;
|
|
@*无分页列表*@
|
|
case "noPage":
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 获取@(Model.BusName)无分页列表.
|
|
@:/// </summary>
|
|
@:/// <param name="input">请求参数.</param>
|
|
@:/// <returns></returns>
|
|
@if(item.IsInterface)
|
|
{
|
|
@:[HttpPost("List")]
|
|
}
|
|
@:@(item.IsInterface ? "public" : "private") async Task<dynamic> GetNoPagingList(@(item.IsInterface ? "[FromBody] " : "")@(Model.ClassName)ListQueryInput input)
|
|
@:{
|
|
@if(Model.DbLinkId != "0")
|
|
{
|
|
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
|
|
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
|
|
@:
|
|
}
|
|
@if(Model.UseDataPermission)
|
|
{
|
|
@:var authorizeWhere = new List<IConditionalModel>();
|
|
@:
|
|
@:// 数据权限过滤
|
|
@:if (_userManager.User.IsAdministrator == 0)
|
|
@:{
|
|
@:authorizeWhere = await _userManager.GetConditionAsync<@(Model.ClassName)ListOutput>(input.menuId, "@(Model.OriginalPrimaryKey)", _userManager.UserOrigin.Equals("pc") ? @(Model.PcUseDataPermission) : @(Model.AppUseDataPermission));
|
|
@:}
|
|
@:
|
|
}
|
|
@if(Model.HasSuperQuery)
|
|
{
|
|
@:var entityInfo = @(Model.DbLinkId != "0" ? "_sqlSugarClient" : "_repository.AsSugarClient()").EntityMaintenance.GetEntityInfo<@(Model.ClassName)Entity>();
|
|
@:var superQuery = SuperQueryHelper.GetSuperQueryInput(input.superQueryJson, string.Empty, entityInfo, 0);
|
|
@:List<IConditionalModel> mainConditionalModel = SuperQueryHelper.GetSuperQueryJson(superQuery);
|
|
}
|
|
@{ GetListQueryFieldTemplate(); }
|
|
@:var list = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Queryable<" + Model.ClassName + "Entity>()" : "_repository.AsQueryable()")
|
|
@{ GetTheListQueryCriteriaTemplate(); }
|
|
@if(Model.UseDataPermission)
|
|
{
|
|
@:.Where(authorizeWhere)
|
|
}
|
|
@if(Model.HasSuperQuery)
|
|
{
|
|
@:.Where(mainConditionalModel)
|
|
}
|
|
@:.Select(it => new @(Model.ClassName)ListOutput
|
|
@:{
|
|
@{ GetTheListDisplayFieldTemplate(); }
|
|
@:}).MergeTable().OrderByIF(string.IsNullOrEmpty(input.sidx), it => it.@(Model.LowerPrimaryKey)).OrderByIF(!string.IsNullOrEmpty(input.sidx), input.sidx + " " + input.sort).ToListAsync();
|
|
@:
|
|
@:var inlineEditorList = list.Adapt<List<@(Model.ClassName)InlineEditorOutput>>();
|
|
@if(Model.IsConversion)
|
|
{
|
|
@:
|
|
@:await _repository.AsSugarClient().ThenMapperAsync(inlineEditorList, async item =>
|
|
@:{
|
|
@{ GetListDataConversionTemplate(); }
|
|
@:});
|
|
}
|
|
@if(Model.ParsJnpfKeyConstList.Count>0)
|
|
{
|
|
@:
|
|
@:var resData = inlineEditorList.ToObject<List<Dictionary<string, object>>>(CommonConst.options);
|
|
@foreach (var jnpfKeyConst in Model.ParsJnpfKeyConstList)
|
|
{
|
|
@:resData = await _controlParsing.GetParsDataList(resData,"@(jnpfKeyConst[1])","@(jnpfKeyConst[0])",_userManager.TenantId);
|
|
}
|
|
@:
|
|
@:inlineEditorList = resData.ToObject<List<@(Model.ClassName)InlineEditorOutput>>(CommonConst.options);
|
|
}
|
|
@:return inlineEditorList;
|
|
@:}
|
|
break;
|
|
@*新增*@
|
|
case "add":
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 新建@(Model.BusName).
|
|
@:/// </summary>
|
|
@:/// <param name="input">参数.</param>
|
|
@:/// <returns></returns>
|
|
@:[HttpPost("")]
|
|
@:public async Task Create([FromBody] @(Model.ClassName)CrInput input)
|
|
@:{
|
|
@*跨库*@
|
|
@if(Model.DbLinkId != "0")
|
|
{
|
|
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().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(); }
|
|
@:if (!(isOk > 0)) throw Oops.Oh(ErrorCode.COM1000);
|
|
@:}
|
|
break;
|
|
@*删除*@
|
|
case "remove":
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 删除@(Model.BusName).
|
|
@:/// </summary>
|
|
@:/// <returns></returns>
|
|
@:[HttpDelete("{id}")]
|
|
@:public async Task Delete(@(Model.PrimaryKeyPolicy == 1 ? "string" : "long") id)
|
|
@:{
|
|
@*跨库*@
|
|
@if(Model.DbLinkId != "0")
|
|
{
|
|
@:var dbLink = await _repository.AsSugarClient().Queryable<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
|
|
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
|
|
@:
|
|
}
|
|
@:var isOk = await @(Model.DbLinkId != "0" ? "_sqlSugarClient.Deleteable<" + Model.ClassName + "Entity>()" : "_repository.AsDeleteable()").Where(it => it.@(Model.PrimaryKey).Equals(id)).ExecuteCommandAsync();
|
|
@:if (!(isOk > 0)) throw Oops.Oh(ErrorCode.COM1002);
|
|
@:}
|
|
break;
|
|
@*编辑*@
|
|
case "edit":
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 更新@(Model.BusName).
|
|
@:/// </summary>
|
|
@:/// <param name="id">主键值.</param>
|
|
@:/// <param name="input">参数.</param>
|
|
@:/// <returns></returns>
|
|
@:[HttpPut("{id}")]
|
|
@: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<DbLinkEntity>().FirstAsync(it => it.Id.Equals("@(Model.DbLinkId)"));
|
|
@:_sqlSugarClient = _dataBaseManager.ChangeDataBase(dbLink);
|
|
@:
|
|
}
|
|
@:var entity = input.Adapt<@(Model.ClassName)Entity>();
|
|
@{ GetAndModifyDataMethodTemplate(); }
|
|
@:if (!(isOk > 0)) throw Oops.Oh(ErrorCode.COM1001);
|
|
@:}
|
|
break;
|
|
@*批量删除*@
|
|
case "batchRemove":
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 批量删除@(Model.BusName).
|
|
@:/// </summary>
|
|
@:/// <param name="ids">主键数组.</param>
|
|
@:/// <returns></returns>
|
|
@:[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<DbLinkEntity>().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();
|
|
}
|
|
@if(Model.EnableFlow)
|
|
{
|
|
@:
|
|
@:await _repository.AsSugarClient().Updateable<FlowTaskEntity>().SetColumns(it => new FlowTaskEntity()
|
|
@:{
|
|
@:DeleteMark = 1,
|
|
@:DeleteUserId = _userManager.UserId,
|
|
@:DeleteTime = SqlFunc.GetDate()
|
|
@:}).Where(it => idList.Contains(it.Id)).ExecuteCommandAsync();
|
|
}
|
|
@:}
|
|
@:}
|
|
@if(Model.EnableFlow)
|
|
{
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 获取不允许删除任务列表.
|
|
@:/// </summary>
|
|
@:/// <param name="ids">id数组</param>
|
|
@:/// <returns></returns>
|
|
@:private async Task<List<string>> GetAllowDeleteFlowTaskList(List<string> ids)
|
|
@:{
|
|
@:return await _repository.AsSugarClient().Queryable<FlowTaskEntity>().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 "download":
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 导出@(Model.BusName).
|
|
@:/// </summary>
|
|
@:/// <param name="input">请求参数.</param>
|
|
@:/// <returns></returns>
|
|
@:[HttpGet("Actions/Export")]
|
|
@:public async Task<dynamic> Export([FromQuery] @(Model.ClassName)ListQueryInput input)
|
|
@:{
|
|
@if(Model.IndexDataType == 3)
|
|
{
|
|
@:var exportData = new List<Dictionary<string, object>>();
|
|
@: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<PageResult<@(Model.ClassName)ListOutput>>().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<List<Dictionary<string, object>>>(), paramList, @((Model.IndexDataType == 3).ToString().ToLower()));
|
|
@:}
|
|
break;
|
|
@*导入*@
|
|
case "upload":
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 下载模板.
|
|
@:/// </summary>
|
|
@:/// <returns></returns>
|
|
@:[HttpGet("TemplateDownload")]
|
|
@:public async Task<dynamic> TemplateDownload()
|
|
@:{
|
|
@:List<Dictionary<string, object>>? dataList = new List<Dictionary<string, object>>();
|
|
@:
|
|
@:// 赋予默认值
|
|
@:var dicItem = ExportImportDataHelper.GetTemplateHeader<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity(), 1);
|
|
@:
|
|
@:dicItem.Add("id", "id");
|
|
@:dataList.Add(dicItem);
|
|
@:
|
|
@: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, paramList);
|
|
@:}
|
|
@:
|
|
@:/// <summary>
|
|
@:/// Excel导入.
|
|
@:/// </summary>
|
|
@:/// <param name="file"></param>
|
|
@:/// <returns></returns>
|
|
@:[HttpPost("Uploader")]
|
|
@:public async Task<dynamic> 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) };
|
|
@:}
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 导入预览.
|
|
@:/// </summary>
|
|
@:/// <returns></returns>
|
|
@:[HttpGet("ImportPreview")]
|
|
@:public async Task<dynamic> ImportPreview(string fileName)
|
|
@:{
|
|
@:List<FieldsModel> fieldList = new List<FieldsModel>();
|
|
@:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity()));
|
|
@:var entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(Model.ClassName)Entity>();
|
|
@:List<DbTableRelationModel> tables = new List<DbTableRelationModel>() { ExportImportDataHelper.GetTableRelation(entityInfo, "1") };
|
|
@: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);
|
|
@:}
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 导入数据.
|
|
@:/// </summary>
|
|
@:/// <param name="input"></param>
|
|
@:/// <returns></returns>
|
|
@:[HttpPost("ImportData")]
|
|
@:[UnitOfWork]
|
|
@:public async Task<dynamic> ImportData([FromBody] DataImportInput input)
|
|
@:{
|
|
@:List<FieldsModel> fieldList = new List<FieldsModel>();
|
|
@:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity()));
|
|
@:var entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(Model.ClassName)Entity>();
|
|
@:List<DbTableRelationModel> tables = new List<DbTableRelationModel>() { ExportImportDataHelper.GetTableRelation(entityInfo, "1") };
|
|
@: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<Dictionary<string, object>>;
|
|
@:var errorlist = res.Last() as List<Dictionary<string, object>>;
|
|
@:var result = new DataImportOutput()
|
|
@:{
|
|
@:snum = addlist.Count,
|
|
@:fnum = errorlist.Count,
|
|
@:failResult = errorlist,
|
|
@:resultType = errorlist.Count < 1 ? 0 : 1
|
|
@:};
|
|
@:
|
|
@:return result;
|
|
@:}
|
|
@:
|
|
@:/// <summary>
|
|
@:/// 导入数据的错误报告.
|
|
@:/// </summary>
|
|
@:/// <param name="list"></param>
|
|
@:/// <returns></returns>
|
|
@:[HttpPost("ImportExceptionData")]
|
|
@:[UnitOfWork]
|
|
@:public async Task<dynamic> ExportExceptionData([FromBody] DataImportInput list)
|
|
@:{
|
|
@:List<FieldsModel> fieldList = new List<FieldsModel>();
|
|
@:fieldList.AddRange(ExportImportDataHelper.GetTemplateParsing<@(Model.ClassName)Entity>(new @(Model.ClassName)Entity()));
|
|
@:var entityInfo = _repository.AsSugarClient().EntityMaintenance.GetEntityInfo<@(Model.ClassName)Entity>();
|
|
@:List<DbTableRelationModel> tables = new List<DbTableRelationModel>() { ExportImportDataHelper.GetTableRelation(entityInfo, "1") };
|
|
@: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, paramList);
|
|
@:var firstColumns = result.First().ToObject<Dictionary<string, int>>();
|
|
@:var resultList = result.Last().ToObject<List<Dictionary<string, object>>>();
|
|
@:_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 GetListQueryFieldTemplate()
|
|
{
|
|
@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<string> query@(table.ColumnName) = input.@(table.LowerColumnName)?.Split(',').ToObject<List<string>>();
|
|
@:var start@(table.ColumnName) = query@(table.ColumnName)?.First();
|
|
@:var end@(table.ColumnName) = query@(table.ColumnName)?.Last();
|
|
break;
|
|
case "numInput":
|
|
case "calculate":
|
|
@:List<object> query@(table.ColumnName) = input.@(table.LowerColumnName)?.Split(',').ToObject<List<object>>();
|
|
@: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<DateTime> query@(table.ColumnName) = input.@(table.LowerColumnName)?.Split(',').ToObject<List<DateTime>>();
|
|
@:DateTime? start@(table.ColumnName) = query@(table.ColumnName)?.First();
|
|
@:DateTime? end@(table.ColumnName) = query@(table.ColumnName)?.Last();
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@*获取列表查询条件模板*@
|
|
void GetTheListQueryCriteriaTemplate()
|
|
{
|
|
@*循环查询条件*@
|
|
@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 GetTheListDisplayFieldTemplate()
|
|
{
|
|
@*循环展示字段*@
|
|
@foreach (var column in Model.TableField){
|
|
@if (column.PrimaryKey){
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName,
|
|
}else if(column.IsShow){
|
|
@switch(column.jnpfKey)
|
|
{
|
|
case "date":
|
|
@:@(column.LowerColumnName) = it.@(column.ColumnName),
|
|
@:@(column.LowerColumnName)_name = it.@(column.ColumnName).Value.ToString("@(column.Format)"),
|
|
break;
|
|
case "createTime":
|
|
case "modifyTime":
|
|
@:@(column.LowerColumnName) = it.@(column.ColumnName),
|
|
@:@(column.LowerColumnName)_name = it.@(column.ColumnName).Value.ToString("yyyy-MM-dd HH:mm"),
|
|
break;
|
|
case "switch":
|
|
@:@(column.LowerColumnName) = it.@(column.ColumnName),
|
|
@:@(column.LowerColumnName)_name = SqlFunc.IIF(it.@(column.ColumnName) == 0, "@(column.InactiveTxt)", "@(column.ActiveTxt)"),
|
|
break;
|
|
case "modifyUser":
|
|
case "createUser":
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName,
|
|
@:@(column.LowerColumnName)_name = it.@column.ColumnName,
|
|
break;
|
|
case "currOrganize":
|
|
case "currPosition":
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName,
|
|
@:@(column.LowerColumnName)_name = it.@column.ColumnName,
|
|
break;
|
|
case "userSelect":
|
|
@:@(column.LowerColumnName) = it.@(column.ColumnName),
|
|
@if(!column.IsMultiple)
|
|
{
|
|
@:@(column.LowerColumnName)_name = SqlFunc.Subqueryable<UserEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_USER\")" : "").Where(u => u.Id.Equals(it.@(column.ColumnName))).Select(u => u.RealName),
|
|
}
|
|
break;
|
|
case "posSelect":
|
|
@:@(column.LowerColumnName) = it.@(column.ColumnName),
|
|
@if(!column.IsMultiple)
|
|
{
|
|
@:@(column.LowerColumnName)_name = SqlFunc.Subqueryable<PositionEntity>()@(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 "depSelect":
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName,
|
|
@if(!column.IsMultiple)
|
|
{
|
|
@:@(column.LowerColumnName)_name = SqlFunc.Subqueryable<OrganizeEntity>()@(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 "roleSelect":
|
|
@:@(column.LowerColumnName) = it.@(column.ColumnName),
|
|
@if(!column.IsMultiple)
|
|
{
|
|
@:@(column.LowerColumnName)_name = SqlFunc.Subqueryable<RoleEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_ROLE\")" : "").Where(r => r.Id.Equals(it.@(column.ColumnName))).Select(r => r.FullName),
|
|
}
|
|
break;
|
|
case "groupSelect":
|
|
@:@(column.LowerColumnName) = it.@(column.ColumnName),
|
|
@if(!column.IsMultiple)
|
|
{
|
|
@:@(column.LowerColumnName)_name = SqlFunc.Subqueryable<GroupEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_GROUP\")" : "").Where(g => g.Id.Equals(it.@(column.ColumnName))).Select(g => g.FullName),
|
|
}
|
|
break;
|
|
case "select":
|
|
case "radio":
|
|
case "treeSelect":
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName,
|
|
@switch(column.ControlsDataType)
|
|
{
|
|
case "dictionary":
|
|
@if(!column.IsMultiple)
|
|
{
|
|
@:@(column.LowerColumnName)_name = SqlFunc.Subqueryable<DictionaryDataEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.BASE_DICTIONARYDATA\")" : "").Where(dic => dic.@(column.Value == "id" ? "Id" : "EnCode").Equals(it.@(column.ColumnName)) && dic.DictionaryTypeId.Equals("@(column.propsUrl)")).Select(dic => dic.FullName),
|
|
}
|
|
break;
|
|
}
|
|
break;
|
|
case "time":
|
|
case "comInput":
|
|
case "textarea":
|
|
case "popupSelect":
|
|
case "relationForm":
|
|
case "numInput":
|
|
case "billRule":
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName,
|
|
@:@(column.LowerColumnName)_name = it.@column.ColumnName,
|
|
break;
|
|
default:
|
|
@:@(column.LowerColumnName) = it.@column.ColumnName,
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
@if(Model.EnableFlow)
|
|
{
|
|
@:flowState = SqlFunc.Subqueryable<FlowTaskEntity>()@(Model.DbLinkId != "0" ? ".AS(\"db_"+ Model.ConfigId +"."+ Model.DBName +".dbo.FLOW_TASK\")" : "").Where(f => f.Id.Equals(it.@(Model.PrimaryKeyPolicy == 1 ? Model.PrimaryKey : "FlowTaskId"))).Select(f => f.Status),
|
|
}
|
|
@if(Model.EnableFlow && Model.PrimaryKeyPolicy == 2)
|
|
{
|
|
@:flowTaskId = it.FlowTaskId
|
|
}
|
|
}
|
|
@*获取列表数据转换模板*@
|
|
void GetListDataConversionTemplate()
|
|
{
|
|
@foreach (var column in Model.TableField)
|
|
{
|
|
@{var dataCount = column.StaticData != null ? column.StaticData.Count : 0;}
|
|
@if(column.IsConversion && column.IsShow)
|
|
{
|
|
@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<List<StaticDataModel>>();
|
|
@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(item.@(column.LowerColumnName).Count > 0)
|
|
@:{
|
|
@:item.@(column.LowerColumnName)_name = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().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).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 "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<List<StaticDataModel>>();
|
|
@: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<DictionaryDataEntity>().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 "static":
|
|
@:var @(column.LowerColumnName)Data = "[@foreach(var data in column.StaticData){@("{\\\"id\\\":\\\"" + @data.id + "\\\",\\\"fullName\\\":\\\""+ @data.fullName + "\\\"}")@(dataCount == 1 ? "" : ",")dataCount--;}]".ToObject<List<StaticDataModel>>();
|
|
@: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<List<StaticDataModel>>();
|
|
@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(s => s.fullName));
|
|
}else{
|
|
@:if(item.@(column.LowerColumnName).Count > 0)
|
|
@:{
|
|
@:var @(column.LowerColumnName)Excessive = new List<string>();
|
|
@: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(s => s.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<DictionaryDataEntity>().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<string>();
|
|
@:foreach (var @(column.LowerColumnName) in item.@(column.LowerColumnName))
|
|
@:{
|
|
@:@(column.LowerColumnName)Excessive.Add(string.Join("@(column.Separator)", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().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<string>();
|
|
@: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<OrganizeEntity>().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<string>();
|
|
@:foreach (var @(column.LowerColumnName) in item.@(column.LowerColumnName))
|
|
@:{
|
|
@:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable<OrganizeEntity>().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(item.@(column.LowerColumnName).Count > 0)
|
|
@:{
|
|
@:item.@(column.LowerColumnName)_name = string.Join(",", await _repository.AsSugarClient().Queryable<OrganizeEntity>().Where(it => item.@(column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
|
|
@:}
|
|
@:
|
|
break;
|
|
case "posSelect":
|
|
@:// @column.ColumnComment
|
|
@:if(item.@(column.LowerColumnName).Count > 0)
|
|
@:{
|
|
@:item.@(column.LowerColumnName)_name = string.Join(",", await _repository.AsSugarClient().Queryable<PositionEntity>().Where(it => item.@(column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
|
|
@:}
|
|
@:
|
|
break;
|
|
case "userSelect":
|
|
@:// @column.ColumnComment
|
|
@:if(item.@(column.LowerColumnName).Count > 0)
|
|
@:{
|
|
@:item.@(column.LowerColumnName)_name = string.Join(",", await _repository.AsSugarClient().Queryable<UserEntity>().Where(a => item.@(column.LowerColumnName).Contains(a.Id)).Select(it => it.RealName).ToListAsync());
|
|
@:}
|
|
@:
|
|
break;
|
|
case "roleSelect":
|
|
@:// @column.ColumnComment
|
|
@:if(item.@(column.LowerColumnName).Count > 0)
|
|
@:{
|
|
@:item.@(column.LowerColumnName)_name = string.Join(",", await _repository.AsSugarClient().Queryable<RoleEntity>().Where(it => item.@(column.LowerColumnName).Contains(it.Id)).Select(it => it.FullName).ToListAsync());
|
|
@:}
|
|
@:
|
|
break;
|
|
case "groupSelect":
|
|
@:// @column.ColumnComment
|
|
@:if(item.@(column.LowerColumnName).Count > 0)
|
|
@:{
|
|
@:item.@(column.LowerColumnName)_name = string.Join(",", await _repository.AsSugarClient().Queryable<GroupEntity>().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<List<StaticDataModel>>();
|
|
@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).Count > 0)
|
|
@:{
|
|
@:item.@(column.LowerColumnName)_name = string.Join(",", await _repository.AsSugarClient().Queryable<DictionaryDataEntity>().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<ProvinceEntity>().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<string>();
|
|
@:foreach (var @(column.LowerColumnName) in item.@(column.LowerColumnName))
|
|
@:{
|
|
@:@(column.LowerColumnName)Excessive.Add(string.Join("/", await _repository.AsSugarClient().Queryable<ProvinceEntity>().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(a => a.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)不能重复");
|
|
}
|
|
}
|
|
}
|
|
@:var isOk = await @(Model.DbLinkId != "0" ? "_sqlSugarClient." : "_repository.As")Insertable(entity).IgnoreColumns(ignoreNullColumn: true).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)不能重复");
|
|
}
|
|
}
|
|
}
|
|
@if(Model.ConcurrencyLock)
|
|
{
|
|
@:try
|
|
@:{
|
|
}
|
|
@:@(Model.ConcurrencyLock ? " ":"")var isOk = await @(Model.DbLinkId != "0" ? "_sqlSugarClient." : "_repository.As")Updateable(entity)
|
|
@if(Model.IsUpdate || Model.ConcurrencyLock)
|
|
{
|
|
@:@(Model.ConcurrencyLock ? " ":"").UpdateColumns(it => new
|
|
@:@(Model.ConcurrencyLock ? " ":""){
|
|
}
|
|
@foreach (var table in Model.TableField)
|
|
{
|
|
@if(table.IsUpdate)
|
|
{
|
|
@:@(Model.ConcurrencyLock ? " ":"")it.@(table.ColumnName),
|
|
}
|
|
}
|
|
@if(Model.ConcurrencyLock)
|
|
{
|
|
@:it.Version,
|
|
@:}).ExecuteCommandWithOptLockAsync(true);
|
|
}else{
|
|
@:@(Model.IsUpdate ? "})" : "").ExecuteCommandAsync();
|
|
}
|
|
@if(Model.ConcurrencyLock)
|
|
{
|
|
@:}
|
|
@:catch (Exception)
|
|
@:{
|
|
@:throw Oops.Bah(ErrorCode.COM1010);
|
|
@:}
|
|
}
|
|
}
|
|
} |