From 5431646d7fc6bd18e3fe9484b875084e620d6dc6 Mon Sep 17 00:00:00 2001
From: 肖洋 <cathay_xy@163.com>
Date: 星期日, 15 十二月 2024 09:28:05 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/HuaYiZhongHeng/BaiBuLiKu

---
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |  120 ++++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 81 insertions(+), 39 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 10c5329..5dee342 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -1,6 +1,8 @@
 锘�
 using AutoMapper;
 using HslCommunication;
+using Mapster;
+using Microsoft.AspNetCore.Components.Routing;
 using Newtonsoft.Json;
 using SqlSugar;
 using System.Diagnostics.CodeAnalysis;
@@ -19,6 +21,8 @@
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.DeviceBase;
 using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Repository;
 using WIDESEAWCS_QuartzJob.Service;
@@ -163,7 +167,24 @@
                 }
 
                 var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
-                return ReceiveWMSTask(new List<WMSTaskDTO> { task });
+                if (task.TaskType == (int)TaskInboundTypeEnum.InNG)
+                {
+                    var station = await _stationManagerRepository.QueryFirstAsync(x => x.stationChildCode == task.SourceAddress);
+                    Dt_Task _Task = _mapper.Map<Dt_Task>(task);
+                    _Task.TaskState = (int)TaskInStatusEnum.InNew;
+                    _Task.CurrentAddress = task.SourceAddress;
+                    _Task.NextAddress = station.stationNGChildCode;
+                    _Task.TargetAddress = station.stationNGLocation;
+                    _Task.Roadway = station.Roadway;
+
+                    BaseDal.AddData(_Task);
+                    _taskExecuteDetailService.AddTaskExecuteDetail(_Task.TaskNum, "鎺ユ敹WMS浠诲姟");
+                    return content.OK();
+                }
+                else
+                {
+                    return ReceiveWMSTask(new List<WMSTaskDTO> { task });
+                }
             }
             catch (Exception ex)
             {
@@ -553,6 +574,35 @@
                 var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
                 if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
 
+                #region WMS鍚屾浠诲姟瀹屾垚
+                var keys = new Dictionary<string, object>()
+                {
+                    {"taskNum", taskNum}
+                };
+                // 鑾峰彇WMSip鍦板潃
+                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
+                var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue;
+                if (wmsBase == null || completeTask == null)
+                {
+                    throw new InvalidOperationException("WMS IP 鏈厤缃�");
+                }
+                var wmsIpAddress = wmsBase + completeTask;
+
+                var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result;
+                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+                if (!content.Data.IsNullOrEmpty())
+                {
+                    if (content.Data.ToString() == "NG")
+                    {
+                        task.Remark = "NG";
+                        //BaseDal.UpdateData(task);
+                        //_taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴愶紝MOM杩斿洖NG");
+                    }
+                }
+                task.ExceptionMessage += "   " + content.Message;
+                #endregion
+
                 if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting)
                 {
                     if (!task.Roadway.Contains("GW"))
@@ -573,8 +623,19 @@
                     else
                     {
                         task.TaskState = (int)TaskOutStatusEnum.OutFinish;
-                        BaseDal.UpdateData(task);
+                        //濡傞珮娓╁嚭搴撳悗 NG 鍒欏皢浠诲姟鏍囪涓篘G 骞跺湪鍑哄簱鐢宠鍚庡皢浠诲姟鍑鸿嚦NG鍙�
+                        if (task.Remark == "NG")
+                        {
+                            BaseDal.UpdateData(task);
+                        }
+                        else
+                        {
+                            BaseDal.DeleteData(task);
+                            ConsoleHelper.WriteWarningLine($"楂樻俯鍑哄簱鐩殑鍦板潃{task.TargetAddress}");
+                        }
 
+                        var taskHty = task.Adapt<Dt_Task_Hty>();
+                        _taskHtyRepository.AddData(taskHty);
                         _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
                     }
 
@@ -609,46 +670,17 @@
                 }
 
 
-                #region WMS鍚屾浠诲姟瀹屾垚
-                var keys = new Dictionary<string, object>()
-                {
-                    {"taskNum", taskNum}
-                };
-                // 鑾峰彇WMSip鍦板潃
-                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-                var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue;
-                if (wmsBase == null || completeTask == null)
-                {
-                    throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                }
-                var wmsIpAddress = wmsBase + completeTask;
-
-                var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result;
-                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-                if (!content.Data.IsNullOrEmpty())
-                {
-                    if (content.Data.ToString() == "NG")
-                    {
-                        task.Remark = "NG";
-                        BaseDal.UpdateData(task);
-                        _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴愶紝MOM杩斿洖NG");
-                    }
-                }
-                #endregion
-
-
                 #region  鏇存柊浠诲姟鐘舵��
 
-                var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTask)?.ConfigValue;
-                if (wmsBase == null || updateTask == null)
-                {
-                    throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                }
-                wmsIpAddress = wmsBase + updateTask;
+                //var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTask)?.ConfigValue;
+                //if (wmsBase == null || updateTask == null)
+                //{
+                //    throw new InvalidOperationException("WMS IP 鏈厤缃�");
+                //}
+                //wmsIpAddress = wmsBase + updateTask;
 
-                result = HttpHelper.PostAsync(wmsIpAddress, new { TaskNum = task.TaskNum, TaskState = task.TaskState }.ToJsonString()).Result;
-                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+                //result = HttpHelper.PostAsync(wmsIpAddress, new { TaskNum = task.TaskNum, TaskState = task.TaskState }.ToJsonString()).Result;
+                //content = JsonConvert.DeserializeObject<WebResponseContent>(result);
                 #endregion
                 //content = WebResponseContent.Instance.OK();
             }
@@ -748,5 +780,15 @@
             }
             return content;
         }
+
+        public Dt_Task QueryRelocationTask(string deviceNo)
+        {
+            return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.TaskType == (int)TaskRelocationTypeEnum.Relocation && x.TaskState == (int)TaskStatus.Created);
+        }
+
+        public Dt_Task QueryExecutingTaskByBarcode(string barcode, string nextAddress)
+        {
+            return BaseDal.QueryFirst(x => x.PalletCode == barcode && x.NextAddress == nextAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting), TaskOrderBy);
+        }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3