From c9982eb3dd76696b8a3851cc6411a71c402d042f Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期三, 06 十一月 2024 20:04:41 +0800
Subject: [PATCH] 11.06

---
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |  107 +++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 86 insertions(+), 21 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 1cdc30a..63d8ec4 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -132,8 +132,8 @@
             try
             {
                 #region 鐪熷疄鏁版嵁
-
-                // 鍒涘缓璇锋眰瀵硅薄
+                // TODO: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧�
+                //// 鍒涘缓璇锋眰瀵硅薄
                 //RequestTaskDto request = new RequestTaskDto()
                 //{
                 //    Position = sourceAddress,
@@ -189,6 +189,28 @@
         public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress)
         {
             return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress, TaskOrderBy);
+        }
+
+        /// <summary>
+        /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟
+        /// </summary>
+        /// <param name="deviceNo">璁惧缂栧彿</param>
+        /// <param name="currentAddress">褰撳墠鍦板潃</param>
+        /// <returns></returns>
+        public Dt_Task QueryNextConveyorLineTask(string deviceNo, string currentAddress)
+        {
+            return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.NextAddress == currentAddress, TaskOrderBy);
+        }
+
+        /// <summary>
+        /// 鏍规嵁鎵樼洏鍙枫�佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟
+        /// </summary>
+        /// <param name="Barcode">鎵樼洏鍙�</param>
+        /// <param name="currentAddress">褰撳墠鍦板潃</param>
+        /// <returns></returns>
+        public Dt_Task QueryBarCodeConveyorLineTask(string Barcode, string currentAddress)
+        {
+            return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress && x.PalletCode == Barcode, TaskOrderBy);
         }
 
         /// <summary>
@@ -397,10 +419,48 @@
 
                     if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish)
                     {
-                        Random random = new Random();
-                        task.CurrentAddress = task.NextAddress;
-                        task.NextAddress = $"{random.Next(1, 1).ToString().PadLeft(3, '0')}-{random.Next(1, 1).ToString().PadLeft(3, '0')}-{random.Next(1, 1).ToString().PadLeft(3, '0')}";
-                        task.TargetAddress = task.NextAddress;
+                        if (task.Roadway.Contains("CH"))
+                        {
+                            Random random = new Random();
+                            task.CurrentAddress = task.NextAddress;
+                            task.NextAddress = $"{random.Next(1, 1).ToString().PadLeft(3, '0')}-{random.Next(0, 0).ToString().PadLeft(3, '0')}-{random.Next(1, 1).ToString().PadLeft(3, '0')}";
+                            task.TargetAddress = task.NextAddress;
+                        }
+                        else
+                        {
+                            Random random = new Random();
+                            task.CurrentAddress = task.NextAddress;
+                            task.NextAddress = "002-020-001";
+                            task.TargetAddress = task.NextAddress;
+                        }
+
+                        #region 鐪熷疄鏁版嵁
+                        // TODO: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧�
+                        //// 鍒涘缓璇锋眰瀵硅薄
+                        //RequestTaskDto request = new RequestTaskDto()
+                        //{
+                        //    Position = task.NextAddress,
+                        //    PalletCode = task.PalletCode,
+                        //};
+
+                        //// 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
+                        //var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/RequestTaskAsync", request.ToJsonString()).Result;
+
+                        //// 鍙嶅簭鍒楀寲鍝嶅簲鍐呭
+                        //content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+
+                        //// 妫�鏌ョ姸鎬佸苟杩斿洖
+                        //if (!content.Status)
+                        //    return content;
+
+                        //// 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
+                        //WMSTaskDTO taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
+
+                        //task.CurrentAddress = task.NextAddress;
+                        //task.NextAddress = taskResult.TargetAddress;
+                        //task.TargetAddress = task.NextAddress;
+                        #endregion
+
                     }
                 }
                 else
@@ -496,7 +556,7 @@
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting)
                 {
-                    //todo
+                    //todo 鍚屾鍒癢MS
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
                     task.TaskState = nextStatus;
                     task.ModifyDate = DateTime.Now;
@@ -504,20 +564,25 @@
                     BaseDal.UpdateData(task);
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�");
 
-                    WMSTaskDTO taskDTO = new WMSTaskDTO()
-                    {
-                        TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
-                        Grade = 1,
-                        PalletCode = task.PalletCode + "S",
-                        RoadWay = "SC01",
-                        SourceAddress = task.TargetAddress,
-                        TargetAddress = "CLOutAreaA",
-                        TaskState = (int)TaskOutStatusEnum.OutNew,
-                        Id = 0,
-                        TaskType = (int)TaskOutboundTypeEnum.Outbound
-                    };
 
-                    content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
+                    //var x = new { taskNum = taskNum };
+                    //var result = HttpHelper.GetAsync("http:127.0.0.1:8098/api/Task/CompleteTaskAsync", x.ToJsonString()).Result;
+                    //content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+
+                    //WMSTaskDTO taskDTO = new WMSTaskDTO()
+                    //{
+                    //    TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
+                    //    Grade = 1,
+                    //    PalletCode = task.PalletCode + "S",
+                    //    RoadWay = "SC01",
+                    //    SourceAddress = task.TargetAddress,
+                    //    TargetAddress = "CLOutAreaA",
+                    //    TaskState = (int)TaskOutStatusEnum.OutNew,
+                    //    Id = 0,
+                    //    TaskType = (int)TaskOutboundTypeEnum.Outbound
+                    //};
+
+                    //content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
                 {
@@ -530,7 +595,7 @@
                 {
                     throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵taskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
                 }
-                content = WebResponseContent.Instance.OK();
+                //content = WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
             {

--
Gitblit v1.9.3