From c467a598f23fd81cf624e0abc5f012fb5c9c6ada Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <1247017146@qq.com>
Date: 星期五, 25 四月 2025 09:54:00 +0800
Subject: [PATCH] 1

---
 CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs |  189 ++++++++++++++++++++++++++---------------------
 1 files changed, 104 insertions(+), 85 deletions(-)

diff --git a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
index a59aa03..2323fa3 100644
--- a/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
+++ b/CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
@@ -1092,100 +1092,119 @@
 
             if (emergencyTask == null) throw new Exception("鐏鍙傛暟涓虹┖");
 
-            DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.Row == emergencyTask.row && x.Column == emergencyTask.column && x.Layer == emergencyTask.layer && x.AreaId == emergencyTask.zone);
-            if (locationInfo == null)
+            string[] strings = emergencyTask.LocationCode.Split("-");
+
+            string[] Roadways = strings[0].Select(x => x.ToString()).ToArray();
+            string Roadway = string.Empty;
+            switch (Roadways[0])
             {
-                throw new Exception("鏈煡搴撲綅");
+                case "J":
+                    Roadway = "JZSC" + Roadways[1];
+                    break;
+                case "G":
+                    Roadway = "GWSC" + Roadways[1];
+                    break;
+                case "C":
+                    Roadway = "CWSC" + Roadways[1];
+                    break;
+                default: throw new Exception("鏈瘑鍒簱浣嶇紪鐮�");
             }
 
-            //鏌ユ壘娑堥槻绔欏彴
-            var station = _stationManagerRepository.QueryFirst(t => t.Roadway == locationInfo.RoadwayNo
-                 && t.stationType == (int)StationManager.FireStation
-                 /*&& t. == "Enable"*/);
-            if (station == null)
+            for (int i = 0; i < 2; i++)
             {
-                throw new Exception("娑堥槻绔欏彴鏈厤缃�!");
-            }
-
-            //鏌ユ壘搴撳瓨淇℃伅
-            var stockInfo = _stockInfoRepository.QueryFirst(x => x.LocationCode == locationInfo.LocationCode && x.LocationInfo.RoadwayNo == locationInfo.RoadwayNo);
-            //鎵樼洏鐮�
-            string barcode = string.Empty;
-            if (stockInfo != null)
-            {
-                barcode = stockInfo.PalletCode;
-            }
-            else
-            {
-                //鏃犲簱瀛樹俊鎭紝鐢熸垚闅忔満鎵樼洏鐮�
-                barcode = "M" + DateTime.Now.ToString("MMddHHmmss") + "-" + new Random().Next(100, 1000);
-            }
-
-            Dt_Task fireTask = BaseDal.QueryFirst(x => x.TaskType == 500 && x.SourceAddress == locationInfo.LocationCode && x.Roadway == station.Roadway);
-
-            if (fireTask != null)
-            {
-                throw new Exception("宸叉坊鍔犵伀璀﹀嚭搴撲换鍔�");
-            }
-
-            int taskNum = BaseDal.GetTaskNo().Result;
-            Dt_Task task = new Dt_Task
-            {
-                CreateDate = DateTime.Now,
-                Creater = "DTS",
-                CurrentAddress = locationInfo.LocationCode,
-                Grade = 1,
-                Dispatchertime = DateTime.Now,
-                PalletCode = barcode,
-                Roadway = station.Roadway,
-                SourceAddress = locationInfo.LocationCode,
-                TaskState = (int)TaskOutStatusEnum.OutNew,
-                TaskType = 500,
-                TargetAddress = station.stationLocation,
-                NextAddress = station.stationChildCode,
-                TaskNum = taskNum, //_taskRepository.GetTaskNo().Result,
-                TaskId = 0,
-            };
-
-            // 灏濊瘯娣诲姞鏂颁换鍔�
-            WMSTaskDTO taskDTO = new WMSTaskDTO()
-            {
-                TaskNum = task.TaskNum.Value,
-                Grade = 1,
-                PalletCode = task.PalletCode,
-                RoadWay = task.Roadway,
-                SourceAddress = task.SourceAddress,
-                TargetAddress = task.TargetAddress,
-                TaskState = task.TaskState.Value,
-                Id = 0,
-                TaskType = 500,
-            };
-
-            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));
-            if (respon != null)
-            {
-                WebResponseContent respone = JsonConvert.DeserializeObject<WebResponseContent>(respon.ToString());
-                if (respone.Status)
+                DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.Row == Convert.ToInt16(strings[1]) && x.Column == Convert.ToInt16(strings[2]) && x.Layer == (i == 0 ? Convert.ToInt16(strings[3]) * 2 - 1 : Convert.ToInt16(strings[3]) * 2) && x.RoadwayNo == Roadway);
+                if (locationInfo == null)
                 {
-                    var taskId = BaseDal.AddData(task);
+                    throw new Exception("鏈煡搴撲綅");
+                }
+
+                //鏌ユ壘娑堥槻绔欏彴
+                var station = _stationManagerRepository.QueryFirst(t => t.Roadway == locationInfo.RoadwayNo && t.stationType == (int)StationManager.FireStation);
+                if (station == null)
+                {
+                    throw new Exception("娑堥槻绔欏彴鏈厤缃�!");
+                }
+
+                //鏌ユ壘搴撳瓨淇℃伅
+                var stockInfo = _stockInfoRepository.QueryFirst(x => x.LocationCode == locationInfo.LocationCode && x.LocationInfo.RoadwayNo == locationInfo.RoadwayNo);
+                //鎵樼洏鐮�
+                string barcode = string.Empty;
+                if (stockInfo != null)
+                {
+                    barcode = stockInfo.PalletCode;
                 }
                 else
                 {
-                    throw new Exception("WCS澶勭悊澶辫触:" + respone.Message);
+                    //鏃犲簱瀛樹俊鎭紝鐢熸垚闅忔満鎵樼洏鐮�
+                    barcode = "M" + DateTime.Now.ToString("MMddHHmmss") + "-" + new Random().Next(100, 1000);
                 }
-            }
-            else
-            {
-                throw new Exception("璇锋眰澶勭悊澶辫触");
+
+                Dt_Task fireTask = BaseDal.QueryFirst(x => x.TaskType == (int)TaskOutboundTypeEnum.OutFireAlarm && x.SourceAddress == locationInfo.LocationCode && x.Roadway == station.Roadway);
+
+                if (fireTask != null)
+                {
+                    throw new Exception("宸叉坊鍔犵伀璀﹀嚭搴撲换鍔�");
+                }
+
+                int taskNum = BaseDal.GetTaskNo().Result;
+                Dt_Task task = new Dt_Task
+                {
+                    CreateDate = DateTime.Now,
+                    Creater = "DTS",
+                    CurrentAddress = locationInfo.LocationCode,
+                    Grade = i == 0 ? 5 : 3,
+                    Dispatchertime = DateTime.Now,
+                    PalletCode = barcode,
+                    Roadway = station.Roadway,
+                    SourceAddress = locationInfo.LocationCode,
+                    TaskState = (int)TaskOutStatusEnum.OutNew,
+                    TaskType = (int)TaskOutboundTypeEnum.OutFireAlarm,
+                    TargetAddress = station.stationLocation,
+                    NextAddress = station.stationLocation,
+                    TaskNum = taskNum, //_taskRepository.GetTaskNo().Result,
+                    TaskId = 0,
+                };
+
+                // 灏濊瘯娣诲姞鏂颁换鍔�
+                WMSTaskDTO taskDTO = new WMSTaskDTO()
+                {
+                    TaskNum = task.TaskNum.Value,
+                    Grade = 1,
+                    PalletCode = task.PalletCode,
+                    RoadWay = task.Roadway,
+                    SourceAddress = task.SourceAddress,
+                    TargetAddress = task.TargetAddress,
+                    TaskState = task.TaskState.Value,
+                    Id = 0,
+                    TaskType = task.TaskType,
+                };
+
+                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));
+                if (respon != null)
+                {
+                    WebResponseContent respone = JsonConvert.DeserializeObject<WebResponseContent>(respon.ToString());
+                    if (respone.Status)
+                    {
+                        var taskId = BaseDal.AddData(task);
+                    }
+                    else
+                    {
+                        throw new Exception("WCS澶勭悊澶辫触:" + respone.Message);
+                    }
+                }
+                else
+                {
+                    throw new Exception("璇锋眰澶勭悊澶辫触");
+                }
             }
             LogFactory.GetLog("DTS鐏鍑哄簱").Info(true, $"\r\r--------------------------------------");
             LogFactory.GetLog("DTS鐏鍑哄簱").Info(true, obj.ToJsonString());

--
Gitblit v1.9.3