From 10797a680feaa24bdc17d10ac085e323be807819 Mon Sep 17 00:00:00 2001
From: chenyong <chenyong@hnkhzn.com>
Date: 星期一, 18 十一月 2024 15:56:29 +0800
Subject: [PATCH] 202411-18  01

---
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |  183 +++++++++++++++++++++++++++------------------
 1 files changed, 111 insertions(+), 72 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 70f9860..4316572 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,60 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
-                #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()
+                var hasTask = BaseDal.QueryFirst(x => x.PalletCode == palletCode);
+                if (hasTask != null)
                 {
-                    TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
-                    Grade = 1,
+                    return content;
+                }
+                #region 璇锋眰鍏ュ簱浠诲姟宸烽亾
+                // TODO: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧�
+                // 鍒涘缓璇锋眰瀵硅薄
+                RequestTaskDto request = new RequestTaskDto()
+                {
+                    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)
             {
@@ -398,56 +412,50 @@
                 int oldState = task.TaskState;
                 if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                 {
-                    if (task.TaskState >= (int)TaskOutStatusEnum.OutFinish)
-                    {
-                        return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�");
-                    }
+                    //if (task.TaskState >= (int)TaskOutStatusEnum.OutFinish)
+                    //{
+                    //    return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�");
+                    //}
 
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>();
 
                     task.TaskState = nextStatus;
+
+                    if (task.TaskState == (int)TaskOutStatusEnum.Line_OutFinish)
+                    {
+                        task.ModifyDate = DateTime.Now;
+                        task.Modifier = "System";
+                        BaseDal.DeleteData(task);
+                    }
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                 {
-                    if (task.TaskState >= (int)TaskInStatusEnum.InFinish)
-                    {
-                        return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�");
-                    }
+                    //if (task.TaskState >= (int)TaskInStatusEnum.InFinish)
+                    //{
+                    //    return content = WebResponseContent.Instance.Error($"璇ヤ换鍔$姸鎬佷笉鍙烦杞埌涓嬩竴姝�,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟鐘舵��:銆恵task.TaskState}銆�");
+                    //}
 
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
                     task.TaskState = nextStatus;
 
                     if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish)
                     {
-                        //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: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧�
+                        #region 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
+                        // TODO: 璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
                         // 鍒涘缓璇锋眰瀵硅薄
-                        RequestTaskDto request = new RequestTaskDto()
+                        RequestTaskDto taskDto = new RequestTaskDto()
                         {
                             Position = task.NextAddress,
                             PalletCode = task.PalletCode,
                         };
 
                         // 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
-                        var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/RequestTaskAsync", request.ToJsonString()).Result;
-
+                        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>(result);
+                        content = JsonConvert.DeserializeObject<WebResponseContent>(abc);
 
                         // 妫�鏌ョ姸鎬佸苟杩斿洖
                         if (!content.Status)
@@ -461,6 +469,14 @@
                         task.TargetAddress = task.NextAddress;
                         #endregion
 
+                    }
+                    else if (task.TaskState == (int)TaskInStatusEnum.SC_InFinish)
+                    {
+
+                        task.ModifyDate = DateTime.Now;
+                        task.Modifier = "System";
+
+                        BaseDal.DeleteData(task);
                     }
                 }
                 else
@@ -478,6 +494,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();
             }
@@ -550,7 +576,7 @@
                     BaseDal.UpdateData(task);
 
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
-                    //todo 鍚屾鍒癢MS
+
 
                     //鏆備笉鑰冭檻澶氫釜鍑哄簱鍙�
                 }
@@ -565,12 +591,6 @@
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�");
 
 
-                    #region WMS鍚屾浠诲姟瀹屾垚
-                    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);
-                    #endregion
-
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
                 {
@@ -583,6 +603,25 @@
                 {
                     throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵taskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
                 }
+
+
+                #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