From ad18b0c17b5b1f715c33cb2a2b39589c10434a00 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期六, 09 十一月 2024 13:24:48 +0800
Subject: [PATCH] 11.09-1申请巷道与申请货位拆分

---
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |  180 ++++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 126 insertions(+), 54 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..830c4ce 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -22,6 +22,7 @@
 using Newtonsoft.Json;
 using SqlSugar;
 using System.Diagnostics.CodeAnalysis;
+using System.Threading.Tasks;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseServices;
@@ -131,47 +132,55 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
-                #region 鐪熷疄鏁版嵁
-
+                #region 璇锋眰鍏ュ簱浠诲姟宸烽亾
+                // TODO: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧�
                 // 鍒涘缓璇锋眰瀵硅薄
-                //RequestTaskDto request = new RequestTaskDto()
-                //{
-                //    Position = sourceAddress,
-                //    PalletCode = 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 task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
-
-                //// 澶勭悊浠诲姟骞惰繑鍥炵粨鏋�
-                //content = ReceiveWMSTask(new List<WMSTaskDTO> { task });
-
-                #endregion
-
-                WMSTaskDTO taskDTO = new WMSTaskDTO()
+                RequestTaskDto request = new RequestTaskDto()
                 {
-                    TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
-                    Grade = 1,
+                    Position = sourceAddress,
                     PalletCode = palletCode,
-                    RoadWay = "CHSC01",
-                    SourceAddress = sourceAddress,
-                    TargetAddress = "CHSC01",
-                    TaskState = (int)TaskInStatusEnum.InNew,
-                    Id = 0,
-                    TaskType = (int)TaskInboundTypeEnum.Inbound
                 };
 
-                content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
+                // 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
+                var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestTaskAsync", request.ToJsonString()).Result;
+
+                // 鍙嶅簭鍒楀寲鍝嶅簲鍐呭
+                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+
+                WMSTaskDTO task = new WMSTaskDTO();
+                // 妫�鏌ョ姸鎬佸苟杩斿洖
+                if (!content.Status)
+                {
+                    task = new WMSTaskDTO()
+                    {
+                        TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
+                        Grade = 1,
+                        PalletCode = palletCode,
+                        RoadWay = "CHSC01",
+                        SourceAddress = sourceAddress,
+                        TargetAddress = "1020",
+                        TaskState = (int)TaskOutStatusEnum.Line_OutExecuting,
+                        Id = 0,
+                        TaskType = (int)TaskOutboundTypeEnum.Outbound
+                    };
+
+                    Dt_Task task1 = _mapper.Map<Dt_Task>(task);
+                    task1.CurrentAddress = task.SourceAddress;
+                    task1.NextAddress = "1020";
+                    BaseDal.AddData(task1);
+                    return content.OK();
+                }
+                else
+                {
+                    // 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
+                    task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
+                    // 澶勭悊浠诲姟骞惰繑鍥炵粨鏋�
+                    content = ReceiveWMSTask(new List<WMSTaskDTO> { task });
+                }
+
+
+
+                #endregion
             }
             catch (Exception ex)
             {
@@ -189,6 +198,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 +428,35 @@
 
                     if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish)
                     {
-                        Random random = new Random();
+
+                        #region 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
+                        // TODO: 璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
+                        // 鍒涘缓璇锋眰瀵硅薄
+                        RequestTaskDto taskDto = new RequestTaskDto()
+                        {
+                            Position = task.NextAddress,
+                            PalletCode = task.PalletCode,
+                        };
+
+                        // 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
+                        var abc = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestLocationTaskAsync", taskDto.ToJsonString()).Result;
+                        if (abc == null)
+                            return content.Error();
+                        // 鍙嶅簭鍒楀寲鍝嶅簲鍐呭
+                        content = JsonConvert.DeserializeObject<WebResponseContent>(abc);
+
+                        // 妫�鏌ョ姸鎬佸苟杩斿洖
+                        if (!content.Status)
+                            return content;
+
+                        // 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
+                        WMSTaskDTO taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
+
                         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.NextAddress = taskResult.TargetAddress;
                         task.TargetAddress = task.NextAddress;
+                        #endregion
+
                     }
                 }
                 else
@@ -418,6 +474,16 @@
                 BaseDal.UpdateData(task);
 
                 _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"浜哄伐鎵嬪姩灏嗕换鍔$姸鎬佷粠銆恵oldState}銆戣烦杞埌銆恵task.TaskState}銆�" : $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldState}銆戣浆鍒般�恵task.TaskState}銆�");
+
+                #region  鏇存柊浠诲姟鐘舵��
+                object request = new
+                {
+                    TaskNum = task.TaskNum,
+                    TaskState = task.TaskState
+                };
+                var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/UpdateTaskStatus", request.ToJsonString()).Result;
+                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+                #endregion
 
                 content = WebResponseContent.Instance.OK();
             }
@@ -490,13 +556,13 @@
                     BaseDal.UpdateData(task);
 
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
-                    //todo 鍚屾鍒癢MS
+
 
                     //鏆備笉鑰冭檻澶氫釜鍑哄簱鍙�
                 }
                 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 +570,7 @@
                     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 });
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
                 {
@@ -530,7 +583,26 @@
                 {
                     throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵taskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
                 }
-                content = WebResponseContent.Instance.OK();
+
+
+                #region WMS鍚屾浠诲姟瀹屾垚
+                var keys = new Dictionary<string, object>()
+                {
+                    {"taskNum", taskNum}
+                };
+                var result = HttpHelper.GetAsync($"http://127.0.0.1:5000/api/Task/CompleteTaskAsync", keys).Result;
+                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+                #endregion
+                #region  鏇存柊浠诲姟鐘舵��
+                object request = new
+                {
+                    TaskNum = task.TaskNum,
+                    TaskState = task.TaskState
+                };
+                result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/UpdateTaskStatus", request.ToJsonString()).Result;
+                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+                #endregion
+                //content = WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
             {

--
Gitblit v1.9.3