From d59b540dd78d49ddf1f2e1c6dfb7b19a7d3e3d7c Mon Sep 17 00:00:00 2001
From: 肖洋 <cathay_xy@163.com>
Date: 星期日, 19 一月 2025 11:19:24 +0800
Subject: [PATCH] 优化代码结构和错误处理

---
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MCS/Partial/NotifyFinishTest.cs |   93 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 74 insertions(+), 19 deletions(-)

diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MCS/Partial/NotifyFinishTest.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MCS/Partial/NotifyFinishTest.cs
index 6d7aeb8..18b4539 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MCS/Partial/NotifyFinishTest.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MCS/Partial/NotifyFinishTest.cs
@@ -1,4 +1,6 @@
-锘縰sing Newtonsoft.Json;
+锘縰sing LogLibrary.Log;
+using Masuit.Tools;
+using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -9,9 +11,11 @@
 using WIDESEA_Core.Enums;
 using WIDESEA_Core.Helper;
 using WIDESEA_DTO;
+using WIDESEA_DTO.MOM;
 using WIDESEA_DTO.WMS;
 using WIDESEA_Model.Models;
 using WIDESEA_StorageBasicRepository;
+using WIDESEAWCS_Model.Models;
 
 namespace WIDESEA_StoragIntegrationServices
 {
@@ -34,6 +38,23 @@
 
                 if (location == null) throw new Exception("鏈煡搴撲綅");
 
+                if (_taskRepository.QueryFirst(x => x.SourceAddress == result.LocationID && x.Roadway == location.RoadwayNo) != null)
+                {
+                    throw new Exception("褰撳墠搴撲綅宸插瓨鍦ㄤ换鍔�");
+                }
+
+                Dt_StationManager stationManager;
+                if (result.IsNG == 1)
+                {
+                    stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == location.RoadwayNo && x.stationType == 4);
+                }
+                else
+                {
+                    stationManager = _stationManagerRepository.QueryFirst(x => x.Roadway == location.RoadwayNo && x.stationType == 2);
+                }
+
+                if (stationManager == null) throw new Exception("鏈煡绔欏彴");
+
                 int taskNum = _taskRepository.GetTaskNo().Result;
 
                 Dt_Task task = new Dt_Task
@@ -42,44 +63,78 @@
                     Creater = "HK",
                     CurrentAddress = result.LocationID,
                     Grade = 1,
+                    Dispatchertime = DateTime.Now,
                     PalletCode = result.PalletBarcode,
                     Roadway = location.RoadwayNo,
                     SourceAddress = result.LocationID,
                     TaskState = (int)TaskOutStatusEnum.OutNew,
                     TaskType = result.IsNG == 1 ? (int)TaskOutboundTypeEnum.OutNG : (int)TaskOutboundTypeEnum.Outbound,
-                    TargetAddress = "",
+                    TargetAddress = stationManager.stationLocation,
+                    NextAddress = stationManager.stationChildCode,
                     TaskNum = taskNum, //_taskRepository.GetTaskNo().Result,
                     TaskId = 0,
                 };
 
-                WMSTaskDTO taskDTO = new WMSTaskDTO
+                // 灏濊瘯娣诲姞鏂颁换鍔�
+                WMSTaskDTO taskDTO = new WMSTaskDTO()
                 {
-                    Id = 0,
+                    TaskNum = task.TaskNum.Value,
                     Grade = 1,
-                    PalletCode = result.PalletBarcode,
-                    RoadWay = location.RoadwayNo,
-                    SourceAddress = result.LocationID,
-                    TargetAddress = "",
-                    TaskNum = taskNum,  //_taskRepository.GetTaskNo().Result,
-                    TaskState = (int)TaskOutStatusEnum.OutNew,
+                    PalletCode = task.PalletCode,
+                    RoadWay = task.Roadway,
+                    SourceAddress = task.SourceAddress,
+                    TargetAddress = task.TargetAddress,
+                    TaskState = task.TaskState.Value,
+                    Id = 0,
                     TaskType = result.IsNG == 1 ? (int)TaskOutboundTypeEnum.OutNG : (int)TaskOutboundTypeEnum.Outbound,
                 };
 
-                //var respon = HttpHelper.Post("http://localhost:9291/api/Task/ReceiveTask", JsonConvert.SerializeObject(taskDTO));
-                //if (respon != null)
-                //{
-                    
-                //}
-                //else
-                //{
-                //    throw new Exception("WCS澶勭悊澶辫触");
-                //}
+                var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+                var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue;
+                var ReceiveByWMSTask = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.ReceiveByWMSTask)?.ConfigValue;
+                if (ReceiveByWMSTask == null || ipAddress == null)
+                {
+                    throw new Exception("WMS IP 鏈厤缃�");
+                }
+                var wmsIpAddrss = ipAddress + ReceiveByWMSTask;
 
+                var respon = HttpHelper.Post(wmsIpAddrss, JsonConvert.SerializeObject(taskDTO));   //http://localhost:9291/api/Task/ReceiveTask,
+                if (respon != null)
+                {
+                    WebResponseContent respone = JsonConvert.DeserializeObject<WebResponseContent>(respon.ToString());
+                    if (respone.Status)
+                    {
+                        var taskId = _taskRepository.AddData(task);
+                    }
 
+                    else
+                    {
+                        throw new Exception("WCS澶勭悊澶辫触:" + respone.Message);
+                    }
+                }
+                else
+                {
+                    throw new Exception("WCS澶勭悊澶辫触");
+                }
+                //WMSTaskDTO taskDTO = new WMSTaskDTO
+                //{
+                //    Id = 0,
+                //    Grade = 1,
+                //    PalletCode = result.PalletBarcode,
+                //    RoadWay = location.RoadwayNo,
+                //    SourceAddress = result.LocationID,
+                //    TargetAddress = task.TargetAddress,
+                //    TaskNum = taskNum,  //_taskRepository.GetTaskNo().Result,
+                //    TaskState = (int)TaskOutStatusEnum.OutNew,
+                //};
+                LogFactory.GetLog("鍒嗗娴嬭瘯瀹屾垚閫氱煡").Info(true, $"\r\r--------------------------------------");
+                LogFactory.GetLog("鍒嗗娴嬭瘯瀹屾垚閫氱煡").Info(true, result.ToJsonString());
                 return content.OK();
             }
             catch (Exception ex)
             {
+                LogFactory.GetLog("鍒嗗娴嬭瘯瀹屾垚閫氱煡").Info(true, $"\r\r--------------------------------------");
+                LogFactory.GetLog("鍒嗗娴嬭瘯瀹屾垚閫氱煡").Info(true, ex.Message);
                 return content.Error(ex.Message);
             }
         }

--
Gitblit v1.9.3