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 |   22 ++++++++++++++++++++--
 1 files changed, 20 insertions(+), 2 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 5174a4a..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;
@@ -96,9 +97,24 @@
                 if (task == null)
                     return webResponse.Error($"鏈壘鍒颁换鍔′俊鎭紝鎵樼洏鏉$爜锛歿wCSTask.PalletCode}");
 
+                //Dt_Task Outtask = BaseDal.QueryData(x => x.TargetAddress == task.SourceAddress).FirstOrDefault();
+                // 澶勭悊鍦板潃杞崲
+                string targetAddress = wCSTask.FromPoint;
+                if (targetAddress == "1104")
+                {
+                    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}");
+                    return webResponse.Error($"鎵樼洏绫诲瀷涓嶅尮閰嶏紝褰撳墠浠诲姟涓墭鐩樼被鍨嬩负:{task.PalletType}锛學CS涓婃姤绫诲瀷涓猴細{wCSTask.ContainerType}锛屾墭鐩樻潯鐮侊細{wCSTask.PalletCode}", 502);
                 }
                 // 浠诲姟閲嶅彂
                 if (task.TaskStatus == (int)InTaskStatusEnum.PLC_InExecuting)
@@ -112,7 +128,7 @@
                     wcstaskinfo.FromPoint = wCSTask.FromPoint;
                     wcstaskinfo.ToPoint = task.NextAddress;
                     wcstaskinfo.ToStation = "";
-                    WriteLog.Write_Log("WCS_杈撻�佺嚎璇锋眰鍏ュ簱", $"浠诲姟淇℃伅", "杩斿洖杈撻�佺嚎浠诲姟淇℃伅", $"杩斿洖缁欒緭閫佺嚎鐨勪换鍔′俊鎭細{wcstaskinfo.ToJson()}");
+                    WriteLog.Write_Log("WCS_杈撻�佺嚎璇锋眰鍏ュ簱", $"浠诲姟淇℃伅", $"杩斿洖杈撻�佺嚎浠诲姟淇℃伅", $"杩斿洖缁欒緭閫佺嚎鐨勪换鍔′俊鎭細{wcstaskinfo.ToJson()}");
                     return webResponse.OK(data: wcstaskinfo);
                 }
                 if (task.TargetAddress!="" && task.TargetAddress!=null)
@@ -126,6 +142,7 @@
                 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")    //璁板緱鏀瑰洖鏉�
                     {
@@ -138,6 +155,7 @@
                         wcstaskinfo.FromPoint = wCSTask.FromPoint;
                         wcstaskinfo.ToPoint = task.NextAddress;
                         wcstaskinfo.ToStation = "";
+                        
                         //杩涜淇敼鏁版嵁搴�
                         BaseDal.UpdateData(task);
 

--
Gitblit v1.9.3