From 7d2fd750dc14c4f5fb31a166727b259d3f2d3b33 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 26 十二月 2024 21:47:20 +0800
Subject: [PATCH] agv

---
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs                 |  101 +++++++++++++++++++++++++++++++++
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs |    2 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs     |   12 ++++
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Agv/AgvTaskDTO.cs               |    8 ++
 4 files changed, 121 insertions(+), 2 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
index e8a052b..ea1acd6 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
@@ -58,6 +58,18 @@
         ProductionReturn = 550,
 
         /// <summary>
+        /// 绾胯竟浠撳叆搴�
+        /// </summary>
+        [Description("绾胯竟浠撳叆搴�")]
+        InboundXB = 560,
+
+        /// <summary>
+        /// 鏈哄彴鍏ュ簱
+        /// </summary>
+        [Description("鏈哄彴鍏ュ簱")]
+        InboundJT = 570,
+
+        /// <summary>
         /// 宸烽亾鍐呯Щ搴�
         /// </summary>
         [Description("宸烽亾鍐呯Щ搴�")]
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Agv/AgvTaskDTO.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Agv/AgvTaskDTO.cs"
index 583c83c..59634bc 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Agv/AgvTaskDTO.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Agv/AgvTaskDTO.cs"
@@ -26,7 +26,7 @@
         /// <summary>
         /// 浣嶇疆璺緞
         /// </summary>
-        public List<object> PositionCodePath { get; set; }
+        public List<CodePath> PositionCodePath { get; set; }
         /// <summary>
         /// 杞藉叿缂栧彿
         /// </summary>
@@ -69,4 +69,10 @@
         /// </summary>
         public string Data { get; set; }
     }
+
+    public class CodePath
+    {
+        public string type { get; set; }
+        public string positionCode { get; set; }
+    }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs"
index 18b5cc0..5f367e3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs"
@@ -78,7 +78,7 @@
             return content;
         }
         /// <summary>
-        /// AGV浠诲姟鐘舵�佸埛鏂�
+        /// AGV浠诲姟鐘舵�佸埛鏂�/AGV浠诲姟瀹屾垚
         /// </summary>
         /// <param name="agvUpdateModel"></param>
         /// <returns></returns>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs"
new file mode 100644
index 0000000..09bcf17
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs"
@@ -0,0 +1,101 @@
+锘縰sing AutoMapper;
+using Newtonsoft.Json;
+using Quartz;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection.Metadata;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_DTO.Agv;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.Service;
+
+namespace WIDESEAWCS_Tasks
+{
+    [DisallowConcurrentExecution]
+    public class AGVJob : JobBase, IJob
+    {
+        public readonly ITaskService _taskService;
+        private readonly ITaskExecuteDetailService _taskExecuteDetailService;
+        private readonly IRouterService _routerService;
+        private readonly IMapper _mapper;
+
+        public AGVJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper)
+        {
+            _taskService = taskService;
+            _taskExecuteDetailService = taskExecuteDetailService;
+            _routerService = routerService;
+            _mapper = mapper;
+        }
+        public Task Execute(IJobExecutionContext context)
+        {
+            try
+            {
+                List<Dt_Task> UpTasks = new List<Dt_Task>();
+                var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == TaskStatusEnum.AGV_Execute.ObjToInt() || x.TaskState == TaskStatusEnum.New.ObjToInt()).ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList();
+                foreach (var agvTask in newTasks)
+                {
+                    AgvTaskDTO taskDTO = new AgvTaskDTO()
+                    {
+                        ReqCode = agvTask.TaskNum.ToString(),
+                        TaskTyp = AgvTaskType(agvTask.TaskType, agvTask.DeviceCode),
+                        PositionCodePath = new List<CodePath>()
+                        {
+                            new CodePath()
+                            {
+                                type="",
+                                positionCode=""
+                            },
+                            new CodePath()
+                            {
+                                type="",
+                                positionCode=""
+                            }
+                        },
+                        PodTyp = agvTask.PalletType == 1 ? "XX" : "DD",
+                    };
+                    WebResponseContent content = _taskService.AgvSendTask(taskDTO);
+                    if (content.Status)
+                    {
+                        agvTask.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt();
+                        UpTasks.Add(agvTask);
+                    }
+                }
+                _taskService.UpdateData(UpTasks);
+            }
+            catch (Exception ex)
+            {
+                Console.Out.WriteLine(nameof(AGVJob) + ":" + ex.Message);
+            }
+            return Task.CompletedTask;
+        }
+
+        public string AgvTaskType(int TaskType, string DeviceCode)
+        {
+            switch (DeviceCode)
+            {
+                case "SC01-CSJ":
+                    {
+                        return TaskType == TaskTypeEnum.ProductionReturn.ObjToInt() ? "23" : "24";
+                    }
+                case "SC01-ZH":
+                    {
+                        if (TaskType == TaskTypeEnum.InboundXB.ObjToInt())
+                            return "20";
+                        else if (TaskType == TaskTypeEnum.InboundJT.ObjToInt())
+                            return "21";
+                        else return "22";
+                    }
+                default:
+                    throw new NotImplementedException();
+            }
+        }
+    }
+}

--
Gitblit v1.9.3