From 1bc552c28ba73a3cf2f98c5f61b143f0a89f5881 Mon Sep 17 00:00:00 2001 From: xusc Date: Wed, 8 May 2024 16:56:41 +0800 Subject: [PATCH] .. --- .../IcsServiceOrderAppService.cs | 37 ++++++++ .../导入服务/ImportExportExtAppService.cs | 88 +++++++++++++++---- .../src/YoyoBoot.Web.Host/appsettings.json | 3 +- 3 files changed, 110 insertions(+), 18 deletions(-) diff --git a/src/aspnet-core/ICS.Application/Business/Service/IcsServiceOrder/IcsServiceOrderAppService.cs b/src/aspnet-core/ICS.Application/Business/Service/IcsServiceOrder/IcsServiceOrderAppService.cs index 8c7126b..432789f 100644 --- a/src/aspnet-core/ICS.Application/Business/Service/IcsServiceOrder/IcsServiceOrderAppService.cs +++ b/src/aspnet-core/ICS.Application/Business/Service/IcsServiceOrder/IcsServiceOrderAppService.cs @@ -31,6 +31,10 @@ using ICS.Common.Helpers; using Abp.Domain.Entities; using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; using Humanizer; +using Abp.Notifications; +using Yoyo.Pro.Users; +using Microsoft.Extensions.DependencyInjection; +using Abp; namespace ICS.Application.Business.Service { /// @@ -57,6 +61,8 @@ namespace ICS.Application.Business.Service private readonly IRepository _sysLabelRuleRepository; private readonly IRepository _enumValueRepository; private readonly IRepository _enumKeyValueListRepository; + protected readonly IRepository _userRepository; + private readonly INotificationPublisher _notiticationPublisher; /// /// 构造函数 /// @@ -75,6 +81,8 @@ namespace ICS.Application.Business.Service , IRepository productRepository , IRepository systemFiledRepository , IRepository systemModuleRepository + , INotificationPublisher notiticationPublisher + , IServiceProvider serviceProvider , IRepository repository) { _icsServiceOrderManager = icsServiceOrderManager; @@ -93,6 +101,8 @@ namespace ICS.Application.Business.Service _productRepository = productRepository; _systemFiledRepository = systemFiledRepository; _systemModuleRepository = systemModuleRepository; + _notiticationPublisher = notiticationPublisher; + _userRepository = serviceProvider.GetRequiredService>(); } [AbpAuthorize(IcsServiceOrderPermissions.IcsServiceOrder_Query)] @@ -899,6 +909,23 @@ namespace ICS.Application.Business.Service entity.Status = ServiceOrderOperateEnum.HasAccept.ToString(); await _repository.UpdateAsync(entity); + + //var conId = _userRepository.GetAll().AsNoTracking().FirstOrDefault(x => x.Surname + x.Name == input.Parameter3); + //if(conId == null) + //{ + // throw new UserFriendlyException(L("NoExistsCurrentCode", "服务单受理人不存在")); + //} + + //var msg = new MessageNotificationData(log.LogContent); + + //await _notiticationPublisher.PublishAsync( + // "SentFrendshipRequest", + // msg, + // null, + // NotificationSeverity.Info, + // //new Abp.UserIdentifier[] { new UserIdentifier("7d3b344cafdfad5d6cf23a0b35da4784", conId.Id) }, + // null, + // null, null, null); } @@ -1398,6 +1425,16 @@ namespace ICS.Application.Business.Service entity.Status = ServiceOrderOperateEnum.Answer.ToString(); await _repository.UpdateAsync(entity); + + //var msg = new MessageNotificationData(log.LogContent); + + //await _notiticationPublisher.PublishAsync( + // "SentFrendshipRequest", + // msg, + // null, + // NotificationSeverity.Info, + // new Abp.UserIdentifier[] { new Abp.UserIdentifier(AbpSession.TenantId, "a3e442823d35c2c4c9713a0fe45242dc") }, + // null, null, null); } /// diff --git a/src/aspnet-core/ICS.Application/Business/Service/导入服务/ImportExportExtAppService.cs b/src/aspnet-core/ICS.Application/Business/Service/导入服务/ImportExportExtAppService.cs index ad73638..1cf647c 100644 --- a/src/aspnet-core/ICS.Application/Business/Service/导入服务/ImportExportExtAppService.cs +++ b/src/aspnet-core/ICS.Application/Business/Service/导入服务/ImportExportExtAppService.cs @@ -74,12 +74,17 @@ namespace ICS.Application.Business.Service /// /// 自定义档案 /// - + private readonly IRepository _productRepository; + private readonly IRepository _product2FiledRepository; + private readonly IRepository _systemFiledRepository; + private readonly IRepository _filed2ModuleRepository; + private readonly IRepository _systemModuleRepository; /// /// 服务三导入 /// private readonly IRepository _customerRepository; + private readonly IRepository _customer2Product2FiledRepository; private readonly IRepository _serviceOrderRepository; private readonly IRepository _serviceOrder4LogRepository; private readonly IcsImportManager _serviceOrderImportManager; @@ -102,6 +107,12 @@ namespace ICS.Application.Business.Service , IcsImportManager serviceOrderImportManager , IRepository sysEnumValueRepository ,IRepository sysLabelRuleRepository + , IRepository productRepository + , IRepository systemFiledRepository + , IRepository systemModuleRepository + , IRepository product2FiledRepository + , IRepository filed2ModuleRepository + , IRepository customer2Product2FiledRepository ) { @@ -121,6 +132,12 @@ namespace ICS.Application.Business.Service _serviceOrderImportManager = serviceOrderImportManager; _sysLabelRuleRepository = sysLabelRuleRepository; _customerRepository = customerRepository; + _productRepository = productRepository; + _systemFiledRepository = systemFiledRepository; + _systemModuleRepository = systemModuleRepository; + _product2FiledRepository = product2FiledRepository; + _filed2ModuleRepository = filed2ModuleRepository; + _customer2Product2FiledRepository = customer2Product2FiledRepository; } public async Task DownloadTemplate(string templateName) @@ -299,24 +316,51 @@ namespace ICS.Application.Business.Service entity = ObjectMapper.Map(item); //调用领域服务 //产品类型 - var businessSystem = enumValueList.Where(x=>x.EnumKey== "BusinessSystem" && x.EnumText== item.BusinessSystem).FirstOrDefault()?.EnumValue; - if (string.IsNullOrEmpty(businessSystem)) + var businessSystem = _productRepository.GetAll().AsNoTracking().FirstOrDefault(x=>x.ProductName==item.BusinessSystem); + if (businessSystem==null) { - error += L("TheLine", i + 1, "业务系统不存在"); + error += L("TheLine", i + 1, "产品不存在"); + continue; } - var serviceField = enumValueList.Where(x => x.EnumKey == "ServiceField" && x.EnumText == item.ServiceField).FirstOrDefault()?.EnumValue; - if (string.IsNullOrEmpty(serviceField)) + var serviceField = _systemFiledRepository.GetAll().AsNoTracking().FirstOrDefault(x => x.FiledName == item.ServiceField); + if (serviceField==null) { - error += L("TheLine", i + 1, "领域在自定义档案中不存在"); + error += L("TheLine", i + 1, "领域不存在"); + continue; } + + var customer2Product= _customer2Product2FiledRepository.Count(x => x.CusCode == entity.CustomerCode&&x.ProductCode== businessSystem.ProductCode); + if (customer2Product ==0) + { + error += L("TheLine", i + 1, "客户产品关系不存在"); + continue; + } + + var product2Filed = _product2FiledRepository.Count(x => x.ProductCode == businessSystem.ProductCode && x.FiledCode == serviceField.FiledCode); + if (product2Filed == 0) + { + error += L("TheLine", i + 1, "产品领域关系不存在"); + continue; + } + if (!item.ServiceModule.IsNullOrEmpty()) { - var serviceModule = enumValueList.Where(x => x.EnumKey == "ServiceModule" && x.EnumText == item.ServiceModule).FirstOrDefault()?.EnumValue; - if (string.IsNullOrEmpty(serviceModule)) + var serviceModule = _systemModuleRepository.GetAll().AsNoTracking().FirstOrDefault(x => x.ModuleName == item.ServiceModule); + if (serviceModule==null) { - error += L("TheLine", i + 1, "模块在自定义档案中不存在"); + error += L("TheLine", i + 1, "模块不存在"); + continue; + } + entity.ServiceModule = serviceModule.ModuleCode; + + + var filed2Module= _filed2ModuleRepository.Count(x => x.FiledCode == serviceField.FiledCode&&x.ModuleCode== serviceModule.ModuleCode); + + if (filed2Module == 0) + { + error += L("TheLine", i + 1, "领域模块关系不存在"); + continue; } - entity.ServiceModule = serviceModule; } if (!item.EventClass.IsNullOrEmpty()) { @@ -324,6 +368,7 @@ namespace ICS.Application.Business.Service if (string.IsNullOrEmpty(patra3)) { error += L("TheLine", i + 1, "事件分类在自定义档案中不存在"); + continue; } entity.EventClass = patra3; } @@ -333,6 +378,7 @@ namespace ICS.Application.Business.Service if (string.IsNullOrEmpty(patra4)) { error += L("TheLine", i + 1, "紧急度在自定义档案中不存在"); + continue; } entity.Urgency = patra4; } @@ -340,12 +386,16 @@ namespace ICS.Application.Business.Service if (cus == null) { error += L("TheLine", i + 1, "客户档案不存在"); + continue; + } + var existUser = _userRepository.Count(x => x.Surname + x.Name == entity.ContactPerson)>0; + if (!existUser) + { + error += L("TheLine", i + 1, "人员不存在"); + continue; } - entity.BusinessSystem = businessSystem; - entity.ServiceField = serviceField; - - entity.BusinessSystem = businessSystem; - entity.BusinessSystem = businessSystem; + entity.BusinessSystem = businessSystem.ProductCode; + entity.ServiceField = serviceField.FiledCode; entity.CustomerName = cus.CusName; entity.Status = ServiceOrderOperateEnum.HasVerified.ToString(); entity.ServiceOrderCode = await _extensionService.QuerySerialCode(labelRuleInput); @@ -356,7 +406,11 @@ namespace ICS.Application.Business.Service entity.CreatorUserName = AbpSession.GetUserName(); entity.CreationTime = dtNow; insertDara.Add(entity); - + if (entity.ServiceOrderCode.IsNullOrEmpty()) + { + error += L("TheLine", i + 1, "服务单编号生成失败"); + continue; + } #region 操作日志 IcsServiceOrder4Log log = new IcsServiceOrder4Log(); diff --git a/src/aspnet-core/src/YoyoBoot.Web.Host/appsettings.json b/src/aspnet-core/src/YoyoBoot.Web.Host/appsettings.json index 1addf1d..4fcc17f 100644 --- a/src/aspnet-core/src/YoyoBoot.Web.Host/appsettings.json +++ b/src/aspnet-core/src/YoyoBoot.Web.Host/appsettings.json @@ -1,6 +1,7 @@ { "ConnectionStrings": { - "Default": "server=192.168.1.155; Database=IcsAbp4ServiceCenter; User ID=sa; Password=aA123456;MultipleActiveResultSets=True" + //"Default": "server=192.168.1.155; Database=IcsAbp4ServiceCenter; User ID=sa; Password=aA123456;MultipleActiveResultSets=True" + "Default": "server=119.3.29.177; Database=IcsAbp4ServiceCenter; User ID=sa; Password=EYuX1bqSi^fIBWDX;MultipleActiveResultSets=True" }, "App": { "AdminServerRootAddress": "http://localhost:6298/",