From 28110912ca4803e5793f181517d7bf2d7a5ea2ad Mon Sep 17 00:00:00 2001
From: HuBingJie <3146306518@qq.com>
Date: 星期五, 05 十二月 2025 00:32:49 +0800
Subject: [PATCH] 1

---
 代码管理/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs |   63 ++++++++++++++++++++++++++++---
 1 files changed, 56 insertions(+), 7 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
index a944ecd..dc2793c 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
@@ -9,6 +9,7 @@
 using WIDESEAWCS_QuartzJob;
 using WIDESEAWCS_QuartzJob.DTO;
 using WIDESEAWCS_QuartzJob.Service;
+using WIDESEAWCS_TaskInfoService;
 using WIDESEAWCS_Tasks.ConveyorLineJob;
 using WIDESEAWCS_Tasks.StackerCraneJob;
 
@@ -24,6 +25,7 @@
         private readonly IMapper _mapper;
         private readonly IRgvOperationService _gvOperationService;
         private readonly IEquipmentStatusService _equipmentStatusService;
+        //private readonly TaskService _task;
 
         public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IAgvStationService agvStation, IMapper mapper, IRgvOperationService gvOperationService, IEquipmentStatusService equipmentStatusService)
         {
@@ -34,6 +36,7 @@
             _mapper = mapper;
             _gvOperationService = gvOperationService;
             _equipmentStatusService=equipmentStatusService;
+            //_task = task;
         }
 
         public async Task Execute(IJobExecutionContext context)
@@ -88,7 +91,7 @@
 
             if (aQMConveyor.DoorRequest == 1 && aQMConveyor.IndicatorStatus == (int)SafetyDoorStatus.YellowBlink2Hz)
             {
-                if (aQMConveyor.EmergencyStopStatus == 1)
+                if (aQMConveyor.EmergencyStopStatus == 1)  //璇锋眰寮�闂ㄧ瓑寰呬换鍔″畬鎴�
                 {
                     bool AQMzckm = tasktype == 1 ? GetDeviceAddress.InRGVRGVStepprocess() : GetDeviceAddress.OutRGVRGVStepprocess();    //鍒ゆ柇鏄惁鏈夎繘绋嬩换鍔�
                     if (AQMzckm)
@@ -97,7 +100,8 @@
                         bool RGVRGV_DWorkingmode = tasktype == 1 ? _gvOperationService.InWriteOutbuttonpause(null).Status : _gvOperationService.WriteOutbuttonpause(null).Status;
 
                         bool RGVstate = tasktype == 1 ? GetDeviceAddress.InRGVStatice() : GetDeviceAddress.OutRGVStatice();     //鍒ゆ柇鏄惁鍏ㄤ负鎵嬪姩
-                        if (RGVstate)
+                        WebResponseContent webResponse = _taskService.StkRunStatus();
+                        if (RGVstate && webResponse.Status == true)
                         {
                             //鍐欏叆寮�闂ㄤ俊鍙�
                             GetDeviceAddress.WriteSecurityDoorpolice(aGVStation.ChildPosiDeviceCode, "OpenDoor", 1);
@@ -105,10 +109,12 @@
                     }
 
                 }
-                else
+                else //鎬ュ仠绔嬮┈鏆傚仠璁惧
                 {
                     bool AQMkm = tasktype == 1 ? GetDeviceAddress.InRGVStatice() : GetDeviceAddress.OutRGVStatice();
-                    if (AQMkm)
+                    WebResponseContent webResponse = _taskService.StkRunStatus();
+
+                    if (AQMkm && webResponse.Status == true)
                     {
                         GetDeviceAddress.WriteSecurityDoorpolice(aGVStation.ChildPosiDeviceCode, "OpenDoor", 1);
                     }
@@ -227,18 +233,61 @@
         }
 
         //绔欏彴淇″彿
-        public bool StoticCommand(CommonConveyorLine conveyorLine, string kladder)
+     /*   public bool StoticCommand(CommonConveyorLine conveyorLine, string kladder)
         {
             DeviceProDTO? deviceProDTO6 = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == kladder
                             && x.DeviceProParamName == "HCJ_GoodsStatus"
                             && x.DeviceProParamType == "ReadDeviceCommand");
             if(deviceProDTO6 == null) { return false; }
 
+            if (deviceProDTO6.DeviceChildCode == "2016"||deviceProDTO6.DeviceChildCode == "2017"|| deviceProDTO6.DeviceChildCode == "2018"|| deviceProDTO6.DeviceChildCode == "2019"
+                || deviceProDTO6.DeviceChildCode == "1001"|| deviceProDTO6.DeviceChildCode == "1002")
+            {
+                var value1 = conveyorLine.Communicator.Read<short>(deviceProDTO6.DeviceProAddress);
+                //寤舵椂5绉�
+                System.Threading.Thread.Sleep(5000);
+                var value2 = conveyorLine.Communicator.Read<short>(deviceProDTO6.DeviceProAddress);
+                if (value1 != value2 && (value1 !=0 && value2 !=0)) { return false; };
+                return true;
+            }
             var value = conveyorLine.Communicator.Read<short>(deviceProDTO6.DeviceProAddress);
+
             if (value == 0) {  return true; }
             return false;
+        }*/
+
+
+
+        //绔欏彴淇″彿
+        public bool StoticCommand(CommonConveyorLine conveyorLine, string kladder)
+        {
+            DeviceProDTO? deviceProDTO = conveyorLine.DeviceProDTOs.FirstOrDefault(x => x.DeviceChildCode == kladder
+                            && x.DeviceProParamName == "HCJ_GoodsStatus"
+                            && x.DeviceProParamType == "ReadDeviceCommand");
+            // 杩欎簺绔欏彴闇�瑕佲�滃欢鏃�5绉掑苟姣旇緝绗竴娆′笌鏈�鍚庝竴娆$粨鏋溾��
+            bool isPlatformCode =
+                kladder == "2016" || kladder == "2017" || kladder == "2018" || kladder == "2019" ||
+                kladder == "1001" || kladder == "1002";
+
+            if (isPlatformCode)
+            {
+                // 绗竴娆¤鍙�
+                short first = conveyorLine.Communicator.Read<short>(deviceProDTO.DeviceProAddress);
+
+                // 寤舵椂5绉�
+                System.Threading.Thread.Sleep(5000);
+
+                // 鏈�鍚庝竴娆¤鍙�
+                short last = conveyorLine.Communicator.Read<short>(deviceProDTO.DeviceProAddress);
+
+                // 鍗忚锛�0=鏃犱俊鍙�=鏃犺揣=绌轰綅
+                return first == 0 && last == 0;
+            }
+            else
+            {
+                short value = conveyorLine.Communicator.Read<short>(deviceProDTO.DeviceProAddress);
+                return value == 0; // 0=绌轰綅鍙斁锛�1=鏈夎揣涓嶅彲鏀�
+            }
         }
-
-
     }
 }

--
Gitblit v1.9.3