From 457b75b642a1fdaa7158e5b047cabc5d7ae16333 Mon Sep 17 00:00:00 2001
From: xxyy <cathay_xy@163.com>
Date: 星期一, 10 三月 2025 10:10:13 +0800
Subject: [PATCH] 修复和优化 Dt_TaskService.cs 中的任务请求逻辑

---
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MCS/Partial/NotifyFinishTest.cs |   91 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 77 insertions(+), 14 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 119658d..a38f83b 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
@@ -41,42 +62,84 @@
                     CreateDate = DateTime.Now,
                     Creater = "HK",
                     CurrentAddress = result.LocationID,
-                    Grade = 1,
+                    Grade = result.IsNG == 1 ? 1 : 2,
+                    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()
                 {
+                    TaskNum = task.TaskNum.Value,
+                    Grade = result.IsNG == 1 ? 1 : 2,
+                    PalletCode = task.PalletCode,
+                    RoadWay = task.Roadway,
+                    SourceAddress = task.SourceAddress,
+                    TargetAddress = task.TargetAddress,
+                    TaskState = task.TaskState.Value,
                     Id = 0,
-                    Grade = 1,
-                    PalletCode = result.PalletBarcode,
-                    RoadWay = location.RoadwayNo,
-                    SourceAddress = result.LocationID,
-                    TargetAddress = result.LocationID,
-                    TaskNum = taskNum,  //_taskRepository.GetTaskNo().Result,
-                    TaskState = (int)TaskOutStatusEnum.OutNew,
                     TaskType = result.IsNG == 1 ? (int)TaskOutboundTypeEnum.OutNG : (int)TaskOutboundTypeEnum.Outbound,
                 };
 
-                var sysConfig = _configService.GetByConfigKey(CateGoryConst.CONFIG_SYS_IPAddress, SysConfigConst.WCSIPAddress);
-                var respon = HttpHelper.Post(sysConfig.ConfigValue, JsonConvert.SerializeObject(taskDTO));
+                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);
+                        location.LocationStatus = (int) LocationEnum.InStockDisable;
+                        _locationRepository.UpdateData(location);
 
+                        _simpleCacheService.HashDel<DtStockInfo>(WIDESEA_Cache.CacheConst.Cache_DtStockInfo, new string[] { taskDTO.PalletCode });
+                    }
+
+                    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