From 951c9a4e80495429338b9c495addda1ebae9703b Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@DESKTOP-5BIMHQ3>
Date: 星期四, 21 三月 2024 16:56:06 +0800
Subject: [PATCH] agv转运功能修改
---
Wms/WMS.BLL/Logic/AllotSku.cs | 109 ++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 97 insertions(+), 12 deletions(-)
diff --git a/Wms/WMS.BLL/Logic/AllotSku.cs b/Wms/WMS.BLL/Logic/AllotSku.cs
index d0af838..e54bfcb 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,87 @@
// return a > b ? a : b;
//}
+ #endregion
+
+
+ private List<StockDetailDto> GetDataListOrderByDept(List<DataStockDetail> palletList)
+ {
+ try
+ {
+ var Db = DataContext.Db;
+ var data = new List<StockDetailDto>();
+
+ var list = palletList.Select(m => new StockDetailDto()
+ {
+ Id = m.Id,
+ LotNo = m.LotNo,
+ LotText = m.LotText,
+ SupplierLot = m.SupplierLot,
+ OwnerNo = m.OwnerNo,
+ OwnerName = m.OwnerName,
+ SupplierNo = m.SupplierNo,
+ SupplierName = m.SupplierName,
+ SkuNo = m.SkuNo,
+ SkuName = m.SkuName,
+ Standard = m.Standard,
+ Qty = m.Qty,
+ LockQty = m.LockQty,
+ FrozenQty = m.FrozenQty,
+ InspectQty = m.InspectQty,
+ ASNNo = m.ASNNo,
+ ASNDetailNo = m.ASNDetailNo,
+ WareHouseNo = m.WareHouseNo,
+ RoadwayNo = m.RoadwayNo,
+ AreaNo = m.AreaNo,
+ LocatNo = m.LocatNo,
+ PalletNo = m.PalletNo,
+ PalletNo2 = m.PalletNo2,
+ PalletNo3 = m.PalletNo3,
+ CompleteTime = m.CompleteTime,
+ ProductionTime = m.ProductionTime,
+ ExpirationTime = m.ExpirationTime,
+ Status = m.Status,
+ InspectMark = m.InspectMark,
+ BitPalletMark = m.BitPalletMark,
+ InspectStatus = m.InspectStatus,
+ InspectTime = m.InspectTime,
+ PackagNo = m.PackagNo,
+ IsBale = m.IsBale,
+ IsBelt = m.IsBelt,
+ Demo = m.Demo,
+
+ }).ToList();
+ //搴撳鎵樼洏
+ var detail1 = list.Where(m => string.IsNullOrWhiteSpace(m.LocatNo)).ToList();
+ //骞冲簱鍐呮墭鐩�
+ var detail2 = list.Where(m => m.WareHouseNo == "W02").ToList();
+ //绔嬪簱鍐呮墭鐩�
+ var detail3 = list.Where(m => m.WareHouseNo == "W01").ToList();
+
+ foreach (var item in detail2)
+ {
+ var dept = item.LocatNo.Substring(5,2);
+
+ item.Dept = int.Parse(dept);
+ }
+ foreach (var item in detail3)
+ {
+ var dept = item.LocatNo.Substring(6, 2);
+
+ item.Dept = int.Parse(dept);
+ }
+ data.AddRange(detail1);
+ data.AddRange(detail2.OrderBy(m => m.Dept).ToList());
+ data.AddRange(detail3.OrderBy(m => m.Dept).ToList());
+
+ return data;
+ }
+ catch (Exception e)
+ {
+ throw new Exception(e.Message);
+ }
+ }
+
+
}
}
--
Gitblit v1.8.0