From b0b5deb5825684bca5b3fa7c2ab59f60ce0e799f Mon Sep 17 00:00:00 2001
From: xiazhengtongxue <133085197+xiazhengtongxue@users.noreply.github.com>
Date: 星期二, 07 四月 2026 16:36:57 +0800
Subject: [PATCH] fix: 修复移库任务号重复问题,优化策略优先处理正常任务,避免任务堵塞
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCSTaskService.cs | 49 +++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 41 insertions(+), 8 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCSTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCSTaskService.cs"
index a88b7cb..c93b494 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCSTaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WCSTaskService.cs"
@@ -2,6 +2,7 @@
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Logical;
+using Org.BouncyCastle.Math.EC;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -88,7 +89,7 @@
public WebResponseContent PalletInboundTask(WCSTaskDTO wCSTask)
{
- WriteLog.Write_Log("杈撻�佺嚎璇锋眰鍏ュ簱", $"浠诲姟淇℃伅", "鎺ユ敹鍙傛暟", $"鍙傛暟锛歿wCSTask.ToJson()}");
+ WriteLog.Write_Log("WCS_杈撻�佺嚎璇锋眰鍏ュ簱", $"浠诲姟淇℃伅", "鎺ユ敹鍙傛暟", $"鍙傛暟锛歿wCSTask.ToJson()}");
WebResponseContent webResponse = new WebResponseContent();
try
{
@@ -96,11 +97,40 @@
if (task == null)
return webResponse.Error($"鏈壘鍒颁换鍔′俊鎭紝鎵樼洏鏉$爜锛歿wCSTask.PalletCode}");
- if (task.PalletType != wCSTask.ContainerType.ToString())
+ //Dt_Task Outtask = BaseDal.QueryData(x => x.TargetAddress == task.SourceAddress).FirstOrDefault();
+ // 澶勭悊鍦板潃杞崲
+ string targetAddress = wCSTask.FromPoint;
+ if (targetAddress == "1104")
{
- return webResponse.Error($"鎵樼洏绫诲瀷涓嶅尮閰嶏紝褰撳墠浠诲姟涓墭鐩樼被鍨嬩负:{task.PalletType}锛學CS涓婃姤绫诲瀷涓猴細{wCSTask.ContainerType}锛屾墭鐩樻潯鐮侊細{wCSTask.PalletCode}");
+ targetAddress = "1103";
+ }
+ else if (targetAddress == "1102")
+ {
+ targetAddress = "1101";
}
+ Dt_Task Outtask = BaseDal.QueryData(x => x.TargetAddress == targetAddress).FirstOrDefault();
+ if (Outtask != null) return webResponse.Error($"褰撳墠宸叉湁鏉ヨ鐩爣浣嶇疆{wCSTask.FromPoint}鐨勪换鍔★紝涓嶅彲杩涜鍏ュ簱锛屾墭鐩樻潯鐮侊細{wCSTask.PalletCode}", 501);
+
+ if (task.PalletType != wCSTask.ContainerType.ToString())
+ {
+ return webResponse.Error($"鎵樼洏绫诲瀷涓嶅尮閰嶏紝褰撳墠浠诲姟涓墭鐩樼被鍨嬩负:{task.PalletType}锛學CS涓婃姤绫诲瀷涓猴細{wCSTask.ContainerType}锛屾墭鐩樻潯鐮侊細{wCSTask.PalletCode}", 502);
+ }
+ // 浠诲姟閲嶅彂
+ if (task.TaskStatus == (int)InTaskStatusEnum.PLC_InExecuting)
+ {
+ WCStask wcstaskinfo = new WCStask();
+ wcstaskinfo.TaskId = task.TaskId;
+ wcstaskinfo.AreaNo = int.Parse(task.Roadway);
+ wcstaskinfo.TransNo = task.TaskNum;
+ wcstaskinfo.ContainerNo = task.PalletCode;
+ wcstaskinfo.ContainerType = int.Parse(task.PalletType);
+ wcstaskinfo.FromPoint = wCSTask.FromPoint;
+ wcstaskinfo.ToPoint = task.NextAddress;
+ wcstaskinfo.ToStation = "";
+ WriteLog.Write_Log("WCS_杈撻�佺嚎璇锋眰鍏ュ簱", $"浠诲姟淇℃伅", $"杩斿洖杈撻�佺嚎浠诲姟淇℃伅", $"杩斿洖缁欒緭閫佺嚎鐨勪换鍔′俊鎭細{wcstaskinfo.ToJson()}");
+ return webResponse.OK(data: wcstaskinfo);
+ }
if (task.TargetAddress!="" && task.TargetAddress!=null)
{
int taskcount = BaseDal.QueryData(x => x.TargetAddress == task.TargetAddress && x.PalletCode != task.PalletCode).Count();
@@ -108,12 +138,13 @@
return webResponse.Error($"褰撳墠宸叉湁鍘昏鐩爣浣嶇疆鐨勪换鍔′簡锛屼笉鍙笅鍙戯紒锛侊紒");
}
-
- if (task.TaskStatus == (int)InTaskStatusEnum.InNew)
+ // 涓婁紶EMS
+ if (task.TaskStatus == (int)InTaskStatusEnum.InNew)
{
task.TaskStatus = (int)InTaskStatusEnum.PLC_InExecuting;
+ task.Dispatchertime = DateTime.Now;
MES_parameter mES_Parameter = InStoreDocCallback(task.TaskNum, "Start", "鎿嶄綔鎴愬姛", task.PalletCode, "");
- if (mES_Parameter.Result != "Y") //璁板緱鏀瑰洖鏉�
+ if (mES_Parameter.Result == "Y") //璁板緱鏀瑰洖鏉�
{
WCStask wcstaskinfo = new WCStask();
wcstaskinfo.TaskId = task.TaskId;
@@ -124,14 +155,16 @@
wcstaskinfo.FromPoint = wCSTask.FromPoint;
wcstaskinfo.ToPoint = task.NextAddress;
wcstaskinfo.ToStation = "";
+
//杩涜淇敼鏁版嵁搴�
BaseDal.UpdateData(task);
- WriteLog.Write_Log("杈撻�佺嚎璇锋眰鍏ュ簱", $"浠诲姟淇℃伅", "杩斿洖杈撻�佺嚎浠诲姟淇℃伅", $"杩斿洖缁欒緭閫佺嚎鐨勪换鍔′俊鎭細{wcstaskinfo.ToJson()}");
+ WriteLog.Write_Log("WCS_杈撻�佺嚎璇锋眰鍏ュ簱", $"浠诲姟淇℃伅", "杩斿洖杈撻�佺嚎浠诲姟淇℃伅", $"杩斿洖缁欒緭閫佺嚎鐨勪换鍔′俊鎭細{wcstaskinfo.ToJson()}");
return webResponse.OK(data: wcstaskinfo);
}
else
{
+
return webResponse.Error("涓婁紶MES澶辫触锛屽師鍥狅細" + mES_Parameter.ResultMsg);
}
}
@@ -142,7 +175,7 @@
}
catch (Exception ex)
{
- WriteLog.Write_Log("杈撻�佺嚎璇锋眰鍏ュ簱", $"浠诲姟淇℃伅", "澶辫触", $"浠诲姟鑾峰彇澶辫触锛寃ms绯荤粺鏁呴殰锛屽師鍥狅細{ex.Message}");
+ WriteLog.Write_Log("WCS_杈撻�佺嚎璇锋眰鍏ュ簱", $"浠诲姟淇℃伅", "澶辫触", $"浠诲姟鑾峰彇澶辫触锛寃ms绯荤粺鏁呴殰锛屽師鍥狅細{ex.Message}");
return webResponse.Error("浠诲姟鑾峰彇澶辫触锛寃ms绯荤粺鏁呴殰锛屽師鍥狅細" + ex.Message);
}
}
--
Gitblit v1.9.3