From 89bccb9b8fb1070f7ac5f36510c868fecead9384 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期二, 17 三月 2026 17:00:05 +0800
Subject: [PATCH] 更新
---
项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs | 84 ++++++++++++++++++++++++++++++++----------
1 files changed, 64 insertions(+), 20 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 27f36e1..ca7c9b5 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -102,6 +102,7 @@
}
}
}
+ private readonly static object lockerCompleted = new object();
/// <summary>
/// 浠诲姟瀹屾垚
/// </summary>
@@ -109,22 +110,25 @@
{
try
{
- Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
- if (task != null)
+ lock (lockerCompleted)
{
- task.TaskState = TaskStatusEnum.Finish.ObjToInt();
- BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+ Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+ if (task != null)
+ {
+ task.TaskState = TaskStatusEnum.Finish.ObjToInt();
+ BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+ }
+ string? url = apiInfos.FirstOrDefault(x => x.ApiCode == APIEnum.FeedBackWMSTaskCompleted.ToString())?.ApiAddress;
+ if (string.IsNullOrEmpty(url))
+ {
+ _taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"鏈壘鍒癢MS浠诲姟瀹屾垚鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒癢MS浠诲姟瀹屾垚鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ return WebResponseContent.Instance.Error($"{taskNum},鏈壘鍒癢MS浠诲姟瀹屾垚鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
+ }
+ string responseStr = HttpHelper.Get(url + "?taskNum=" + taskNum);
+ WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(responseStr) ?? WebResponseContent.Instance.Error($"{taskNum},鏈帴鏀跺埌浠诲姟瀹屾垚杩斿洖鍊�");
+ return content;
}
- string? url = apiInfos.FirstOrDefault(x => x.ApiCode == APIEnum.FeedBackWMSTaskCompleted.ToString())?.ApiAddress;
- if (string.IsNullOrEmpty(url))
- {
- _taskExecuteDetailService.AddTaskExecuteDetail(taskNum, $"鏈壘鍒癢MS浠诲姟瀹屾垚鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
- UpdateTaskExceptionMessage(taskNum, $"鏈壘鍒癢MS浠诲姟瀹屾垚鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
- return WebResponseContent.Instance.Error($"{taskNum},鏈壘鍒癢MS浠诲姟瀹屾垚鎺ュ彛,璇锋鏌ユ帴鍙i厤缃�");
- }
- string responseStr = HttpHelper.Get(url + "?taskNum=" + taskNum);
- WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(responseStr) ?? WebResponseContent.Instance.Error($"{taskNum},鏈帴鏀跺埌浠诲姟瀹屾垚杩斿洖鍊�");
- return content;
}
catch (Exception ex)
{
@@ -151,6 +155,11 @@
else if(task.TaskState == (int)TaskStatusEnum.AGV_Executing)
{
task.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt();
+
+ }else if(task.TaskState == (int)TaskStatusEnum.AGV_Exception)
+ {
+ task.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt();
+ task.Remark = "";
}
else
{
@@ -234,7 +243,7 @@
//鍏ュ簱
if (taskTypeGroup == TaskTypeGroup.InboundGroup)
{
- if (router.NextPosi == "AGV" && router.StartPosi=="AGV")
+ if (router.NextPosi == "AGV" && router.StartPosi=="AGV") //鍙夎溅AGV鎼繍鍏ュ簱
{
task.CurrentAddress = item.SourceAddress;
task.NextAddress = item.TargetAddress;
@@ -256,8 +265,7 @@
}
else
{
- //鎴愬搧鐮佸灈浠诲姟鐢熸垚
- if (taskTypeGroup == TaskTypeGroup.InboundGroup && !task.Roadway.Contains("YL"))
+ if (taskTypeGroup == TaskTypeGroup.InboundGroup && !task.Roadway.Contains("YL")) //鎴愬搧鐮佸灈浠诲姟鐢熸垚
{
task.CurrentAddress = router.StartPosi;
task.NextAddress = "";
@@ -290,7 +298,10 @@
if (routers.Count == 1)
{
task.NextAddress = router.NextPosi;
- task.DeviceCode = router.ChildPosi;
+ if (task.Roadway.Contains("StackPlate"))
+ task.DeviceCode = router.ChildPosiDeviceCode;
+ else
+ task.DeviceCode = router.ChildPosi;
}
}
@@ -478,9 +489,9 @@
{
return WebResponseContent.Instance.Error($"鏈壘鍒癢MSApi鍦板潃");
}
- string responseStr = HttpHelper.Get($"{address}/api/Task/DeviceRequestInboundTaskSimple?stationCode={sourceAddress}&palletCode={palletCode}");
+ string responseStr = HttpHelper.Get($"{address}/api/Task/DeviceRequestInboundTaskSimple?stationCode={sourceAddress}");
WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr) ?? throw new Exception("缁撴灉杩斿洖涓虹┖");
- if (responseContent != null && responseContent.Status && responseContent.Data != null)
+ if (responseContent.Status && responseContent.Data != null)
{
WMSTaskDTO? taskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(responseContent.Data.ToString());
if (taskDTO != null)
@@ -607,6 +618,34 @@
}
return "";
+ }
+ /// <summary>
+ /// 鍚慦MS鎴愬搧鍏ュ簱鎵爜璇锋眰鏇存柊鏉$爜
+ /// </summary>
+ /// <param name="taskNum">浠诲姟鍙�</param>
+ /// <returns></returns>
+ /// <exception cref="Exception"></exception>
+ public WebResponseContent RequestInBoundPalletCode(int taskNum,string barCode)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ string address = AppSettings.Get("WMSApiAddress");
+ if (string.IsNullOrEmpty(address)) throw new Exception("鏈壘鍒癢MSApi鍦板潃");
+ string responseStr = HttpHelper.Get($"{address}/api/Task/InBoundPalletCode?taskNum={taskNum}&barCode={barCode}");
+ WebResponseContent responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr) ?? throw new Exception("鏈敹鍒拌繑鍥炲弬鏁�");
+ if (!responseContent.Status)
+ {
+ return responseContent;
+ }
+ content.OK();
+ }
+ catch (Exception ex)
+ {
+ content.Error(ex.Message);
+ }
+ return content;
+
}
/// <summary>
/// 鍚慦MS鐢宠鍑哄簱AGV缁堢偣
@@ -942,6 +981,11 @@
nextStatus = TaskStatusEnum.SC_Executing;
}
}
+ else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
+ {
+ task.TaskState = (int)TaskStatusEnum.SC_Executing;
+ nextStatus = TaskStatusEnum.SC_Executing;
+ }
else
{
throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
--
Gitblit v1.9.3