From cfb3f2c7e9cde8cc2eb2a19263d0802c0c5410a3 Mon Sep 17 00:00:00 2001
From: zhanghonglin <zhanghonglin@hnkhzn.com>
Date: 星期一, 06 四月 2026 15:41:04 +0800
Subject: [PATCH] mes接口

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/Job/StackerCraneJob.cs |   43 +++++++++++++++++++++++++++++--------------
 1 files changed, 29 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..505838b 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";
@@ -84,22 +84,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 +112,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))
                     {
+                        Thread.Sleep(3000);
                         //鍒ゆ柇鏄惁鏈夋墽琛屼腑鐨勪换鍔�
-                        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 +139,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 +177,22 @@
         {
             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}");
+                }
+            }
+
             //涓�鍏ヤ竴鍑�
             if (task != null && (task.TaskState == (int)TaskStatusEnum.InNew || task.TaskState == (int)TaskStatusEnum.OutNew))
             {
@@ -205,7 +220,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