From 1543e640a8867fa7c8a99fae43402b81876a95a8 Mon Sep 17 00:00:00 2001
From: Demo <Demo@DESKTOP-CPA90BF>
Date: 星期六, 24 二月 2024 11:09:42 +0800
Subject: [PATCH] Merge branch 'csc'
---
Wms/Model/ModelDto/PdaDto/PdaSoDto.cs | 6 +-
Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs | 4
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 8 +-
Wms/WMS.Entity/BllSoEntity/BllExportAllot.cs | 2
Wms/WMS.BLL/Logic/AllotSku.cs | 18 ++---
Wms/WMS.Entity/BllSoEntity/BLLExportNoticeDetail.cs | 8 +-
Wms/Wms/Controllers/DownApiController.cs | 33 +++++++++++
Wms/Model/ModelDto/BllSoDto/ExportNoticeDetailDto.cs | 8 +-
Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs | 82 ++++++++++++++++++++++-----
9 files changed, 125 insertions(+), 44 deletions(-)
diff --git a/Wms/Model/ModelDto/BllSoDto/ExportNoticeDetailDto.cs b/Wms/Model/ModelDto/BllSoDto/ExportNoticeDetailDto.cs
index f90e033..4ef74ba 100644
--- a/Wms/Model/ModelDto/BllSoDto/ExportNoticeDetailDto.cs
+++ b/Wms/Model/ModelDto/BllSoDto/ExportNoticeDetailDto.cs
@@ -48,22 +48,22 @@
/// <summary>
/// Desc:鏁伴噺
/// </summary>
- public int Qty { get; set; }
+ public decimal Qty { get; set; }
/// <summary>
/// Desc:鍒嗛厤鏁伴噺
/// </summary>
- public int? AllotQty { get; set; }
+ public decimal? AllotQty { get; set; }
/// <summary>
/// Desc:涓嬫灦鏁伴噺
/// </summary>
- public int? FactQty { get; set; }
+ public decimal? FactQty { get; set; }
/// <summary>
/// Desc:鎷h揣鏁伴噺
/// </summary>
- public int? CompleteQty { get; set; }
+ public decimal? CompleteQty { get; set; }
/// <summary>
/// Desc:鍖呰缂栫爜
diff --git a/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs b/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs
index 962ca86..d694a54 100644
--- a/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs
+++ b/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs
@@ -128,7 +128,7 @@
public string SkuNo { get; set; } //鐗╂枡缂栫爜
public string SkuName { get; set; } //鐗╂枡鍚嶇О
public decimal Qty { get; set; } //搴撳瓨鏁伴噺
- public int ExQty { get; set; } //鏁伴噺
+ public decimal ExQty { get; set; } //鏁伴噺
public string Standard { get; set; }
public string IsBale { get; set; } //鏄惁瑁瑰寘
public string IsBelt { get; set; } //鏄惁鎵撳甫
@@ -214,7 +214,7 @@
/// <summary>
/// Desc:鏁伴噺
/// </summary>
- public int Qty { get; set; }
+ public decimal Qty { get; set; }
/// <summary>
/// Desc:鎷h揣鏁伴噺
diff --git a/Wms/Model/ModelDto/PdaDto/PdaSoDto.cs b/Wms/Model/ModelDto/PdaDto/PdaSoDto.cs
index 6b427a3..b82d1c7 100644
--- a/Wms/Model/ModelDto/PdaDto/PdaSoDto.cs
+++ b/Wms/Model/ModelDto/PdaDto/PdaSoDto.cs
@@ -7,10 +7,10 @@
public class OutPdaInfo
{
public string OutModel { get; set; } // 鎷h揣鍖猴紙鍑哄簱鍙o級
- public int PlanQty { get; set; } // 璁″垝鏁伴噺
- public int? FinishQty { get; set; } // 瀹屾垚鏁伴噺
+ public decimal PlanQty { get; set; } // 璁″垝鏁伴噺
+ public decimal? FinishQty { get; set; } // 瀹屾垚鏁伴噺
public string Standard { get; set; } // 瑙勬牸
- public int PickQty { get; set; } // 鎵樼洏寰呮嫞鏁伴噺
+ public decimal PickQty { get; set; } // 鎵樼洏寰呮嫞鏁伴噺
public decimal? PickedQty { get; set; } // 鎵樼洏宸叉嫞鏁伴噺
}
public class BoxInfo
diff --git a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
index 52a047c..0a362ba 100644
--- a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
@@ -862,22 +862,48 @@
}
}
var roadList = Db.Queryable<SysStorageLocat>().Where(m => m.WareHouseNo == houseNo && areaList.Contains(m.AreaNo))
- .GroupBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList();
+ .GroupBy(m => m.RoadwayNo).OrderBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList();
- SysRoadwayUseLog useLog = Db.Ado.SqlQuerySingle<SysRoadwayUseLog>("select Top(1) * from SysRoadwayUseLog where IsDel=0 order by CreateTime desc"); //宸烽亾鏈�鍚庝竴娆′娇鐢ㄨ褰�
+ SysRoadwayUseLog useLog = Db.Queryable<SysRoadwayUseLog>().Where(m=>m.IsDel =="0" && roadList.Contains(m.RoadwayNo)).OrderByDescending(l => l.Id).First(); //宸烽亾鏈�鍚庝竴娆′娇鐢ㄨ褰�
- var bindNum = Db.Queryable<BllPalletBind>()
- .Where(m => m.IsDel == "0" && m.Status == "0" && !string.IsNullOrWhiteSpace(m.RoadwayNo))
- .GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count();
+ #region 纭畾宸烽亾鎺掑簭
+
+ List<string> roadList2 = new List<string>();
+ List<string> roadSmall = new List<string>();
+ List<string> roadLarge = new List<string>();
+ if (useLog != null)
+ {
+ roadList2.Add(useLog.RoadwayNo);
+ foreach (var r in roadList)
+ {
+ if (r == useLog.RoadwayNo)
+ {
+ continue;
+ }
+ //濡傛灉缁撴灉涓�0锛屽垯璇存槑涓や釜瀛楃涓茬浉绛夛紱
+ //濡傛灉缁撴灉灏忎簬0锛屽垯璇存槑绗竴涓瓧绗︿覆灏忎簬绗簩涓瓧绗︿覆锛�
+ //濡傛灉缁撴灉澶т簬0锛屽垯璇存槑绗竴涓瓧绗︿覆澶т簬绗簩涓瓧绗︿覆銆�
+ var bol = String.CompareOrdinal(r, useLog.RoadwayNo);
+ if (bol < 0)
+ {
+ roadSmall.Add(r);
+ }
+ if (bol > 0)
+ {
+ roadLarge.Add(r);
+ }
+ }
+ roadList2.AddRange(roadLarge);
+ roadList2.AddRange(roadSmall);
+ }
+
+ roadList = roadList2;
+ #endregion
+
var roadNo = "";
if (laneAllot == 0)//璺冲贩閬撳钩鍧囧垎閰�
{
- //濡傛灉鍚岀骇宸烽亾鏈夊鏉″垯鏌ヤ笂娆′綅缃棩蹇�
- if (roadList.Count > 1)
- {
- useLog = Db.Queryable<SysRoadwayUseLog>().OrderByDescending(l => l.Id).First();
- }
//鍙栧悇宸烽亾鎵�鏈夋帓绗竴涓悎閫備綅
foreach (var l in roadList)
{
@@ -888,7 +914,11 @@
}
var locateCount = Db.Queryable<SysStorageLocat>()
- .Where(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo)).Count();
+ .Where(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == l).Count();
+
+ var bindNum = Db.Queryable<BllPalletBind>()
+ .Where(m => m.IsDel == "0" && m.Status == "0" && m.RoadwayNo== l)
+ .GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count();
if (locateCount - bindNum > 0)
{
roadNo = l;
@@ -905,19 +935,39 @@
{
if (useLog != null)
{
- roadNo = useLog.RoadwayNo;
+ var locateCount = Db.Queryable<SysStorageLocat>()
+ .Where(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == useLog.RoadwayNo).Count();
+
+ var bindNum = Db.Queryable<BllPalletBind>()
+ .Where(m => m.IsDel == "0" && m.Status == "0" && m.RoadwayNo == useLog.RoadwayNo)
+ .GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count();
+ if (locateCount - bindNum > 0)
+ {
+ roadNo = useLog.RoadwayNo;
+ }
}
}
}
else//鎸夌収宸烽亾浼樺厛绾у垎閰�
{
foreach (var item in roadList)
- {
- roadNo = item;
+ {
+ var locateCount = Db.Queryable<SysStorageLocat>()
+ .Where(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == item).Count();
+
+ var bindNum = Db.Queryable<BllPalletBind>()
+ .Where(m => m.IsDel == "0" && m.Status == "0" && m.RoadwayNo == item)
+ .GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count();
+
+ if (locateCount - bindNum > 0)
+ {
+ roadNo = item;
+ }
+ //褰撳墠宸锋湁浣嶇疆鍒欓��鍑�
if (roadNo != null)
{
break;
- }
+ }
}
}
@@ -975,7 +1025,7 @@
}
#endregion
- return null;
+ return comDto;
}
catch (Exception e)
{
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index 714766d..e863a79 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -2256,11 +2256,11 @@
}
#endregion
//鍙栧悎閫傚簱瀛樺晢鍝�
- Dictionary<int, int> stockQtyDic = new Dictionary<int, int>();//鎵樺嚭搴撶墿鍝佹暟
+ Dictionary<int, decimal> stockQtyDic = new Dictionary<int, decimal>();//鎵樺嚭搴撶墿鍝佹暟
Dictionary<string, int> zxQtyDic = new Dictionary<string, int>();//鎵樺嚭鏁寸鏁�
//鍒嗛厤璐х墿
//assign.AllocatePallets(stocks, pNum, bNum, needQty, stockQtyDic, zxQtyDic);
- int qty = assign.AllotPallets(stockDetail, int.Parse(needQty.ToString()), pNum, bNum, stockQtyDic);
+ var qty = assign.AllotPallets(stockDetail, decimal.Parse(needQty.ToString()), pNum, bNum, stockQtyDic);
foreach (var sc in stockQtyDic)
{
@@ -2678,8 +2678,8 @@
//淇敼鍑哄簱鍗曠姸鎬�
if (notice.Status == "0" || notice.Status == "1")
{
- int totalQty = 0;
- int totalAllotQty = 0;
+ decimal totalQty = 0;
+ decimal totalAllotQty = 0;
foreach (var item in detailList)
{
totalQty += item.Qty;
diff --git a/Wms/WMS.BLL/Logic/AllotSku.cs b/Wms/WMS.BLL/Logic/AllotSku.cs
index d0af838..3b600fd 100644
--- a/Wms/WMS.BLL/Logic/AllotSku.cs
+++ b/Wms/WMS.BLL/Logic/AllotSku.cs
@@ -14,14 +14,12 @@
/// 鍒嗛厤璐х墿
/// </summary>
/// <param name="palletList">搴撳瓨鏄庣粏闆嗗悎</param>
- /// <param name="goodCode">鐗╂枡缂栫爜</param>
- /// <param name="lotNo">鎵规</param>
/// <param name="needQty">闇�瑕佸垎閰嶇殑鏁伴噺</param>
/// <param name="fullPalletQty">婊℃墭鏁伴噺</param>
/// <param name="fullBoxQty">婊$鏁伴噺</param>
/// <param name="stockQtyDic">鎵樺嚭搴撶墿鍝佹暟 key:搴撳瓨鎵樼洏琛ㄧ殑ID銆乿al:鎵樼洏涓婄殑鏁伴噺</param>
/// <returns></returns>
- public int AllotPallets(List<DataStockDetail> palletList, int needQty, int fullPalletQty, int fullBoxQty, Dictionary<int, int> stockQtyDic)
+ public decimal AllotPallets(List<DataStockDetail> palletList, decimal needQty, int fullPalletQty, int fullBoxQty, Dictionary<int, decimal> stockQtyDic)
{
//浼樺厛鍏堣繘鍏堝嚭锛堝揩杩囨湡鐨勫厛鍑猴級
//浼樺厛闆剁銆侀浂鎵橈紙鍑哄畬闆剁鍑烘暣绠憋級
@@ -53,7 +51,7 @@
}
}
#endregion
- var qty = 0; //鍒嗛厤鐨勬�绘暟閲�
+ decimal qty = 0; //鍒嗛厤鐨勬�绘暟閲�
var ztNum = needQty / fullPalletQty;//闇�瑕佹暣鎵樻暟
var zps = palletList.Where(s => s.Qty >= fullPalletQty).ToList();//鏁存墭
@@ -66,7 +64,7 @@
//鏁f墭
foreach (var s in st)
{
- var detailQty = int.Parse((s.Qty - s.LockQty - s.FrozenQty).ToString());
+ var detailQty = decimal.Parse((s.Qty - s.LockQty - s.FrozenQty).ToString());
if (needQty - qty < detailQty)
{
var num = needQty - qty;
@@ -89,7 +87,7 @@
var zt = zps.OrderBy(s => s.ExpirationTime).ToList();//鎵�鏈夋湭浣跨敤鐨勬墭鐩橈紙鏈鍒嗛厤鐨勶級
foreach (var ss in zt)
{
- var detailQty = int.Parse((ss.Qty - ss.LockQty - ss.FrozenQty).ToString());
+ var detailQty = decimal.Parse((ss.Qty - ss.LockQty - ss.FrozenQty).ToString());
if (needQty - qty < detailQty)
{
var num = needQty - qty;
@@ -123,7 +121,7 @@
var zt = zps.OrderBy(s => s.ExpirationTime).ToList();//鎵�鏈夋湭浣跨敤鐨勬墭鐩橈紙鏈鍒嗛厤鐨勶級
foreach (var ss in zt)
{
- var detailQty = int.Parse((ss.Qty - ss.LockQty - ss.FrozenQty).ToString());
+ var detailQty = decimal.Parse((ss.Qty - ss.LockQty - ss.FrozenQty).ToString());
if (needQty - qty < detailQty)
{
break;
@@ -144,7 +142,7 @@
foreach (var ss in zt)
{
- var detailQty = int.Parse((ss.Qty - ss.LockQty - ss.FrozenQty).ToString());
+ var detailQty = decimal.Parse((ss.Qty - ss.LockQty - ss.FrozenQty).ToString());
if (needQty - qty < detailQty)
{
var num = needQty - qty;
@@ -167,7 +165,7 @@
var zt = zps.Where(s => !sIds.Contains(s.Id)).OrderBy(s => s.ExpirationTime).ThenBy(m => m.Qty - m.LockQty - m.FrozenQty).ToList();//鎵�鏈夋湭浣跨敤锛堟湭琚垎閰嶇殑锛�
foreach (var ss in zt)
{
- var detailQty = int.Parse((ss.Qty - ss.LockQty - ss.FrozenQty).ToString());
+ var detailQty = decimal.Parse((ss.Qty - ss.LockQty - ss.FrozenQty).ToString());
if (needQty - qty < detailQty)
{
var num = needQty - qty;
@@ -206,7 +204,7 @@
/// <param name="dic"></param>
/// <param name="key"></param>
/// <param name="v"></param>
- private void SaveDic(Dictionary<int, int> dic, int key, int v)
+ private void SaveDic(Dictionary<int, decimal> dic, int key, decimal v)
{
if (dic.ContainsKey(key))
{
diff --git a/Wms/WMS.Entity/BllSoEntity/BLLExportNoticeDetail.cs b/Wms/WMS.Entity/BllSoEntity/BLLExportNoticeDetail.cs
index cc2dba3..5993cf9 100644
--- a/Wms/WMS.Entity/BllSoEntity/BLLExportNoticeDetail.cs
+++ b/Wms/WMS.Entity/BllSoEntity/BLLExportNoticeDetail.cs
@@ -66,28 +66,28 @@
/// Default:
/// Nullable:False
/// </summary>
- public int Qty {get;set;}
+ public decimal Qty {get;set;}
/// <summary>
/// Desc:鍒嗛厤鏁伴噺
/// Default:
/// Nullable:True
/// </summary>
- public int? AllotQty {get;set;}
+ public decimal? AllotQty {get;set;}
/// <summary>
/// Desc:涓嬫灦鏁伴噺
/// Default:0
/// Nullable:True
/// </summary>
- public int? FactQty {get;set;}
+ public decimal? FactQty {get;set;}
/// <summary>
/// Desc:鎷h揣鏁伴噺
/// Default:0
/// Nullable:True
/// </summary>
- public int? CompleteQty {get;set;}
+ public decimal? CompleteQty {get;set;}
/// <summary>
/// Desc:鍖呰缂栫爜
diff --git a/Wms/WMS.Entity/BllSoEntity/BllExportAllot.cs b/Wms/WMS.Entity/BllSoEntity/BllExportAllot.cs
index 87334f4..e69a17d 100644
--- a/Wms/WMS.Entity/BllSoEntity/BllExportAllot.cs
+++ b/Wms/WMS.Entity/BllSoEntity/BllExportAllot.cs
@@ -116,7 +116,7 @@
/// Default:
/// Nullable:False
/// </summary>
- public int Qty {get;set;}
+ public decimal Qty {get;set;}
/// <summary>
/// Desc:鎷h揣鏁伴噺
diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs
index 68f194a..2be6a9d 100644
--- a/Wms/Wms/Controllers/DownApiController.cs
+++ b/Wms/Wms/Controllers/DownApiController.cs
@@ -189,6 +189,39 @@
/// <returns></returns>
[AllowAnonymous]
[HttpPost]
+ public IActionResult RequestRoadWay(RequestLocate model)
+ {
+ var logStr = "";
+
+ logStr = $@".\log\WCS\WCS鐢宠宸烽亾" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
+
+ try
+ {
+
+ var jsonData = JsonConvert.SerializeObject(model);
+ LogFile.SaveLogToFile($"WCS鐢宠宸烽亾锛�( {jsonData} ),", logStr);
+
+ var list = _asnPalletBindSvc.RequestRoadWay(model.PalletNo, model.HouseNo );
+
+ LogFile.SaveLogToFile($"WCS鐢宠鍌ㄤ綅杩斿洖锛�( {JsonConvert.SerializeObject(list)} ),", logStr);
+
+ return Ok(new { Success = 0, Message = "鐢宠鍌ㄤ綅鎴愬姛", TaskList = list });
+ }
+ catch (Exception e)
+ {
+ LogFile.SaveLogToFile($"WCS鐢宠宸烽亾杩斿洖锛�( {e.Message} ),", logStr);
+
+ return Ok(new ErpModel { Success = -1, Message = e.Message });
+ }
+ }
+
+ /// <summary>
+ /// 鐢宠鍌ㄤ綅
+ /// </summary>
+ /// <param name="model">鍏ュ簱鍗曚俊鎭�</param>
+ /// <returns></returns>
+ [AllowAnonymous]
+ [HttpPost]
public IActionResult RequestLocation(RequestLocate model)
{
--
Gitblit v1.8.0