From 8c7c2c1aec1579a94c7a8368710bb31ff9518d73 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 27 六月 2024 16:03:19 +0800
Subject: [PATCH] 待检库不满足入库条件改为入库外协
---
代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyPalletStation.cs | 154 ++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 140 insertions(+), 14 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyPalletStation.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyPalletStation.cs"
index 4d45e09..8cc07c3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyPalletStation.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyPalletStation.cs"
@@ -11,7 +11,7 @@
using WIDESEA_WMS.Repositories;
using static System.Collections.Specialized.BitVector32;
-namespace WIDESEA_WCS.JobsPart.Common
+namespace WIDESEA_WMS.Common
{
public class GetStation
{
@@ -73,7 +73,14 @@
VOLContext Context = new VOLContext();
Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context);
var station = stationinfoRepository.Find(x => x.stationCode == StationCode).FirstOrDefault();
- OK = stationinfoRepository.Find(x => x.area == station.area && x.line == station.line && x.column > station.column && x.location_state != LocationStateEnum.Empty.ToString()).Any();
+ if (station.area == "10" || station.area == "11")
+ {
+ OK = stationinfoRepository.Find(x => x.area == station.area && x.line == station.line && x.column < station.column && x.location_state != LocationStateEnum.Empty.ToString()).Any();
+ }
+ else
+ {
+ OK = stationinfoRepository.Find(x => x.area == station.area && x.line == station.line && x.column > station.column && x.location_state != LocationStateEnum.Empty.ToString()).Any();
+ }
}
catch (Exception ex)
{
@@ -102,7 +109,12 @@
}
}
-
+ /// <summary>
+ /// 鏌ユ壘褰撳墠琛屽彲鍏ュ簱绌鸿揣浣�
+ /// </summary>
+ /// <param name="EmptyStation"></param>
+ /// <param name="stationinfoRepository"></param>
+ /// <returns></returns>
public static dt_stationinfo Station(dt_stationinfo EmptyStation, Idt_stationinfoRepository stationinfoRepository)
{
dt_stationinfo stationinfo = null;
@@ -113,21 +125,136 @@
stationinfo = stationinfoRepository.Find(x => x.area == EmptyStation.area && x.line == EmptyStation.line && x.quantity > 0 && x.enable).OrderByDescending(x => x.column).FirstOrDefault();
if (stationinfo != null)
- {
if (stationinfo.quantity < 5) return stationinfo;
- else
- stationinfo = stationinfoRepository.Find(x => x.area == EmptyStation.area && x.line == EmptyStation.line && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.column).FirstOrDefault();
- }
- else
- {
- stationinfo = stationinfoRepository.Find(x => x.area == EmptyStation.area && x.line == EmptyStation.line && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.column).FirstOrDefault();
- }
- //if (stationinfo == null)
+
+ stationinfo = stationinfoRepository.Find(x => x.area == EmptyStation.area && x.line == EmptyStation.line && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderBy(x => x.column).FirstOrDefault();
}
catch (Exception ex)
{
+ }
+ return stationinfo;
+ }
+
+ /// <summary>
+ /// 绌烘墭鍙叆搴撹揣浣�
+ /// </summary>
+ /// <param name="area"></param>
+ /// <returns></returns>
+ public static dt_stationinfo EmptyPalletStation1(string area)
+ {
+ dt_stationinfo stationinfo = null;
+ try
+ {
+ VOLContext Context = new VOLContext();
+ Idt_agvtaskRepository agvtaskService = new dt_agvtaskRepository(Context);
+ Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context);
+
+ #region 绌烘墭搴撳尯鍗犵敤鍏B搴撳尯
+ if (stationinfoRepository.Find(x => x.area == area && x.enable && x.location_state == LocationStateEnum.Busy.ToString()).Any() || stationinfoRepository.Find(x => x.stationCode == "A01001001" && x.quantity == 5 && x.location_state == LocationStateEnum.Stroge.ToString()).Any())
+ {
+ #region 鏌ユ壘AB搴撳彲鍏ョ┖鎵樼┖璐т綅
+ if (area == "11")
+ {
+ #region MyRegion
+ var EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && (x.area == "2" || x.area == "3") && x.tray_status == TrayStateEnum.EmptyTray.ToString() && x.enable).OrderByDescending(x => x.area).ThenByDescending(x => x.line).ThenByDescending(x => x.column).FirstOrDefault();
+ #endregion
+ if (EmptyStation == null)
+ EmptyStation = stationinfoRepository.Find(x => x.location_state == LocationStateEnum.Busy.ToString() && (x.area == "2" || x.area == "3") && x.tray_status == TrayStateEnum.EmptyTray.ToString() && x.enable).OrderByDescending(x => x.area).ThenByDescending(x => x.line).ThenByDescending(x => x.column).FirstOrDefault();
+
+ #region 鏌ユ壘搴撳尯2鍜屽簱鍖�3鐨勭┖鎵樿揣浣�
+
+ if (EmptyStation != null)
+ {
+ stationinfo = Station(EmptyStation, stationinfoRepository);
+ if (stationinfo != null)
+ if (!QueueStation(stationinfo.stationCode)) return stationinfo;
+
+ EmptyStation = stationinfoRepository.Find(x => x.area == EmptyStation.area && x.line == EmptyStation.line && x.enable).OrderByDescending(x => x.column).FirstOrDefault();
+ if (EmptyStation.quantity != 5) return null;
+ }
+ #endregion
+
+ #region 鏈壘鍒扮┖鎵樿揣浣嶆垨褰撳墠琛屽凡婊�,瀵绘壘鏂扮殑涓�琛�
+ stationinfo = stationinfoRepository.Find(x => x.column == 2 && x.area == "3" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderByDescending(x => x.line).FirstOrDefault();
+ if (stationinfo == null)
+ stationinfo = stationinfoRepository.Find(x => x.column == 1 && x.area == "2" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderByDescending(x => x.line).FirstOrDefault();
+ #endregion
+ }
+ #endregion
+ }
+ else
+ {
+ stationinfo = stationinfoRepository.Find(x => x.area == area && x.quantity > 0 && x.enable).OrderBy(x => x.column).FirstOrDefault();
+ if (stationinfo != null)
+ if (!QueueStation(stationinfo.stationCode) && stationinfo.quantity < 5) return stationinfo;
+ stationinfo = stationinfoRepository.Find(x => x.area == area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderByDescending(x => x.column).FirstOrDefault();
+ }
+ #endregion
+
+ #region 绌烘墭搴撳尯婊″悗鍏B搴撳尯
+
+ //#region 鏌ユ壘AB搴撳彲鍏ョ┖鎵樼┖璐т綅
+ //if (area == "11" && stationinfoRepository.Find(x => x.stationCode == "A01001001" && x.quantity == 5 && x.location_state == LocationStateEnum.Stroge.ToString()).Any())
+ //{
+ // #region MyRegion
+ // var EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && (x.area == "2" || x.area == "3") && x.tray_status == TrayStateEnum.EmptyTray.ToString() && x.enable).OrderByDescending(x => x.area).ThenByDescending(x => x.line).ThenByDescending(x => x.column).FirstOrDefault();
+ // #endregion
+ // if (EmptyStation == null)
+ // EmptyStation = stationinfoRepository.Find(x => x.location_state == LocationStateEnum.Busy.ToString() && (x.area == "2" || x.area == "3") && x.tray_status == TrayStateEnum.EmptyTray.ToString() && x.enable).OrderByDescending(x => x.area).ThenByDescending(x => x.line).ThenByDescending(x => x.column).FirstOrDefault();
+
+ // #region 鏌ユ壘搴撳尯2鍜屽簱鍖�3鐨勭┖鎵樿揣浣�
+ // //var EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && (x.area == "2" || x.area == "3")
+ // // && x.tray_status == TrayStateEnum.EmptyTray.ToString() && x.enable).OrderByDescending(x => x.lastUpdateTime).FirstOrDefault();
+
+ // if (EmptyStation != null)
+ // {
+ // stationinfo = Station(EmptyStation, stationinfoRepository);
+ // if (stationinfo != null)
+ // if (!QueueStation(stationinfo.stationCode)) return stationinfo;
+
+ // EmptyStation = stationinfoRepository.Find(x => x.area == EmptyStation.area && x.line == EmptyStation.line && x.enable).OrderByDescending(x => x.column).FirstOrDefault();
+ // if (EmptyStation.quantity != 5) return null;
+ // }
+ // #endregion
+
+ // #region 鏈壘鍒扮┖鎵樿揣浣嶆垨褰撳墠琛屽凡婊�,瀵绘壘鏂扮殑涓�琛�
+ // stationinfo = stationinfoRepository.Find(x => x.column == 2 && x.area == "3" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderByDescending(x => x.line).FirstOrDefault();
+ // if (stationinfo == null)
+ // stationinfo = stationinfoRepository.Find(x => x.column == 1 && x.area == "2" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderByDescending(x => x.line).FirstOrDefault();
+ // #endregion
+ //}
+ //#endregion
+
+ //#region 鏌ユ壘绌烘墭搴撳尯
+ //else
+ //{
+ // if (stationinfoRepository.Find(x => x.area == area && x.enable && x.location_state == LocationStateEnum.Busy.ToString()).Any()) return stationinfo;
+ // stationinfo = stationinfoRepository.Find(x => x.area == area && x.quantity > 0 && x.enable).OrderBy(x => x.column).FirstOrDefault();
+ // if (stationinfo != null)
+ // if (!QueueStation(stationinfo.stationCode) && stationinfo.quantity < 5) return stationinfo;
+ // stationinfo = stationinfoRepository.Find(x => x.area == area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderByDescending(x => x.column).FirstOrDefault();
+
+ //}
+ //#endregion
+
+ #endregion
+
+ #region 鏌ョ湅褰撳墠绌鸿揣浣嶅悗鏄惁瀛樺湪鏈夋枡
+ if (stationinfo != null)
+ if (GetStation.QueueStation(stationinfo.stationCode)) stationinfo = null;
+ #endregion
+
+ #region 鍒ゆ柇褰撳墠璐т綅鏄惁瀛樺湪浠诲姟
+ if (stationinfo != null)
+ if (agvtaskService.Find(x => x.agv_toaddress == stationinfo.stationCode).Any()) stationinfo = null;
+ #endregion
+
+ }
+ catch (Exception ex)
+ {
+ throw;
}
return stationinfo;
}
@@ -146,7 +273,6 @@
Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context);
#region 鏌ユ壘绌烘墭鐩樺簱鍖�
- //if (stationinfoRepository.Find(x => x.area == area && x.location_state == LocationStateEnum.Busy.ToString()).Any() && area != "10")
if (stationinfoRepository.Find(x => x.stationCode == "A01001001" && x.quantity == 5 && x.location_state == LocationStateEnum.Stroge.ToString()).Any())
{
var EmptyStation = stationinfoRepository.Find(x => x.stationCode == "C01005002" && x.location_state == LocationStateEnum.Empty.ToString()).FirstOrDefault();
@@ -190,7 +316,7 @@
#region 鍒ゆ柇褰撳墠璐т綅鏄惁瀛樺湪浠诲姟
if (stationinfo != null)
- if (agvtaskService.Find(x => /*x.agv_fromaddress == stationinfo.stationCode ||*/ x.agv_toaddress == stationinfo.stationCode).Any()) stationinfo = null;
+ if (agvtaskService.Find(x => /*x.agv_fromaddress == stationinfo.stationCode ||*/ x.agv_toaddress == stationinfo.stationCode).Any()) stationinfo = null;
#endregion
}
--
Gitblit v1.9.3