diff --git a/admin.net.pro/Admin.NET/Vistar.Application/Common/DataValidationService.cs b/admin.net.pro/Admin.NET/Vistar.Application/Common/DataValidationService.cs index c6cdd5f..999d77e 100644 --- a/admin.net.pro/Admin.NET/Vistar.Application/Common/DataValidationService.cs +++ b/admin.net.pro/Admin.NET/Vistar.Application/Common/DataValidationService.cs @@ -5,12 +5,14 @@ // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! using Admin.NET.Core; +using Admin.NET.Core.Service; using DocumentFormat.OpenXml.Bibliography; using DocumentFormat.OpenXml.Drawing.Spreadsheet; using Furion.DependencyInjection; using Furion.DynamicApiController; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Server.IISIntegration; +using Microsoft.Extensions.DependencyInjection; using NewLife; using Qiniu.CDN; using RazorEngine; @@ -38,6 +40,7 @@ public class DataValidationService : IDynamicApiController, ITransient public SqlSugarRepository _obj137Rep; public SqlSugarRepository _objectTypeCheckListRep; public SqlSugarRepository _configurationDataRep; + private readonly IServiceScopeFactory _scopeFactory; public DataValidationService( SqlSugarRepository obj110Rep, SqlSugarRepository obj109Rep, @@ -46,7 +49,8 @@ public class DataValidationService : IDynamicApiController, ITransient SqlSugarRepository obj122Rep, SqlSugarRepository obj137Rep, SqlSugarRepository objectTypeCheckList, - SqlSugarRepository configurationDataRep + SqlSugarRepository configurationDataRep, + IServiceScopeFactory scopeFactory ) { @@ -58,6 +62,7 @@ public class DataValidationService : IDynamicApiController, ITransient _obj137Rep = obj137Rep; _objectTypeCheckListRep = objectTypeCheckList; _configurationDataRep = configurationDataRep; + _scopeFactory = scopeFactory; } /// /// 验证物料是否存在 @@ -68,35 +73,94 @@ public class DataValidationService : IDynamicApiController, ITransient /// public async Task VerificationMaterial(long objId, string materialCode, string recordGuid) { + using var serviceScope = _scopeFactory.CreateScope(); + //var sysEnumService = serviceScope.ServiceProvider.GetRequiredService(); + var db = serviceScope.ServiceProvider.GetRequiredService().AsTenant().GetConnectionScope("启威星 1.94.4.74").CopyNew(); + string verification = "不存在"; - var tasks = new List>(); - switch (objId) + + if (objId==110) { - case 110: - tasks.Add(_obj110Rep.AsQueryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).CountAsync()); - break; - case 109: - tasks.Add(_obj109Rep.AsQueryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).CountAsync()); - break; - case 112: - tasks.Add(_obj112Rep.AsQueryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).CountAsync()); - break; - case 133: - tasks.Add(_obj133Rep.AsQueryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).CountAsync()); - break; - case 122: - tasks.Add(_obj122Rep.AsQueryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).CountAsync()); - break; - case 137: - tasks.Add(_obj137Rep.AsQueryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).CountAsync()); - break; + var data = db.CopyNew().Queryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).Count(); + if (data>0) + { + verification = "存在"; + } } - if (tasks.Count > 0) + + if (objId == 109) { - var result = await Task.WhenAll(tasks); - verification = result.Any(count => count > 0) ? "存在" : "不存在"; + var data = db.CopyNew().Queryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).Count(); + if (data > 0) + { + verification = "存在"; + } } + if (objId == 112) + { + var data = db.CopyNew().Queryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).Count(); + if (data > 0) + { + verification = "存在"; + } + } + + if (objId == 133) + { + var data = db.CopyNew().Queryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).Count(); + if (data > 0) + { + verification = "存在"; + } + } + + if (objId == 137) + { + var data = db.CopyNew().Queryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid && x._system_objConfigurationName == "默认").Count(); + if (data > 0) + { + verification = "存在"; + } + } + + if (objId == 122) + { + var data = db.CopyNew().Queryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).Count(); + if (data > 0) + { + verification = "存在"; + } + } + + //var tasks = new List>(); + //switch (objId) + //{ + // case 110: + // tasks.Add(_obj110Rep.AsQueryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).CountAsync()); + // break; + // case 109: + // tasks.Add(_obj109Rep.AsQueryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).CountAsync()); + // break; + // case 112: + // tasks.Add(_obj112Rep.AsQueryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).CountAsync()); + // break; + // case 133: + // tasks.Add(_obj133Rep.AsQueryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).CountAsync()); + // break; + // case 122: + // tasks.Add(_obj122Rep.AsQueryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).CountAsync()); + // break; + // case 137: + // tasks.Add(_obj137Rep.AsQueryable().Where(x => x._System_objNBS == materialCode && x.deleted == false && x.RecordGuid == recordGuid).CountAsync()); + // break; + //} + //if (tasks.Count > 0) + //{ + // var result = await Task.WhenAll(tasks); + // verification = result.Any(count => count > 0) ? "存在" : "不存在"; + //} + return verification; } @@ -107,10 +171,13 @@ public class DataValidationService : IDynamicApiController, ITransient /// public async Task> ChangeModuleMaterial(long idRecord) { + using var serviceScope = _scopeFactory.CreateScope(); + var db = serviceScope.ServiceProvider.GetRequiredService().AsTenant().GetConnectionScope("启威星 1.94.4.74").CopyNew(); + var encodingList = new List(); // 获取符合条件的检查列表项 - var checkList = await _objectTypeCheckListRep.AsQueryable() + var checkList = await db.CopyNew().Queryable() .Where(x => x.ParentIdRecord == idRecord && (x.ColumnId == 4638 || x.ColumnId == 6002)) .ToListAsync(); @@ -125,33 +192,33 @@ public class DataValidationService : IDynamicApiController, ITransient switch (objectId) { case 110: - data = await _obj110Rep.AsQueryable() - .Where(x => x.RecordGuid == recordGuid && x.deleted == false) + data = await db.CopyNew().Queryable() + .Where(x => x.RecordGuid == recordGuid && x.deleted == false).OrderByDescending(x=>x.idRecord) .FirstAsync(); break; case 109: - data = await _obj109Rep.AsQueryable() - .Where(x => x.RecordGuid == recordGuid && x.deleted == false) + data = await db.CopyNew().Queryable() + .Where(x => x.RecordGuid == recordGuid && x.deleted == false).OrderByDescending(x => x.idRecord) .FirstAsync(); break; case 112: - data = await _obj112Rep.AsQueryable() - .Where(x => x.RecordGuid == recordGuid && x.deleted == false) + data = await db.CopyNew().Queryable() + .Where(x => x.RecordGuid == recordGuid && x.deleted == false).OrderByDescending(x => x.idRecord) .FirstAsync(); break; case 133: - data = await _obj133Rep.AsQueryable() - .Where(x => x.RecordGuid == recordGuid && x.deleted == false) + data = await db.CopyNew().Queryable() + .Where(x => x.RecordGuid == recordGuid && x.deleted == false).OrderByDescending(x => x.idRecord) .FirstAsync(); break; case 122: - data = await _obj122Rep.AsQueryable() - .Where(x => x.RecordGuid == recordGuid && x.deleted == false) + data = await db.CopyNew().Queryable() + .Where(x => x.RecordGuid == recordGuid && x.deleted == false).OrderByDescending(x => x.idRecord) .FirstAsync(); break; case 137: - data = await _obj137Rep.AsQueryable() - .Where(x => x.RecordGuid == recordGuid && x.deleted == false) + data = await db.CopyNew().Queryable() + .Where(x => x.RecordGuid == recordGuid && x.deleted == false).OrderByDescending(x => x.idRecord) .FirstAsync(); break; default: @@ -177,15 +244,17 @@ public class DataValidationService : IDynamicApiController, ITransient /// public async Task GetUnit(long objid, string ChildGuid) { + using var serviceScope = _scopeFactory.CreateScope(); + var db = serviceScope.ServiceProvider.GetRequiredService().AsTenant().GetConnectionScope("启威星 1.94.4.74").CopyNew(); var unit = ""; if (objid == 137) { - var data = await _obj137Rep.AsQueryable().Where(x => x.RecordGuid == ChildGuid && x.deleted == false).OrderByDescending(x => x.VersionIndex).FirstAsync(); + var data = await db.CopyNew().Queryable().Where(x => x.RecordGuid == ChildGuid && x.deleted == false).OrderByDescending(x => x.VersionIndex).FirstAsync(); unit = data._SWPDM_126_SW___; } if (objid == 112) { - var data = await _obj112Rep.AsQueryable().Where(x => x.RecordGuid == ChildGuid && x.deleted == false).OrderByDescending(x => x.VersionIndex).FirstAsync(); + var data = await db.CopyNew().Queryable().Where(x => x.RecordGuid == ChildGuid && x.deleted == false).OrderByDescending(x => x.VersionIndex).FirstAsync(); unit = data.fld004594; } return unit; @@ -245,11 +314,14 @@ public class DataValidationService : IDynamicApiController, ITransient /// public async Task GetLineNumber(long objId, string recordGuid, int versionIndex, int configId) { + using var serviceScope = _scopeFactory.CreateScope(); + var db = serviceScope.ServiceProvider.GetRequiredService().AsTenant().GetConnectionScope("启威星 1.94.4.74").CopyNew(); + int lineNumber = 0; if (objId == 118) { - lineNumber = await _configurationDataRep.AsQueryable().Where(x => x.ParentGuid == recordGuid && x.isDeleted == false && x.ParentVersion == versionIndex && x.ConfigId == configId && x.isSuppressed == false && x.inContext == false).CountAsync(); + lineNumber = await db.CopyNew().Queryable().Where(x => x.ParentGuid == recordGuid && x.isDeleted == false && x.ParentVersion == versionIndex && x.ConfigId == configId && x.isSuppressed == false && x.inContext == false).CountAsync(); } return lineNumber; @@ -281,12 +353,15 @@ public class DataValidationService : IDynamicApiController, ITransient /// public async Task ComparativeVersion(long objId, string recordGuid, int newVersion, int olderVersion) { + using var serviceScope = _scopeFactory.CreateScope(); + var db = serviceScope.ServiceProvider.GetRequiredService().AsTenant().GetConnectionScope("启威星 1.94.4.74").CopyNew(); + string contrastResult = ""; if (objId == 137) { - var contrastNewData = await _obj137Rep.AsQueryable().Where(x => x.RecordGuid == recordGuid && x.deleted == false && x.VersionIndex == newVersion).FirstAsync(); - var contrastOlderData = await _obj137Rep.AsQueryable().Where(x => x.RecordGuid == recordGuid && x.deleted == false && x.VersionIndex == olderVersion).FirstAsync(); + var contrastNewData = await db.CopyNew().Queryable().Where(x => x.RecordGuid == recordGuid && x.deleted == false && x.VersionIndex == newVersion).FirstAsync(); + var contrastOlderData = await db.CopyNew().Queryable().Where(x => x.RecordGuid == recordGuid && x.deleted == false && x.VersionIndex == olderVersion).FirstAsync(); if (contrastNewData.revision != contrastOlderData.revision) { contrastResult = "是"; @@ -399,19 +474,6 @@ public class DataValidationService : IDynamicApiController, ITransient return "修改成功"; } - [AllowAnonymous] - public async Task cscscs1() - { - await Task.Delay(20000); - return "测试1执行时间" + DateTime.Now.ToString("HH:dd:ss"); - } - - [AllowAnonymous] - public async Task cscscs2() - { - await Task.Delay(20000); - return "测试2执行时间" + DateTime.Now.ToString("HH:dd:ss"); - } /// /// SAP wbs状态