From 557f02072fa311eefe3123aa44afebac22adc465 Mon Sep 17 00:00:00 2001
From: xiaojiao <xiaojiao@kaokeziliao.com>
Date: 星期五, 24 四月 2026 17:24:43 +0800
Subject: [PATCH] 4-24
---
项目代码/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/ReInboundRequestAction.cs | 97 ++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 84 insertions(+), 13 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/ReInboundRequestAction.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/ReInboundRequestAction.cs"
index fcde816..5d1fc0d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/ReInboundRequestAction.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/ReInboundRequestAction.cs"
@@ -1,6 +1,8 @@
锘縰sing HslCommunication;
using Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Information;
using OfficeOpenXml.FormulaParsing.Excel.Functions.Numeric;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -8,6 +10,7 @@
using System.Threading;
using WIDESEA_Common;
using WIDESEA_Common.CutomerModel;
+using WIDESEA_Common.LogEnum;
using WIDESEA_Common.TaskEnum;
using WIDESEA_Common.Tools;
using WIDESEA_Core.Utilities;
@@ -94,8 +97,10 @@
//鑾峰彇浠诲姟锛岀敓鎴愬叆搴撲换鍔�
public static void RGV_InboundKTP(IDt_TaskWCSinfoRepository taskWCSinfoRepository, IDt_TaskRGVinfoRepository taskRGVinfoRepository, PLCClient client)
{
- Dt_TaskWCSinfo inboundTask = taskWCSinfoRepository.Find(r => OutboundStationLayerNo.Contains(r.wcstask_endPoint) && r.wcstask_type ==
- TaskType.TaskType_Empty_Pallet_Inbound.ToString() && r.wcstask_state == TaskState.TaskState_Empty_In_PLC_Finished.ToString()).OrderBy(x => x.wcstask_dispatcherTime).FirstOrDefault();
+ Dt_TaskWCSinfo inboundTask = taskWCSinfoRepository.Find(r =>
+ OutboundStationLayerNo.Contains(r.wcstask_endPoint)
+ && r.wcstask_type == TaskType.TaskType_Empty_Pallet_Inbound.ToString()
+ && r.wcstask_state == TaskState.TaskState_Empty_In_PLC_Finished.ToString()).OrderBy(x => x.wcstask_dispatcherTime).FirstOrDefault();
if (inboundTask != null)
{
@@ -170,14 +175,17 @@
r.wcstask_type.Equals(TaskType.TaskType_Empty_Pallet_Outbound.ToString())) && endStationNo.Contains(r.wcstask_endPoint));
//鑾峰彇鏈夊灏戞潯鍑哄簱鐨勪换鍔�
- int LineExecucount = executingTask.Count(x => x.wcstask_state == TaskState.TaskState_Box_Out_Line_Executing.ToString() || x.wcstask_state == TaskState.TaskState_Empty_Out_Line_Executing.ToString());
+ int LineExecucount = executingTask.Count(x =>
+ x.wcstask_state == TaskState.TaskState_Box_Out_Line_Executing.ToString() ||
+ x.wcstask_state == TaskState.TaskState_Empty_Out_Line_Executing.ToString());
+
if (LineExecucount >= 8)
{
//鍒ゆ柇鏄惁鏈夊搴斿眰鐨勫嚭搴撲换鍔★紝
int Assrscount = executingTask.Count(x => x.wcstask_endLocation == wcsInfo.wcstask_startLocation
- && (x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString()
- || x.wcstask_state == TaskState.TaskState_Assigned.ToString()
- || x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString()));
+ && (x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString() || x.wcstask_state == TaskState.TaskState_Assigned.ToString()
+ && x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString()));
+
if (Assrscount == 0)
{
ReInboundRequestStationAction(taskWCSinfoRepository, client, wcsInfo);
@@ -186,14 +194,26 @@
else
{
//鍒ゆ柇鏈夊灏戞潯鍦ㄧ紦瀛樻灦鐨�
- int RGV_Finishedcount = executingTask.Count(x => x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString()
- && x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString()
- && x.wcstask_state != TaskState.TaskState_Assigned.ToString());
+ int RGV_Finishedcount = executingTask.Count(x =>
+ x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString() &&
+ x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString() &&
+ x.wcstask_state != TaskState.TaskState_Assigned.ToString());
if (RGV_Finishedcount == 0)
{
//鍙互杩涜鍒ゆ柇涓嬪彂鍏ュ簱浠诲姟
- int Assrscount = executingTask.Count(x => x.wcstask_endLocation == wcsInfo.wcstask_startLocation && (x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString()
- || x.wcstask_state == TaskState.TaskState_Assigned.ToString()) && x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString());
+ //int Assrscount = executingTask.Count(x => x.wcstask_endLocation == wcsInfo.wcstask_startLocation
+ //&& (x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString()
+ //|| x.wcstask_state == TaskState.TaskState_Assigned.ToString())
+ //&& x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString());
+
+ // 鑲栦郊 2026-01-20 淇敼涓婇潰濡備笅
+ int Assrscount = executingTask.Count(x =>
+ x.wcstask_endLocation == wcsInfo.wcstask_startLocation
+ && x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString()
+ && x.wcstask_state != TaskState.TaskState_Assigned.ToString()
+ && x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString());
+
+
if (Assrscount == 0)
{
ReInboundRequestStationAction(taskWCSinfoRepository, client, wcsInfo);
@@ -221,11 +241,58 @@
int logicValue = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Logic.ToString(), lineCode).ToString());
if ((logicValue == 1 || logicValue == 2))
{
- client.WriteValue(CLineInfoDBName.R_Line_TargetPosition.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_endPoint);
- client.WriteValue(CLineInfoDBName.R_Line_TaskNumber.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_taskNumber);
+ // 褰撴彁鍗囨満鍦ㄥ姩鐨勬椂鍊欎笉鑳�
+ List<Dt_TaskWCSinfo> Assrscount = taskWCSinfoRepository.Find(x =>
+ x.wcstask_state != TaskState.TaskState_Box_Out_Line_Executing.ToString()
+ && x.wcstask_state != TaskState.TaskState_Assigned.ToString()
+ && x.wcstask_state != TaskState.TaskState_Empty_Out_Line_Executing.ToString()
+ && (x.wcstask_type == TaskType.TaskType_Empty_Pallet_Outbound.ToString() || x.wcstask_type == TaskType.TaskType_Box_Pallet_Outbound.ToString()));
+ if (Assrscount != null && Assrscount.Count > 0)
+ {
+ return;
+ }
+
+ bool R_Line_TargetPosition = client.WriteValue(CLineInfoDBName.R_Line_TargetPosition.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_endPoint);
+ bool R_Line_TaskNumber = client.WriteValue(CLineInfoDBName.R_Line_TaskNumber.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_taskNumber);
+
+ int TaskTarget = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_TargetPosition.ToString(), ReInboundRequestStationNo).ToString());
+ int TaskNumber = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_TaskNumber.ToString(), ReInboundRequestStationNo).ToString());
+
+ Console.WriteLine($"浠诲姟鍙凤細{wcsInfo.wcstask_taskNumber}锛�" +
+ $"浠诲姟鎵樼洏鍙枫�恵wcsInfo.wcstask_barcode}銆�," +
+ $"鍐欏叆R_Line_TargetPosition鏄惁鎴愬姛锛歿R_Line_TargetPosition}锛�" +
+ $"闇�瑕佸啓鍏ョ殑鍊硷細{wcsInfo.wcstask_endPoint}," +
+ $"鍐欏叆鍚庤鍙栫殑鍊硷細{TaskTarget}");
+
+ Console.WriteLine($"浠诲姟鍙凤細{wcsInfo.wcstask_taskNumber}锛�" +
+ $"浠诲姟鎵樼洏鍙枫�恵wcsInfo.wcstask_barcode}銆�," +
+ $"鍐欏叆R_Line_TaskNumber鏄惁鎴愬姛锛歿R_Line_TaskNumber}锛�" +
+ $"闇�瑕佸啓鍏ョ殑鍊硷細{wcsInfo.wcstask_taskNumber}," +
+ $"鍐欏叆鍚庤鍙栫殑鍊硷細{TaskNumber}");
+
+ if (TaskTarget == 0 || TaskNumber == 0 || TaskTarget.ToString() != wcsInfo.wcstask_endPoint.ToString() || TaskNumber != wcsInfo.wcstask_taskNumber) // 鍐欏叆鍚� 濡傛灉璇诲彇涓嶅埌 閭e氨閲嶆柊鍐欏叆
+ {
+ client.WriteValue(CLineInfoDBName.R_Line_TargetPosition.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_endPoint);
+ client.WriteValue(CLineInfoDBName.R_Line_TaskNumber.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_taskNumber);
+
+ int TaskTarget2 = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_TargetPosition.ToString(), ReInboundRequestStationNo).ToString());
+ int TaskNumber2 = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_TaskNumber.ToString(), ReInboundRequestStationNo).ToString());
+ string strs = $"{DateTime.Now.ToString()} 90101绌烘墭鍏ュ簱淇″彿鍊间笉瀵圭О,鐩殑浣嶇疆銆恵TaskTarget2}銆�,浠诲姟鍙枫�恵TaskNumber2}銆�" +
+ $"褰撳墠浠诲姟鎵樼洏鍙枫�恵wcsInfo.wcstask_barcode}銆�" +
+ $"浠诲姟鍙枫�恵wcsInfo.wcstask_taskNumber}銆�" +
+ $"鐩殑浣嶇疆銆恵wcsInfo.wcstask_endPoint}銆�" +
+ $"浠诲姟鐘舵�併�恵wcsInfo.wcstask_state}銆�";
+ Console.WriteLine(strs);
+ LogRecord.WriteLog(LogEnum.Errer, strs);
+ }
WriteTaskInfo.WriteTaskInfoAction(wcsInfo, client, lineCode);
client.WriteValue(CLineInfoDBName.W_Line_PLCDispatch.ToString(), ReInboundRequestStationNo, 2);
+
+ if (RgvDispatchJob.TempHK) // 濡傛灉杩欎釜涓篢rue浜� 閭e氨璇佹槑鍥炵┖鎵樼洏鐨勪紭鍏堢骇琚彁楂樹簡 鐒跺悗灏变細杩炵画鍥炲洓涓紝杩欓噷姣忓洖涓�涓氨瑕�+1 鐩村埌鍥炲洓涓簡 杩欎釜浼樺厛绾у氨娑堝け浜�
+ {
+ RgvDispatchJob.HKNumber += 1;
+ }
}
string rfidResult = client.ReadValue(CLineInfoDBName.W_Line_Barcode.ToString(), lineCode).ToString();
if (!wcsInfo.wcstask_barcode.Equals(rfidResult))
@@ -244,9 +311,13 @@
wcsInfo.wcstask_dispatcherTime = DateTime.Now;
taskWCSinfoRepository.Update(wcsInfo, true);
}
+
}
else if (logicValue == 4 || logicValue == 5)
{
+ //client.WriteValue(CLineInfoDBName.R_Line_TargetPosition.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_endPoint);
+ //client.WriteValue(CLineInfoDBName.R_Line_TaskNumber.ToString(), ReInboundRequestStationNo, wcsInfo.wcstask_taskNumber);
+
//鎻愬崌鏈烘墽琛屼腑
if (wcsInfo.wcstask_state == TaskState.TaskState_Empty_In_PLC_Finished.ToString())
return;
--
Gitblit v1.9.3