From 17e5dbd7bd0364e27a33f1a7dab91cf33d5dcabc Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期三, 04 三月 2026 11:52:12 +0800
Subject: [PATCH] 增强Redis缓存服务与设备通信优化
---
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs | 52 +++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 45 insertions(+), 7 deletions(-)
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs
index cb2da11..729e360 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineNewJob/CommonConveyorLineNewJob.cs
@@ -18,10 +18,15 @@
#endregion << 鐗� 鏈� 娉� 閲� >>
using AutoMapper;
+using Microsoft.Extensions.Configuration;
using Quartz;
+using SqlSugar;
+using System.Text.Json;
+using WIDESEA_Core;
using WIDESEAWCS_Common.TaskEnum;
using WIDESEAWCS_Core;
using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_DTO.TaskInfo;
using WIDESEAWCS_ITaskInfoService;
using WIDESEAWCS_Model.Models;
using WIDESEAWCS_QuartzJob;
@@ -36,15 +41,17 @@
private readonly ITaskExecuteDetailService _taskExecuteDetailService;
private readonly IRouterService _routerService;
private readonly IMapper _mapper;
- ConveyorLineDispatchHandler _conveyorLineDispatch;
+ private ConveyorLineDispatchHandler _conveyorLineDispatch;
+ private readonly HttpClientHelper _httpClientHelper;
- public CommonConveyorLineNewJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper)
+ public CommonConveyorLineNewJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, HttpClientHelper httpClientHelper)
{
_taskService = taskService;
_taskExecuteDetailService = taskExecuteDetailService;
_routerService = routerService;
_mapper = mapper;
_conveyorLineDispatch = new ConveyorLineDispatchHandler(_taskService, _taskExecuteDetailService, _routerService, _mapper);
+ _httpClientHelper = httpClientHelper;
}
public Task Execute(IJobExecutionContext context)
@@ -73,10 +80,45 @@
try
{
ConveyorLineTaskCommandNew command = conveyorLine.ReadCustomer<ConveyorLineTaskCommandNew>(childDeviceCode);
- if (command == null || command.PLC_STB != 1)
+
+
+ if (command == null)
{
return;
}
+
+ #region 妫�鏌ョ壒瀹氫綅缃槸鍚︽湁鎵樼洏
+
+ var checkPalletPositions = App.Configuration.GetSection("CheckPalletPositions")
+ .Get<List<CheckPalletPosition>>() ?? new List<CheckPalletPosition>();
+
+ if (checkPalletPositions.Any(x => x.Code == childDeviceCode))
+ {
+ if (command.CV_State.ObjToBool())
+ {
+ var existingTask = _taskService.Repository.QueryFirst(x => x.TargetAddress == childDeviceCode);
+ if (existingTask.IsNullOrEmpty())
+ {
+ var position = checkPalletPositions.FirstOrDefault(x => x.Code == childDeviceCode);
+ var responseResult = _httpClientHelper.Post<WebResponseContent>("GetOutBoundTrayTaskAsync", new CreateTaskDto()
+ {
+ WarehouseId = position.WarehouseId,
+ TargetAddress = childDeviceCode
+ }.Serialize());
+
+ if (responseResult.IsSuccess && responseResult.Data.Status)
+ {
+ var wmsTask = JsonSerializer.Deserialize<List<WMSTaskDTO>>(responseResult.Data.Data.Serialize());
+ if (wmsTask != null)
+ _taskService.ReceiveWMSTask(wmsTask);
+ }
+ }
+ }
+ }
+
+ #endregion
+
+ if (command.PLC_STB != 1) return;//PLC_STB=1鏃舵墠澶勭悊浠诲姟
if (command.Barcode.IsNullOrEmpty())
{
@@ -97,7 +139,6 @@
// 澶勭悊浠诲姟鐘舵��
ProcessTaskState(conveyorLine, command, task, childDeviceCode);
}
-
}
catch (Exception innerEx)
{
@@ -112,7 +153,6 @@
}
return Task.CompletedTask;
}
-
/// <summary>
/// 澶勭悊浠诲姟鐘舵��
@@ -158,7 +198,5 @@
break;
}
}
-
-
}
}
\ No newline at end of file
--
Gitblit v1.9.3