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(); saasService = _serviceProvider.GetRequiredService(); } [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); } /// /// 主库初始化单表 /// //[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); //} /// /// 初始化单表 /// [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); } /// /// 初始化单表 多表 /// 注意 海运出口 SeaExport 得手动数据库更新 /// [Fact] public void InitAllSaasTableTestByDdlucky() { var tenantList = db.Queryable().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_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().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().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(); foreach (var item in list) { list1.Add(item.ToUpperCamelCase()); } Console.WriteLine(list1[0]); Assert.True(true); } public class ClientTemp { /// /// Desc:客户中文名称或描述信息 /// public string Description { get; set; } /// /// Desc:客户英文简称 /// public string Name { get; set; } /// /// Desc:客户英文全称 /// public string EnFullName { get; set; } /// /// Desc:通讯地址 /// public string Address { get; set; } } /// /// 初始化单表 /// [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); } /// /// 初始化单表 /// [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); } }