From 8f9b9411ca279670bd85fcfa7763987295ed9abf Mon Sep 17 00:00:00 2001
From: zhanghonglin <zhanghonglin@hnkhzn.com>
Date: 星期五, 10 四月 2026 10:55:38 +0800
Subject: [PATCH] 空桶入出扩展开发

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/StackerCraneJob.cs |   56 ++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 42 insertions(+), 14 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/StackerCraneJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/StackerCraneJob.cs"
index 0a6f6d8..362f507 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/StackerCraneJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/StackerCraneJob.cs"
@@ -23,7 +23,7 @@
 namespace WIDESEAWCS_Tasks
 {
     [DisallowConcurrentExecution]
-    public class StackerCraneJob : JobBase, IJob 
+    public class StackerCraneJob : JobBase, IJob
     {
         public static int R_HeartBeat = 0;
         public static string InorOut = "In";
@@ -46,6 +46,7 @@
         {
             try
             {
+                Thread.Sleep(3000);
                 //杩炴帴鍫嗗灈鏈�
                 CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams");
                 if (commonStackerCrane != null)
@@ -84,22 +85,19 @@
                                 {
                                     //鍙戦�佺墿鏂欑紪鍙�
                                     CL.SetValue(ConveyorLineName.W_NumberAD, result.MaterialCode1);
-                                    if (result.MaterialCode2 != null)
-                                        CL.SetValue(ConveyorLineName.W_NumberBD, result.MaterialCode2);
-                                    if (result.MaterialCode3 != null)
-                                        CL.SetValue(ConveyorLineName.W_NumberCD, result.MaterialCode3);
-                                    if (result.MaterialCode4 != null)
-                                        CL.SetValue(ConveyorLineName.W_NumberDD, result.MaterialCode4);
+                                    CL.SetValue(ConveyorLineName.W_NumberBD, result.MaterialCode2);
+                                    CL.SetValue(ConveyorLineName.W_NumberCD, result.MaterialCode3);
+                                    CL.SetValue(ConveyorLineName.W_NumberDD, result.MaterialCode4);
                                 }
                                 //commonStackerCrane.SetValue(StackerCraneDBName.W_Accomplish, true);
                             }
                         }
                     }
                     //淇敼浠诲姟鐘舵��
-                    else if(R_TaskPhases == 1 || R_TaskPhases == 2 || R_TaskPhases == 4)
+                    else if (R_TaskPhases == 1 || R_TaskPhases == 2 || R_TaskPhases == 4)
                     {
                         Dt_Task tasks = _TaskService.UpdateTaskStatus(R_OrderNo, R_TaskPhases);
-                        if (tasks!=null)
+                        if (tasks != null)
                         {
                             //鍚屾WMS
                             string address = AppSettings.Get("WMSApiAddress");
@@ -115,19 +113,20 @@
                     }
 
                     //鍒ゆ柇鏄惁涓鸿嚜鍔ㄦā寮�
-                    if (R_ControlMode == 2 && R_TaskStatus == 2 && R_LoadStatus != 2)
+                    if (R_ControlMode == 2 && R_TaskStatus == 2 && R_LoadStatus != 2 && (R_TaskPhases == 0 || R_TaskPhases == 5))
                     {
+                        WriteInfo("鍫嗗灈鏈轰俊鍙�", $"{R_ControlMode+"||"+ R_TaskStatus + "||"+R_LoadStatus+"||"+R_TaskPhases}");
                         //鍒ゆ柇鏄惁鏈夋墽琛屼腑鐨勪换鍔�
-                        Dt_Task tasking = _taskRepository.QueryFirst(x=> x.TaskState !=(int) TaskStatusEnum.InNew && x.TaskState != (int)TaskStatusEnum.OutNew && x.TaskState != (int)TaskStatusEnum.Task_Put && x.TaskState != (int)TaskStatusEnum.Task_fetch);
+                        Dt_Task tasking = _taskRepository.QueryFirst(x => (x.TaskState == (int)TaskStatusEnum.InNew && x.TaskState == (int)TaskStatusEnum.OutNew) || x.TaskState == (int)TaskStatusEnum.Task_Put || x.TaskState == (int)TaskStatusEnum.Task_fetch);
                         if (tasking == null)
                         {
                             //鑾峰彇浠诲姟
                             Dt_Task? task = GetTask(InorOut);
-                            if(task != null)
+                            if (task != null)
                             {
                                 //浠诲姟瀹炰綋杞懡浠odel
                                 StackerCraneCommand? StackerCommand = ConvertToStackerCommand(task);
-                                if(StackerCommand != null)
+                                if (StackerCommand != null)
                                 {
                                     //鍙戦�佸懡浠�
                                     commonStackerCrane.SetValue(StackerCraneDBName.W_SourceRow, StackerCommand.W_SourceRow);
@@ -141,6 +140,7 @@
                                     commonStackerCrane.SetValue(StackerCraneDBName.W_DataCheckSum, StackerCommand.W_DataCheckSum);
                                     commonStackerCrane.SetValue(StackerCraneDBName.W_OrderNo, StackerCommand.W_OrderNo);
                                     commonStackerCrane.SetValue(StackerCraneDBName.W_Start, StackerCommand.W_Start);
+                                    WriteInfo("鍫嗗灈鏈烘墽琛屼换鍔★細", $"{StackerCommand.W_OrderNo}");
                                 }
                             }
                         }
@@ -178,6 +178,34 @@
         {
             Dt_Task task;
             task = _TaskService.TaskInorOut(InorOuts);
+            if (task != null) 
+            {
+                //婊℃《鍑哄簱
+                if (task.TaskType == (int)TaskTypeEnum.Outfull)
+                {
+                    int pick = comm.GETR_PickD();
+                    int status = comm.GETR_StatusD();
+                    if (pick != 1 || status != 1)
+                    {
+                        WriteInfo("鍫嗗灈鏈烘墽琛屾弧妗跺嚭搴撲换鍔★細", $"{"杈撻�佺嚎鍑哄簱淇″彿寮傚父" + pick + "//" + status}");
+                        return null;
+                    }
+                    WriteInfo("鍫嗗灈鏈烘墽琛屾弧妗跺嚭搴撲换鍔★細", $"{"杈撻�佺嚎鍑哄簱淇″彿姝e父" + pick + "//" + status}");
+                }
+                //绌烘《鍑哄簱
+                else if(task.TaskType == (int)TaskTypeEnum.OutEmpty)
+                {
+                    int pick = comm.GETR_PickB();
+                    int status = comm.GETR_StatusB();
+                    if (pick != 1 || status != 1)
+                    {
+                        WriteInfo("鍫嗗灈鏈烘墽琛岀┖妗跺嚭搴撲换鍔★細", $"{"杈撻�佺嚎鍑哄簱淇″彿寮傚父" + pick + "//" + status}");
+                        return null;
+                    }
+                    WriteInfo("鍫嗗灈鏈烘墽琛岀┖妗跺嚭搴撲换鍔★細", $"{"杈撻�佺嚎鍑哄簱淇″彿姝e父" + pick + "//" + status}");
+                }
+            }
+
             //涓�鍏ヤ竴鍑�
             if (task != null && (task.TaskState == (int)TaskStatusEnum.InNew || task.TaskState == (int)TaskStatusEnum.OutNew))
             {
@@ -205,7 +233,7 @@
         }
 
         //浠诲姟瀹炰綋杞懡浠odel
-        public StackerCraneCommand? ConvertToStackerCommand(Dt_Task task) 
+        public StackerCraneCommand? ConvertToStackerCommand(Dt_Task task)
         {
             StackerCraneCommand stackerCraneCommand = new StackerCraneCommand();
             string[] TargetAddress = task.TargetAddress.Split('-');

--
Gitblit v1.9.3