From be484c84a25d1f6c769e7b5e958048d745942e55 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期二, 20 五月 2025 10:32:57 +0800
Subject: [PATCH] 优化出入库逻辑

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineExtend/ConveyorLineExtend.cs |   80 +++++++++++++++++-----------------------
 1 files changed, 34 insertions(+), 46 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineExtend/ConveyorLineExtend.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineExtend/ConveyorLineExtend.cs"
index 34261ee..08bf6b2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineExtend/ConveyorLineExtend.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineExtend/ConveyorLineExtend.cs"
@@ -7,6 +7,7 @@
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_DTO.TaskInfo;
 using WIDESEAWCS_DTO.WMSInfo;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob;
@@ -26,12 +27,15 @@
         public List<Task> ConveyorLineExtend(CommonConveyorLine conveyorLine)
         {
             List<string> childDeviceCodes = _routerService.QueryAllPositions(conveyorLine.DeviceCode);
+            List<string> strings = new List<string>() { "1003", "1006", "1007" };
+            childDeviceCodes.AddRange(strings);
             List<Task> tasks = new List<Task>();
             foreach (string childDeviceCode in childDeviceCodes)
             {
                 try
                 {
                     ConveyorLineTaskCommandR command = conveyorLine.ReadCustomer<ConveyorLineTaskCommandR>(childDeviceCode);
+                    _cacheService.AddOrUpdate(childDeviceCode, command);
                     if (command != null)
                     {
                         if (childDeviceCode == "1002" && command.Status == (ushort)ConveyorStatus.Wait)
@@ -42,60 +46,35 @@
                         {
                             ConveyorLineInFinish(conveyorLine, command, childDeviceCode);
                         }
-                        //else if (childDeviceCode == "1005" && command.Status == (ushort)ConveyorStatus.Stored)
-                        //{
-                        //    Dt_Task task = _taskService.QueryConveyorLineTaskNum(conveyorLine.DeviceCode, childDeviceCode, command.TaskNum);
-                        //    if (task != null)
-                        //    {
-                        //        task.TaskState = TaskOutStatusEnum.Line_OutExecuting.ObjToInt();
-                        //        _taskService.UpdateData(task);
-                        //        ConveyorLineTaskCommandW taskCommand = _mapper.Map<ConveyorLineTaskCommandW>(task);
-                        //        taskCommand.WriterTrue = (short)command.inRead;
-                        //        conveyorLine.SendCommand(taskCommand, childDeviceCode);
-                        //    }
-                        //}
                         else if (childDeviceCode == "1008" && command.Status == (ushort)ConveyorStatus.Stored)
                         {
                             Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
                             if (task != null)
                             {
-                                List<Dt_Router> routers = _routerRepository.QueryData(x => x.StartPosi == task.NextAddress && x.ChildPosiDeviceCode == "AGV" && x.Remark == "鏈崰鐢�");
-                                if (routers.Count > 0)
-                                {
-
-                                }
-                                task.TaskState = TaskOutStatusEnum.Line_OutFinish.ObjToInt();
-                                _taskService.UpdateData(task);
+                                #region MyRegion
+                                //List<Dt_Router> routers = _routerRepository.QueryData(x => x.StartPosi == task.TargetAddress && x.ChildPosiDeviceCode == "AGV" && x.Remark == "鏈崰鐢�");
+                                //if (routers != null && routers.Count > 0)
+                                //{
+                                //    var router = routers.FirstOrDefault();
+                                //    if (router != null)
+                                //    {
+                                //        task.TaskState = TaskOutStatusEnum.Line_OutFinish.ObjToInt();
+                                //        task.CurrentAddress = childDeviceCode;
+                                //        task.NextAddress = router.NextPosi;
+                                //        task.TargetAddress = task.NextAddress;
+                                //        router.Remark = "鍗犵敤";
+                                //        _routerRepository.UpdateData(router);
+                                //        _taskService.UpdateData(task);
+                                //    }
+                                //} 
+                                #endregion
+                                task.TaskState = TaskOutStatusEnum.OutFinish.ObjToInt();
+                                WMSTaskDTO WMStask = _mapper.Map<WMSTaskDTO>(task);
+                                _taskService.AddTask_Hty(task, TaskOperateTypeEnum.AutoComplete);
+                                HttpHelper.PostAsync(WMSInterfaceAddress.UpdateTaskStatus, WMStask.ToJson(), headers: new Dictionary<string, string>());
                             }
                         }
                     }
-                    #region MyRegion
-
-                    //if (command != null && command.Status == (ushort)ConveyorStatus.Stored)//娣诲姞杈撻�佺嚎鐘舵�丆onveyorLineStatus enum
-                    //{
-                    //    switch (childDeviceCode)
-                    //    {
-                    //        case "1002":
-                    //            {
-                    //                RequestInbound(conveyorLine, command, childDeviceCode);
-                    //            }
-                    //            break;
-                    //        case "1004":
-                    //            ConveyorLineInFinish(conveyorLine, command, childDeviceCode);
-                    //            break;
-                    //        //case "105":
-                    //        //    RequestOutbound(conveyorLine, command, childDeviceCode);
-                    //        //    break;
-                    //        case "1008":
-                    //            ConveyorLineOutFinish(conveyorLine, command, childDeviceCode);
-                    //            break;
-                    //            //default:
-                    //            //    RequestInNextAddress(conveyorLine, command, childDeviceCode);
-                    //            //    RequestOutNextAddress(conveyorLine, command, childDeviceCode);
-                    //            //    break;
-                    //    }
-                    //}
-                    #endregion
                 }
                 catch (Exception ex)
                 {
@@ -174,6 +153,15 @@
                 //    //}
                 //}
             }
+            else
+            {
+                Dt_Task _Task = new Dt_Task();
+                _Task.TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss"));
+                _Task.CurrentAddress = childDeviceCode;
+                _Task.NextAddress = "1001";
+                ConveyorLineTaskCommandW taskCommand = _mapper.Map<ConveyorLineTaskCommandW>(_Task);
+                taskCommand.WriterTrue = (short)command.inRead;
+            }
         }
 
         /// <summary>

--
Gitblit v1.9.3