From 6a87fe26065a6fd7a6df66299b13728fa542af73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A6=20=E8=B5=B5?= <89237069@qq.com> Date: Fri, 29 Nov 2024 10:00:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Dy_ExchangeApplicationModule.cs | 7 +- .../DataExchangeInterfaceConfigAppService.cs | 30 ++++-- .../DataExchangeInterfaceOptions.cs | 24 +++++ .../Dy_ExchangeHttpApiHostModule.cs | 2 + .../Dy_Exchange.HttpApi.Host/appsettings.json | 60 +++++++----- .../Jobs/IssueJobs/AgvJobs/DTOS/AgvDto.cs | 14 +++ ...putService.cs => IAgvJobAccountService.cs} | 4 +- .../IssueJobs/AgvJobs/AgvJobAccountService.cs | 98 +++++++++++++++++++ .../IssueJobs/AgvJobs/AgvJobInputService.cs | 29 ------ .../AssembleIssueJobAppService.cs | 13 ++- .../KittingIssueJobAppService.cs | 1 + .../SparePartIssueJobAppService.cs | 3 +- .../settings/appsettings.Development.json | 40 +++++--- 13 files changed, 241 insertions(+), 84 deletions(-) create mode 100644 InterFaceContorl/Dy_Exchange/src/Dy_Exchange.Application/Z_Business/DataExchangeInterfaceOptions.cs rename be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/{IAgvJobInputService.cs => IAgvJobAccountService.cs} (62%) create mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobAccountService.cs delete mode 100644 be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobInputService.cs diff --git a/InterFaceContorl/Dy_Exchange/src/Dy_Exchange.Application/Dy_ExchangeApplicationModule.cs b/InterFaceContorl/Dy_Exchange/src/Dy_Exchange.Application/Dy_ExchangeApplicationModule.cs index c61073b2e..13e9e1e7b 100644 --- a/InterFaceContorl/Dy_Exchange/src/Dy_Exchange.Application/Dy_ExchangeApplicationModule.cs +++ b/InterFaceContorl/Dy_Exchange/src/Dy_Exchange.Application/Dy_ExchangeApplicationModule.cs @@ -1,4 +1,6 @@ -锘縰sing Volo.Abp.Account; +锘縰sing Dy_Exchange.Z_Business; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Account; using Volo.Abp.AutoMapper; using Volo.Abp.FeatureManagement; using Volo.Abp.Identity; @@ -23,9 +25,12 @@ public class Dy_ExchangeApplicationModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { + var configuration = context.Services.GetConfiguration(); Configure(options => { options.AddMaps(); }); + Configure(configuration.GetSection("DataExchangeInterfaceOptions")); + } } diff --git a/InterFaceContorl/Dy_Exchange/src/Dy_Exchange.Application/Z_Business/DataExchangeInterfaceConfigAppService.cs b/InterFaceContorl/Dy_Exchange/src/Dy_Exchange.Application/Z_Business/DataExchangeInterfaceConfigAppService.cs index 5f50aad79..ea9fd6197 100644 --- a/InterFaceContorl/Dy_Exchange/src/Dy_Exchange.Application/Z_Business/DataExchangeInterfaceConfigAppService.cs +++ b/InterFaceContorl/Dy_Exchange/src/Dy_Exchange.Application/Z_Business/DataExchangeInterfaceConfigAppService.cs @@ -6,6 +6,7 @@ using System.Net.Http; using System.Net.NetworkInformation; using System.Security.Policy; using System.Text; +using System.Text.Json; using System.Threading; using System.Threading.Tasks; using Dy_Exchange.Enums; @@ -13,6 +14,8 @@ using Dy_Exchange.Permissions; using Dy_Exchange.Z_Business.Dtos; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Microsoft.Extensions.Options; +using NPOI.SS.Formula.Functions; using Volo.Abp; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; @@ -33,6 +36,7 @@ public class DataExchangeInterfaceConfigAppService : ZbxBase _options; + - public DataExchangeInterfaceConfigAppService(IDataExchangeInterfaceConfigRepository repository) : base(repository) + public DataExchangeInterfaceConfigAppService(IDataExchangeInterfaceConfigRepository repository, IOptions options) : base(repository) { _repository = repository; + _options = options; + + + + } [HttpPost("CheckWmsStatusAsync")] @@ -55,6 +66,7 @@ public class DataExchangeInterfaceConfigAppService : ZbxBase CloseWmsAsync() { var list=await _repository.GetListAsync().ConfigureAwait(false); - var removeWmsCodeList=list.Where(p => p.Code != wmsCode).ToList(); + var removeWmsCodeList=list.Where(p => p.Code != _options.Value.WmsCode).ToList(); if (removeWmsCodeList.Any(p => p.Status == EnumStatus.Running||p.Active==true)) { throw new UserFriendlyException($"有未关闭的接口程序{removeWmsCodeList.First().Code}无法关闭WMS"); @@ -131,15 +143,15 @@ public class DataExchangeInterfaceConfigAppService : ZbxBase p.Code == wmsCode).ConfigureAwait(false); + var wmsConfig=await _repository.FindAsync(p => p.Code == _options.Value.WmsCode).ConfigureAwait(false); if (wmsConfig == null) { throw new UserFriendlyException("未找到WMS配置项目"); } - var stop1= ExecuteBatFile(cmdClosePath1); + var stop1= ExecuteBatFile(_options.Value.CmdClosePath1); Thread.Sleep(2000); // 休眠2秒 - var stop2 = ExecuteBatFile(cmdClosePath2); + var stop2 = ExecuteBatFile(_options.Value.CmdClosePath2); return true; } @@ -157,9 +169,9 @@ public class DataExchangeInterfaceConfigAppService : ZbxBase UpdateAsync(Guid id, CreateUpdateDataExchangeInterfaceConfigDto input) { - if (input.Code != wmsCode&&input.Active==true) + if (input.Code != _options.Value.WmsCode&&input.Active==true) { - bool isPageLoaded = await IsPageLoadedSuccessfullyAsync(wmsUrl).ConfigureAwait(false); + bool isPageLoaded = await IsPageLoadedSuccessfullyAsync(_options.Value.WmsUrl).ConfigureAwait(false); if (!isPageLoaded) { throw new UserFriendlyException("WMS未启动成功,请稍后再启动接口"); @@ -167,12 +179,12 @@ public class DataExchangeInterfaceConfigAppService : ZbxBase Data { set; get; } } +/// +/// 娴峰悍璋冮椈鑽叆鍙傛暟 +/// +public class AgvRequestOnlyJobHK +{ + //[Display(Name = "璇锋眰缂栧彿")] + //public string ReqCode { set; get; } + [Display(Name = "鏄庣粏")] + public List Data { set; get; } + +} + + + /// /// 娴峰悍璋冮椈鑽叆鍙傛槑缁 /// diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobInputService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobAccountService.cs similarity index 62% rename from be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobInputService.cs rename to be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobAccountService.cs index 031cecda6..f1bbb2ead 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobInputService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Jobs/IssueJobs/AgvJobs/IAgvJobAccountService.cs @@ -7,10 +7,10 @@ using Volo.Abp; using Volo.Abp.Application.Services; namespace Win_in.Sfs.Wms.Store.Application.Contracts; -public interface AgvJobOutputService: IApplicationService +public interface IAgvJobAccountService: IApplicationService { - Task OutTaskAsync(AgvRequest request); + Task AccountOutOrderAsync(AgvRequestOnlyJobHK request); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobAccountService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobAccountService.cs new file mode 100644 index 000000000..6b91fc539 --- /dev/null +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobAccountService.cs @@ -0,0 +1,98 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp; +using Volo.Abp.Application.Services; +using Volo.Abp.Uow; +using Volo.Abp.Users; +using Win_in.Sfs.Basedata.Application.Contracts; +using Win_in.Sfs.Basedata.Domain; +using Win_in.Sfs.Basedata.Domain.Shared; +using Win_in.Sfs.Shared.Domain.Shared; +using Win_in.Sfs.Wms.Inventory.Application.Contracts; +using Win_in.Sfs.Wms.Store.Application.Contracts; +using Win_in.Sfs.Wms.Store.Domain.Shared; + +namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.AgvServices; + + +[AllowAnonymous] +[Route($"{StoreConsts.RootPath}agv-job-Account")] +public class AgvJobAccountService : ApplicationService, IAgvJobAccountService +{ + private IAssembleIssueJobAppService _assembleIssueJobAppService; + private ICoatingIssueJobAppService _coatingIssueJobAppService; + private IInjectionIssueJobAppService _injectionIssueJobAppService; + private IKittingIssueJobAppService _kittingIssueJobAppService; + private ISparePartIssueJobAppService _sparePartIssueJobAppService; + + public AgvJobAccountService( + + IAssembleIssueJobAppService assembleIssueJobAppService, + ICoatingIssueJobAppService coatingIssueJobAppService, + IInjectionIssueJobAppService injectionIssueJobAppService, + IKittingIssueJobAppService kittingIssueJobAppService, + ISparePartIssueJobAppService sparePartIssueJobAppService + + ) + { + _assembleIssueJobAppService = assembleIssueJobAppService; + _coatingIssueJobAppService= coatingIssueJobAppService; + _injectionIssueJobAppService= injectionIssueJobAppService; + _kittingIssueJobAppService = kittingIssueJobAppService; + _sparePartIssueJobAppService= sparePartIssueJobAppService; + } + + public async Task AccountOutOrderAsync(AgvRequestOnlyJobHK request) + { + var res=new AgvResultObject(); + res.Code = "0"; + + foreach (var itm in request.Data) + { + switch (itm.OrderType) + { + case "1": + + var assemblejob= new AssembleIssueJobDTO(); + + foreach (var detail in request.Data) + { + + } + + + + + var assemb=await _assembleIssueJobAppService.GetByNumberAsync(itm.OrderNum).ConfigureAwait(false); + await _assembleIssueJobAppService.CompleteAsync(assemb.Id).ConfigureAwait(false); + res.ReqCode = assemb.AssembleRequestNumber; + res.Message = "OK"; + break; + case "2": + var coating = await _coatingIssueJobAppService.GetByNumberAsync(itm.OrderNum).ConfigureAwait(false); + await _coatingIssueJobAppService.CompleteAsync(coating.Id).ConfigureAwait(false); + break; + case "3": + var injection = await _injectionIssueJobAppService.GetByNumberAsync(itm.OrderNum).ConfigureAwait(false); + await _injectionIssueJobAppService.CompleteAsync(injection.Id).ConfigureAwait(false); + break; + case "4": + var kitting = await _kittingIssueJobAppService.GetByNumberAsync(itm.OrderNum).ConfigureAwait(false); + await _kittingIssueJobAppService.CompleteAsync(kitting.Id).ConfigureAwait(false); + + break; + case "5": + var sparePart = await _sparePartIssueJobAppService.GetByNumberAsync(itm.OrderNum).ConfigureAwait(false); + await _sparePartIssueJobAppService.CompleteAsync(sparePart.Id).ConfigureAwait(false); + break; + + } + } + + } +} diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobInputService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobInputService.cs deleted file mode 100644 index f8bb5cba1..000000000 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AgvJobs/AgvJobInputService.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc; -using Volo.Abp; -using Volo.Abp.Application.Services; -using Volo.Abp.Uow; -using Volo.Abp.Users; -using Win_in.Sfs.Basedata.Application.Contracts; -using Win_in.Sfs.Basedata.Domain; -using Win_in.Sfs.Basedata.Domain.Shared; -using Win_in.Sfs.Shared.Domain.Shared; -using Win_in.Sfs.Wms.Inventory.Application.Contracts; -using Win_in.Sfs.Wms.Store.Application.Contracts; -using Win_in.Sfs.Wms.Store.Domain.Shared; - -namespace Win_in.Sfs.Wms.Store.Jobs.IssueJobs.AgvServices; - - -[AllowAnonymous] -[Route($"{StoreConsts.RootPath}agv-job-out")] -public class AgvJobInputService:ApplicationService -{ - - -} diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs index 7f687ac22..0a6e7c99a 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/AssembleIssueJobs/AssembleIssueJobAppService.cs @@ -911,19 +911,22 @@ public class AssembleIssueJobAppService assembleIssueJobDetailDto.Status, assembleIssueJobDetailDto.HandledToLot, handledToQty).ConfigureAwait(false); } + + + /// - /// 璋冪敤AGV + /// 璋冪敤AgvOutPut鍑哄簱 /// /// /// - private async Task Completed(AssembleIssueJobDTO job) + private async Task InvokeAgvOutput(AssembleIssueJobDTO job) { - var assemble = job; - var first = assemble.Details.FirstOrDefault(); + + var first = job.Details.FirstOrDefault(); var requst = new AgvRequest(); requst.MatCode = first.ItemCode; requst.MatQty = first.HandledToQty; - requst.OrderNum = assemble.Number; + requst.OrderNum = job.Number; requst.OrderType = "2"; return await _agvOutJob.OutPutTaskAsync(requst).ConfigureAwait(false); } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs index 4548f5593..a0b973a8e 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/KittingIssueJobs/KittingIssueJobAppService.cs @@ -66,6 +66,7 @@ public class KittingIssueJobAppService _options = options; _transferLibRequestAppService = transferLibRequestAppService; _currentUser = currentUser; + _agvOutJob = agvOutJob; } [HttpPost("get-by-number-2")] diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs index 3d5273c3a..36339dbc1 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Jobs/IssueJobs/SparePartIssueJobs/SparePartIssueJobAppService.cs @@ -49,7 +49,7 @@ public class SparePartIssueJobAppService LazyServiceProvider.LazyGetRequiredService(); public SparePartIssueJobAppService( - IAgvJobOutputService _agvOutJob, + IAgvJobOutputService agvOutJob, ISparePartIssueJobRepository repository, ISparePartIssueJobManager sparePartIssueJobManager, ILocationAppService locationAppService, ISparePartIssueNoteAppService sparePartIssueNoteAppService, IExpectOutAppService expectOutAppService @@ -65,6 +65,7 @@ public class SparePartIssueJobAppService _options = options; _transferLibRequestAppService = transferLibRequestAppService; _currentUser = currentUser; + _agvOutJob = agvOutJob; } [HttpPost("get-by-number-2")] diff --git a/build/src/docker/publish/conf/settings/appsettings.Development.json b/build/src/docker/publish/conf/settings/appsettings.Development.json index c4eba03a8..a2081799d 100644 --- a/build/src/docker/publish/conf/settings/appsettings.Development.json +++ b/build/src/docker/publish/conf/settings/appsettings.Development.json @@ -1,18 +1,32 @@ { "AlwaysAllowAuthorization": "true", - "RestoOptions": - { + "RestoOptions": { + + "Address": "http://7e42682n64.goho.co:21171/", + // 鐢ㄦ埛鍚 + "UserName": "", + // 瀵嗙爜 + "Password": "", + // 浠ょ墝 + "Token": "", + "Path": "zozocnApi/custom/receiveProductionPlan" + + }, + + "AgvOptions": { + + "Address": "http://dev.ccwin-in.com:60084/", + // 鐢ㄦ埛鍚 + "UserName": "", + // 瀵嗙爜 + "Password": "", + // 浠ょ墝 + "Token": "", + "Path": "Cargostate/pushOutTask4FW" + + }, -"Address" :"http://7e42682n64.goho.co:21171/", - // 鐢ㄦ埛鍚 -"UserName" :"", - // 瀵嗙爜 -"Password" :"", - // 浠ょ墝 -"Token" :"", -"Path" :"zozocnApi/custom/receiveProductionPlan" -}, @@ -151,11 +165,11 @@ "BaseUrl": "http://localhost:59095/" }, "Label": { - "BaseUrl": "http://dev.ccwin-in.com:60082/" + "BaseUrl": "http://dev.ccwin-in.com:60082/" //"BaseUrl": "http://localhost:59092/" }, "Message": { - "BaseUrl": "http://dev.ccwin-in.com:60082/" + "BaseUrl": "http://dev.ccwin-in.com:60082/" //"BaseUrl": "http://localhost:59092/" }, "Store": {