From bd6818fc9d40f343547bafca0743658f3c0379dc Mon Sep 17 00:00:00 2001
From: Admin <Admin@ADMIN>
Date: 星期四, 11 十二月 2025 10:16:33 +0800
Subject: [PATCH] 优化部分程序
---
项目代码/WCS/WIDESEA_WCSServer/WIDESEA_WCS/Jobs/ConveyorLine/OutboundArea/OutboundAreaDispathAction.cs | 69 ++++++++++++++++++++++------------
1 files changed, 44 insertions(+), 25 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 9feff89..38ffd31 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"
@@ -24,7 +24,7 @@
/// <summary>
/// 鍑哄簱鐨勫眰
/// </summary>
- private static List<string> OutboundStationLayerNo = new List<string>() { "90100", "90200", "90300", "90400", "90500", "90600", "90700", "90800" };
+ private static List<string> OutboundStationLayerNo = new List<string>() { "60100", "60200", "60300", "60400", "60500", "60600", "60700"};
//鍏ュ簱鎵樼洏鐢宠绔欏彴
private static string ReInboundRequestStationNo = "90101";
//鍑哄簱绔欏彴浜や簰
@@ -43,19 +43,17 @@
try
{
//鍑哄簱瀹屾垚
- OutboundCompleteAction(taskWCSinfoRepository, client);
- //璇诲彇鎻愬崌鏈烘槸鍚︽甯�
- //婊氱瓛绾跨姸鎬�
- string hoisterResult = client.ReadValue(CLineInfoDBName.R_Line_DeviceNormal.ToString(), hoisterResultNo).ToString();
- //鎻愬崌鏈虹姸鎬�
- string result = client.Read("DB506.36.0", "bool").ToString();
- if (!bool.Parse(hoisterResult) || !bool.Parse(result))
- return;
- //鍏ュ簱鐢宠
+ OutboundCompleteAction(taskWCSinfoRepository, client); //鍘嬭鍑哄簱鍙d换鍔″畬鎴�
+
+
+
+ //绌烘墭鍏ュ簱鐢宠
InboundRequestAction(taskWCSinfoRepository, taskRGVinfoRepository, client);
+
+ //娴嬭瘯闃舵娉ㄩ噴鐨勫唴瀹癸紙鍚庣画闇�瑕佷娇鐢ㄧ殑锛�
//澧炲姞琛ヤ竵.澧炲姞杞﹀瓨鍌ㄤ腑鏈夐棶棰�.鍐嶅啓
- int logicValue = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Logic.ToString(), "OutboundArea").ToString());
+ /*int logicValue = int.Parse(client.ReadValue(CLineInfoDBName.R_Line_Logic.ToString(), "OutboundArea").ToString());
if (logicValue == 4)
{
string rfidResult = client.ReadValue(CLineInfoDBName.W_Line_Barcode.ToString(), "OutboundArea").ToString();
@@ -89,19 +87,28 @@
}
}
else
+ {
flag = 0;
+ }*/
- List<Dt_TaskWCSinfo> executingTask = taskWCSinfoRepository.Find(r => (r.wcstask_state == TaskState.TaskState_RGV_Received.ToString()
- || r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString())
- && (OutboundStationLayerNo.Contains(r.wcstask_startPoint) || OutboundStationLayerNo.Contains(r.wcstask_endPoint)));
- if (executingTask.Count < 3)
+
+ //娴嬭瘯闃舵娉ㄩ噴鐨勫唴瀹�*/
+
+
+
+ //鏌ヨ鍑哄簱鑷冲帇瑁呭彴鐨勪换鍔℃湁澶氬皯杩涜涓�
+ List<Dt_TaskWCSinfo> executingTask = taskWCSinfoRepository.Find(r => (r.wcstask_state != TaskState.TaskState_Assigned.ToString()
+ && (OutboundStationLayerNo.Contains(r.wcstask_startPoint) || OutboundStationLayerNo.Contains(r.wcstask_endPoint))));
+ if (executingTask.Count < 4)
{
//鐩存帴灏嗕换鍔℃坊鍔犲埌AGV浠诲姟
- Dt_TaskWCSinfo outboundTask = GetOutboundTask(taskWCSinfoRepository, client);
+ Dt_TaskWCSinfo outboundTask = GetOutboundTask(taskWCSinfoRepository, client);
if (null != outboundTask)
{
+ //鏌ユ壘鏄惁鏈夎鎵樼洏鏉$爜浠诲姟锛屽鏋滄病鏈夊垯杩涜娣诲姞RGV浠诲姟
Dt_TaskRGVinfo rgvInfo = taskRGVinfoRepository.FindFirst(r => r.rgvtask_barCode == outboundTask.wcstask_barcode
&& r.rgvtask_wcsTaskNumber == outboundTask.wcstask_taskNumber);
+
if (null == rgvInfo)
{
string rgvTaskType = RGVTaskType.RgvTaskType_Inbound.ToString();
@@ -123,13 +130,11 @@
}
}
- //鎻愬崌鏈鸿繍琛岀殑浠诲姟
+ //鎻愬崌鏈鸿繍琛岀殑浠诲姟
Dt_TaskWCSinfo hisTask = taskWCSinfoRepository.FindFirst(r => r.wcstask_state == TaskState.TaskState_HoisterExecuting.ToString()
&& (OutboundStationLayerNo.Contains(r.wcstask_startPoint) || OutboundStationLayerNo.Contains(r.wcstask_endPoint)));
if (null != hisTask)
{
- //鎻愬崌鏈哄眰
- string hoisterLayer = client.ReadValue(CLineInfoDBName.R_Line_Layer.ToString(), hoisterResultNo).ToString();
string[] locationArray = null;
//绌烘墭鐩樺洖搴�
if (hisTask.wcstask_type.Equals(TaskType.TaskType_Empty_Pallet_Inbound.ToString()))
@@ -157,12 +162,12 @@
return;
}
//杞存壙鍑哄簱
- else if (hisTask.wcstask_type.Equals(TaskType.TaskType_Box_Pallet_Outbound.ToString())
- || hisTask.wcstask_type.Equals(TaskType.TaskType_Empty_Pallet_Outbound.ToString()))
+ else if (hisTask.wcstask_type.Equals(TaskType.TaskType_Box_Pallet_Outbound.ToString()) || hisTask.wcstask_type.Equals(TaskType.TaskType_Empty_Pallet_Outbound.ToString()))
+ {
locationArray = hisTask.wcstask_startLocation.Split('-');
- //璇存槑鎻愬崌鏈哄埌杈句簡鐩爣灞�
- if (int.Parse(locationArray[0]).ToString() == hoisterLayer)
- WriteRGVState(client, false);// 鍐欏叆RGV寮�濮嬫墽琛�
+ }
+
+
}
else
{
@@ -171,7 +176,7 @@
if (null != inboundTask)
ReInboundRequestStationAction(taskWCSinfoRepository, client, inboundTask);
else
- OutboundRequestAction(taskWCSinfoRepository, client);
+ OutboundRequestAction(taskWCSinfoRepository, client); //鎻愬崌鏈哄嚭搴撶殑娴佺▼
}
}
catch (Exception ex)
@@ -219,12 +224,26 @@
Dt_TaskWCSinfo wcsTask = item.OrderBy(r => r.wcstask_createTime).FirstOrDefault();
if (null != wcsTask)
{
+ //鍒ゆ柇鍘嬭鍙版槸鍚︽湁璐�
+ bool yzflag = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_LoadSleep.ToString(), wcsTask.wcstask_endPoint).ToString());
+ bool yznoflag = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_NoLoadSleep.ToString(), wcsTask.wcstask_endPoint).ToString());
+ if (!yzflag || yznoflag)
+ continue;
+
+ //鍒ゆ柇缂撳瓨鏋舵槸鍚︽湁璐�
+ bool flag = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_LoadSleep.ToString(), wcsTask.wcstask_startPoint).ToString());
+ bool noflag = bool.Parse(client.ReadValue(CLineInfoDBName.R_Line_NoLoadSleep.ToString(), wcsTask.wcstask_startPoint).ToString());
+ if (!flag || noflag)
+ 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()));
if (null != executingTask)
continue;
+
List<Dt_TaskWCSinfo> listTarget = taskWCSinfoRepository.Find(r => r.wcstask_endPoint == wcsTask.wcstask_endPoint &&
r.wcstask_state != TaskState.TaskState_Assigned.ToString());
--
Gitblit v1.9.3