From 67348f250a1b7970059698002949a5e0a5f3c52f Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期四, 14 八月 2025 08:51:04 +0800
Subject: [PATCH] 上传最新代码

---
 项目代码/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs |  186 +++++++++++++++-------------------------------
 1 files changed, 62 insertions(+), 124 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
index d2bb2c1..c4a7efe 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -30,6 +30,7 @@
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEA_DTO.Agv;
+using WIDESEAWCS_Common;
 using WIDESEAWCS_Common.APIEnum;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
@@ -199,7 +200,7 @@
                 List<Dt_Task> tasks = new List<Dt_Task>();
                 foreach (var item in taskDTOs)
                 {
-                    if (BaseDal.QueryFirst(x => x.TaskNum == item.TaskNum || x.PalletCode == item.PalletCode) != null)
+                    if (BaseDal.QueryFirst(x => x.TaskNum == item.TaskNum) != null)
                     {
                         flag = true;
                         continue;
@@ -215,28 +216,21 @@
                     if (string.IsNullOrEmpty(item.AGVArea))
                     {
                         Dt_StationManger stationManger;
+                        //鑾峰彇绔欏彴淇℃伅
                         if (taskTypeGroup == TaskTypeGroup.InboundGroup)
                         {
                             stationManger = _stationMangerRepository.QueryFirst(x => x.StationCode == item.SourceAddress || x.StationDeviceCode == item.SourceAddress);
-                            //if (stationManger==null && task.TaskType==TaskTypeEnum.InProduct.ObjToInt())
-                            //{
-                            //    stationManger = _stationMangerRepository.QueryFirst(x => x.StackerCraneCode==task.SourceAddress);
-                            //    //杞崲鎴愬搧浠撹捣鐐圭珯鍙�
-                            //    item.SourceAddress = stationManger.StationCode;
-                            //    task.CurrentAddress = stationManger.StationCode;
-                            //    task.SourceAddress = stationManger.StationCode;
-                            //}
                         }
                         else
                         {
-                            stationManger = _stationMangerRepository.QueryFirst(x => x.StackerCraneCode == item.RoadWay || x.Remark==item.RoadWay);
+                            stationManger = _stationMangerRepository.QueryFirst(x => x.StackerCraneCode == item.RoadWay && x.StationType==StationTypeEnum.StationType_OnlyOutbound.ObjToInt());
                         }
                         if (stationManger == null)
                         {
                             return WebResponseContent.Instance.Error($"鏈壘鍒扮珯鍙伴厤缃俊鎭�");
                         }
-
-                        List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && (item.SourceAddress == x.StartPosi || item.RoadWay == x.StartPosi /*|| item.RoadWay == x.ChildPosiDeviceCode || item.RoadWay == x.ChildPosi*/));
+                        //鑾峰彇璺敱淇℃伅
+                        List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && (item.SourceAddress == x.StartPosi || item.RoadWay == x.StartPosi));
                         router = routers.FirstOrDefault();
                         if (router == null)
                         {
@@ -251,122 +245,29 @@
                                 task.NextAddress = router.NextPosi;
                                 task.DeviceCode = router.ChildPosiDeviceCode;
                             }
-                            else if (item.TaskType == TaskTypeEnum.MesMatReturn.ObjToInt() && !router.IsEnd)
-                            {
-                                task.NextAddress = router.NextPosi;
-                                task.DeviceCode = router.ChildPosi;
-                            }
-                            else if ((item.TaskType == TaskTypeEnum.MesPalletLargeReturn.ObjToInt() || item.TaskType == TaskTypeEnum.MesPalletSmallReturn.ObjToInt()) && router.IsEnd)
-                            {
-                                task.NextAddress = router.NextPosi;
-                                task.DeviceCode = router.ChildPosi;
-                            }
-                            else if (item.TaskType == TaskTypeEnum.MesOutbound.ObjToInt() || item.TaskType == TaskTypeEnum.MesHandOutbound.ObjToInt() || item.TaskType == TaskTypeEnum.MesHandPickOutbound.ObjToInt() || (item.TaskType == TaskTypeEnum.OutAllocate.ObjToInt() && item.RoadWay.Contains("BC")))
-                            {
-                                task.NextAddress = router.NextPosi;
-                                task.DeviceCode = stationManger.StackerCraneCode;
-                                if (item.TaskType == TaskTypeEnum.MesOutbound.ObjToInt() && task.TargetAddress== "SCUTL-001")
-                                {
-                                    task.TaskState = TaskStatusEnum.MesPending.ObjToInt();
-                                }
-                                else
-                                {
-                                    task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt();
-                                }
-                            }
-                            else if (item.TaskType == TaskTypeEnum.MesOutbound.ObjToInt() && item.RoadWay.Contains("ZH"))
-                            {
-                                task.NextAddress = stationManger.StackerCraneStationCode;
-                                task.DeviceCode = stationManger.StackerCraneCode;
-                                task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt();
-                            }
                             else
                             {
-                                task.NextAddress = taskTypeGroup == TaskTypeGroup.InboundGroup ? task.TargetAddress : router.NextPosi;
-                                if (item.RoadWay.Contains("AGV_FL")|| (item.RoadWay.Contains("AGV_CP") && taskTypeGroup == TaskTypeGroup.OutbondGroup))
-                                {
-                                    task.DeviceCode = item.RoadWay;
-                                    task.AgvTaskNum = item.RoadWay + DateTime.Now.ToString("yyyyMMdd") + item.TaskNum;
-                                }
-                                else if(item.RoadWay.Contains("AGV_CP") && taskTypeGroup == TaskTypeGroup.InboundGroup)
-                                {
-                                    task.DeviceCode = stationManger.StationDeviceCode;
-                                    task.AgvTaskNum = task.Roadway + DateTime.Now.ToString("yyyyMMdd") + item.TaskNum;
-                                }
-                                else
-                                {
-                                    task.DeviceCode = stationManger.StationDeviceCode;
-                                }
+                                task.DeviceCode = stationManger.StackerCraneCode;
+                                task.NextAddress = router.NextPosi;
                             }
                         }
                         else
                         {
-                            if (item.RoadWay=="AGV_CP")
+                            if (taskTypeGroup == TaskTypeGroup.InboundGroup && !task.Roadway.Contains("YL"))
                             {
-                                Dt_Router routerSelect = _routerRepository.QueryFirst(x => x.InOutType == item.TaskType && item.RoadWay == x.StartPosi && x.NextPosi==item.TargetAddress);
-                                if (routerSelect != null)
-                                {
-                                    task.NextAddress = routerSelect.NextPosi;
-                                    task.DeviceCode = routerSelect.ChildPosi;
-                                    task.AgvTaskNum = item.RoadWay + DateTime.Now.ToString("yyyyMMdd") + item.TaskNum;
-                                }
-                                else
-                                {
-                                    return content.Error("鏈壘鍒拌矾鐢变俊鎭�");
-                                }
+                                task.CurrentAddress = router.StartPosi;
+                                task.NextAddress = "";
+                                task.DeviceCode = router.ChildPosiDeviceCode;
                             }
                             else
                             {
-                                List<Dt_Router> dt_Routers = _routerService.QueryNextRoutes(item.SourceAddress, item.RoadWay, item.TaskType);
-                                if (dt_Routers != null && dt_Routers.Count > 0)
-                                {
-                                    task.NextAddress = dt_Routers.FirstOrDefault().NextPosi;
-                                    task.DeviceCode = dt_Routers.FirstOrDefault().ChildPosi;
-                                }
-                                else
-                                {
-                                    task.NextAddress = "";
-                                    task.DeviceCode = "";
-                                }
+                                router = routers.FirstOrDefault(x=>x.ChildPosiDeviceCode==task.Roadway);
+                                task.CurrentAddress = router.StartPosi;
+                                task.NextAddress = router.NextPosi;
+                                task.DeviceCode = router.ChildPosi;
                             }
                         }
                     }
-                    else
-                    {
-                        if (taskTypeGroup == TaskTypeGroup.OutbondGroup)
-                        {
-                            task.AgvTaskNum = item.AGVArea + DateTime.Now.ToString("yyyyMMdd") + item.TaskNum;
-                            List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && item.AGVArea == x.NextPosi);
-                            if (routers.FirstOrDefault() == null)
-                            {
-                                return WebResponseContent.Instance.Error($"鏈壘鍒拌矾鐢遍厤缃俊鎭�");
-                            }
-                            router = routers.FirstOrDefault();
-                            task.NextAddress = router?.StartPosi ?? "";
-                            task.DeviceCode = item.RoadWay;
-                            task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt();
-                        }
-                        else
-                        {
-                            task.AgvTaskNum = item.AGVArea + DateTime.Now.ToString("yyyyMMdd") + item.TaskNum;
-                            List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && item.AGVArea == x.StartPosi);
-                            if (routers.FirstOrDefault() == null)
-                            {
-                                return WebResponseContent.Instance.Error($"鏈壘鍒拌矾鐢遍厤缃俊鎭�");
-                            }
-                            router = routers.FirstOrDefault();
-                            Dt_StationManger? stationManger = _stationMangerRepository.QueryData(x => true).FirstOrDefault(x=>x.StationCode== router?.NextPosi);
-                            if (stationManger == null)
-                            {
-                                return WebResponseContent.Instance.Error($"鏈壘鍒扮珯鍙伴厤缃俊鎭�");
-                            }
-
-                            task.NextAddress = stationManger?.AGVStationCode ?? "";
-                            task.DeviceCode = stationManger?.Remark ?? "";
-                            task.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt();
-                        }
-                    }
-
                     tasks.Add(task);
                 }
                 BaseDal.AddData(tasks);
@@ -429,14 +330,49 @@
             }
             return content;
         }
-
-        /// <summary>
-        /// 
+        // <summary>
+        /// 璇锋眰鍏ュ簱浠诲姟
         /// </summary>
-        /// <param name="palletCode"></param>
-        /// <param name="sourceAddress"></param>
+        /// <param name="palletCode">鎵樼洏鍙�</param>
+        /// <param name="sourceAddress">璧峰鍦板潃</param>
+        /// /// <param name="roadWay">宸烽亾</param>
         /// <returns></returns>
-        public WebResponseContent RequestWMSTaskSimple(string palletCode, string sourceAddress)
+        public WebResponseContent RequestYLWMSTaskSimple(string palletCode, string sourceAddress)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                string address = AppSettings.Get("WMSApiAddress");
+                if (string.IsNullOrEmpty(address))
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒癢MSApi鍦板潃");
+                }
+                string responseStr = HttpHelper.Get($"{address}/api/Task/RequestYLWMSTaskSimple?stationCode={sourceAddress}&palletCode={palletCode}");
+                WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr);
+                if (responseContent != null && responseContent.Status && responseContent.Data != null)
+                {
+                    WMSTaskDTO? taskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(responseContent.Data.ToString());
+                    if (taskDTO != null)
+                    {
+                        content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
+                    }
+                }
+
+            }
+            catch (Exception ex)
+            {
+                content = WebResponseContent.Instance.Error(ex.Message);
+            }
+            return content;
+        }
+        // <summary>
+        /// 璇锋眰鍏ュ簱浠诲姟
+        /// </summary>
+        /// <param name="palletCode">鎵樼洏鍙�</param>
+        /// <param name="sourceAddress">璧峰鍦板潃</param>
+        /// /// <param name="roadWay">宸烽亾</param>
+        /// <returns></returns>
+        public WebResponseContent RequestWMSTaskSimple(string palletCode, string sourceAddress, string roadWay="", int taskType=630)
         {
             WebResponseContent content = new WebResponseContent();
             try
@@ -457,9 +393,10 @@
                 {
                     Id = 1,
                     TaskNum = DateTime.Now.ToString("mmss").ObjToInt(),
-                    PalletCode="",
-                    RoadWay="",
-                    TaskType=TaskTypeEnum.InProduct.ObjToInt(),
+                    PalletCode= palletCode,
+                    RoadWay= roadWay ?? "",
+                    TaskType= taskType,
+                    PalletType=1,
                     TaskStatus=TaskStatusEnum.New.ObjToInt(),
                     SourceAddress= sourceAddress,
                     TargetAddress="",
@@ -745,6 +682,7 @@
         /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns>
         public Dt_Task QueryStackerCraneTask(string deviceNo, string currentAddress = "")
         {
+            //鍒ゆ柇鏄惁涓虹┖
             if (string.IsNullOrEmpty(currentAddress))
                 return BaseDal.QueryFirst(x => x.DeviceCode == deviceNo && x.TaskState == (int)TaskStatusEnum.SC_Execute, TaskOrderBy);
             else

--
Gitblit v1.9.3