From 02dd21ca9a064b98aacfdc8c6ffec5a2b575967d Mon Sep 17 00:00:00 2001
From: xiaojiao <xiaojiao@kaokeziliao.com>
Date: 星期四, 26 三月 2026 09:54:56 +0800
Subject: [PATCH] PDA优化选配确认页面

---
 项目代码/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/InboundArea/InboundStationAction.cs |   76 +++++++++++++++++++++++++++++--------
 1 files changed, 59 insertions(+), 17 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/InboundArea/InboundStationAction.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/InboundArea/InboundStationAction.cs"
index f97164d..97f12bc 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/InboundArea/InboundStationAction.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/InboundArea/InboundStationAction.cs"
@@ -1,13 +1,17 @@
 锘縰sing HslCommunication;
 using Microsoft.EntityFrameworkCore;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading;
+using System.Threading.Tasks;
 using WIDESEA_Common;
+using WIDESEA_Common.LogEnum;
 using WIDESEA_Common.TaskEnum;
 using WIDESEA_Common.Tools;
+using WIDESEA_Core.Extensions;
 using WIDESEA_Core.Utilities;
 using WIDESEA_Entity.DomainModels;
 using WIDESEA_Services;
@@ -21,6 +25,9 @@
     public partial class InboundAreaDispatch
     {
         public static string[] InboundStationNo = new string[] { "50301", "50302", "50303", "50304", "50305", "50306", "50307"};
+
+        private static string CLOutStationNo = "30302";
+
         public static void InboundStationAction(IDt_TaskWCSinfoRepository taskWCSinfoRepository, IDt_TaskRGVinfoRepository taskRGVinfoRepository, PLCClient client)
         {
             foreach (var item in InboundStationNo)
@@ -77,6 +84,12 @@
                 int taskNumber = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_TaskNumber.ToString(), station).ToString());
                 string barcode = client.ReadValue(CLineInfoDBName.R_Line_Barcode.ToString(), station).ToString();
                 bool flag = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_LoadSleep.ToString(), station).ToString());
+                bool SB = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_DeviceNormal.ToString(), station).ToString());
+                if (!SB) 
+                {
+                    return;
+                }
+                
                 if (!flag)
                     return;
                 Dt_TaskWCSinfo wcsInfo = taskWCSinfoRepository.FindFirst(x => x.wcstask_taskNumber == taskNumber && x.wcstask_barcode == barcode);
@@ -90,7 +103,7 @@
                     string toLayer = wcsInfo.wcstask_endLocation.Substring(0, 2);
                     string stationLayer = station.Substring(3, 2);
 
-                    if (toLayer == stationLayer)
+                    if (toLayer == stationLayer) 
                     {
                         string state = string.Empty;
                         //绌烘墭鍜屽疄鎵樼殑鍏ュ簱
@@ -99,30 +112,50 @@
                               || wcsInfo.wcstask_type == TaskType.TaskType_ErrorCheckBackIn.ToString()
                                 || wcsInfo.wcstask_type == TaskType.TaskType_CheckBackIn.ToString()
                             )
+                        {
                             state = TaskState.TaskState_ConveyorLineFinish.ToString();
+                        }
                         //娴嬮噺鍥炲簱
                         else if (wcsInfo.wcstask_type == TaskType.TaskType_Box_Pallet_Measure_Back.ToString() && wcsInfo.wcstask_state == TaskState.TaskState_Measure_Back_Line_Executing.ToString())
+                        {
                             state = TaskState.TaskState_Measure_Back_Line_Finished.ToString();
-
+                        }
                         WebResponseContent content = WMSApi.PostTaskStateToWMS(barcode, state);
                         if (content.Status)
                         {
-                            Dt_TaskRGVinfo _tmpRgvInfo = taskRGVinfoRepository.FindFirst(x => x.rgvtask_barCode == wcsInfo.wcstask_barcode);
+                            Dt_TaskRGVinfo _tmpRgvInfo = taskRGVinfoRepository.FindFirst(x => x.rgvtask_barCode == wcsInfo.wcstask_barcode || x.rgvtask_wcsTaskNumber == wcsInfo.wcstask_taskNumber);
                             if (_tmpRgvInfo == null)
                             {
-                                //鍦ㄦ鐢熸垚RGV浠诲姟
-                                Dt_TaskRGVinfo rgvInfo = new Dt_TaskRGVinfo();
-                                rgvInfo.rgvtask_taskId = GetTaskNumber.GetRgvTaskNumber(taskRGVinfoRepository).ToString();
-                                rgvInfo.rgvtask_taskType = RGVTaskType.RgvTaskType_Inbound.ToString();
-                                rgvInfo.rgvtask_taskStatus = RGVTaskState.RgvTaskState_Wait_Send.ToString();
-                                rgvInfo.rgvtask_priorityCode = wcsInfo.wcstask_grade.ToString();
-                                rgvInfo.rgvtask_startNode = station;
-                                rgvInfo.rgvtask_endNode = wcsInfo.wcstask_endLocation;
-                                rgvInfo.rgvtask_wcsTaskNumber = wcsInfo.wcstask_taskNumber;
-                                rgvInfo.rgvtask_barCode = wcsInfo.wcstask_barcode;
-                                rgvInfo.rgvtask_msgTime = DateTime.Now;
-                                rgvInfo.rgvtask_areaCode = "InboundArea";
-                                taskRGVinfoRepository.Add(rgvInfo, true);
+                                //LogRecord.WriteLog(LogEnum.InBound, "鍥犱负鎷呭績rgv浼氶噸澶嶇敓鎴愪换");
+                                try
+                                {
+                                    // 鍔犱釜鏃ュ織
+                                    // 鎵樼洏鍚� 浠诲姟鍙� wcs浠诲姟鐘舵��
+                                    //LogRecord.WriteLog(LogEnum.RGV, $"鎺ュ彈鍒癛GV涓婃姤鐨勪换鍔$姸鎬侊細浠诲姟鍙凤細{taskId}锛屽皬杞︾紪鍙凤細{rgvId}锛屼换鍔$姸鎬侊細{taskStatus}");
+                                    LogRecord.WriteLog(LogEnum.InBound, $"鍥犱负鎷呭績rgv浼氶噸澶嶇敓鎴愪换鍔★紝杩欓噷瑕佸仛涓�涓褰曪紝鎵樼洏鐮併�恵wcsInfo.wcstask_barcode}銆� 浠诲姟鍙枫�恵wcsInfo.wcstask_taskNumber}銆�,浠诲姟鐘舵�侊細銆恵wcsInfo.wcstask_state}銆�");
+                                   
+                                    //鍦ㄦ鐢熸垚RGV浠诲姟
+                                    Dt_TaskRGVinfo rgvInfo = new Dt_TaskRGVinfo();
+                                    rgvInfo.rgvtask_taskId = GetTaskNumber.GetRgvTaskNumber(taskRGVinfoRepository).ToString();
+                                    rgvInfo.rgvtask_taskType = RGVTaskType.RgvTaskType_Inbound.ToString();
+                                    rgvInfo.rgvtask_taskStatus = RGVTaskState.RgvTaskState_Wait_Send.ToString();
+                                    rgvInfo.rgvtask_priorityCode = wcsInfo.wcstask_grade.ToString();
+                                    rgvInfo.rgvtask_startNode = station;
+                                    rgvInfo.rgvtask_endNode = wcsInfo.wcstask_endLocation;
+                                    rgvInfo.rgvtask_wcsTaskNumber = wcsInfo.wcstask_taskNumber;
+                                    rgvInfo.rgvtask_barCode = wcsInfo.wcstask_barcode;
+                                    rgvInfo.rgvtask_msgTime = DateTime.Now;
+                                    rgvInfo.rgvtask_areaCode = "InboundArea";
+                                    taskRGVinfoRepository.Add(rgvInfo, true);
+                                }
+                                catch (Exception x)
+                                {
+                                    string str = $"杩欓噷鎶ラ敊浜� 搴旇鏄坊鍔犱簡閲嶅鐨勬墭鐩樺彿锛屾墭鐩樼爜銆恵wcsInfo.wcstask_barcode}銆�" +
+                                        $"浠诲姟鍙枫�恵wcsInfo.wcstask_taskNumber}銆�,浠诲姟鐘舵�侊細銆恵wcsInfo.wcstask_state}銆戦敊璇俊鎭�恵x.Message}銆�";
+                                    LogRecord.WriteLog(LogEnum.Errer, str.ToString());
+                                    throw;
+                                }
+                                
                             }
                             wcsInfo.wcstask_state = state;
                             wcsInfo.wcstask_dispatcherTime = DateTime.Now;
@@ -143,7 +176,7 @@
         }
 
 
-
+        //public static 
         /// <summary>
         /// 鍑哄簱娴嬮噺浠诲姟锛屽綋绌挎杞︽斁璐у悗鐨勫鐞嗛�昏緫
         /// </summary>
@@ -174,6 +207,15 @@
                     return;
                 }
 
+
+                bool flag = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_LoadSleep.ToString(), CLOutStationNo).ToString());
+                bool noflag = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_NoLoadSleep.ToString(), CLOutStationNo).ToString());
+                if (flag || !noflag)
+                {
+                    return;
+                }
+
+                
                 //string lineCode = "Measure_O";
                 int taskNumber = taskWCSinfo.wcstask_taskNumber;
                 //鏌ョ湅绾夸綋鐘舵�侊紝鍑嗗缁欑嚎浣撲笅鍙戜换鍔′俊鎭�  璇诲彇閫昏緫鎺у埗鍊�

--
Gitblit v1.9.3