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/OutboundArea/OutboundAreaDispathAction.cs | 70 ++++++++++++++++++++++++++---------
1 files changed, 52 insertions(+), 18 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundAreaDispathAction.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundAreaDispathAction.cs"
index edd0f9a..ac3d80d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundAreaDispathAction.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundAreaDispathAction.cs"
@@ -1,5 +1,6 @@
锘縰sing HslCommunication;
using Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -95,6 +96,30 @@
LogRecord.WriteLog(LogEnum.Errer, str.ToString());
}
}
+
+ // 杩欓噷瑕佸啓涓�涓� 鏈変竴浜涙墭鐩樺凡缁忓嚭鍒板闈㈠幓浜� 浣嗙姸鎬佽繕鏄彁鍗囨満杩愯涓� 瀵艰嚧鍚庨潰鐨勫彂涓嶅嚭鍘�
+ Dt_TaskWCSinfo OutTask = taskWCSinfoRepository.Find(r =>
+ r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString()
+ && endStationNo.Contains(r.wcstask_endPoint)
+ ).FirstOrDefault();
+ if (OutTask != null)
+ {
+ double secondsPassend = (DateTime.Now - OutTask.wcstask_dispatcherTime.Value).TotalSeconds;
+ if (secondsPassend > 38) // 濡傛灉澶т簬38绉� 杩樻病鐢ㄦ彁鍗囨満瀹屾垚 灏辫鎵嬪姩
+ {
+ string state = TaskState.TaskState_Box_Out_Line_Executing.ToString();
+ if (OutTask.wcstask_type == TaskType.TaskType_Empty_Pallet_Outbound.ToString())
+ {
+ state = TaskState.TaskState_Empty_Out_Line_Executing.ToString();
+ }
+ OutTask.wcstask_state = state;
+ OutTask.wcstask_dispatcherTime = DateTime.Now;
+ taskWCSinfoRepository.Update(OutTask, true);
+ string str = $"鍑哄簱鍖� 鍑哄簱 鎻愬崌鏈哄凡缁忓唴鐨勬墭鐩樺凡缁忓嚭鍘� 浣嗙姸鎬佽繕鏄彁鍗囨満鎵ц涓�... {DateTime.Now}锛屾墭鐩樺彿:{OutTask.wcstask_barcode},浠诲姟鍙凤細{OutTask.wcstask_taskNumber}";
+ LogRecord.WriteLog(LogEnum.Errer, str.ToString());
+ }
+ }
+
}
public static void OutboundAreaDispathAction(IDt_TaskWCSinfoRepository taskWCSinfoRepository, IDt_TaskRGVinfoRepository taskRGVinfoRepository, PLCClient client)
{
@@ -205,23 +230,20 @@
continue;
//鍚屼竴灞傛湁鎵ц涓殑浠诲姟涓嶆坊鍔�
- Dt_TaskWCSinfo executingTask = taskWCSinfoRepository.FindFirst(r =>
- (r.wcstask_startPoint == wcsTask.wcstask_startPoint || r.wcstask_endPoint == wcsTask.wcstask_endPoint)
- && (r.wcstask_state == TaskState.TaskState_RGV_Received.ToString() || r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString()));
+ //Dt_TaskWCSinfo executingTask = taskWCSinfoRepository.FindFirst(r =>
+ //(r.wcstask_startPoint == wcsTask.wcstask_startPoint || r.wcstask_endPoint == wcsTask.wcstask_endPoint)
+ //&& (r.wcstask_state == TaskState.TaskState_RGV_Received.ToString() || r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString()));
+ //if (null != executingTask)
+ // continue;
+ // 鑲栦郊 灏嗕笂闈慨鏀规垚涓嬮潰
+ Dt_TaskWCSinfo executingTask = taskWCSinfoRepository.FindFirst(r =>
+ (r.wcstask_startPoint == wcsTask.wcstask_startPoint)
+ && (r.wcstask_state == TaskState.TaskState_RGV_Received.ToString()));
if (null != executingTask)
continue;
List<Dt_TaskWCSinfo> listTarget = taskWCSinfoRepository.Find(r => r.wcstask_endPoint == wcsTask.wcstask_endPoint &&
r.wcstask_state != TaskState.TaskState_Assigned.ToString());
-
- //if (listTarget != null && listTarget.Count > 1)
- //{
- // continue;
- //}
- //else
- //{
- // wcsInfo = wcsTask;
- //}
string barcode = client.ReadValue(CLineInfoDBName.R_Line_Barcode.ToString(), wcsTask.wcstask_endPoint).ToString();
@@ -303,11 +325,23 @@
return BarcodeLockDict[barcode].Item1;
}
}
-
+ public static bool KtpHkflag = false; // 璁板綍绌烘墭鐩樺洖搴撶殑閿欒
+ public static DateTime curDate; // 璁板綍閿欒鍙戠敓鐨勬椂闂�
public static void InboundRequestAction(IDt_TaskWCSinfoRepository taskWCSinfoRepository, IDt_TaskRGVinfoRepository taskRGVinfoRepository, PLCClient client)
{
try
{
+ if (KtpHkflag)
+ {
+ double secondsPassend = (DateTime.Now - curDate).TotalSeconds;
+ if (secondsPassend > 6)
+ {
+ client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 1);
+ KtpHkflag = false;
+ }
+ }
+
+
int R_Line_PLCDispatch = int.Parse(client.ReadValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo).ToString());
bool load = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_LoadSleep.ToString(), ReInboundRequestStationNo).ToString());
if (R_Line_PLCDispatch == 1 && load)
@@ -334,7 +368,7 @@
WebResponseContent content = taskWCSinfoRepository.DbContextBeginTransaction(() =>
{
//涓婃姤WMS浠诲姟瀹屾垚
- content = WMSApi.TellWmsTaskFinished(IsTask.wcstask_barcode);
+ content = WMSApi.TellWmsTaskFinished(IsTask.wcstask_barcode,IsTask.wcstask_backUp_2);
if (content.Status)
{
//绉诲姩浠诲姟鍒板巻鍙茶〃
@@ -374,10 +408,6 @@
WebResponseContent content = WMSApi.PostInboundRequstToWMS(barcode);
if (content.Status)
{
- //WmsTaskInfo wmsTask = JsonConvert.DeserializeObject<WmsTaskInfo>(content.Data.ToString());
- //wcsInfo = CommonFunction.AddWCSEmptyInboundTask(wmsTask, taskWCSinfoRepository);
- //taskWCSinfoRepository.Add(wcsInfo, true);
- //client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 2);
try
{
WmsTaskInfo wmsTask = JsonConvert.DeserializeObject<WmsTaskInfo>(content.Data.ToString());
@@ -466,6 +496,10 @@
catch (Exception ex)
{
client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 3);
+ KtpHkflag = true;
+ curDate = DateTime.Now; // 鎶ラ敊浜嗭紝璁板綍涓�涓嬭繖涓敊璇拰鏃堕棿锛�
+ LogRecord.WriteLog(LogEnum.Errer, DateTime.Now.ToString() + ex.Message.ToString());
+
Console.Out.WriteLine(DateTime.Now + ex.Message);
}
}
--
Gitblit v1.9.3