From 3d6ef3897a77dec54be7057299e1be1d10589336 Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期六, 10 五月 2025 17:15:43 +0800
Subject: [PATCH] 修改密集库申请入库
---
Wms/WMS.BLL/Logic/AllotLocation.cs | 170 +++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 137 insertions(+), 33 deletions(-)
diff --git a/Wms/WMS.BLL/Logic/AllotLocation.cs b/Wms/WMS.BLL/Logic/AllotLocation.cs
index 98fb833..190b34e 100644
--- a/Wms/WMS.BLL/Logic/AllotLocation.cs
+++ b/Wms/WMS.BLL/Logic/AllotLocation.cs
@@ -56,7 +56,6 @@
//鑾峰彇搴撳瓨鍐呭凡鏈夌墿鏂欑殑宸烽亾
var dataStockRoad = db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.WareHouseNo == house).GroupBy(m => m.RoadwayNo).OrderBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList();
//鎺掗櫎鎺夊凡鏈夌墿鏂欑殑宸烽亾
-
roadways = roadways.Where(m => !dataStockRoad.Contains(m)).ToList();
foreach (var l in roadways)
{
@@ -105,16 +104,16 @@
/// <param name="areaList">鍖哄煙闆嗗悎</param>
/// <param name="lotNo">鎵规鍙�</param>
/// <returns></returns>
- public SysStorageLocat GetMiJiSuiTableLocate(SysStorageRoadway roadway, List<string> areaList, string sku, string lotNo = "")
+ public SysStorageLocat GetMiJiSuiTableLocate(string roadwayNo, List<string> areaList)
{
var db = DataContext.Db;
// 鍒ゆ柇褰撳墠宸烽亾(缁�)鏄惁鏈夌┖浣欏偍浣�
- var locateList = db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.RoadwayNo == roadway.RoadwayNo && areaList.Contains(m.AreaNo)).ToList();
+ var locateList = db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.RoadwayNo == roadwayNo && areaList.Contains(m.AreaNo)).ToList();
if (locateList.Count(m => m.Status == "0") > 0)
{
- var bl = GetLocateASCOrDesc(roadway.RoadwayNo);
+ var bl = GetLocateASCOrDesc(roadwayNo);
var locate = locateList.OrderBy(m => m.LocatNo).First();
@@ -189,6 +188,102 @@
return true;
}
+
+ /// <summary>
+ /// 鏍规嵁璧峰缁勮幏鍙栦綅缃渶浼樼殑鍥涢」杞﹀彇璐у伐浣�
+ /// </summary>
+ /// <param name="straRoadway">璧峰缁�</param>
+ /// <param name="outModel">鍑哄簱鍙e伐浣� 9銆� 17銆� 18</param>
+ /// <returns></returns>
+ public string RoadwayToStationNum(string straRoadway, string outModel)
+ {
+ var db = DataContext.Db;
+ string stationNum = "";
+
+ string[] lists = straRoadway.Split("MR");
+ var model = db.Queryable<SysStorageLocat>().First(m => m.RoadwayNo == straRoadway && m.IsDel == "0");
+ string stat = model.AisleOne;
+
+ if (model.Layer == 1)
+ { // 涓�灞�
+ switch (outModel) // 鐢宠鐨勫叆搴撳彛
+ {
+ case "9":
+
+ var path13 = Math.Abs(19 - int.Parse(stat.Substring(0, 2))) + Math.Abs(6 - int.Parse(stat.Substring(2, 2)));
+ var path14 = Math.Abs(19 - int.Parse(stat.Substring(0, 2))) + Math.Abs(12 - int.Parse(stat.Substring(2, 2)));
+
+ if (path13 <= path14)
+ {
+ stationNum = "190601";
+ }
+ else
+ {
+ stationNum = "191201";
+ }
+ break;
+ case "17":
+ stationNum = "030401";
+ break;
+ case "18":
+ var path03 = Math.Abs(03 - int.Parse(stat.Substring(0, 2))) + Math.Abs(06 - int.Parse(stat.Substring(2, 2)));
+ var path05 = Math.Abs(03 - int.Parse(stat.Substring(0, 2))) + Math.Abs(12 - int.Parse(stat.Substring(2, 2)));
+
+ if (path03 <= path05)
+ {
+ stationNum = "030601";
+ }
+ else
+ {
+ stationNum = "031201";
+ }
+ break;
+ default: break;
+ }
+ }
+ else
+ { // 浜屽眰
+ switch (outModel) // 鐢宠鐨勫叆搴撳彛
+ {
+ case "9":
+
+ var path15 = Math.Abs(19 - int.Parse(stat.Substring(0, 2))) + Math.Abs(6 - int.Parse(stat.Substring(2, 2)));
+ var path16 = Math.Abs(19 - int.Parse(stat.Substring(0, 2))) + Math.Abs(12 - int.Parse(stat.Substring(2, 2)));
+
+ if (path15 <= path16)
+ {
+ stationNum = "190602";
+ }
+ else
+ {
+ stationNum = "191202";
+ }
+
+ break;
+ case "17":
+ stationNum = "030402";
+ break;
+ case "18":
+ var path03 = Math.Abs(03 - int.Parse(stat.Substring(0, 2))) + Math.Abs(06 - int.Parse(stat.Substring(2, 2)));
+ var path05 = Math.Abs(03 - int.Parse(stat.Substring(0, 2))) + Math.Abs(12 - int.Parse(stat.Substring(2, 2)));
+
+ if (path03 <= path05)
+ {
+ stationNum = "030602";
+ }
+ else
+ {
+ stationNum = "031202";
+ }
+
+ break;
+ default: break;
+ }
+ }
+
+ return stationNum;
+ }
+
/// <summary>
/// 鑾峰彇鍚堥�傜殑搴撲綅
@@ -377,21 +472,25 @@
locate = GetLocateByRoadway(l.RoadwayNo, topOrBom, leftOrRight, areaList, list, ref count);
if (locate != null)
{
- list.Add(locate.LocatNo);
- var isOk = LocateIsOk(locate);
- if (!isOk)
- {
- locate = null;
- }
- if (isOk)
- {
- break;
- }
+ break;
+ //list.Add(locate.LocatNo);
+ //var isOk = LocateIsOk(locate);
+ //if (!isOk)
+ //{
+ // locate = null;
+ //}
+ //if (isOk)
+ //{
+ // break;
+ //}
}
} while (count != 0 && locate == null);//褰撴煡璇㈠偍浣嶆暟閲忎笉绛�0 骞朵笖鍌ㄤ綅涓虹┖鏃讹紝鍐嶆寰幆宸烽亾銆佸尯鍩熸煡鎵惧偍浣�
-
+ if (locate!=null)
+ {
+ break;
+ }
}
//濡傛灉璺冲贩閬撳苟涓旀湭鎵惧埌鍚堥�傜┖鍌ㄤ綅,鍒欒烦鍒版渶鍚庝竴娆′娇鐢ㄧ殑宸烽亾鏌ヨ
if (!isRoadway)
@@ -407,12 +506,13 @@
locate = GetLocateByRoadway(log.RoadwayNo, topOrBom, leftOrRight, areaList, list, ref count);
if (locate != null)
{
- list.Add(locate.LocatNo);
- var isOk = LocateIsOk(locate);
- if (!isOk)
- {
- locate = null;
- }
+ break;
+ //list.Add(locate.LocatNo);
+ //var isOk = LocateIsOk(locate);
+ //if (!isOk)
+ //{
+ // locate = null;
+ //}
}
@@ -434,21 +534,25 @@
locate = GetLocateByRoadway(item.RoadwayNo, topOrBom, leftOrRight, areaList, list, ref count);
if (locate != null)
{
- list.Add(locate.LocatNo);
- var isOk = LocateIsOk(locate);
- if (!isOk)
- {
- locate = null;
- }
- if (isOk)
- {
- break;
- }
+ break;
+ //list.Add(locate.LocatNo);
+ //var isOk = LocateIsOk(locate);
+ //if (!isOk)
+ //{
+ // locate = null;
+ //}
+ //if (isOk)
+ //{
+ // break;
+ //}
}
} while (count != 0 && locate == null);//褰撴煡璇㈠偍浣嶆暟閲忎笉绛�0 骞朵笖鍌ㄤ綅涓虹┖鏃讹紝鍐嶆寰幆宸烽亾銆佸尯鍩熸煡鎵惧偍浣�
-
+ if (locate != null)
+ {
+ break;
+ }
}
}
@@ -515,7 +619,7 @@
}
/// <summary>
- /// 楠岃瘉鍌ㄤ綅鏄惁鍙叆搴�
+ /// 楠岃瘉鍌ㄤ綅鏄惁鍙叆搴� 鍙屾繁浣嶉獙璇�
/// </summary>
/// <param name="locate"></param>
/// <returns></returns>
--
Gitblit v1.8.0