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_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)); tenantDb.CodeFirst.InitTables(typeof(CM_State_Change_Templat)); tenantDb.CodeFirst.InitTables(typeof(CM_State_Change_TemplatDetail)); tenantDb.CodeFirst.InitTables(typeof(CM_State_Change_TemplatImport)); tenantDb.CodeFirst.InitTables(typeof(CM_State_Change_Temp)); } 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); //} }