From 843cc2ea1b104ecdf9da61318a4136a5d4096411 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期五, 24 四月 2026 11:07:21 +0800
Subject: [PATCH] 集成Quartz定时任务,支持NG出库自动化及WMS/WCS接口扩展

---
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs |   88 +++++++++++++++++++++++++++++++++++--------
 1 files changed, 71 insertions(+), 17 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs
index 54cb06c..06c9db3 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs
@@ -252,7 +252,7 @@
 
                 // 鍙戣捣璇锋眰鑾峰彇鍏ュ簱浠诲姟
                 content = await RequestInTask(palletCode, stationManager);
-                ConsoleHelper.WriteErrorLine($"{stationManager.stationChildCode}绔欏彴璇锋眰鍝嶅簲淇℃伅:{content.ToJsonString()}");
+                //ConsoleHelper.WriteErrorLine($"{stationManager.stationChildCode}绔欏彴璇锋眰鍝嶅簲淇℃伅:{content.ToJsonString()}");
 
                 if (!content.Status)
                 {
@@ -260,7 +260,7 @@
                 }
 
                 var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
-                ConsoleHelper.WriteSuccessLine(content.Data.ToString());
+                //ConsoleHelper.WriteSuccessLine(content.Data.ToString());
                 return ReceiveByWMSTask(task);
             }
             catch (Exception ex)
@@ -283,7 +283,7 @@
         // 妫�鏌ユ槸鍚﹀凡瀛樺湪鐩存帴鍑哄簱浠诲姟
         private async Task<bool> HasDirectOutboundTask(Dt_StationManager stationManager)
         {
-            var station = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 6 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea);
+            var station = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 6 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea && x.Roadway == stationManager.Roadway);
             var tasks = await BaseDal.QueryFirstAsync(x => x.TaskType == (int)TaskOutboundTypeEnum.InToOut && x.TargetAddress == stationManager.stationLocation && x.CurrentAddress == station.stationChildCode);
             return tasks != null;
         }
@@ -399,23 +399,26 @@
                 var wmsIpAddrss = wmsBase + requestTask;
 
                 var result = await HttpHelper.PostAsync(wmsIpAddrss, new { Position = stationManager.stationChildCode }.ToJsonString());
+
+                QuartzLogger.WriteLogToFile($"鍖呰鍑哄簱", $"杩斿洖鍙傛暟銆恵JsonConvert.SerializeObject(result)}銆憑Environment.NewLine}{Environment.NewLine}");
+
+
                 content = JsonConvert.DeserializeObject<WebResponseContent>(result);
                 if (!content.Status)
                 {
                     //鏃犳弧瓒虫潯浠跺彲鍑哄簱鑷冲寘瑁呯殑搴撳瓨
+                    ConsoleHelper.WriteErrorLine(JsonConvert.SerializeObject(content));
+                    QuartzLogger.WriteLogToFile($"鍖呰鍑哄簱", $"杩斿洖鍙傛暟銆恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}");
                     return content;
                 }
 
                 var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
                 ConsoleHelper.WriteSuccessLine(content.Data.ToString());
-                //_taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO })鈥�
+
                 content = ReceiveWMSTask(new List<WMSTaskDTO> { task });
-                //content = ReceiveByBZOtuTask(task);
-                //if (content.Status)
-                //{
-                //    //鐩稿簲鐨勫湪閫旀暟鎹�+1
-                //   // _taskNeedBarcodeRepository.UpdateData();
-                //}
+
+                QuartzLogger.WriteLogToFile($"鍖呰鍑哄簱", $"杩斿洖鍙傛暟銆恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}");
+                ConsoleHelper.WriteErrorLine(JsonConvert.SerializeObject(content));
                 return content;
             }
             catch (Exception ex)
@@ -443,12 +446,24 @@
 
                 if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                 {
-                    var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == taskDTO.TargetAddress && x.Roadway == taskDTO.RoadWay);
-                    task.TaskState = (int)TaskOutStatusEnum.OutNew;
-                    task.CurrentAddress = taskDTO.RoadWay;
-                    task.NextAddress = stationinfo.stationChildCode;
-                    task.SourceAddress = taskDTO.SourceAddress;
-                    task.TargetAddress = taskDTO.TargetAddress;
+                    if (task.TaskType == (int)TaskOutboundTypeEnum.InToOut && taskDTO.RoadWay.Contains("CW"))
+                    {
+                        var stationinfo = _stationManagerRepository.QueryFirst(x => (x.stationPLC == "1017" ||x.stationPLC=="1024")&& x.stationType == 10 && x.Roadway == taskDTO.RoadWay);
+                        task.TaskState = (int)TaskOutStatusEnum.OutNew;
+                        task.CurrentAddress = taskDTO.SourceAddress;
+                        task.NextAddress = stationinfo.stationChildCode;
+                        task.SourceAddress = taskDTO.SourceAddress;
+                        task.TargetAddress = taskDTO.TargetAddress;
+                    }
+                    else
+                    {
+                        var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == taskDTO.TargetAddress && x.Roadway == taskDTO.RoadWay);
+                        task.TaskState = (int)TaskOutStatusEnum.OutNew;
+                        task.CurrentAddress = taskDTO.RoadWay;
+                        task.NextAddress = stationinfo.stationChildCode;
+                        task.SourceAddress = taskDTO.SourceAddress;
+                        task.TargetAddress = taskDTO.TargetAddress;
+                    }   
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                 {
@@ -544,10 +559,49 @@
                     task.NextAddress = "002-000-002";
                     task.SourceAddress = taskDTO.SourceAddress;
                     task.TargetAddress = taskDTO.TargetAddress;
+
                 }
                 BaseDal.AddData(task);
 
                 _taskExecuteDetailService.AddTaskExecuteDetail(task.WMSId, "鎺ユ敹WMS浠诲姟");
+
+                content = WebResponseContent.Instance.OK("鎴愬姛");
+            }
+            catch (Exception ex)
+            {
+                content = WebResponseContent.Instance.Error($"浠诲姟鎺ユ敹閿欒,閿欒淇℃伅:{ex.Message}");
+            }
+            return content;
+        }
+
+        public WebResponseContent ReceiveByWMSNGTask([NotNull] WMSTaskDTO taskDTO)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                var task = BaseDal.QueryFirst(x => x.TaskNum == taskDTO.TaskNum || x.PalletCode == taskDTO.PalletCode);
+                if (task != null)
+                {
+                    var taskHty = task.Adapt<Dt_Task_Hty>();
+                    _taskHtyRepository.AddData(taskHty);
+                    BaseDal.DeleteData(task);
+                }
+
+                Dt_Task taskNew = _mapper.Map<Dt_Task>(taskDTO);
+                taskNew.Creater = "WMS";
+
+                if (taskNew.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+                {
+                    taskNew.TaskState = (int)TaskOutStatusEnum.OutNew;
+                    taskNew.CurrentAddress = taskDTO.SourceAddress;
+                    taskNew.NextAddress = taskDTO.NextAddress;
+                    taskNew.SourceAddress = taskDTO.SourceAddress;
+                    taskNew.TargetAddress = taskDTO.TargetAddress;
+
+                }
+                BaseDal.AddData(taskNew);
+
+                _taskExecuteDetailService.AddTaskExecuteDetail(taskNew.WMSId, "鎺ユ敹WMS浠诲姟");
 
                 content = WebResponseContent.Instance.OK("鎴愬姛");
             }
@@ -676,7 +730,7 @@
             catch (Exception ex)
             {
                 content = WebResponseContent.Instance.Error($"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆�");
-                QuartzLogger.WriteLogToFile($"Info_鍒嗗浠诲姟瀹屾垚", $"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆戝紓甯镐俊鎭�恵ex.StackTrace}銆憑Environment.NewLine}{Environment.NewLine}");
+                QuartzLogger.WriteLogToFile($"Info_鍒嗗浠诲姟瀹屾垚", $"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆戝紓甯镐俊鎭�恵ex.Message}銆憑Environment.NewLine}寮傚父淇℃伅銆恵ex.StackTrace}銆憑Environment.NewLine}");
             }
             QuartzLogger.WriteLogToFile($"Info_鍒嗗浠诲姟瀹屾垚", $"浠诲姟瀹屾垚,浠诲姟鍙�:銆恵taskNum}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}");
             return content;

--
Gitblit v1.9.3