You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ds8-solution-pro/ds-wms-service/DS.WMS.Test/ContainerManagementTest.cs

318 lines
13 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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);
}
}