From 963f2f00f033d3fdd3d18ab71beb28d9f0e179bf Mon Sep 17 00:00:00 2001 From: Demo <Demo@DESKTOP-CPA90BF> Date: 星期一, 01 四月 2024 10:08:10 +0800 Subject: [PATCH] 修改类型 --- Wms/Model/ModelVm/DataVm/DataStockInfoVM.cs | 16 Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs | 6 Wms/Model/ModelDto/BllCheckDto/StockCheckDto.cs | 2 Wms/WMS.BLL/Logic/AllotSku.cs | 392 +++++++++++++++++++++++++++++++++++++++ Wms/Model/ModelVm/BllAsnVm/ArrivalNoticeDetailVm.cs | 6 Wms/Model/ModelVm/BllAsnVm/PalletUnBingVm.cs | 2 Wms/Model/ModelDto/BllQualityDto/BllQualityInspectDto.cs | 4 Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs | 10 Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 2 Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs | 2 Wms/Model/ModelDto/BllAsnDto/ArrivalNoticeDetailDto.cs | 6 Wms/WMS.BLL/DataServer/StockServer.cs | 10 Wms/Model/ModelDto/DataDto/AssSoDateStockInfoDto.cs | 6 Wms/Model/ModelDto/DataDto/MateDataStockDto.cs | 4 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 2 Wms/Model/ModelDto/DataDto/TotalRecordDto.cs | 14 Wms/Model/ModelVm/PdaVm/PdaCrVm.cs | 2 Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 26 +- Wms/Model/ModelVm/PdaVm/PdaAsnVm.cs | 2 Wms/Model/ModelDto/PdaDto/PdaAsnDto.cs | 10 Wms/Model/ModelVm/BllAsnVm/BoxInfoVm.cs | 6 Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs | 6 Wms/Model/ModelVm/BllCheckVm/StockCheckVm.cs | 2 Wms/Model/ModelVm/BllSoVm/ExportNoticeVm.cs | 4 24 files changed, 467 insertions(+), 75 deletions(-) diff --git a/Wms/Model/ModelDto/BllAsnDto/ArrivalNoticeDetailDto.cs b/Wms/Model/ModelDto/BllAsnDto/ArrivalNoticeDetailDto.cs index 013a421..a19dc04 100644 --- a/Wms/Model/ModelDto/BllAsnDto/ArrivalNoticeDetailDto.cs +++ b/Wms/Model/ModelDto/BllAsnDto/ArrivalNoticeDetailDto.cs @@ -54,21 +54,21 @@ /// Default: /// Nullable:False /// </summary> - public int Qty { get; set; } + public decimal Qty { get; set; } /// <summary> /// Desc:宸茬粍鏁伴噺 /// Default:0 /// Nullable:True /// </summary> - public int? FactQty { get; set; } + public decimal? FactQty { get; set; } /// <summary> /// Desc:鍏ュ簱鏁伴噺 /// Default:0 /// Nullable:True /// </summary> - public int? CompleteQty { get; set; } + public decimal? CompleteQty { get; set; } /// <summary> /// Desc:鍖呰缂栧彿 diff --git a/Wms/Model/ModelDto/BllCheckDto/StockCheckDto.cs b/Wms/Model/ModelDto/BllCheckDto/StockCheckDto.cs index 6852d7c..c67107d 100644 --- a/Wms/Model/ModelDto/BllCheckDto/StockCheckDto.cs +++ b/Wms/Model/ModelDto/BllCheckDto/StockCheckDto.cs @@ -192,7 +192,7 @@ public string Standard { get; set; } public string LotNo { get; set; } public string LotText { get; set; } - public decimal Qty { get; set; } + public decimal? Qty { get; set; } public string SupplierLot { get; set; } public string PalletNo { get; set; } diff --git a/Wms/Model/ModelDto/BllQualityDto/BllQualityInspectDto.cs b/Wms/Model/ModelDto/BllQualityDto/BllQualityInspectDto.cs index 5b71efb..d6fa473 100644 --- a/Wms/Model/ModelDto/BllQualityDto/BllQualityInspectDto.cs +++ b/Wms/Model/ModelDto/BllQualityDto/BllQualityInspectDto.cs @@ -58,14 +58,14 @@ /// Default: /// Nullable:True /// </summary> - public int? PassQty { get; set; } + public decimal? PassQty { get; set; } /// <summary> /// Desc:涓嶅悎鏍兼暟閲� /// Default: /// Nullable:True /// </summary> - public int? FailQty { get; set; } + public decimal? FailQty { get; set; } /// <summary> /// Desc:鏉ユ簮 diff --git a/Wms/Model/ModelDto/DataDto/AssSoDateStockInfoDto.cs b/Wms/Model/ModelDto/DataDto/AssSoDateStockInfoDto.cs index 1beb9aa..b242aea 100644 --- a/Wms/Model/ModelDto/DataDto/AssSoDateStockInfoDto.cs +++ b/Wms/Model/ModelDto/DataDto/AssSoDateStockInfoDto.cs @@ -39,21 +39,21 @@ /// Default: /// Nullable:False /// </summary> - public int ASNQty { get; set; } + public decimal ASNQty { get; set; } /// <summary> /// Desc:鍑哄簱鏁伴噺 /// Default: /// Nullable:False /// </summary> - public int SOQty { get; set; } + public decimal SOQty { get; set; } /// <summary> /// Desc:缁撳瓨鏁伴噺 /// Default: /// Nullable:False /// </summary> - public int ASNSOQty { get; set; } + public decimal ASNSOQty { get; set; } /// <summary> diff --git a/Wms/Model/ModelDto/DataDto/MateDataStockDto.cs b/Wms/Model/ModelDto/DataDto/MateDataStockDto.cs index b89dc8a..84c105e 100644 --- a/Wms/Model/ModelDto/DataDto/MateDataStockDto.cs +++ b/Wms/Model/ModelDto/DataDto/MateDataStockDto.cs @@ -192,12 +192,12 @@ /// <summary> /// Desc:鏁伴噺 /// </summary> - public int Qty { get; set; } + public decimal Qty { get; set; } /// <summary> /// Desc:鏁寸鏁伴噺 /// </summary> - public int? FullQty { get; set; } + public decimal? FullQty { get; set; } /// <summary> /// Desc:鐘舵�� diff --git a/Wms/Model/ModelDto/DataDto/TotalRecordDto.cs b/Wms/Model/ModelDto/DataDto/TotalRecordDto.cs index 65e7f09..901afc0 100644 --- a/Wms/Model/ModelDto/DataDto/TotalRecordDto.cs +++ b/Wms/Model/ModelDto/DataDto/TotalRecordDto.cs @@ -39,37 +39,37 @@ /// <summary> /// 鍏ュ簱鏁伴噺 /// </summary> - public int RQty { get; set; } + public decimal RQty { get; set; } /// <summary> /// 宸茬粍鏁伴噺 /// </summary> - public int RFactQty { get; set; } + public decimal RFactQty { get; set; } /// <summary> /// 瀹屾垚鏁伴噺 /// </summary> - public int RCompleteQty { get; set; } + public decimal RCompleteQty { get; set; } /// <summary> /// 鍑哄簱鏁伴噺 /// </summary> - public int CQty { get; set; } + public decimal CQty { get; set; } /// <summary> /// 鍒嗛厤鏁伴噺 /// </summary> - public int CAllotQty { get; set; } + public decimal CAllotQty { get; set; } /// <summary> /// 涓嬫灦鏁伴噺 /// </summary> - public int CFactQty { get; set; } + public decimal CFactQty { get; set; } /// <summary> /// 鎷h揣鏁伴噺 /// </summary> - public int CompleteQty { get; set; } + public decimal CompleteQty { get; set; } /// <summary> /// 鍏ュ簱鏃堕棿 diff --git a/Wms/Model/ModelDto/PdaDto/PdaAsnDto.cs b/Wms/Model/ModelDto/PdaDto/PdaAsnDto.cs index e113067..68a4713 100644 --- a/Wms/Model/ModelDto/PdaDto/PdaAsnDto.cs +++ b/Wms/Model/ModelDto/PdaDto/PdaAsnDto.cs @@ -59,21 +59,21 @@ /// Default: /// Nullable:False /// </summary> - public int Qty { get; set; } + public decimal Qty { get; set; } /// <summary> /// Desc:宸茬粍鏁伴噺 /// Default:0 /// Nullable:True /// </summary> - public int? FactQty { get; set; } + public decimal? FactQty { get; set; } /// <summary> /// Desc:鍏ュ簱鏁伴噺 /// Default:0 /// Nullable:True /// </summary> - public int? CompleteQty { get; set; } + public decimal? CompleteQty { get; set; } /// <summary> /// Desc:鍖呰缂栧彿 @@ -199,14 +199,14 @@ /// Default: /// Nullable:False /// </summary> - public int? Qty { get; set; } + public decimal? Qty { get; set; } /// <summary> /// Desc:鏁寸鏁伴噺 /// Default: /// Nullable:True /// </summary> - public int? FullQty { get; set; } + public decimal? FullQty { get; set; } /// <summary> /// Desc:鐘舵�� diff --git a/Wms/Model/ModelVm/BllAsnVm/ArrivalNoticeDetailVm.cs b/Wms/Model/ModelVm/BllAsnVm/ArrivalNoticeDetailVm.cs index 62c6194..13e8e08 100644 --- a/Wms/Model/ModelVm/BllAsnVm/ArrivalNoticeDetailVm.cs +++ b/Wms/Model/ModelVm/BllAsnVm/ArrivalNoticeDetailVm.cs @@ -54,21 +54,21 @@ /// Default: /// Nullable:False /// </summary> - public int? Qty { get; set; } + public decimal? Qty { get; set; } /// <summary> /// Desc:宸茬粍鏁伴噺 /// Default:0 /// Nullable:True /// </summary> - public int? FactQty { get; set; } + public decimal? FactQty { get; set; } /// <summary> /// Desc:鍏ュ簱鏁伴噺 /// Default:0 /// Nullable:True /// </summary> - public int? CompleteQty { get; set; } + public decimal? CompleteQty { get; set; } /// <summary> /// Desc:鍖呰缂栧彿 diff --git a/Wms/Model/ModelVm/BllAsnVm/BoxInfoVm.cs b/Wms/Model/ModelVm/BllAsnVm/BoxInfoVm.cs index b0afa5a..8e89c84 100644 --- a/Wms/Model/ModelVm/BllAsnVm/BoxInfoVm.cs +++ b/Wms/Model/ModelVm/BllAsnVm/BoxInfoVm.cs @@ -75,14 +75,14 @@ /// Default: /// Nullable:False /// </summary> - public int? Qty { get; set; } + public decimal? Qty { get; set; } /// <summary> /// Desc:鏁寸鏁伴噺 /// Default: /// Nullable:True /// </summary> - public int? FullQty { get; set; } + public decimal? FullQty { get; set; } /// <summary> /// Desc:鐘舵�� @@ -175,7 +175,7 @@ public class BoxQtyInfo { public string boxNo { get; set; } - public int realQty { get; set; } + public decimal realQty { get; set; } public string bitBoxMark { get; set; } } diff --git a/Wms/Model/ModelVm/BllAsnVm/PalletUnBingVm.cs b/Wms/Model/ModelVm/BllAsnVm/PalletUnBingVm.cs index 035181e..4ffcd13 100644 --- a/Wms/Model/ModelVm/BllAsnVm/PalletUnBingVm.cs +++ b/Wms/Model/ModelVm/BllAsnVm/PalletUnBingVm.cs @@ -58,7 +58,7 @@ /// <summary> /// 鏁伴噺 /// </summary> - public int? Qty { get; set; } + public decimal? Qty { get; set; } /// <summary> /// 浜岀骇鎵樼洏鍙� diff --git a/Wms/Model/ModelVm/BllCheckVm/StockCheckVm.cs b/Wms/Model/ModelVm/BllCheckVm/StockCheckVm.cs index f8d3e57..0558089 100644 --- a/Wms/Model/ModelVm/BllCheckVm/StockCheckVm.cs +++ b/Wms/Model/ModelVm/BllCheckVm/StockCheckVm.cs @@ -82,7 +82,7 @@ public string Standard { get; set; } public string LotNo { get; set; } public string LotText { get; set; } - public int Qty { get; set; } + public decimal Qty { get; set; } public string SupplierLot { get; set; } public string PalletNo { get; set; } diff --git a/Wms/Model/ModelVm/BllSoVm/ExportNoticeVm.cs b/Wms/Model/ModelVm/BllSoVm/ExportNoticeVm.cs index 374dc66..57eb70f 100644 --- a/Wms/Model/ModelVm/BllSoVm/ExportNoticeVm.cs +++ b/Wms/Model/ModelVm/BllSoVm/ExportNoticeVm.cs @@ -43,7 +43,7 @@ public string LotNo { get; set; } //鎵规 public string SkuNo { get; set; } //鐗╂枡缂栫爜 [Required] - public int Qty { get; set; } //鏁伴噺 + public decimal Qty { get; set; } //鏁伴噺 [MaxLength(3)] public string IsBale { get; set; } //鏄惁瑁瑰寘 [MaxLength(3)] @@ -122,7 +122,7 @@ /// <summary> /// 鍑哄簱鏁伴噺 /// </summary> - public int Qty { get; set; } + public decimal Qty { get; set; } } /// <summary> diff --git a/Wms/Model/ModelVm/DataVm/DataStockInfoVM.cs b/Wms/Model/ModelVm/DataVm/DataStockInfoVM.cs index ffd5bf4..9c35e38 100644 --- a/Wms/Model/ModelVm/DataVm/DataStockInfoVM.cs +++ b/Wms/Model/ModelVm/DataVm/DataStockInfoVM.cs @@ -66,56 +66,56 @@ /// Default: /// Nullable:False /// </summary> - public int ArrivalQty { get; set; } + public decimal ArrivalQty { get; set; } /// <summary> /// Desc:鍏ュ簱鏁伴噺锛堟湀锛� /// Default: /// Nullable:False /// </summary> - public int YearArrivalQty { get; set; } + public decimal YearArrivalQty { get; set; } /// <summary> /// Desc:鍑哄簱鏁伴噺 /// Default: /// Nullable:False /// </summary> - public int ExportQty { get; set; } + public decimal ExportQty { get; set; } /// <summary> /// Desc:鍑哄簱鏁伴噺锛堟湀锛� /// Default: /// Nullable:False /// </summary> - public int YearExportQty { get; set; } + public decimal YearExportQty { get; set; } /// <summary> /// Desc:缁撳瓨鏁伴噺 /// Default: /// Nullable:False /// </summary> - public int BalanceQty { get; set; } + public decimal BalanceQty { get; set; } /// <summary> /// Desc:鏈熷嚭鏁伴噺 /// Default: /// Nullable:False /// </summary> - public int ExpectedQty { get; set; } + public decimal ExpectedQty { get; set; } /// <summary> /// Desc:缁撳瓨鏁伴噺(鏈�) /// Default: /// Nullable:False /// </summary> - public int YearBalanceQty { get; set; } + public decimal YearBalanceQty { get; set; } /// <summary> /// Desc:鏈熷嚭鏁伴噺(鏈�) /// Default: /// Nullable:False /// </summary> - public int YearExpectedQty { get; set; } + public decimal YearExpectedQty { get; set; } /// <summary> /// Desc:鎵规鍙� diff --git a/Wms/Model/ModelVm/PdaVm/PdaAsnVm.cs b/Wms/Model/ModelVm/PdaVm/PdaAsnVm.cs index 3530495..9a06dae 100644 --- a/Wms/Model/ModelVm/PdaVm/PdaAsnVm.cs +++ b/Wms/Model/ModelVm/PdaVm/PdaAsnVm.cs @@ -63,7 +63,7 @@ /// <summary> /// Desc:鐗╂枡鏁伴噺 /// </summary> - public int SkuQty { get; set; } + public decimal SkuQty { get; set; } /// <summary> /// Desc:鎵规鍙� diff --git a/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs b/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs index 5c3e3cb..149bf87 100644 --- a/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs +++ b/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs @@ -29,7 +29,7 @@ /// <summary> /// 绠辩爜鍙� /// </summary> - public int? Qty { get; set; } + public decimal? Qty { get; set; } /// <summary> /// 鐩樼偣缁撴灉 diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs index 9d69feb..fa7aa45 100644 --- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs @@ -962,8 +962,8 @@ maxboxcode3 = maxboxcode3.Substring(0, 11) + (int.Parse(maxboxcode3.Substring(11, 4)) + 1).ToString().PadLeft(4, '0'); } - var ssss = d.ToString("0"); - var sss = int.Parse(ssss); + //var ssss = d.ToString("0"); + //var sss = int.Parse(ssss); // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛� var labelModel = new BllBoxInfo() @@ -972,7 +972,7 @@ ASNDetailNo = asnList.Id, BoxNo = maxboxcode2, BoxNo3 = maxboxcode3, - Qty = sss, + Qty = d, FullQty = bNum, Status = "0", SkuNo = asnList.SkuNo, diff --git a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs index 3e4ae44..28b7459 100644 --- a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs +++ b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs @@ -200,7 +200,7 @@ LotNo = m.LotNo, LotText = m.LotText, SupplierLot = m.SupplierLot, - Qty = (decimal)m.Qty, + Qty = m.Qty, PalletNo = m.PalletNo }).ToList(); @@ -658,12 +658,12 @@ }; Db.Insertable<DataBoxInfo>(databox).ExecuteCommand(); //搴撳瓨鏄庣粏澧炲姞鏁伴噺 - stockDetailInfo.Qty += l.RealQty; + stockDetailInfo.Qty += (int)l.RealQty; } else { //搴撳瓨鏄庣粏澧炲姞鏁伴噺 - stockDetailInfo.Qty = l.RealQty; + stockDetailInfo.Qty = (int)l.RealQty; } stockDetailInfo.Status = "0"; @@ -676,11 +676,11 @@ } if (sku.Type != "4") { - de.Qty += (decimal)l.RealQty; + de.Qty += (int)l.RealQty; } else { - de.Qty += (decimal)(l.RealQty - l.Qty); + de.Qty += (int)(l.RealQty - l.Qty); } Db.Updateable(de).ExecuteCommand(); diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs index 2a58636..c4a2bbc 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs @@ -324,7 +324,7 @@ PalletNo3 = model.PalletNo3, Status = "1", CompleteTime = DateTime.Now, - Qty = (decimal)model.Qty, + Qty = (int)model.Qty, FullQty = null, SkuNo = "100099", SkuName = "鎵樼洏", diff --git a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs index 063f080..f2b8b13 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs @@ -171,7 +171,7 @@ } } - public void CrSetCheck(string crNo, string crDetail, string palletNo, string boxNo, string boxNo3, string result, int? qty, string isContinue, int userId) + public void CrSetCheck(string crNo, string crDetail, string palletNo, string boxNo, string boxNo3, string result, decimal? qty, string isContinue, int userId) { try { @@ -276,14 +276,14 @@ var list = checkLog.ToList(); - decimal num = 0; + var num = 0; foreach (var l in list) { l.RealQty = 0; l.CheckResult = 1; l.CheckDate = time; l.CheckUserId = userId; - num -= (decimal)l.RealQty; + num -= int.Parse(l.RealQty.ToString()); } if (checkDetail.RealQty == null) { diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index b1a74da..067314d 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs @@ -639,7 +639,7 @@ SkuName = allot.SkuName, Standard = allot.Standard, PalletNo = palletNo, - CompleteQty = biaoShi == "2" ? int.Parse(pickQty1) : item.Qty, + CompleteQty = biaoShi == "2" ? decimal.Parse(pickQty1) : item.Qty, CreateUser = userId }; @@ -652,14 +652,14 @@ } else//鏁伴噺鎷h揣 { - if (int.Parse(pickQty1) == item.Qty) + if (decimal.Parse(pickQty1) == item.Qty) { //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 Db.Deleteable(item).ExecuteCommand(); } else { - item.Qty -= int.Parse(pickQty1); + item.Qty -= decimal.Parse(pickQty1); item.BitBoxMark = "1";//闆剁鏍囪瘑 Db.Updateable(item).ExecuteCommand(); } @@ -1667,7 +1667,7 @@ SkuName = allot2.SkuName, Standard = allot2.Standard, PalletNo = palletNo, - CompleteQty = biaoShi == "2" ? int.Parse(pickQty1) : item.Qty, + CompleteQty = biaoShi == "2" ? decimal.Parse(pickQty1) : item.Qty, InspectMark = "1", CreateUser = userId @@ -1681,20 +1681,20 @@ } else//鏁伴噺鎷h揣 { - if (int.Parse(pickQty1) == item.Qty) + if (decimal.Parse(pickQty1) == item.Qty) { //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 Db.Deleteable(item).ExecuteCommand(); } else { - item.Qty -= int.Parse(pickQty1); + item.Qty -= decimal.Parse(pickQty1); item.BitBoxMark = "1";//闆剁鏍囪瘑 item.InspectMark = "1";//鎶芥绠辨爣璇� Db.Updateable(item).ExecuteCommand(); } } - pickQty += biaoShi == "2" ? int.Parse(pickQty1) : item.Qty; + pickQty += biaoShi == "2" ? decimal.Parse(pickQty1) : item.Qty; } @@ -1930,7 +1930,7 @@ SkuName = allot.SkuName, Standard = allot.Standard, PalletNo = palletNo, - CompleteQty = biaoShi == "2" ? int.Parse(pickQty1) : item.Qty, + CompleteQty = biaoShi == "2" ? decimal.Parse(pickQty1) : item.Qty, CreateUser = userId }; @@ -1943,14 +1943,14 @@ } else//鏁伴噺鎷h揣 { - if (int.Parse(pickQty1) == item.Qty) + if (decimal.Parse(pickQty1) == item.Qty) { //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 Db.Deleteable(item).ExecuteCommand(); } else { - item.Qty -= int.Parse(pickQty1); + item.Qty -= decimal.Parse(pickQty1); item.BitBoxMark = "1";//闆剁鏍囪瘑 Db.Updateable(item).ExecuteCommand(); } @@ -2906,7 +2906,7 @@ SkuName = allot.SkuName, Standard = allot.Standard, PalletNo = palletNo, - CompleteQty = biaoShi == "2" ? int.Parse(pickQty1) : item.Qty, + CompleteQty = biaoShi == "2" ? decimal.Parse(pickQty1) : item.Qty, CreateUser = userId }; @@ -2938,7 +2938,7 @@ } else//鏁伴噺鎷h揣 { - if (int.Parse(pickQty1) == item.Qty) + if (decimal.Parse(pickQty1) == item.Qty) { //淇敼搴撳瓨绠辩爜鏄庣粏 item.StockDetailId = sdId; @@ -2949,7 +2949,7 @@ } else { - item.Qty -= int.Parse(pickQty1); + item.Qty -= decimal.Parse(pickQty1); item.BitBoxMark = "1";//闆剁鏍囪瘑 Db.Updateable(item).ExecuteCommand(); } diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs index 17d6ceb..8ee24c5 100644 --- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs +++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs @@ -3296,7 +3296,7 @@ //var stockz = Db.Queryable<DataStock>().First(d => d.IsDel == "0" && d.SkuNo == detail.SkuNo && d.LotNo == detail.LotNo); var allotList = new List<BllExportAllot>(); - var outQtys = 0; + decimal outQtys = 0; foreach (var st in model.StockList) { var stock = stockList.First(a => a.Id == st.StockId); diff --git a/Wms/WMS.BLL/DataServer/StockServer.cs b/Wms/WMS.BLL/DataServer/StockServer.cs index 4faad81..a3db682 100644 --- a/Wms/WMS.BLL/DataServer/StockServer.cs +++ b/Wms/WMS.BLL/DataServer/StockServer.cs @@ -571,7 +571,7 @@ { EndTime = (Convert.ToDateTime(EndTime).AddDays(1)).ToString(); } - int countjie = 0; //缁熻缁撳瓨鏁伴噺 + decimal countjie = 0; //缁熻缁撳瓨鏁伴噺 ////鍒ゆ柇搴撳瓨淇℃伅鏄惁涓虹┖ //if (stockInfo != null) //{ @@ -596,10 +596,10 @@ } //} - int yeara = 0; //骞村叆搴� - int years = 0; //骞村嚭搴� - int montha = 0; //鏈堝叆搴� - int months = 0; //鏈堝嚭搴� + decimal yeara = 0; //骞村叆搴� + decimal years = 0; //骞村嚭搴� + decimal montha = 0; //鏈堝叆搴� + decimal months = 0; //鏈堝嚭搴� DateTime createTime = DateTime.Now.AddYears(-1000); //鏃堕棿 //鑾峰彇鏈夊灏戝勾 diff --git a/Wms/WMS.BLL/Logic/AllotSku.cs b/Wms/WMS.BLL/Logic/AllotSku.cs index 6cfeb23..fc6c23f 100644 --- a/Wms/WMS.BLL/Logic/AllotSku.cs +++ b/Wms/WMS.BLL/Logic/AllotSku.cs @@ -233,6 +233,386 @@ /// <summary> + /// 鍘熻緟鏂欏彇鏍峰嚭搴撳垎閰嶅簱瀛� + /// </summary> + /// <param name="palletList">鎵樼洏鏄庣粏</param> + /// <param name="boxInfoList">绠辩爜鏄庣粏</param> + /// <param name="needQty">闇�姹傛暟</param> + /// <param name="stockQtyDic">鎵樺嚭搴撶墿鍝佹暟</param> + /// <param name="useBoxQtyDic">鎵樺嚭搴撶墿鍝佹暟</param> + /// <param name="type">鍙栨牱绫诲瀷1锛氳鍒欏彇鏍� 2锛氶殢鏈哄彇鏍�</param> + /// <param name="boxNum">闇�鍒嗛厤鐨勭鏁伴噺 闅忔満鍙栨牱鐢�</param> + /// <param name="pickNum"></param> + /// <returns></returns> + public decimal AllotPalletsQuYang(List<DataStockDetail> palletList, List<DataBoxInfo> boxInfoList, decimal needQty, Dictionary<int, decimal> stockQtyDic, Dictionary<int, decimal> useBoxQtyDic, string type, int boxNum, decimal pickNum) + { + try + { + decimal? qty = 0; + var listOrder = boxInfoList.Where(m => m.IsDel == "0").OrderBy(m => m.BoxNo).ThenBy(m => m.Qty).ToList();//鏍规嵁绠辩爜銆佹暟閲忔帓搴� 鏁寸鐨� + var boxList = listOrder.GroupBy(m => m.BoxNo).Select(m => m.Key).ToList();//鍒嗙粍鍚庣殑绠辩爜闆嗗悎 + var boxCount = boxList.Count();//绠辨暟閲� + #region 鏃у垎閰嶅師鍒� + + //var outInfoCount = 0; + //var boxStrList = new List<string>();//闅忔満浣跨敤绠� + //Dictionary<string, decimal> useInfoQtyDic = new Dictionary<string, decimal>();//浣跨敤绠� + + //if (type == "1")//瑙勫垯鍙栨牱锛圢<3;3<N<300;300<N锛� + //{ + // if (boxCount<=3)//绠卞瓙灏忎簬3 + // { + // foreach (var item in boxList)//寰幆绠卞瓙 + // { + // boxStrList.Add(item); + // } + // } + // else if (boxCount > 3)//绠卞瓙灏忎簬3 + // { + // var a = Math.Sqrt(boxCount)+1;//寮�骞虫柟 //瑙勫垯 绠辨暟 鈭歂+1 + // if (boxCount > 300) + // { + // a = Math.Sqrt(boxCount) / 2 + 1;//瑙勫垯 绠辨暟 鈭歂/2+1 + // } + // var b = Math.Floor(a); //鍙栨牱鐨勭鏁� + + // var lit = new List<int>(); + // do + // { + // byte[] buffer = Guid.NewGuid().ToByteArray(); + // int iSeed = BitConverter.ToInt32(buffer, 0); + // Random random = new Random(iSeed); + // var j = random.Next(0, boxCount); + // if (lit.Contains(j)) + // { + // continue; + // } + + // var boxCode = boxList[j];//绠辩爜 + // boxStrList.Add(boxCode); + // lit.Add(j); + + // } while (lit.Count < b); + + // } + //} + //else if(type == "2") //闅忔満鍙栨牱(涓�鎵规鍑轰竴绠�) + //{ + // if (boxCount < boxNum) + // { + // throw new Exception("褰撳墠搴撳瓨鏁寸鏁板皯浜庤緭鍏ョ殑鍙栨牱鏁�"); + // } + // var lit = new List<int>(); + // do + // { + // byte[] buffer = Guid.NewGuid().ToByteArray(); + // int iSeed = BitConverter.ToInt32(buffer, 0); + // Random random = new Random(iSeed); + // var j = random.Next(0, boxCount); + // if (lit.Contains(j)) + // { + // continue; + // } + + // var boxCode = boxList[j];//绠辩爜 + // boxStrList.Add(boxCode); + // lit.Add(j); + + // } while (lit.Count < boxNum); + //} + //else + //{ + // throw new Exception("璇烽�夋嫨鍙栨牱瑙勫垯"); + //} + //foreach (var item in boxStrList)//寰幆绠卞瓙 + //{ + // var box = listOrder.Where(m => m.BoxCode == item).ToList(); + // var infoCount = box.Count;//绠卞唴鏀暟閲� + // if (infoCount <= 3) //鏀暟閲�<=3 + // { + // outInfoCount += infoCount; + // SaveDic(useInfoQtyDic, item, infoCount); + // } + // else if (infoCount > 3)//绠卞唴鏁伴噺 > 3 涓� <=300 + // { + // //瑙勫垯 鍙栨牱鏀暟 鈭歂+1 + // var c = Math.Sqrt(infoCount) + 1;//寮�骞虫柟 + + // if (infoCount > 300) //绠卞唴鏁伴噺 > 300 + // { + // //瑙勫垯 绠辨暟 鈭歂/2+1 + // c = Math.Sqrt(infoCount) / 2 + 1; + // } + // var d = Math.Floor(c); //鍙栨牱鐨勬敮鏁伴噺 + + // outInfoCount += (int)d; + // SaveDic(useInfoQtyDic, item, (decimal)d); + // } + //} + + //var pingJunNum = needQty / outInfoCount;//骞冲潎姣忔敮鍙栫殑鏁伴噺 + //foreach (var item in useInfoQtyDic) + //{ + // var box = listOrder.Where(m => m.BoxCode == item.Key).ToList(); + // var infoCount = box.Count;//绠卞唴鏀暟閲� + // if (infoCount <= 3) //鏀暟閲�<=3 + // { + // foreach (var item2 in box) + // { + // if (pingJunNum >= item2.Qty) + // { + // throw new Exception("骞冲潎闇�鍙栨牱鏁伴噺澶т簬绛変簬绠辨敮鍐呮暟閲�"); + // } + // qty += pingJunNum; + // var tray = palletList.First(m => m.Id == item2.TrayId); + + // SaveDic(stockQtyDic, tray.Id, pingJunNum); + + // SaveDic(useBoxQtyDic, item2.Id, pingJunNum); + // } + // } + // else if (infoCount > 3)//绠卞唴鏁伴噺 > 3 涓� <=300 + // { + // var e = item.Value; //鍙栨牱鐨勬敮鏁伴噺 + + // var lit2 = new List<int>(); + + // do + // { + // byte[] buffer = Guid.NewGuid().ToByteArray(); + // int iSeed = BitConverter.ToInt32(buffer, 0); + // Random random = new Random(iSeed); + // var j = random.Next(0, infoCount);//闅忔満绠卞唴鏀爜 + + // if (lit2.Contains(j)) + // { + // continue; + // } + + // var info = box[j]; + // if (pingJunNum >= info.Qty) + // { + // throw new Exception("骞冲潎闇�鍙栨牱鏁伴噺澶т簬绛変簬绠辨敮鍐呮暟閲�"); + // } + + // qty += pingJunNum; + // var tray = palletList.First(m => m.Id == info.TrayId); + + // SaveDic(stockQtyDic, tray.Id, pingJunNum); + // SaveDic(useBoxQtyDic, info.Id, pingJunNum); + // lit2.Add(j); + + + // } while (lit2.Count < e); + // } + //} + + #endregion + + var outInfoCount = 0; + var boxStrList = new List<string>();//闅忔満浣跨敤绠� + Dictionary<string, int> useInfoQtyDic = new Dictionary<string, int>();//浣跨敤绠� 鍙婃瘡绠卞嚭澶氬皯鏀� + + + if (type == "1")//瑙勫垯鍙栨牱锛圢<3;3<N<300;300<N锛� + { + if (boxCount <= 3)//绠卞瓙灏忎簬3 + { + foreach (var item in boxList)//寰幆绠卞瓙 + { + boxStrList.Add(item); + } + } + else if (boxCount > 3)//绠卞瓙灏忎簬3 + { + var a = Math.Sqrt(boxCount) + 1;//寮�骞虫柟 //瑙勫垯 绠辨暟 鈭歂+1 + if (boxCount > 300) + { + a = Math.Sqrt(boxCount) / 2 + 1;//瑙勫垯 绠辨暟 鈭歂/2+1 + } + var b = Math.Floor(a); //鍙栨牱鐨勭鏁� + + var lit = new List<int>(); + do + { + byte[] buffer = Guid.NewGuid().ToByteArray(); + int iSeed = BitConverter.ToInt32(buffer, 0); + Random random = new Random(iSeed); + var j = random.Next(0, boxCount); + if (lit.Contains(j)) + { + continue; + } + + var boxCode = boxList[j];//绠辩爜 + boxStrList.Add(boxCode); + lit.Add(j); + + } while (lit.Count < b); + + } + var zhi = listOrder.Count(); + if (zhi <= 3) //鏀暟閲�<=3 + { + outInfoCount += zhi; + } + else if (zhi > 3)//绠卞唴鏁伴噺 > 3 涓� <=300 + { + //瑙勫垯 鍙栨牱鏀暟 鈭歂+1 + var c = Math.Sqrt(zhi) + 1;//寮�骞虫柟 + + if (zhi > 300) //绠卞唴鏁伴噺 > 300 + { + //瑙勫垯 绠辨暟 鈭歂/2+1 + c = Math.Sqrt(zhi) / 2 + 1; + } + var d = Math.Floor(c); //鍙栨牱鐨勬敮鏁伴噺 + + outInfoCount += (int)d; + } + } + else if (type == "2") //闅忔満鍙栨牱(涓�鎵规鍑轰竴绠�) + { + if (boxCount < boxNum) + { + throw new Exception("褰撳墠搴撳瓨鏁寸鏁板皯浜庤緭鍏ョ殑鍙栨牱鏁�"); + } + var lit = new List<int>(); + do + { + byte[] buffer = Guid.NewGuid().ToByteArray(); + int iSeed = BitConverter.ToInt32(buffer, 0); + Random random = new Random(iSeed); + var j = random.Next(0, boxCount); + if (lit.Contains(j)) + { + continue; + } + + var boxCode = boxList[j];//绠辩爜 + boxStrList.Add(boxCode); + lit.Add(j); + + } while (lit.Count < boxNum); + + var zhi = listOrder.Count(m => boxStrList.Contains(m.BoxNo)); + if (zhi <= 3) //鏀暟閲�<=3 + { + outInfoCount += zhi; + } + else if (zhi > 3)//绠卞唴鏁伴噺 > 3 涓� <=300 + { + //瑙勫垯 鍙栨牱鏀暟 鈭歂+1 + var c = Math.Sqrt(zhi) + 1;//寮�骞虫柟 + + if (zhi > 300) //绠卞唴鏁伴噺 > 300 + { + //瑙勫垯 绠辨暟 鈭歂/2+1 + c = Math.Sqrt(zhi) / 2 + 1; + } + var d = Math.Floor(c); //鍙栨牱鐨勬敮鏁伴噺 + + outInfoCount += (int)d; + } + } + else + { + throw new Exception("璇烽�夋嫨鍙栨牱瑙勫垯"); + } + + var zhiCount = outInfoCount; + var xiangCount = boxStrList.Count; //闅忔満鍑虹殑绠辨暟閲� + for (int i = 1; i <= boxStrList.Count; i++) + { + decimal t = zhiCount / xiangCount; + var t2 = zhiCount % xiangCount; + var t3 = 5 / 2; + var t4 = 5 % 2; + if (t2 > 0) + { + t += 1; + } + var q = (int)t;//绠卞唴鍑哄灏戞敮 + var infoCount = listOrder.Count(m => m.BoxNo == boxStrList[i - 1]); + if (q > infoCount) + { + throw new Exception("绠卞唴鏀暟灏忎簬瑕佸垎閰嶇殑鏀暟"); + } + zhiCount -= q; + xiangCount -= 1; + SaveDic2(useInfoQtyDic, boxStrList[i - 1], q); + } + + + var pingJunNum = needQty / outInfoCount;// / pickNum;骞冲潎姣忔敮鍙栫殑鏁伴噺 + + foreach (var item in useInfoQtyDic) + { + var box = listOrder.Where(m => m.BoxNo == item.Key).ToList(); + var infoCount = box.Count;//绠卞唴鏀暟閲� + if (infoCount == item.Value) //鏀暟閲�<=3 + { + foreach (var item2 in box) + { + if (pingJunNum > item2.Qty) + { + throw new Exception("骞冲潎闇�鍙栨牱鏁伴噺澶т簬绛変簬绠辨敮鍐呮暟閲�"); + } + qty += pingJunNum; + var tray = palletList.First(m => m.Id == item2.Id); + + SaveDic(stockQtyDic, tray.Id, pingJunNum); + + SaveDic(useBoxQtyDic, item2.Id, pingJunNum); + } + } + else + { + var e = item.Value; //鍙栨牱鐨勬敮鏁伴噺 + + var lit2 = new List<int>(); + + do + { + byte[] buffer = Guid.NewGuid().ToByteArray(); + int iSeed = BitConverter.ToInt32(buffer, 0); + Random random = new Random(iSeed); + var j = random.Next(0, infoCount);//闅忔満绠卞唴鏀爜 + + if (lit2.Contains(j)) + { + continue; + } + + var info = box[j]; + if (pingJunNum > info.Qty) + { + throw new Exception("骞冲潎闇�鍙栨牱鏁伴噺澶т簬绛変簬绠辨敮鍐呮暟閲�"); + } + + qty += pingJunNum; + var tray = palletList.First(m => m.Id == info.Id); + + SaveDic(stockQtyDic, tray.Id, pingJunNum); + SaveDic(useBoxQtyDic, info.Id, pingJunNum); + lit2.Add(j); + + + } while (lit2.Count < e); + } + } + + + return (decimal)qty; + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + + + /// <summary> /// 淇濆瓨瀛楀吀 /// </summary> /// <param name="dic"></param> @@ -250,6 +630,18 @@ } } + private void SaveDic2(Dictionary<string, int> dic, string key, int v) + { + if (dic.ContainsKey(key)) + { + dic[key] += v; + } + else + { + dic.Add(key, v); + } + } + //-------------------------------------------------------------------------------------------------------------- #region MyRegion diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs index 021aec0..572ea51 100644 --- a/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs +++ b/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs @@ -50,7 +50,7 @@ /// <param name="qty">鏁伴噺</param> /// <param name="isContinue">鏄惁鏁伴噺鐩樼偣</param> /// <param name="userId"></param> - void CrSetCheck(string crNo, string crDetail, string palletNo, string boxNo,string boxNo3,string result, int? qty,string isContinue, int userId); + void CrSetCheck(string crNo, string crDetail, string palletNo, string boxNo,string boxNo3,string result, decimal? qty,string isContinue, int userId); #endregion -- Gitblit v1.8.0