From 932e7a91d0211793b97f25468719cb8881bbca52 Mon Sep 17 00:00:00 2001 From: zhaoxinyu <89237069@qq.com> Date: Wed, 17 Apr 2024 10:35:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Incoming/InjectionMoldingRequestReader.cs | 73 +++++++++---------- .../InjectionMoldingTaskAgentModule.cs | 1 + ...ge.Fawtyg.InjectionMoldingTaskAgent.csproj | 1 + .../appsettings.json | 6 +- .../IInjectionRequestAppService.cs | 4 + .../InjectionRequestAppService.cs | 13 ++++ 6 files changed, 60 insertions(+), 38 deletions(-) diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs index 6ae2b1616..10f38a7aa 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Incoming/InjectionMoldingRequestReader.cs @@ -62,34 +62,17 @@ public class InjectionMoldingRequestReader : IReader public virtual async Task> ReadAsync() { + try { - // 创建 SfsStoreRequestInputBase 对象以设定作业条件 - var jobCondition = new SfsStoreRequestInputBase(); - Filter filter = new Filter() - { - Action = "<>", - Column = "RequestStatus", - Logic = EnumFilterLogic.And.ToString(), - Value = (EnumRequestStatus.Completed).ToString() - }; - // 添加筛选条件:请求状态不等于已完成 - jobCondition.Condition.Filters.Add(filter); - filter = new Filter() - { - Action = "==", - Column = "Type", - Logic = EnumFilterLogic.And.ToString(), - Value = "Vision" - }; - // 添加筛选条件:类型为 Vision - jobCondition.Condition.Filters.Add(filter); - // 通过筛选条件获取作业列表 - var jobs = await _injectionRequest.GetAllListByFilterAsync(jobCondition).ConfigureAwait(false); + // 获取注塑叫料任务数量 + var count = await _injectionRequest.GetCountAsync().ConfigureAwait(false); List joblist = new List(); - if (jobs.Count == 0) + if (count == 0) { // 调用 ReaderCameraApi 方法获取摄像头信息 + + string camera = await ReaderCameraApi().ConfigureAwait(false); List cameraList = new List(); @@ -97,23 +80,40 @@ public class InjectionMoldingRequestReader : IReader if (camera == "Error occured") { // 记录错误日志并返回空列表 - _logger.LogError($"没有读取到摄像头信息{DateTime.Now},请检查网络"); + _logger.LogInformation($"没有读取到摄像头信息{DateTime.Now},请检查网络"); return new List(); } - // 将摄像头信息转换为注塑叫料明细任务数据 + //将摄像头信息转换为注塑叫料明细任务数据 cameraList = System.Text.Json.JsonSerializer.Deserialize>(camera); + //测试数据 + //var cameraList = new List() + //{ + // new InjectionRequest() { ItemCode = "THILDD0A542AG", ToLocCode = "ZSXB2", Qty = 100 }, + + // }; + InjectionRequestEditInput input = new InjectionRequestEditInput(); + input.Worker = "Vision"; + input.Type = "Vision"; + input.AutoSubmit = true; + input.ActiveDate = DateTime.Now; + input.UseOnTheWayLocation = false; + input.Remark = "视觉叫料"; List injectionRequestDetails = new List(); - foreach (var job in cameraList) { - var detailInput = new InjectionRequestDetailInput() { + ItemCode = job.ItemCode, ToLocationCode = job.ToLocCode, Qty = job.Qty, + RecommendType = EnumRecommendType.W, + IssuedQty = 0, + ReceivedQty = 0, + Status = EnumStatus.Open, + RequestStatus = EnumRequestStatus.New, }; // 添加注塑叫料明细任务数据 injectionRequestDetails.Add(detailInput); @@ -126,7 +126,7 @@ public class InjectionMoldingRequestReader : IReader // 记录错误日志并返回空列表 foreach (var error in errors) { - _logger.LogError(error); + _logger.LogInformation(error); } return new List(); @@ -134,19 +134,16 @@ public class InjectionMoldingRequestReader : IReader // 创建新的注塑请求并将数据写入数据库 await _injectionRequest.CreateAsync(input).ConfigureAwait(false); } + else + { + _logger.LogInformation("注塑叫料任务已存在,无需读取"); + } } // 捕获特定异常并记录日志 - catch (AbpException ex) - { - _logger.LogError(ex.Message); - } - catch (JsonException ex) - { - _logger.LogError(ex.Message); - } + catch (Exception ex) { - _logger.LogError(ex.Message); + _logger.LogInformation(ex.Message); } // 返回空列表 return new List(); @@ -173,6 +170,7 @@ public class InjectionMoldingRequestReader : IReader request.ItemDesc1 = itm.Desc1; request.ItemDesc2 = itm.Desc2; request.ItemName = itm.Name; + request.Uom = itm.BasicUom; } // 获取对应库位信息 var loc = await _locService.GetByCodeAsync(request.ToLocationCode).ConfigureAwait(false); @@ -184,6 +182,7 @@ public class InjectionMoldingRequestReader : IReader request.ToLocationGroup = loc.LocationGroupCode; request.ToLocationErpCode = loc.ErpLocationCode; request.ToWarehouseCode = loc.WarehouseCode; + request.ToLocationArea = loc.AreaCode; } } // 返回错误列表 diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/InjectionMoldingTaskAgentModule.cs b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/InjectionMoldingTaskAgentModule.cs index 3508f367c..521d28c41 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/InjectionMoldingTaskAgentModule.cs +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/InjectionMoldingTaskAgentModule.cs @@ -36,6 +36,7 @@ namespace Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent; [DependsOn( typeof(StoreApplicationContractsModule), typeof(InventoryApplicationContractsModule), + typeof(BasedataApplicationContractsModule), typeof(LabelApplicationContractsModule), //typeof(DataExchangeDomainModule), //typeof(DataExchangeEntityFrameworkCoreModule), diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.csproj b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.csproj index 12eff23b3..58f34a399 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.csproj +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent.csproj @@ -20,6 +20,7 @@ + diff --git a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/appsettings.json b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/appsettings.json index e04cfaf9b..5445fdc4f 100644 --- a/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/appsettings.json +++ b/be/DataExchange/Fawtyg/Win_in.Sfs.Wms.DataExchange.Fawtyg.InjectionMoldingTaskAgent/appsettings.json @@ -24,7 +24,7 @@ "RemoteServices": { - + "Inventory": { "BaseUrl": "http://localhost:59095/" @@ -40,8 +40,12 @@ }, "Store": { "BaseUrl": "http://localhost:59095/" + }, + "BaseData": { + "BaseUrl": "http://localhost:59094/" } + }, diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/IInjectionRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/IInjectionRequestAppService.cs index ac46f98ef..2d58fcee2 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/IInjectionRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application.Contracts/Requests/MaterialRequests/InjectionRequests/IInjectionRequestAppService.cs @@ -10,4 +10,8 @@ public interface IInjectionRequestAppService { Task CreateAndHandleAsync(InjectionRequestEditInput input); + + Task GetCountAsync(); + + } diff --git a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAppService.cs b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAppService.cs index cbd5ae7b0..5f10efe9d 100644 --- a/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAppService.cs +++ b/be/Modules/Store/src/Win_in.Sfs.Wms.Store.Application/Requests/MaterialRequests/InjectionRequests/InjectionRequestAppService.cs @@ -19,6 +19,7 @@ using Win_in.Sfs.Basedata.Application; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Shared.Domain; using Win_in.Sfs.Shared.Domain.Shared; +using Win_in.Sfs.Shared.Domain.Shared.Enums.Store; using Win_in.Sfs.Shared.Event; using Win_in.Sfs.Wms.Store.Application.Contracts; using Win_in.Sfs.Wms.Store.Domain; @@ -304,5 +305,17 @@ public class InjectionRequestAppService : SfsStoreRequestAppServiceBase + /// 获取已完成的叫料单数量 + /// + /// + [HttpGet("get-completed-injection-request-count")] + public async Task GetCountAsync() + { + //枚举类型查不到改成SQL查询 + var query = _repository.GetDbSet().FromSqlRaw(" select * from Store_InjectionRequest where Type='Vision' and RequestStatus<>'Completed'"); + return await query.CountAsync().ConfigureAwait(false); + } + #endregion }