From 9a7c4fea85f85824dddeac9e6ce6ebb75ccee679 Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期二, 29 四月 2025 15:26:15 +0800
Subject: [PATCH] 修改问题晚上充电逻辑

---
 Admin.NET/WCS.Application/PLC/PLCService.cs |   81 ++++++++++++++++++++++++----------------
 1 files changed, 49 insertions(+), 32 deletions(-)

diff --git a/Admin.NET/WCS.Application/PLC/PLCService.cs b/Admin.NET/WCS.Application/PLC/PLCService.cs
index bc201db..e8a2fe2 100644
--- a/Admin.NET/WCS.Application/PLC/PLCService.cs
+++ b/Admin.NET/WCS.Application/PLC/PLCService.cs
@@ -278,22 +278,27 @@
                             {
                                 return; // 灞傛暟閿欒
                             }
-                            //娣诲姞灏忚溅鍏呯數浣嶇疆
-                            WcsTask modCarTask = new WcsTask()
+                            var getCdTask = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && m.Levels == 888 && m.EndLocate == endLocateCar && m.Type == PLCTypeEnum.ShuttleCar && m.Status <= TaskStatusEnum.Doing);
+                            if (getCdTask == null)
                             {
-                                TaskNo = _taskService.GetTaskCode(),
-                                TaskType = TaskTypeEnum.Move,
-                                Type = PLCTypeEnum.ShuttleCar,
-                                StartLocate = carXYZ,
-                                EndLocate = endLocateCar,
-                                PalletNo = "",
-                                Status = TaskStatusEnum.Wait,
-                                Levels = 888, //鍏呯數绛夌骇浼樺厛浠诲姟绛夌骇
-                                Origin = "WCS",
-                                CarIp = modDevice.PlcIdIP
-                            };
-                            _db.Insertable(modCarTask).ExecuteCommand();
-                            HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>());
+                                //娣诲姞灏忚溅鍏呯數浣嶇疆
+                                WcsTask modCarTask = new WcsTask()
+                                {
+                                    TaskNo = _taskService.GetTaskCode(),
+                                    TaskType = TaskTypeEnum.Move,
+                                    Type = PLCTypeEnum.ShuttleCar,
+                                    StartLocate = carXYZ,
+                                    EndLocate = endLocateCar,
+                                    PalletNo = "",
+                                    Status = TaskStatusEnum.Wait,
+                                    Levels = 888, //鍏呯數绛夌骇浼樺厛浠诲姟绛夌骇
+                                    Origin = "WCS",
+                                    CarIp = modDevice.PlcIdIP
+                                };
+                                _db.Insertable(modCarTask).ExecuteCommand();
+                                HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>());
+                            }
+                            
                         }
                         else if(resultDl.IsSucceed && valueDl < (int)FourWayCarDLEnum.Dl2)
                         {
@@ -326,32 +331,37 @@
                                         var endLocateCar = "";
                                         if (valuez == 1)
                                         {
-                                            endLocateCar = "011201";
+                                            endLocateCar = "210401";
                                         }
                                         else if (valuez == 2)
                                         {
-                                            endLocateCar = "011202";
+                                            endLocateCar = "210402";
                                         }
                                         else
                                         {
                                             return; // 灞傛暟閿欒
                                         }
-                                        //娣诲姞灏忚溅鍏呯數浣嶇疆
-                                        WcsTask modCarTask = new WcsTask()
+                                        var getCdTask = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && m.Levels == 888 && m.EndLocate == endLocateCar && m.Type == PLCTypeEnum.ShuttleCar && m.Status <= TaskStatusEnum.Doing);
+                                        if (getCdTask == null)
                                         {
-                                            TaskNo = _taskService.GetTaskCode(),
-                                            TaskType = TaskTypeEnum.Move,
-                                            Type = PLCTypeEnum.ShuttleCar,
-                                            StartLocate = carXYZ,
-                                            EndLocate = endLocateCar,
-                                            PalletNo = "",
-                                            Status = TaskStatusEnum.Wait,
-                                            Levels = 888, //鍏呯數绛夌骇浼樺厛浠诲姟绛夌骇
-                                            Origin = "WCS",
-                                            CarIp = modDevice.PlcIdIP
-                                        };
-                                        _db.Insertable(modCarTask).ExecuteCommand();
-                                        HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>());
+                                            //娣诲姞灏忚溅鍏呯數浣嶇疆
+                                            WcsTask modCarTask = new WcsTask()
+                                            {
+                                                TaskNo = _taskService.GetTaskCode(),
+                                                TaskType = TaskTypeEnum.Move,
+                                                Type = PLCTypeEnum.ShuttleCar,
+                                                StartLocate = carXYZ,
+                                                EndLocate = endLocateCar,
+                                                PalletNo = "",
+                                                Status = TaskStatusEnum.Wait,
+                                                Levels = 888, //鍏呯數绛夌骇浼樺厛浠诲姟绛夌骇
+                                                Origin = "WCS",
+                                                CarIp = modDevice.PlcIdIP
+                                            };
+                                            _db.Insertable(modCarTask).ExecuteCommand();
+                                            HubUtil.PublicTask(modCarTask.Adapt<WcsTaskOutput>());
+                                        }
+                                       
                                     }
                                 }
 
@@ -463,6 +473,13 @@
                             carTaskNext.CarTaskNo = carTaskNo;
                             _db.Updateable(carTaskNext).ExecuteCommand();
                             //娓呴櫎灏忚溅绌洪棽鏃堕棿
+                            var carTimeClear = _db.Queryable<WcsCarTime>().First(m=>m.IsDelete == false && m.CarIp == modDevice.PlcIdIP);
+                            if (carTimeClear!= null)
+                            {
+                                carTimeClear.CarTime = null;
+                                carTimeClear.UpdateTime = DateTime.Now;
+                                _db.Updateable(carTimeClear).ExecuteCommand();
+                            }
                             var taskMonitor = new WcsTaskMonitor()
                             {
                                 TaskNo = carTaskNext.TaskNo,

--
Gitblit v1.8.0