From a15d996584733d60d0adddcd791f029d608c4fae Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期日, 03 十一月 2024 09:57:56 +0800
Subject: [PATCH] 2222

---
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |  131 +++++++++++++++++++++++++++++++++----------
 1 files changed, 99 insertions(+), 32 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 53676e6..20a3264 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -1,4 +1,5 @@
 锘�#region << 鐗� 鏈� 娉� 閲� >>
+
 /*----------------------------------------------------------------
  * 鍛藉悕绌洪棿锛歐IDESEAWCS_TaskInfoService
  * 鍒涘缓鑰咃細鑳$搴�
@@ -11,32 +12,27 @@
  * 淇敼鏃堕棿锛�
  * 鐗堟湰锛歏1.0.1
  * 淇敼璇存槑锛�
- * 
+ *
  *----------------------------------------------------------------*/
+
 #endregion << 鐗� 鏈� 娉� 閲� >>
 
 using AutoMapper;
-using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
+using HslCommunication;
+using Newtonsoft.Json;
 using SqlSugar;
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
 using System.Diagnostics.CodeAnalysis;
-using System.Linq;
-using System.Reflection;
-using System.Text;
-using System.Threading.Tasks;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseServices;
-using WIDESEAWCS_Core.Enums;
+using WIDESEAWCS_Core.Helper;
 using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_DTO.WMS;
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Service;
-using WIDESEAWCS_Common.TaskEnum;
 
 namespace WIDESEAWCS_TaskInfoService
 {
@@ -53,7 +49,8 @@
                 {nameof(Dt_Task.CreateDate),OrderByType.Asc},
             };
 
-        public Dictionary<string, OrderByType> TaskOrderBy { get { return _taskOrderBy; } set { _taskOrderBy = value; } }
+        public Dictionary<string, OrderByType> TaskOrderBy
+        { get { return _taskOrderBy; } set { _taskOrderBy = value; } }
 
         public List<int> TaskInboundTypes => typeof(TaskInboundTypeEnum).GetEnumIndexList();
 
@@ -134,14 +131,41 @@
             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()
                 {
                     TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
                     Grade = 1,
                     PalletCode = palletCode,
-                    RoadWay = "SC01",
+                    RoadWay = "CHSC01",
                     SourceAddress = sourceAddress,
-                    TargetAddress = "SC01",
+                    TargetAddress = "CHSC01",
                     TaskState = (int)TaskInStatusEnum.InNew,
                     Id = 0,
                     TaskType = (int)TaskInboundTypeEnum.Inbound
@@ -187,6 +211,17 @@
         public Dt_Task QueryCompletedConveyorLineTask(int taskNum, string currentAddress)
         {
             return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress && (x.TaskState == (int)TaskInStatusEnum.Line_InFinish || x.TaskState == (int)TaskOutStatusEnum.Line_OutFinish), TaskOrderBy);
+        }
+
+        /// <summary>
+        /// 鏍规嵁浠诲姟鍙枫�佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏂板缓鐨勪换鍔�
+        /// </summary>
+        /// <param name="taskNum">浠诲姟鍙�</param>
+        /// <param name="currentAddress">褰撳墠鍦板潃</param>
+        /// <returns></returns>
+        public Dt_Task QueryCraneConveyorLineTask(int taskNum, string currentAddress)
+        {
+            return BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress && (x.TaskState == (int)TaskInStatusEnum.InNew || x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
         }
 
         /// <summary>
@@ -364,8 +399,36 @@
                     {
                         Random random = new Random();
                         task.CurrentAddress = task.NextAddress;
-                        task.NextAddress = $"{random.Next(1, 100).ToString().PadLeft(3, '0')}-{random.Next(1, 100).ToString().PadLeft(3, '0')}-{random.Next(1, 100).ToString().PadLeft(3, '0')}";
+                        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;
+
+                        #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
@@ -461,7 +524,7 @@
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup && task.TaskState == (int)TaskInStatusEnum.SC_InExecuting)
                 {
-                    //todo 
+                    //todo
                     int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
                     task.TaskState = nextStatus;
                     task.ModifyDate = DateTime.Now;
@@ -469,20 +532,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)
                 {
@@ -490,13 +558,12 @@
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OtherGroup)
                 {
-
                 }
                 else
                 {
                     throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵taskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
                 }
-                content = WebResponseContent.Instance.OK();
+                //content = WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
             {
@@ -596,4 +663,4 @@
             return content;
         }
     }
-}
+}
\ No newline at end of file

--
Gitblit v1.9.3