|
|
|
|
using System.Reflection;
|
|
|
|
|
using DS.Module.Core;
|
|
|
|
|
using DS.Module.Core.Extensions;
|
|
|
|
|
using DS.Module.SqlSugar;
|
|
|
|
|
using DS.WMS.ContainerManagement.Info.Entity;
|
|
|
|
|
using DS.WMS.Core.Check.Entity;
|
|
|
|
|
using DS.WMS.Core.Code.Entity;
|
|
|
|
|
using DS.WMS.Core.Info.Entity;
|
|
|
|
|
using DS.WMS.Core.Op.Entity;
|
|
|
|
|
using DS.WMS.Core.Op.Entity.BookingSlot;
|
|
|
|
|
using DS.WMS.Core.Sys.Entity;
|
|
|
|
|
using DS.WMS.Core.TaskPlat.Entity;
|
|
|
|
|
using Mapster;
|
|
|
|
|
using Masuit.Tools.Strings;
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
|
|
|
using Microsoft.Owin.BuilderProperties;
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using Newtonsoft.Json.Serialization;
|
|
|
|
|
using Org.BouncyCastle.Ocsp;
|
|
|
|
|
using SqlSugar;
|
|
|
|
|
using SqlSugar.IOC;
|
|
|
|
|
using Xunit;
|
|
|
|
|
|
|
|
|
|
namespace Ds.WMS.Test;
|
|
|
|
|
|
|
|
|
|
public class ContainerManagementTest
|
|
|
|
|
{
|
|
|
|
|
private readonly IServiceProvider _serviceProvider;
|
|
|
|
|
private readonly SqlSugarScope db;
|
|
|
|
|
private readonly ISaasDbService saasService;
|
|
|
|
|
public ContainerManagementTest(IServiceProvider serviceProvider)
|
|
|
|
|
{
|
|
|
|
|
_serviceProvider = serviceProvider;
|
|
|
|
|
db = (SqlSugarScope)_serviceProvider.GetRequiredService<ISqlSugarClient>();
|
|
|
|
|
saasService = _serviceProvider.GetRequiredService<ISaasDbService>();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void ContainerManagementTest1()
|
|
|
|
|
{
|
|
|
|
|
Type[] types = Assembly
|
|
|
|
|
.LoadFrom("DS.WMS.Core.dll")//如果 .dll报错,可以换成 xxx.exe 有些生成的是exe
|
|
|
|
|
.GetTypes().Where(it => it.FullName.Contains("DS.WMS.Core.Op.Entity."))
|
|
|
|
|
//.GetTypes().Where(it => it.FullName.Contains("DS.WMS.Core.Code.Entity.") || it.FullName.Contains("DS.WMS.Core.Info.Entity.") || it.FullName.Contains("DS.WMS.Core.Flow.Entity.")
|
|
|
|
|
//|| it.FullName.Contains("DS.WMS.Core.Check.Entity.") || it.FullName.Contains("DS.WMS.Core.Map.Entity."))//命名空间过滤,当然你也可以写其他条件过滤
|
|
|
|
|
.ToArray();
|
|
|
|
|
//Type[] types = Assembly
|
|
|
|
|
// .LoadFrom("DS.WMS.Core.dll")//如果 .dll报错,可以换成 xxx.exe 有些生成的是exe
|
|
|
|
|
// .GetTypes().Where(it => it.FullName.Contains("DS.WMS.Core.Code.Entity."))//命名空间过滤,当然你也可以写其他条件过滤
|
|
|
|
|
// .ToArray();
|
|
|
|
|
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
|
|
|
|
|
// var temp = tenantDb.CodeFirst.GetDifferenceTables(types); || it.FullName.Contains("DS.WMS.Core.Op.Entity.")
|
|
|
|
|
// var diffString= tenantDb.CodeFirst.GetDifferenceTables(types).ToDiffString();
|
|
|
|
|
StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci";//较高版本支持
|
|
|
|
|
//types = types.Where(it => it.Name != "BusinessFeeStatus").ToArray();
|
|
|
|
|
//types = types.Where(it => it.Name != "BusinessOrderContact").ToArray();
|
|
|
|
|
|
|
|
|
|
tenantDb.CodeFirst.InitTables(types);
|
|
|
|
|
// //初始化数库
|
|
|
|
|
// tenantDb.DbMaintenance.CreateDatabase();
|
|
|
|
|
//
|
|
|
|
|
// tenantDb.CodeFirst.InitTables(typeof(CodeCountry));
|
|
|
|
|
Assert.True(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 主库初始化单表
|
|
|
|
|
/// </summary>
|
|
|
|
|
//[Fact]
|
|
|
|
|
//public void MasterInitTableTest()
|
|
|
|
|
//{
|
|
|
|
|
// StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci";//较高版本支持
|
|
|
|
|
// db.CodeFirst.InitTables(typeof(SysPrintTemplate));
|
|
|
|
|
// //tenantDb.CodeFirst.InitTables(typeof(CheckBillAutoDetail));
|
|
|
|
|
// //db.CodeFirst.InitTables(typeof(OpBusinessTruckCtn));
|
|
|
|
|
// Assert.True(true);
|
|
|
|
|
//}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 初始化单表
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Fact]
|
|
|
|
|
public void InitTableTest()
|
|
|
|
|
{
|
|
|
|
|
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
|
|
|
|
|
StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci";//较高版本支持
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_CurrentState));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_BaseInfo));
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_State_Change));
|
|
|
|
|
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_RentIn));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_RentIn_Detail));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_RentOut));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_RentOut_Detail));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_RentOneWay));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_RentOneWay_Detail));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//db.CodeFirst.InitTables(typeof(OpBusinessTruckCtn));
|
|
|
|
|
Assert.True(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 初始化单表 多表
|
|
|
|
|
/// 注意 海运出口 SeaExport 得手动数据库更新
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Fact]
|
|
|
|
|
public void InitAllSaasTableTestByDdlucky()
|
|
|
|
|
{
|
|
|
|
|
var tenantList = db.Queryable<DS.Module.SqlSugar.SysTenantLink>().ToList();
|
|
|
|
|
var ass = Assembly.Load("DS.WMS.Core");
|
|
|
|
|
//var types = ass.GetTypes().Where(it => it.FullName?.Contains("DS.WMS.Core.TaskPlat.Entity") == true).ToArray();
|
|
|
|
|
foreach (var item in tenantList)
|
|
|
|
|
{
|
|
|
|
|
var tenantDb = saasService.GetBizDbScopeById(item.TenantId).CopyNew();
|
|
|
|
|
StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci"; //较高版本支持
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(types); //指定表空间下的实体
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(OpLetterYard));//指定更新特定实体
|
|
|
|
|
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_CurrentState));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_BaseInfo));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_State_Change));
|
|
|
|
|
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_RentIn));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_RentIn_Detail));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_RentOut));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_RentOut_Detail));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_RentOneWay));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_RentOneWay_Detail));
|
|
|
|
|
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_BuyCtn));
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_BuyCtn_Detail));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_SellCtn));
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_SellCtn_Detail));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_CtnScrap));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_CtnScrap_Detail));
|
|
|
|
|
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_CustFeeDui));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_CustFeeDui_Detail));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CM_CustFeeDui_Calendar));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Assert.True(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void InitSaasTableTestByDdlucky()
|
|
|
|
|
{
|
|
|
|
|
var tenantList = db.Queryable<DS.Module.SqlSugar.SysTenantLink>().ToList();
|
|
|
|
|
var ass = Assembly.Load("DS.WMS.Core");
|
|
|
|
|
//var types = ass.GetTypes().Where(it => it.FullName?.Contains("DS.WMS.Core.ContainerManagement.Entity") == true).ToArray();
|
|
|
|
|
foreach (var item in tenantList)
|
|
|
|
|
{
|
|
|
|
|
var tenantDb = saasService.GetBizDbScopeById(item.TenantId).CopyNew();
|
|
|
|
|
StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci"; //较高版本支持
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(types); //指定表空间下的实体
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(OpLetterYard));//指定更新特定实体
|
|
|
|
|
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_CurrentState));
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_BaseInfo));
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_State_Change));
|
|
|
|
|
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_RentIn));
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_RentIn_Detail));
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_RentOut));
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_RentOut_Detail));
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_RentOneWay));
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_RentOneWay_Detail));
|
|
|
|
|
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_CustFeeDui));
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_CustFeeDui_Detail));
|
|
|
|
|
tenantDb.CodeFirst.InitTables(typeof(CM_CustFeeDui_Calendar));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Assert.True(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public void SaasCheckTest()
|
|
|
|
|
{
|
|
|
|
|
Type[] types = Assembly
|
|
|
|
|
.LoadFrom("DS.WMS.Core.dll")//如果 .dll报错,可以换成 xxx.exe 有些生成的是exe
|
|
|
|
|
.GetTypes().Where(it => it.FullName.Contains("DS.WMS.Core.Code.Entity"))//命名空间过滤,当然你也可以写其他条件过滤
|
|
|
|
|
.ToArray();
|
|
|
|
|
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
|
|
|
|
|
StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci";//较高版本支持
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(types);
|
|
|
|
|
Assert.True(true);
|
|
|
|
|
}
|
|
|
|
|
[Fact]
|
|
|
|
|
public void SaasFeeTest()
|
|
|
|
|
{
|
|
|
|
|
Type[] types = Assembly
|
|
|
|
|
.LoadFrom("DS.WMS.Core.dll")//如果 .dll报错,可以换成 xxx.exe 有些生成的是exe
|
|
|
|
|
.GetTypes().Where(it => it.FullName.Contains("DS.WMS.Core.Fee.Entity"))//命名空间过滤,当然你也可以写其他条件过滤
|
|
|
|
|
.ToArray();
|
|
|
|
|
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
|
|
|
|
|
StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci";//较高版本支持
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(types);
|
|
|
|
|
Assert.True(true);
|
|
|
|
|
}
|
|
|
|
|
[Fact]
|
|
|
|
|
|
|
|
|
|
public void ClientBatchEdit()
|
|
|
|
|
{
|
|
|
|
|
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
|
|
|
|
|
|
|
|
|
|
var info = tenantDb.Queryable<InfoClient>().Filter(null, true).Where(x => x.Id == 1772138307266940928).First();
|
|
|
|
|
|
|
|
|
|
var temp = new ClientTemp
|
|
|
|
|
{
|
|
|
|
|
Address = "4",
|
|
|
|
|
Name = "4",
|
|
|
|
|
};
|
|
|
|
|
var dic = temp.GetPropertiesArray();
|
|
|
|
|
|
|
|
|
|
info = temp.Adapt(info);
|
|
|
|
|
tenantDb.Updateable(info).UpdateColumns(dic).ExecuteCommand();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Assert.True(true);
|
|
|
|
|
}
|
|
|
|
|
[Fact]
|
|
|
|
|
|
|
|
|
|
public void CopyColumnTest()
|
|
|
|
|
{
|
|
|
|
|
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
|
|
|
|
|
|
|
|
|
|
var columns = "noBill,enName,copyNoBill";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var list = columns.Split(",");
|
|
|
|
|
var list1 = new List<string>();
|
|
|
|
|
foreach (var item in list)
|
|
|
|
|
{
|
|
|
|
|
list1.Add(item.ToUpperCamelCase());
|
|
|
|
|
}
|
|
|
|
|
Console.WriteLine(list1[0]);
|
|
|
|
|
Assert.True(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public class ClientTemp
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Desc:客户中文名称或描述信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string Description { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Desc:客户英文简称
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string Name { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Desc:客户英文全称
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string EnFullName { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Desc:通讯地址
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string Address { get; set; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 初始化单表
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Fact]
|
|
|
|
|
public void InitTableTestJHQ()
|
|
|
|
|
{
|
|
|
|
|
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
|
|
|
|
|
StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci";//较高版本支持
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(SpaceBookingOrder));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(SpaceBookingOrderCtn));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(SpaceBookingOrderShipSchedule));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotBase));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotCtn));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotStock));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotAllocation));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotAllocationCtn));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotDemand));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotDemandCtn));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(BookingSlotCompare));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(BookingContractNoManage));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(BookingLabel));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(BookingLabelAllocation));
|
|
|
|
|
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(InfoClient));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CodeThirdParty));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(CheckBillAutoDetail));
|
|
|
|
|
//db.CodeFirst.InitTables(typeof(OpBusinessTruckCtn));
|
|
|
|
|
Assert.True(true);
|
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 初始化单表
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Fact]
|
|
|
|
|
public void InitTableTestZXF()
|
|
|
|
|
{
|
|
|
|
|
var tenantDb = saasService.GetBizDbScopeById("1750335377144680448");
|
|
|
|
|
StaticConfig.CodeFirst_MySqlCollate = "utf8mb4_0900_ai_ci";//较高版本支持
|
|
|
|
|
|
|
|
|
|
var ass = Assembly.Load("DS.WMS.Core");
|
|
|
|
|
var types = ass.GetTypes().Where(it => it.FullName?.Contains("DS.WMS.Core.TaskPlat.Entity") == true).ToArray();
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(types);
|
|
|
|
|
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(TaskFlowLog));
|
|
|
|
|
//tenantDb.CodeFirst.InitTables(typeof(TaskFlowLogDetail));
|
|
|
|
|
Assert.True(true);
|
|
|
|
|
}
|
|
|
|
|
}
|