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