From 24ea35cb1a3a43dc137d15009cbbcb0904759c85 Mon Sep 17 00:00:00 2001
From: Demo <Demo@DESKTOP-CPA90BF>
Date: 星期六, 16 三月 2024 16:57:08 +0800
Subject: [PATCH] 修改BUG问题
---
Wms/WMS.BLL/Logic/AllotSku.cs | 72 ++++++++++++++++++++++++++++++------
1 files changed, 60 insertions(+), 12 deletions(-)
diff --git a/Wms/WMS.BLL/Logic/AllotSku.cs b/Wms/WMS.BLL/Logic/AllotSku.cs
index d0af838..37dc98c 100644
--- a/Wms/WMS.BLL/Logic/AllotSku.cs
+++ b/Wms/WMS.BLL/Logic/AllotSku.cs
@@ -2,6 +2,8 @@
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using Model.ModelDto.DataDto;
+using SqlSugar;
using WMS.Entity.Context;
using WMS.Entity.DataEntity;
using WMS.Entity.SysEntity;
@@ -14,14 +16,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,11 +53,13 @@
}
}
#endregion
- var qty = 0; //鍒嗛厤鐨勬�绘暟閲�
+ decimal qty = 0; //鍒嗛厤鐨勬�绘暟閲�
var ztNum = needQty / fullPalletQty;//闇�瑕佹暣鎵樻暟
- var zps = palletList.Where(s => s.Qty >= fullPalletQty).ToList();//鏁存墭
- var sps = palletList.Where(s => s.Qty < fullPalletQty).ToList();//鏁f墭(鏈夊彲鑳芥槸琚攣瀹氫簡鏁伴噺鐨�)
+ var list = GetDataListOrderByDept(palletList);
+
+ var zps = list.Where(s => s.Qty >= fullPalletQty).ToList();//鏁存墭
+ var sps = list.Where(s => s.Qty < fullPalletQty).ToList();//鏁f墭(鏈夊彲鑳芥槸琚攣瀹氫簡鏁伴噺鐨�)
if (allotSet == 0)//浼樺厛闆剁锛堝嚭瀹岄浂绠卞嚭鏁寸锛�
{
@@ -66,7 +68,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 +91,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 +125,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 +146,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 +169,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 +208,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))
{
@@ -220,6 +222,7 @@
//--------------------------------------------------------------------------------------------------------------
+ #region MyRegion
///// <summary>
///// 鑾峰緱鑳屽寘鎵块噸w锛岃璐х墿o锛屼粠绗琸浠跺悜鍚庤�冭檻锛屽緱鍒扮殑鏈�澶т环鍊�
@@ -262,5 +265,50 @@
// return a > b ? a : b;
//}
+ #endregion
+
+
+ private List<StockDetailDto> GetDataListOrderByDept(List<DataStockDetail> palletList)
+ {
+ try
+ {
+ var Db = DataContext.Db;
+ var data = new List<StockDetailDto>();
+
+ //搴撳鎵樼洏
+ var detail1 = palletList.Where(m => string.IsNullOrWhiteSpace(m.LocatNo)).ToList();
+ //骞冲簱鍐呮墭鐩�
+ var detail2 = palletList.Where(m => m.WareHouseNo == "W02").ToList();
+ //绔嬪簱鍐呮墭鐩�
+ var detail3 = palletList.Where(m => m.WareHouseNo == "W01").ToList();
+
+ var data1 = detail1.Select(m => new StockDetailDto()).ToList();
+ var data2 = detail2.Select(m => new StockDetailDto()).ToList();
+ var data3 = detail3.Select(m => new StockDetailDto()).ToList();
+ foreach (var item in data2)
+ {
+ var dept = item.LocatNo.Substring(5,2);
+
+ item.Dept = int.Parse(dept);
+ }
+ foreach (var item in data3)
+ {
+ var dept = item.LocatNo.Substring(6, 2);
+
+ item.Dept = int.Parse(dept);
+ }
+ data.AddRange(data1);
+ data.AddRange(data2.OrderBy(m => m.Dept).ToList());
+ data.AddRange(data3.OrderBy(m => m.Dept).ToList());
+
+ return data;
+ }
+ catch (Exception e)
+ {
+ throw new Exception(e.Message);
+ }
+ }
+
+
}
}
--
Gitblit v1.8.0