From 7ca9651f81d7b84f054194d3d46fdbd1d9c8b922 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期三, 09 七月 2025 22:55:27 +0800
Subject: [PATCH] 增加质检出入库逻辑

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs |   42 ++++++++++++++++++++++++++++++++++++++----
 1 files changed, 38 insertions(+), 4 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs"
index b5295ff..ef342f2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs"
@@ -5,6 +5,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Reflection.Metadata;
+using System.Security.Cryptography;
 using System.Text;
 using System.Threading.Tasks;
 using WIDESEAWCS_Common.TaskEnum;
@@ -17,6 +18,7 @@
 using WIDESEAWCS_QuartzJob;
 using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_TaskInfoService;
 
 namespace WIDESEAWCS_Tasks
 {
@@ -39,6 +41,20 @@
         {
             try
             {
+                #region 浠诲姟鍙栨秷
+                var CancelTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == TaskInStatusEnum.InCancel.ObjToInt() || x.TaskState == TaskOutStatusEnum.OutCancel.ObjToInt()).ToList();
+                foreach (var CancelTask in CancelTasks)
+                {
+                    var difference = DateTime.Now.AddMinutes(-5);
+                    if (difference > CancelTask.ModifyDate)
+                    {
+                        //todo 鍚屾鍒癢MS
+                        WMSTaskDTO WMStask = _mapper.Map<WMSTaskDTO>(CancelTask);
+                        HttpHelper.PostAsync(WMSInterfaceAddress.CancelTask, WMStask.ToJson(), headers: new Dictionary<string, string>());
+                        _taskService.AddTask_Hty(CancelTask, TaskOperateTypeEnum.AGVDeletion);
+                    }
+                }
+                #endregion
 
                 #region 浠诲姟鏇存柊
                 var Tasks = _taskService.Db.Queryable<Dt_Task>().Where(x =>
@@ -48,7 +64,11 @@
                 x.TaskState < (int)TaskOutStatusEnum.AGV_OutFinish).ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList();
                 foreach (var Task in Tasks)
                 {
-                    var ResultData = HttpHelper.PostAsync(AGVInterfaceAddress.taskResult + Task.TaskNum, null, headers: new Dictionary<string, string>());
+                    var obj = new
+                    {
+                        outID = Task.TaskNum.ToString()
+                    };
+                    var ResultData = HttpHelper.PostAsync(AGVInterfaceAddress.taskResult, obj.ToJson(), headers: new Dictionary<string, string>());
                     if (ResultData.Result != null)
                     {
                         var content = JsonConvert.DeserializeObject<AGVReturnInfo>(ResultData.Result);
@@ -65,21 +85,34 @@
                                     {
                                         Task.TaskState = _taskService.TaskInboundTypes.Contains(Task.TaskType) ? (int)TaskInStatusEnum.AGV_InFinish : TaskOutStatusEnum.AGV_OutFinish.ObjToInt();
                                         Task.CurrentAddress = Task.NextAddress;
+                                        Task.NextAddress = "";
                                         List<Dt_Router> routers = _routerService.QueryNextRoutes(Task.CurrentAddress, Task.TargetAddress);
                                         if (routers.Count > 0)
                                         {
                                             Task.NextAddress = routers.FirstOrDefault()?.ChildPosi ?? "";
                                         }
+                                        if (Task.TaskState == TaskOutStatusEnum.AGV_OutFinish.ObjToInt())
+                                        {
+                                            #region 鍚慦MS鍙嶉鍫嗗灈鏈轰换鍔″畬鎴�
+                                            WMSTaskDTO WMStask = _mapper.Map<WMSTaskDTO>(Task);
+                                            HttpHelper.PostAsync(WMSInterfaceAddress.UpdateTaskStatus, WMStask.ToJson(), headers: new Dictionary<string, string>());
+                                            #endregion
+                                        }
                                     }
                                     break;
                                 case "09":
+                                    {
+                                        Task.TaskState = _taskService.TaskInboundTypes.Contains(Task.TaskType) ? (int)TaskInStatusEnum.InCancel : TaskOutStatusEnum.OutCancel.ObjToInt();
+                                        Task.ModifyDate = DateTime.Now;
+                                        Task.Modifier = "AGV";
+                                    }
                                     break;
                                 default:
                                     break;
                             }
                         }
                     }
-                    Thread.Sleep(1000);
+                    Thread.Sleep(5000);
                 }
                 _taskService.Db.Updateable(Tasks).ExecuteCommand();
                 #endregion
@@ -95,7 +128,8 @@
                     if (content.code == "20000")
                     {
                         var task = newTasks.Where(x => x.TaskNum == agvTaskDTO.outID.ObjToInt()).First();
-                        task.TaskState = _taskService.TaskInboundTypes.Contains(task.TaskType)? TaskInStatusEnum.AGV_InSend.ObjToInt(): TaskOutStatusEnum.AGV_OutSend.ObjToInt();
+                        task.Dispatchertime = DateTime.Now;
+                        task.TaskState = _taskService.TaskInboundTypes.Contains(task.TaskType) ? TaskInStatusEnum.AGV_InSend.ObjToInt() : TaskOutStatusEnum.AGV_OutSend.ObjToInt();
                         UpnewTasks.Add(task);
                     }
                     else
@@ -138,7 +172,7 @@
                 point point2 = new point()
                 {
                     sn = "02",
-                    pointCode = task.NextAddress,
+                    pointCode = task.NextAddress == "1001" ? "2001" : task.NextAddress,
                     pointType = "04",
                     matCode = task.PalletCode
                 };

--
Gitblit v1.9.3