From 880b7feed920575c19931c214b7d624aa93c6df5 Mon Sep 17 00:00:00 2001
From: 肖洋 <cathay_xy@163.com>
Date: 星期六, 21 十二月 2024 11:30:13 +0800
Subject: [PATCH] 优化入库任务创建逻辑,调整任务状态和地址处理,改进异常处理机制
---
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs | 5 ++
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs | 6 +-
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 7 ---
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 48 ++++++++++++++++++++----
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs | 10 ++---
5 files changed, 52 insertions(+), 24 deletions(-)
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index bfa2c3b..9b1276e 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -118,12 +118,7 @@
}
else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
{
- if (task.SourceAddress == "1359-4")
- {
- task.TaskState = (int)TaskInStatusEnum.InNew;
- task.CurrentAddress = item.SourceAddress;
- }
- else
+ if (task.SourceAddress != "1359-4")
{
List<Dt_Router> routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress);
if (routers.Count > 0)
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
index 8352fc6..29da0ea 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -361,7 +361,10 @@
{
if (command.Barcode == task.PalletCode && childDeviceCode == task.NextAddress)
{
- ConsoleHelper.WriteWarningLine($"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚,涓嬩竴鐩爣鍦板潃銆愮瓑寰呭垎閰嶈揣浣嶃��");
+ conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, "1000", childDeviceCode);
+
+ ConsoleHelper.WriteWarningLine($"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚,涓嬩竴鐩爣鍦板潃銆愮瓑寰呭垎閰嶈揣浣�,骞跺啓鍏�1000銆�");
+
ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
if (task.TaskType == (int)TaskInboundTypeEnum.InNG)
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
index 7fd4c81..58c8266 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
@@ -221,18 +221,16 @@
var task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode);
if (task != null)
{
- if (task.NextAddress.Contains("JZ"))
+ if (task.TargetAddress == childDeviceCode)
{
- int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
- task.TaskState = nextStatus;
- ConsoleHelper.WriteWarningLine($"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵task.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵task.PalletCode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�(瀹炵洏),涓嬩竴鐩爣鍦板潃銆恵task.TargetAddress}銆�");
- _taskService.UpdateTaskStatusToNext(task);
+ conveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTargetAddress, "1000", childDeviceCode);
+
+ ConsoleHelper.WriteWarningLine($"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵task.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵task.PalletCode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�(瀹炵洏),涓嬩竴鐩爣鍦板潃銆恵1000}銆�");
ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
}
else
{
- //var taskCommand = MapTaskCommand(task, command);
var next = task.NextAddress;
var taskCommand = MapTaskCommand(task, command);
task.NextAddress = next;
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
index 7889386..8ef6897 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -370,13 +370,21 @@
stackerCraneTaskCommand.StartCommand = 1;
if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//鍒ゆ柇鏄惁鏄叆搴撲换鍔�
{
- List<Dt_Router> routers = _routerService.QueryNextRoutes(task.CurrentAddress, task.Roadway);
- if (routers.Count > 0)
+ if (task.Roadway.Contains("JZ"))
{
- stackerCraneTaskCommand.StartRow = Convert.ToInt16(routers.FirstOrDefault().SrmRow);
- stackerCraneTaskCommand.StartColumn = Convert.ToInt16(routers.FirstOrDefault().SrmColumn);
- stackerCraneTaskCommand.StartLayer = Convert.ToInt16(routers.FirstOrDefault().SrmLayer);
-
+ string[] souredCodes = task.CurrentAddress.Split("-");
+ if (souredCodes.Length == 3)
+ {
+ stackerCraneTaskCommand.StartRow = Convert.ToInt16(souredCodes[0]);
+ stackerCraneTaskCommand.StartColumn = Convert.ToInt16(souredCodes[1]);
+ stackerCraneTaskCommand.StartLayer = Convert.ToInt16(souredCodes[2]);
+ }
+ else
+ {
+ //鏁版嵁閰嶇疆閿欒
+ _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍏ュ簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
+ return null;
+ }
string[] targetCodes = task.NextAddress.Split("-");
if (targetCodes.Length == 3)
{
@@ -393,8 +401,32 @@
}
else
{
- _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鑾峰彇瀵瑰簲鐨勫爢鍨涙満鍙栬揣绔欏彴淇℃伅");
- return null;
+ List<Dt_Router> routers = _routerService.QueryNextRoutes(task.CurrentAddress, task.Roadway);
+ if (routers.Count > 0)
+ {
+ stackerCraneTaskCommand.StartRow = Convert.ToInt16(routers.FirstOrDefault().SrmRow);
+ stackerCraneTaskCommand.StartColumn = Convert.ToInt16(routers.FirstOrDefault().SrmColumn);
+ stackerCraneTaskCommand.StartLayer = Convert.ToInt16(routers.FirstOrDefault().SrmLayer);
+
+ string[] targetCodes = task.NextAddress.Split("-");
+ if (targetCodes.Length == 3)
+ {
+ stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]) % 2 != 0 ? (short)1 : (short)2;
+ stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]);
+ stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]);
+ }
+ else
+ {
+ //鏁版嵁閰嶇疆閿欒
+ _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍏ュ簱浠诲姟缁堢偣閿欒锛岃捣鐐癸細銆恵task.NextAddress}銆�");
+ return null;
+ }
+ }
+ else
+ {
+ _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鑾峰彇瀵瑰簲鐨勫爢鍨涙満鍙栬揣绔欏彴淇℃伅");
+ return null;
+ }
}
}
else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
index 000de4c..04de7fa 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -1323,7 +1323,7 @@
#region 闈欑疆寮傚父鍙e叆搴�
- public async Task<WebResponseContent> CreateAndSendInboundTask(string locationCode, string palletCode, string position)
+ public async Task<WebResponseContent> CreateAndSendInboundTask(string palletCode, string position)
{
WebResponseContent content = new WebResponseContent();
try
@@ -1347,7 +1347,7 @@
// 鍒涘缓鏂颁换鍔″疄渚�
var task = new Dt_Task
{
- CurrentAddress = locationCode,
+ CurrentAddress = station.stationLocation,
Grade = 1,
Roadway = station.Roadway,
TargetAddress = location.LocationCode,
@@ -1356,7 +1356,7 @@
NextAddress = location.LocationCode,
OrderNo = null,
PalletCode = palletCode,
- SourceAddress = locationCode,
+ SourceAddress = position,
TaskState = (int)TaskInStatusEnum.Line_InFinish,
TaskType = (int)TaskInboundTypeEnum.Inbound,
TaskNum = await BaseDal.GetTaskNo(),
--
Gitblit v1.9.3