Browse Source

字段对照

bjmzak
DESKTOP-G961P6V\Zhh 2 years ago
parent
commit
f909d8069c
  1. 20
      ThirdPlugIns/Shentun.Peis.PlugIns.Gem/LisRequestPlugInsGem.cs
  2. 10
      src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugIns.cs
  3. 72
      src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsBase.cs
  4. 52
      src/Shentun.Peis.Application/ColumnReferences/ColumnReferenceAppService.cs
  5. 2
      src/Shentun.Peis.Domain/ColumnReferences/ColumnReference.cs
  6. 2
      src/Shentun.Peis.Domain/ThirdInterfaces/ThirdInterface.cs
  7. 8
      test/Shentun.Peis.Application.Tests/ColumnReferenceAppServiceTest.cs
  8. 2
      test/Shentun.Peis.ColumnReference.Tests/ColumnReferencePlugInsTest.cs
  9. 4
      test/Shentun.Peis.ColumnReference.Tests/appsettings.json

20
ThirdPlugIns/Shentun.Peis.PlugIns.Gem/LisRequestPlugInsGem.cs

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shentun.Peis.PlugIns.Gem
{
public class LisRequestPlugInsGem : LisRequestPlugInsBase
{
public LisRequestPlugInsGem(string configParm) : base(configParm)
{
}
public override async Task<LisRequestPluginsOut> Send(LisRequestPluginsInput input)
{
return await base.Send(input);
}
}
}

10
src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugIns.cs

@ -8,9 +8,9 @@ namespace Shentun.Peis.PlugIns
{
interface IColumnReferencePlugIns
{
public List<string> GetAppColumnNames();
public List<ColumnReferenceColumn> GetAppColumns();
public string GetAppFilterColumnName();
public List<string> GetInterfaceColumnNames();
public List<ColumnReferenceColumn> GetInterfaceColumns();
public Task<List<ColumnReferenceCodeValue>> GetAppCodeValuesAsync();
public Task<List<ColumnReferenceFilterCodeValue>> GetAppFilterCodeValuesAsync();
public Task<List<ColumnReferenceCodeValue>> GetInterfaceCodeValuesAsync();
@ -37,6 +37,12 @@ namespace Shentun.Peis.PlugIns
public int DisplayOrder { get; set; }
}
public class ColumnReferenceColumn
{
public string Column { get; set; }
public string Name { get; set; }
}
public class ColumnReferenceTable
{
public string TableName { get; set; }

72
src/Shentun.ColumnReferencePlugIns/ColumnReferencePlugInsBase.cs

@ -19,8 +19,8 @@ namespace Shentun.Peis.PlugIns
protected IConfiguration InterfaceConfig;
protected string? ConnctionStr;
protected string AppSql;
private string[] _columnNames;
private string[] _interfaceColumnNames;
private List<ColumnReferenceColumn> _columnNames;
private List<ColumnReferenceColumn> _interfaceColumnNames;
public ColumnReferencePlugInsBase(string configParm)
{
@ -37,39 +37,83 @@ namespace Shentun.Peis.PlugIns
AppSql = InterfaceConfig.GetSection("App").GetSection("Sql").Value;
var columnNames = InterfaceConfig.GetSection("App").GetSection("ColumnNames").Value;
columnNames = columnNames.Replace(",", ",");
_columnNames = columnNames.Split(',');
var columnNameArry = columnNames.Split(',');
_columnNames = new List<ColumnReferenceColumn>();
foreach (var columnName in columnNameArry)
{
var columns = columnName.Split('=');
if(columns.Length == 2)
{
_columnNames.Add(new ColumnReferenceColumn()
{
Column = columns[0],
Name = columns[1]
});
}
}
columnNames = InterfaceConfig.GetSection("Interface").GetSection("ColumnNames").Value;
columnNames = columnNames.Replace(",", ",");
_interfaceColumnNames = columnNames.Split(',');
columnNameArry = columnNames.Split(',');
_interfaceColumnNames = new List<ColumnReferenceColumn>();
foreach (var columnName in columnNameArry)
{
var columns = columnName.Split('=');
if (columns.Length == 2)
{
_interfaceColumnNames.Add(new ColumnReferenceColumn()
{
Column = columns[0],
Name = columns[1]
});
}
}
}
public virtual List<string> GetAppColumnNames()
public virtual List<ColumnReferenceColumn> GetAppColumns()
{
if (_columnNames == null || _columnNames.Count() == 0)
{
return new List<string>()
return new List<ColumnReferenceColumn>()
{
"编码",
"名称",
new ColumnReferenceColumn()
{
Column = "Code",
Name = "编码"
},
new ColumnReferenceColumn()
{
Column = "DisplayName",
Name = "名称"
}
};
}
return _columnNames.ToList();
return _columnNames;
}
public virtual List<string> GetInterfaceColumnNames()
public virtual List<ColumnReferenceColumn> GetInterfaceColumns()
{
if (_interfaceColumnNames == null || _interfaceColumnNames.Count() == 0)
{
return new List<string>()
return new List<ColumnReferenceColumn>()
{
"编码",
"名称",
new ColumnReferenceColumn()
{
Column = "Code",
Name = "编码"
},
new ColumnReferenceColumn()
{
Column = "DisplayName",
Name = "名称"
}
};
}
return _interfaceColumnNames.ToList();
return _interfaceColumnNames;
}
public virtual async Task<List<ColumnReferenceCodeValue>> GetAppCodeValuesAsync()
{

52
src/Shentun.Peis.Application/ColumnReferences/ColumnReferenceAppService.cs

@ -186,8 +186,8 @@ namespace Shentun.Peis.ColumnReferences
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/ColumnReference/GetAppColumnNames")]
public async Task<List<string>> GetAppColumnNamesAsync(ColumnReferenceIdInputDto input)
[HttpPost("api/app/ColumnReference/GetAppColumns")]
public async Task<List<ColumnReferenceColumn>> GetAppColumnsAsync(ColumnReferenceIdInputDto input)
{
var entity = await _repository.GetAsync(input.Id);
var parmValue = entity.ParmValue;
@ -196,13 +196,9 @@ namespace Shentun.Peis.ColumnReferences
var config = configurationBuilder.Build();
var assemblyName = config.GetSection("Interface").GetSection("AssemblyName").Value;
var className = config.GetSection("Interface").GetSection("ClassName").Value;
object objectValue = await InvokeAsync(assemblyName, className, parmValue, "GetAppColumnNames");
List<string> list = new List<string>();
var list = await InvokeColumnsAsync(assemblyName, className, parmValue, "GetAppColumns");
if (objectValue is IEnumerable enumerableObject)
{
list = enumerableObject.Cast<string>().ToList();
}
return list;
}
public async Task<string> GetAppFilterColumnName(ColumnReferenceIdInputDto input)
@ -214,8 +210,8 @@ namespace Shentun.Peis.ColumnReferences
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/ColumnReference/GetInterfaceColumnNames")]
public async Task<List<string>> GetInterfaceColumnNamesAsync(ColumnReferenceIdInputDto input)
[HttpPost("api/app/ColumnReference/GetInterfaceColumns")]
public async Task<List<ColumnReferenceColumn>> GetInterfaceColumnsAsync(ColumnReferenceIdInputDto input)
{
var entity = await _repository.GetAsync(input.Id);
var parmValue = entity.ParmValue;
@ -224,13 +220,8 @@ namespace Shentun.Peis.ColumnReferences
var config = configurationBuilder.Build();
var assemblyName = config.GetSection("Interface").GetSection("AssemblyName").Value;
var className = config.GetSection("Interface").GetSection("ClassName").Value;
object objectValue = await InvokeAsync(assemblyName, className, parmValue, "GetInterfaceColumnNames");
List<string> list = new List<string>();
if (objectValue is IEnumerable enumerableObject)
{
list = enumerableObject.Cast<string>().ToList();
}
var list = await InvokeColumnsAsync(assemblyName, className, parmValue, "GetInterfaceColumns");
return list;
}
/// <summary>
@ -382,5 +373,32 @@ namespace Shentun.Peis.ColumnReferences
return returnValue;
}
private async Task<List<ColumnReferenceColumn>> InvokeColumnsAsync(string assemblyName, string className, string classConstructorArg, string methodName, object[] args = null)
{
Assembly assembly = Assembly.Load(assemblyName);
Type type = assembly.GetType(className);
// 创建类的实例
object instance = Activator.CreateInstance(type, classConstructorArg);
// 获取方法信息
MethodInfo method = type.GetMethod(methodName);
// 调用方法,如果方法需要参数,可以传入对应的参数数组,例如: new object[] { arg1, arg2 }
List<ColumnReferenceColumn> returnValue;
var isAsync = (method.ReturnType == typeof(Task) ||
(method.ReturnType.IsGenericType && method.ReturnType.GetGenericTypeDefinition() == typeof(Task<>)));
if (isAsync)
{
// 使用反射调用方法
//object returnValue = method.Invoke(instance, args);
returnValue = await (Task<List<ColumnReferenceColumn>>)method.Invoke(instance, args);
}
else
{
returnValue = (List<ColumnReferenceColumn>)method.Invoke(instance, args);
}
return returnValue;
}
}
}

2
src/Shentun.Peis.Domain/ColumnReferences/ColumnReference.cs

@ -30,7 +30,7 @@ namespace Shentun.Peis.Models
/// 配置参数
/// </summary>
[Column("parm_value")]
[StringLength(1000)]
[StringLength(2000)]
public string ParmValue { get; set; }

2
src/Shentun.Peis.Domain/ThirdInterfaces/ThirdInterface.cs

@ -33,7 +33,7 @@ namespace Shentun.Peis.ThirdInterfaces
/// 配置参数
/// </summary>
[Column("parm_value")]
[StringLength(1000)]
[StringLength(2000)]
public string ParmValue { get; set; }
/// <summary>

8
test/Shentun.Peis.Application.Tests/ColumnReferenceAppServiceTest.cs

@ -39,12 +39,12 @@ namespace Shentun.Peis
};
var newEntity = await _appService.GetAppColumnNamesAsync(entity);
var newEntity = await _appService.GetAppColumnsAsync(entity);
if(newEntity != null)
{
foreach(var column in newEntity)
{
_output.WriteLine(column);
_output.WriteLine(column.Name);
}
}
await unitOfWork.CompleteAsync();
@ -63,12 +63,12 @@ namespace Shentun.Peis
};
var newEntity = await _appService.GetInterfaceColumnNamesAsync(entity);
var newEntity = await _appService.GetInterfaceColumnsAsync(entity);
if (newEntity != null)
{
foreach (var column in newEntity)
{
_output.WriteLine(column);
_output.WriteLine(column.Name);
}
}
await unitOfWork.CompleteAsync();

2
test/Shentun.Peis.ColumnReference.Tests/ColumnReferencePlugInsTest.cs

@ -27,7 +27,7 @@ namespace Shentun.Peis.PlugIns.Tests
configParm = File.ReadAllText(filePath);
var columnReferencePlugInsBase = new ColumnReferencePlugInsBase(configParm);
var items = await columnReferencePlugInsBase.GetCodeValuesAsync();
var items = await columnReferencePlugInsBase.GetAppCodeValuesAsync();
foreach ( var item in items )
{
_output.WriteLine(item.Code + item.DisplayName);

4
test/Shentun.Peis.ColumnReference.Tests/appsettings.json

@ -6,7 +6,7 @@
"CorsOrigins": "https://*.Peis.com,http://localhost:4200,http://localhost:9530,http://192.168.1.108:9530,http://localhost:8080,http://localhost:8081",
"RedirectAllowedUrls": "http://localhost:9530",
"Sql": "select id::varchar as Code ,display_name as DisplayName ,simple_code as SimpleCode ,display_order as DisplayOrder from asbitem",
"ColumnNames": "编码,名称"
"ColumnNames": "Code=编码,DisplayName=名称"
},
"Interface": {
//"DbType": "SqlServer",
@ -15,7 +15,7 @@
"ConnectionStrings": "User ID=TJ_LIS;Password=TJ_LIS;Data Source=(DESCRIPTION = (ADDRESS_LIST= (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.12.34)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = HIS56)))",
"Sql": "select ZHID as Code ,ZHMC as DisplayName from PORTAL56_LIS.vi_tj_testitemgroup",
"ColumnNames": "编码,名称"
"ColumnNames": "Code=编码,DisplayName=名称"
},
"ConnectionStrings": {
"Default": "Host=140.143.162.39;Port=5432;Database=ShentunPeis070703;User ID=postgres;Password=shentun123;"

Loading…
Cancel
Save