From 810fe2bcf1888eacd926f3caa604f033483d20c9 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 30 十月 2024 14:57:33 +0800
Subject: [PATCH] 优化WMS基础管理模块、任务管理添加任务历史信息

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |   84 +++++++++++++++++++++++++++++++++++++-----
 1 files changed, 74 insertions(+), 10 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 5a0ccf0..989566b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -26,9 +26,9 @@
 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_DTO.TaskInfo;
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
@@ -70,7 +70,7 @@
         /// </summary>
         /// <param name="taskDTOs">WMS浠诲姟瀵硅薄闆嗗悎</param>
         /// <returns>杩斿洖澶勭悊缁撴灉</returns>
-        public WebResponseContent ReceiveWMSTask([NotNull]List<WMSTaskDTO> taskDTOs)
+        public WebResponseContent ReceiveWMSTask([NotNull] List<WMSTaskDTO> taskDTOs)
         {
             WebResponseContent content = new WebResponseContent();
             try
@@ -120,6 +120,8 @@
             }
             return content;
         }
+
+
 
         /// <summary>
         /// 鏍规嵁鎵樼洏鍙枫�佽捣濮嬪湴鍧�鍚慦MS璇锋眰浠诲姟
@@ -195,11 +197,11 @@
         /// <returns></returns>
         public Dt_Task? QuertStackerCraneTask(string deviceNo, TaskTypeGroup? taskTypeGroup = null)
         {
-            if(taskTypeGroup == null)
+            if (taskTypeGroup == null)
                 return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
-            if(taskTypeGroup.Value == TaskTypeGroup.InboundGroup)
+            if (taskTypeGroup.Value == TaskTypeGroup.InboundGroup)
                 return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish, TaskOrderBy);
-            if(taskTypeGroup.Value == TaskTypeGroup.OutbondGroup)
+            if (taskTypeGroup.Value == TaskTypeGroup.OutbondGroup)
                 return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy);
             return null;
         }
@@ -213,9 +215,9 @@
         public Dt_Task QueryStackerCraneTask(string deviceNo, string currentAddress = "")
         {
             if (string.IsNullOrEmpty(currentAddress))
-                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
+                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Car_OutFinish), TaskOrderBy);
             else
-                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
+                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.Line_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Car_OutFinish), TaskOrderBy);
         }
 
         /// <summary>
@@ -241,9 +243,9 @@
         public Dt_Task QueryStackerCraneOutTask(string deviceNo, string currentAddress = "")
         {
             if (string.IsNullOrEmpty(currentAddress))
-                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew, TaskOrderBy);
+                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Car_OutFinish, TaskOrderBy);
             else
-                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew && x.CurrentAddress == currentAddress, TaskOrderBy);
+                return BaseDal.QueryFirst(x => x.Roadway == deviceNo && TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.Car_OutFinish && x.CurrentAddress == currentAddress, TaskOrderBy);
         }
 
         /// <summary>
@@ -362,7 +364,7 @@
                     {
                         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 = string.Empty;// $"{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.TargetAddress = task.NextAddress;
                     }
                 }
@@ -593,5 +595,67 @@
             }
             return content;
         }
+
+        public Dt_Task GetTaskInfo(int taskNum)
+        {
+            return BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+        }
+
+        public Dt_Task GetTaskState(int TaskState, int TaskType)
+        {
+            Dt_Task task = null;
+            if (TaskState > 0 && TaskType > 0)
+                task = BaseDal.QueryFirst(x => x.TaskState == TaskState && x.TaskType == TaskType);
+            else if (TaskState > 0)
+                task = BaseDal.QueryFirst(x => x.TaskState == TaskState);
+            else if (TaskType > 0)
+                task = BaseDal.QueryFirst(x => x.TaskType == TaskType);
+            return task;
+        }
+
+        /// <summary>
+        /// 鏌ヨ绌挎杞﹀嚭鍏ュ簱浠诲姟
+        /// </summary>
+        /// <param name="deviceNo"></param>
+        /// <param name="currentAddress"></param>
+        /// <returns></returns>
+        public Dt_Task QueryShuttleCarTask(string deviceNo, string currentAddress = "")
+        {
+            if (string.IsNullOrEmpty(currentAddress))
+                return BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
+            else
+                return BaseDal.QueryFirst(x => x.ShuttleCarCode == deviceNo && x.CurrentAddress == currentAddress && (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.SC_InFinish || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.OutNew), TaskOrderBy);
+        }
+        /// <summary>
+        /// 娣诲姞绉昏溅浠诲姟
+        /// </summary>
+        /// <param name="SourceAddress">璧风偣</param>
+        /// <param name="TargetAddress">缁堢偣</param>
+        /// <param name="ShuttleCarCode">绌挎杞﹀彿</param>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public WebResponseContent AddRelocationCarTask(string SourceAddress, string TargetAddress, string ShuttleCarCode = "", string remark = "")
+        {
+            #region 鍒涘缓鍫嗗灈鏈虹Щ杞︿换鍔�
+            Dt_Task dt_Task = new Dt_Task()
+            {
+                TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
+                Grade = 2,
+                Roadway = "SC01",
+                TaskType = (int)TaskOtherTypeEnum.RelocationCar,
+                SourceAddress = SourceAddress,
+                TargetAddress = TargetAddress,
+                CurrentAddress = "",
+                NextAddress = TargetAddress,
+                CreateDate = DateTime.Now,
+                Creater = "WCS",
+                TaskState = (int)TaskCarStatusEnum.CarNew,
+                ShuttleCarCode = ShuttleCarCode,
+                WMSId = 0,
+                Remark = remark
+            };
+            return AddData(dt_Task);
+            #endregion
+        }
     }
 }

--
Gitblit v1.9.3