From 1204e1ae66a50ec99b4dea80e839c1264c36ef48 Mon Sep 17 00:00:00 2001
From: Demo <Demo@DESKTOP-CPA90BF>
Date: 星期一, 19 二月 2024 13:24:30 +0800
Subject: [PATCH] 修改标签因单据条件生成重复问题,前端防止重复点击问题

---
 Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs |  692 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 644 insertions(+), 48 deletions(-)

diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
index 866b3b5..9c0ad7a 100644
--- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
@@ -412,10 +412,10 @@
                     .AndIF(!string.IsNullOrWhiteSpace(model.SkuNo), it => it.SkuNo.Contains(model.SkuNo.Trim()))
                     .AndIF(!string.IsNullOrWhiteSpace(model.LotNo), it => it.LotNo.Contains(model.LotNo.Trim()))
                     .AndIF(!string.IsNullOrWhiteSpace(model.SupplierLot), it => it.SupplierLot.Contains(model.SupplierLot.Trim()))
-                    .AndIF(!string.IsNullOrWhiteSpace(model.Status), it => it.Status == model.SupplierLot)
+                    .AndIF(!string.IsNullOrWhiteSpace(model.Status), it => it.Status == model.Status)
                     .AndIF(!string.IsNullOrWhiteSpace(model.ProductionTime), it => it.ProductionTime >= Convert.ToDateTime(model.ProductionTime))
                     .AndIF(!string.IsNullOrWhiteSpace(model.ProductionTime), it => it.ProductionTime <= Convert.ToDateTime(model.ProductionTime).AddDays(1))
-                    .And(it => it.IsDel == "0")
+                    .And(it => it.IsDel == "0" && it.Origin == "WMS鐢熸垚")
                     .ToExpression();
                 
                 var total = 0;
@@ -576,7 +576,7 @@
                     packStr += "-" + pack.L5Num + "/" + pack.L5Name;
                 }
                 //鏍囩琛�
-                var label = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == imId).ToList();
+                var label = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.Origin == "WMS鐢熸垚").ToList();
 
 
                 #endregion
@@ -612,29 +612,37 @@
 
                 #endregion
                 var modelList = new List<BllBoxInfo>();
+
+                var addLotNo = "";
+                if (arriveQty < 0)
+                {
+                    throw new Exception("鍒拌揣鏁伴噺涓嶈兘灏忎簬0!");
+                }
+
                 if (packLevel == 1)
                 {
                     #region 涓�绾у寘瑁�
 
                     // 鏍规嵁鐢ㄦ埛杈撳叆鐨勭鏁伴噺璁$畻闇�瑕佺殑鏉$爜鏁�
-                    var labQty = label.Sum(m => m.Qty);
-                    var qty = asnList.Qty - labQty;//褰撳墠鍗曟嵁鍓╀綑闇�瑕佹墦鍗扮殑鐗╂枡鏁伴噺(涓嶆槸鏍囩鏁伴噺)
-                    if (qty <= 0)
-                    {
-                        throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏍囩宸叉墦鍗板畬姣曪紝濡傛湁闇�瑕佽琛ユ墦");
-                    }
+                    //var labQty = label.Sum(m => m.Qty);
+                    //var qty = asnList.Qty - labQty;//褰撳墠鍗曟嵁鍓╀綑闇�瑕佹墦鍗扮殑鐗╂枡鏁伴噺(涓嶆槸鏍囩鏁伴噺)
+                    //if (qty <= 0)
+                    //{
+                    //    throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏍囩宸叉墦鍗板畬姣曪紝濡傛湁闇�瑕佽琛ユ墦");
+                    //}
 
                     #region 鍒拌揣鏁伴噺
 
-                    if (arriveQty - qty > 0)
-                    {
-                        throw new Exception("鍒拌揣鏁伴噺澶т簬鏈墦鏍囩鏁伴噺锛岃閲嶆柊杈撳叆鍒拌揣鏁伴噺骞舵牳瀹�!");
-                    }
-                    else
-                    {
-                        qty = arriveQty;
-                    }
-
+                    //if (arriveQty - qty > 0)
+                    //{
+                    //    throw new Exception("鍒拌揣鏁伴噺澶т簬鏈墦鏍囩鏁伴噺锛岃閲嶆柊杈撳叆鍒拌揣鏁伴噺骞舵牳瀹�!");
+                    //}
+                    //else
+                    //{
+                    //    qty = arriveQty;
+                    //}
+                    
+                    var qty = arriveQty;
                     #endregion
 
                     int labelNum = 1; //鐢熶骇鏉$爜鏁伴噺
@@ -653,15 +661,16 @@
                     string maxBoxCode = ""; //绠辩爜鍙�
                     // 鐢熸垚鑷紪鎵瑰彿
                     string toDayTime = DateTime.Now.ToString("yyyyMMdd");
-                     
-
-                    var maxLotNo = label.Max(a => a.LotNo);
-                    var maxBoxNo = label.Max(a => a.BoxNo);
+                    
                     if (isReset == "0")
                     {
-
-                        maxLotNoStr = maxLotNo;
-                        maxBoxCode = maxBoxNo;
+                        var labelCount = label.Where(m => m.ASNDetailNo == imId).ToList();
+                        if (labelCount.Count <=0)
+                        {
+                            throw new Exception("褰撳墠鍗曟嵁鏄庣粏杩樻湭鐢熸垚鏍囩锛岃閫夋嫨閲嶇疆鎵规閫夐」涓衡�樻槸鈥欙紱");
+                        }
+                        maxLotNoStr = label.Max(a => a.LotNo);
+                        maxBoxCode = label.Max(a => a.BoxNo);
                         if (string.IsNullOrWhiteSpace(maxLotNoStr))
                         {
                             maxLotNoStr = toDayTime.Substring(2, 6) + "0001";
@@ -669,7 +678,7 @@
                     }
                     else
                     {
-                        var maxCode = Db.Queryable<BllLabelBoxNo>().Max(a => a.LotNo);                        // 鑾峰彇浠婂ぉ鏈�澶ф壒娆″彿
+                        var maxCode = Db.Queryable<BllBoxInfo>().Where(m=>m.Origin == "WMS鐢熸垚").Max(a => a.LotNo);                        // 鑾峰彇浠婂ぉ鏈�澶ф壒娆″彿
                         if (string.IsNullOrWhiteSpace(maxCode))
                         {
                             maxLotNoStr = toDayTime.Substring(2, 6) + "0001";
@@ -690,9 +699,10 @@
                         }
                     }
 
+                    addLotNo = maxLotNoStr;
                     #endregion
 
-                    
+
 
                     for (int i = 1; i <= labelNum; i++)
                     {
@@ -716,7 +726,7 @@
                         }
 
                         //鑾峰彇绠辩爜
-                        if (maxBoxCode == "")
+                        if (string.IsNullOrWhiteSpace(maxBoxCode))
                         {
                             var str = "B"+maxLotNoStr + "000001"; //鎵瑰彿+ 娴佹按  2302010001000001
                             maxBoxCode = str;
@@ -765,25 +775,27 @@
                     #region 浜岀骇鍖呰
 
                     // 鏍规嵁鐢ㄦ埛杈撳叆鐨勭鏁伴噺璁$畻闇�瑕佺殑鏉$爜鏁�
-                    var labQty = label.Sum(m => m.Qty);
-                    var qty2 = asnList.Qty - labQty;
-                    if (qty2 <= 0)
-                    {
-                        throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏍囩宸叉墦鍗板畬姣曪紝濡傛湁闇�瑕佽琛ユ墦");
-                    }
+                    //var labQty = label.Sum(m => m.Qty);
+                    //var qty2 = asnList.Qty - labQty;
+                    //if (qty2 <= 0)
+                    //{
+                    //    throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏍囩宸叉墦鍗板畬姣曪紝濡傛湁闇�瑕佽琛ユ墦");
+                    //}
 
                     #region 澧炲姞鍒拌揣鏁伴噺
 
-                    if (arriveQty - qty2 > 0)
-                    {
-                        throw new Exception("鍒拌揣鏁伴噺澶т簬鏈墦鏍囩鏁伴噺锛岃閲嶆柊杈撳叆鍒拌揣鏁伴噺!");
-                    }
-                    else
-                    {
-                        qty2 = arriveQty;
-                    }
+                    //if (arriveQty - qty2 > 0)
+                    //{
+                    //    throw new Exception("鍒拌揣鏁伴噺澶т簬鏈墦鏍囩鏁伴噺锛岃閲嶆柊杈撳叆鍒拌揣鏁伴噺!");
+                    //}
+                    //else
+                    //{
+                    //    qty2 = arriveQty;
+                    //}
                     #endregion
 
+                    
+                    var qty2 = arriveQty;
                     int labelNum2 = 1; //鐢熶骇绠辨潯鐮佹暟閲�
 
                     labelNum2 = int.Parse(Math.Ceiling(qty2 / bNum).ToString());
@@ -802,6 +814,11 @@
                     string toDayTime2 = DateTime.Now.ToString("yyyyMMdd");
                     if (isReset == "0")
                     {
+                        var labelCount = label.Where(m => m.ASNDetailNo == imId).ToList();
+                        if (labelCount.Count <= 0)
+                        {
+                            throw new Exception("褰撳墠鍗曟嵁鏄庣粏杩樻湭鐢熸垚鏍囩锛岃閫夋嫨閲嶇疆鎵规閫夐」涓衡�樻槸鈥欙紱");
+                        }
                         var maxCode = label.Max(a => a.LotNo);
                         var boxCode1 = label.Max(a => a.BoxNo);//绠卞彿
                         var boxCode2 = label.Max(a => a.BoxNo3);//鏀彿
@@ -815,7 +832,7 @@
                     }
                     else
                     {
-                        var maxCode = Db.Queryable<BllLabelBoxNo>().Max(a => a.LotNo);                        // 鑾峰彇浠婂ぉ鏈�澶ф壒娆″彿
+                        var maxCode = Db.Queryable<BllBoxInfo>().Where(m => m.Origin == "WMS鐢熸垚").Max(a => a.LotNo);                        // 鑾峰彇浠婂ぉ鏈�澶ф壒娆″彿
                         if (string.IsNullOrWhiteSpace(maxCode))
                         {
                             maxCodestr2 = toDayTime2.Substring(2, 6) + "0001";
@@ -836,9 +853,10 @@
                         }
                     }
 
+                    addLotNo = maxCodestr2;
                     #endregion
 
-                     
+
 
                     for (int i = 1; i <= labelNum2; i++)//绠辩爜鏍囩
                     {
@@ -863,7 +881,7 @@
                         }
 
                         //鑾峰彇绠辩爜
-                        if (maxboxcode2 == "")
+                        if (string.IsNullOrWhiteSpace(maxboxcode2))
                         {
                             maxboxcode2 = "B"+maxCodestr2 + "000001"; // 绠卞彿     鎵瑰彿+绗嚑绠�
                         }
@@ -907,7 +925,7 @@
                                 }
                             }
                             
-                            if (maxboxcode3 == "")
+                            if (string.IsNullOrWhiteSpace(maxboxcode3))
                             {
                                 maxboxcode3 = "Z"+maxCodestr2 + "0001"; // 鏀彿     鎵瑰彿+绗嚑绠� 
                             }
@@ -916,6 +934,9 @@
                                 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 labelModel = new BllBoxInfo()
                             {
@@ -923,7 +944,7 @@
                                 ASNDetailNo = asnList.Id,
                                 BoxNo = maxboxcode2,
                                 BoxNo3 = maxboxcode3,
-                                Qty = int.Parse(d.ToString()),
+                                Qty = sss,
                                 FullQty = bNum,
                                 Status = "0",
                                 SkuNo = asnList.SkuNo,
@@ -954,7 +975,20 @@
 
                     #endregion
                 }
-
+                if (string.IsNullOrWhiteSpace(asnList.LotNo))
+                {
+                    asnList.LotNo = addLotNo;
+                    Db.Updateable(asnList).ExecuteCommand();
+                }
+                else
+                {
+                    if (!asnList.LotNo.Contains(addLotNo))
+                    {
+                        asnList.LotNo += ";" + addLotNo;
+                        Db.Updateable(asnList).ExecuteCommand();
+                    } 
+                }
+                
                 return modelList;
 
 
@@ -966,6 +1000,568 @@
             }
         }
 
+        // 琛ユ墦鏍囩
+        public List<BoxInfoDto> GetBuDaLabelList(string boxNo, string endBoxNo, string boxNo2, string endBoxNo2, string type, int userId)
+        {
+            try
+            {
+                //鎵撳嵃鏁版嵁闆嗗悎
+                var printList = new List<BoxInfoDto>();
 
+                List<BoxInfoDto> printModelList = new List<BoxInfoDto>();
+                //List<WmsLabelPrintLog> printlog = new List<WmsLabelPrintLog>();
+                //鏍囩琛ㄦ暟鎹俊鎭�
+                var list = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.Origin == "WMS鐢熸垚").ToList();
+
+                #region MyRegion
+
+                switch (type)
+                {
+                    case "1":
+                        if (string.IsNullOrWhiteSpace(endBoxNo))
+                        {
+                            #region 鍗曚釜绠辩爜鏍囩
+
+                            if (string.IsNullOrWhiteSpace(boxNo))
+                            {
+                                throw new Exception($"璧峰绠辩爜涓嶈兘涓虹┖");
+                            }
+                            var dataList = list.Where(m => m.BoxNo == boxNo);
+                            var data = list.FirstOrDefault(m => m.BoxNo == boxNo);
+                            if (data == null)
+                            {
+                                throw new Exception($"鏈煡璇㈠埌{boxNo}淇℃伅");
+                            }
+                            // 鐗╂枡鏉$爜淇℃伅璧嬪��
+                            BoxInfoDto model = new BoxInfoDto();
+                            model.SkuNo = data.SkuNo;
+                            model.SkuName = data.SkuName;
+                            model.LotNo = data.LotNo;                      //鎵规
+                            model.SupplierLot = data.SupplierLot;                        // 鍘熷巶鎵瑰彿
+                            model.Standard = data.Standard;                              // 瑙勬牸/鍨嬪彿
+                            model.PackageStandard = data.PackageStandard;                // 鍖呰瑙勬牸
+
+                            model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
+                            model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+
+                            model.Qty = dataList.Sum(m=>m.Qty);// 鏁伴噺
+
+                            model.BoxNo = data.BoxNo;                 // 绠卞彿     
+
+                            model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo,160, 40,false);
+
+                            // 娣诲姞鍒發ist闆嗗悎
+                            printModelList.Add(model);
+
+                            //娣诲姞鎵撳嵃璁板綍
+                            //WmsLabelPrintLog log = new WmsLabelPrintLog();
+                            //log.BoxCode = data.LabelStream;
+                            //log.CreateTime = DateTime.Now;
+                            //log.Demo = Demo;
+                            //log.Isdel = 0;
+                            //log.CreateUser = userId;
+                            //printlog.Add(log);
+                            #endregion
+                        }
+                        else
+                        {
+                            #region 澶氫釜绠辩爜鏍囩  寮�濮�-缁撴潫
+                            if (string.IsNullOrWhiteSpace(boxNo))
+                            {
+                                throw new Exception("璧峰绠辩爜涓嶈兘涓虹┖");
+                            }
+                            var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS鐢熸垚' and BoxNo >='{boxNo}' and BoxNo <= '{endBoxNo}'";
+                            var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql);
+                            var data3 = data2.GroupBy(m => m.BoxNo).Select(m => m.Key).OrderBy(m => m).ToList();
+                            if (data3.Count == 0)
+                            {
+                                throw new Exception($"鏈煡璇㈠埌{boxNo}-{endBoxNo}涓俊鎭�");
+                            }
+
+                            var i = 0;
+                            foreach (var item in data3)
+                            {
+                                var data1 = data2.Where(m => m.BoxNo == item);
+                                var data = data2.FirstOrDefault(m => m.BoxNo == item);
+                                if (data == null)
+                                {
+                                    throw new Exception($"鏈煡璇㈠埌{item}淇℃伅");
+                                }
+                                // 鐗╂枡鏉$爜淇℃伅璧嬪��
+                                BoxInfoDto model = new BoxInfoDto();
+                                model.SkuNo = data.SkuNo;
+                                model.SkuName = data.SkuName;
+                                model.LotNo = data.LotNo;                      //鎵规
+                                model.SupplierLot = data.SupplierLot;                        // 鍘熷巶鎵瑰彿
+                                model.Standard = data.Standard;                              // 瑙勬牸/鍨嬪彿
+                                model.PackageStandard = data.PackageStandard;                // 鍖呰瑙勬牸
+
+                                model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
+                                model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+
+                                model.Qty = data1.Sum(m => m.Qty);// 鏁伴噺
+
+                                model.BoxNo = data.BoxNo;                 // 绠卞彿     
+
+                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
+
+                                // 娣诲姞鍒發ist闆嗗悎
+                                printModelList.Add(model);
+                                i++;
+                                ////娣诲姞鎵撳嵃璁板綍
+                                //WmsLabelPrintLog log = new WmsLabelPrintLog();
+                                //log.BoxCode = data.LabelStream;
+                                //log.CreateTime = DateTime.Now;
+                                //log.Demo = Demo;
+                                //log.Isdel = 0;
+                                //log.CreateUser = userId;
+                                //printlog.Add(log);
+                                if (i >= 100)
+                                {
+                                    break;
+                                }
+                            }
+
+                            #endregion
+                        }
+                        break;
+                    case "2":
+                        if (string.IsNullOrWhiteSpace(endBoxNo2))
+                        {
+                            #region 鍗曚釜鏀爜鏍囩
+
+                            if (string.IsNullOrWhiteSpace(boxNo2))
+                            {
+                                throw new Exception($"璧峰鏀爜涓嶈兘涓虹┖");
+                            }
+                            var data = list.FirstOrDefault(m => m.BoxNo3 == boxNo2);
+                            if (data == null)
+                            {
+                                throw new Exception($"鏈煡璇㈠埌{boxNo2}淇℃伅");
+                            }
+                            // 鐗╂枡鏉$爜淇℃伅璧嬪��
+                            BoxInfoDto model = new BoxInfoDto();
+                            model.SkuNo = data.SkuNo;
+                            model.SkuName = data.SkuName;
+                            model.LotNo = data.LotNo;                      //鎵规
+                            model.SupplierLot = data.SupplierLot;                        // 鍘熷巶鎵瑰彿
+                            model.Standard = data.Standard;                              // 瑙勬牸/鍨嬪彿
+                            model.PackageStandard = data.PackageStandard;                // 鍖呰瑙勬牸
+
+                            model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
+                            model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+
+                            model.Qty = data.Qty;// 鏁伴噺
+
+                            model.BoxNo = data.BoxNo3;                 // 鏀彿     
+
+                            model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
+
+                            // 娣诲姞鍒發ist闆嗗悎
+                            printModelList.Add(model);
+
+                            ////娣诲姞鎵撳嵃璁板綍
+                            //WmsLabelPrintLog log = new WmsLabelPrintLog();
+                            //log.BoxCode = data.BoxCode1;
+                            //log.CreateTime = DateTime.Now;
+                            //log.Demo = Demo;
+                            //log.Isdel = 0;
+                            //log.CreateUser = userId;
+                            //printlog.Add(log);
+
+                            #endregion
+                        }
+                        else
+                        {
+                            #region 澶氫釜鏀爜鏍囩  寮�濮�-缁撴潫
+
+                            if (string.IsNullOrWhiteSpace(boxNo2))
+                            {
+                                throw new Exception("璧峰鏀爜涓嶈兘涓虹┖");
+                            }
+
+                            var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS鐢熸垚' and BoxNo3 >='{boxNo2}' and BoxNo3 <= '{endBoxNo2}'";
+                            var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql);
+                           
+                            if (data2.Count == 0)
+                            {
+                                throw new Exception($"鏈煡璇㈠埌{boxNo2}-{endBoxNo2}涓俊鎭�");
+                            }
+
+                            var i = 0;
+                            foreach (var data in data2)
+                            {
+                                // 鐗╂枡鏉$爜淇℃伅璧嬪��
+                                BoxInfoDto model = new BoxInfoDto();
+                                model.SkuNo = data.SkuNo;
+                                model.SkuName = data.SkuName;
+                                model.LotNo = data.LotNo;                      //鎵规
+                                model.SupplierLot = data.SupplierLot;                        // 鍘熷巶鎵瑰彿
+                                model.Standard = data.Standard;                              // 瑙勬牸/鍨嬪彿
+                                model.PackageStandard = data.PackageStandard;                // 鍖呰瑙勬牸
+
+                                model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
+                                model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+
+                                model.Qty = data.Qty;// 鏁伴噺
+
+                                model.BoxNo = data.BoxNo3;                 // 绠卞彿     
+
+                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
+
+                                // 娣诲姞鍒發ist闆嗗悎
+                                printModelList.Add(model);
+                                i++;
+                                ////娣诲姞鎵撳嵃璁板綍
+                                //WmsLabelPrintLog log = new WmsLabelPrintLog();
+                                //log.BoxCode = data.BoxCode1;
+                                //log.CreateTime = DateTime.Now;
+                                //log.Demo = Demo;
+                                //log.Isdel = 0;
+                                //log.CreateUser = userId;
+                                //printlog.Add(log);
+                                if (i >= 100)
+                                {
+                                    break;
+                                }
+                            }
+
+                            #endregion
+                        }
+                        break;
+                    case "3":
+                        if (string.IsNullOrWhiteSpace(endBoxNo))
+                        {
+                            if (string.IsNullOrWhiteSpace(boxNo))
+                            {
+                                throw new Exception("璧峰绠辩爜涓嶈兘涓虹┖");
+                            }
+                            #region 绠辩爜鍜岀鐮佸唴鐨勬敮鐮�
+
+                            if (!string.IsNullOrWhiteSpace(boxNo2))
+                            {
+                                if (string.IsNullOrWhiteSpace(endBoxNo2)) //鍗曚釜鏀爜鍜岀鐮�
+                                {
+                                    #region 鍗曚釜鏀爜鍜岀鐮�
+
+                                    var dataList = list.Where(m => m.BoxNo == boxNo);
+                                    var data = list.FirstOrDefault(m => m.BoxNo3 == boxNo2);
+                                    if (data == null)
+                                    {
+                                        throw new Exception($"鏈煡璇㈠埌{boxNo2}淇℃伅");
+                                    }
+
+                                    if (data.BoxNo != boxNo)//鍒ゆ柇绠辩爜鏄惁鐩稿悓
+                                    {
+                                        throw new Exception($"褰撳墠鏀爜涓嶆槸绠辩爜鍐�");
+                                    }
+                                    
+
+                                    // 鐗╂枡鏉$爜淇℃伅璧嬪�� 绠辩爜
+                                    BoxInfoDto model1 = new BoxInfoDto();
+                                    model1.SkuNo = data.SkuNo;
+                                    model1.SkuName = data.SkuName;
+                                    model1.LotNo = data.LotNo;                      //鎵规
+                                    model1.SupplierLot = data.SupplierLot;                        // 鍘熷巶鎵瑰彿
+                                    model1.Standard = data.Standard;                              // 瑙勬牸/鍨嬪彿
+                                    model1.PackageStandard = data.PackageStandard;                // 鍖呰瑙勬牸
+
+                                    model1.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
+                                    model1.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                    model1.Qty = dataList.Sum(m=>m.Qty);// 鏁伴噺
+                                    model1.BoxNo = data.BoxNo;                 // 绠卞彿     
+
+                                    model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
+
+                                    // 娣诲姞鍒發ist闆嗗悎
+                                    printModelList.Add(model1);
+
+                                    // 鐗╂枡鏉$爜淇℃伅璧嬪��  鏀爜
+                                    BoxInfoDto model = new BoxInfoDto();
+                                    model.SkuNo = data.SkuNo;
+                                    model.SkuName = data.SkuName;
+                                    model.LotNo = data.LotNo;                      //鎵规
+                                    model.SupplierLot = data.SupplierLot;                        // 鍘熷巶鎵瑰彿
+                                    model.Standard = data.Standard;                              // 瑙勬牸/鍨嬪彿
+                                    model.PackageStandard = data.PackageStandard;                // 鍖呰瑙勬牸
+
+                                    model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
+                                    model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                    model.Qty = data.Qty;// 鏁伴噺
+                                    model.BoxNo = data.BoxNo3;                 // 鏀彿     
+
+                                    model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
+
+                                    // 娣诲姞鍒發ist闆嗗悎
+                                    printModelList.Add(model);
+                                    ////娣诲姞鎵撳嵃璁板綍
+                                    //WmsLabelPrintLog log = new WmsLabelPrintLog();
+                                    //log.BoxCode = data.BoxCode1;
+                                    //log.CreateTime = DateTime.Now;
+                                    //log.Demo = Demo;
+                                    //log.Isdel = 0;
+                                    //log.CreateUser = userId;
+                                    //printlog.Add(log);
+                                    #endregion
+                                }
+                                else//涓�绠卞唴鏌愬嚑涓敮鐮�
+                                {
+                                    #region 鍗曚釜绠辩爜鍜屽涓敮鐮�
+
+                                    var sql = $@"select * from  BllBoxInfo where IsDel = '0' and Origin = 'WMS鐢熸垚' and BoxNo3 >='{boxNo2}' and BoxNo3 <= '{endBoxNo2}'";
+                                    var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql);
+                                    
+                                    if (data2.Count == 0)
+                                    {
+                                        throw new Exception($"鏈煡璇㈠埌{boxNo2}-{endBoxNo2}涓俊鎭�");
+                                    }
+
+                                    if (data2.Count(m => m.BoxNo != boxNo) > 0)
+                                    {
+                                        throw new Exception($"{boxNo2}-{endBoxNo2}涓俊鎭湁涓嶅睘浜巤boxNo}绠辩爜鍐呯殑");
+                                    }
+
+                                    var data = list.Where(m => m.BoxNo == boxNo);
+                                    var boxData = data2.FirstOrDefault();
+                                    // 鐗╂枡鏉$爜淇℃伅璧嬪��
+                                    BoxInfoDto model = new BoxInfoDto();
+                                    model.SkuNo = boxData.SkuNo;
+                                    model.SkuName = boxData.SkuName;
+                                    model.LotNo = boxData.LotNo;                      //鎵规
+                                    model.SupplierLot = boxData.SupplierLot;                        // 鍘熷巶鎵瑰彿
+                                    model.Standard = boxData.Standard;                              // 瑙勬牸/鍨嬪彿
+                                    model.PackageStandard = boxData.PackageStandard;                // 鍖呰瑙勬牸
+
+                                    model.ExpirationTime = boxData.ExpirationTime;                  // 鏈夋晥鏈熻嚦
+                                    model.StoreTime = boxData.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                    model.Qty = data.Sum(m => m.Qty);     // 鏁伴噺
+                                    model.BoxNo = boxData.BoxNo;                 // 鏀彿     
+
+                                    model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
+
+                                    // 娣诲姞鍒發ist闆嗗悎
+                                    printModelList.Add(model);
+
+                                    var i = 0;
+                                    foreach (var item in data2)
+                                    {
+                                        // 鐗╂枡鏉$爜淇℃伅璧嬪��
+                                        BoxInfoDto model1 = new BoxInfoDto();
+                                        model1.SkuNo = item.SkuNo;
+                                        model1.SkuName = item.SkuName;
+                                        model1.LotNo = item.LotNo;                      //鎵规
+                                        model1.SupplierLot = item.SupplierLot;                        // 鍘熷巶鎵瑰彿
+                                        model1.Standard = item.Standard;                              // 瑙勬牸/鍨嬪彿
+                                        model1.PackageStandard = item.PackageStandard;                // 鍖呰瑙勬牸
+
+                                        model1.ExpirationTime = item.ExpirationTime;                  // 鏈夋晥鏈熻嚦
+                                        model1.StoreTime = item.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                        model1.Qty = item.Qty;// 鏁伴噺
+                                        model1.BoxNo = item.BoxNo3;                 // 鏀彿     
+
+                                        model.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
+
+                                        // 娣诲姞鍒發ist闆嗗悎
+                                        printModelList.Add(model);
+                                        i++;
+                                        ////娣诲姞鎵撳嵃璁板綍
+                                        //WmsLabelPrintLog log = new WmsLabelPrintLog();
+                                        //log.BoxCode = item.BoxCode1;
+                                        //log.CreateTime = DateTime.Now;
+                                        //log.Demo = Demo;
+                                        //log.Isdel = 0;
+                                        //log.CreateUser = userId;
+                                        //printlog.Add(log);
+                                        if (i >= 100)
+                                        {
+                                            break;
+                                        }
+                                    }
+
+                                    #endregion
+                                }
+                            }
+                            else //鏁寸鏀爜鍜屼竴涓鐮�
+                            {
+                                #region 鏁寸鏀爜鍜屼竴涓鐮�
+
+                                var data = list.Where(m => m.BoxNo == boxNo).ToList();
+                                var boxData = data.FirstOrDefault();
+                                if (boxData == null)
+                                {
+                                    throw new Exception($"鏈煡璇㈠埌{boxNo}绠辩爜淇℃伅");
+                                }
+                                // 鐗╂枡鏉$爜淇℃伅璧嬪��
+                                BoxInfoDto model = new BoxInfoDto();
+                                model.SkuNo = boxData.SkuNo;
+                                model.SkuName = boxData.SkuName;
+                                model.LotNo = boxData.LotNo;                      //鎵规
+                                model.SupplierLot = boxData.SupplierLot;                        // 鍘熷巶鎵瑰彿
+                                model.Standard = boxData.Standard;                              // 瑙勬牸/鍨嬪彿
+                                model.PackageStandard = boxData.PackageStandard;                // 鍖呰瑙勬牸
+
+                                model.ExpirationTime = boxData.ExpirationTime;                  // 鏈夋晥鏈熻嚦
+                                model.StoreTime = boxData.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                model.Qty = data.Sum(m => m.Qty);     // 鏁伴噺
+                                model.BoxNo = boxData.BoxNo;                 // 鏀彿     
+
+                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
+
+                                // 娣诲姞鍒發ist闆嗗悎
+                                printModelList.Add(model);
+
+                                if (data.Count(m => !string.IsNullOrWhiteSpace(m.BoxNo3)) > 0) //鍒ゆ柇鏄惁鏈夋敮鐮�
+                                {
+                                    var i = 0;
+                                    foreach (var item in data)
+                                    {
+                                        // 鐗╂枡鏉$爜淇℃伅璧嬪��
+                                        BoxInfoDto model1 = new BoxInfoDto();
+                                        model1.SkuNo = item.SkuNo;
+                                        model1.SkuName = item.SkuName;
+                                        model1.LotNo = item.LotNo;                      //鎵规
+                                        model1.SupplierLot = item.SupplierLot;                        // 鍘熷巶鎵瑰彿
+                                        model1.Standard = item.Standard;                              // 瑙勬牸/鍨嬪彿
+                                        model1.PackageStandard = item.PackageStandard;                // 鍖呰瑙勬牸
+
+                                        model1.ExpirationTime = item.ExpirationTime;                  // 鏈夋晥鏈熻嚦
+                                        model1.StoreTime = item.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                        model1.Qty = item.Qty;     // 鏁伴噺
+                                        model1.BoxNo = item.BoxNo3;                 // 鏀彿     
+
+                                        model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
+
+
+                                        // 娣诲姞鍒發ist闆嗗悎
+                                        printModelList.Add(model1);
+                                        i++;
+                                        ////娣诲姞鎵撳嵃璁板綍
+                                        //WmsLabelPrintLog log = new WmsLabelPrintLog();
+                                        //log.BoxCode = item.BoxCode1;
+                                        //log.CreateTime = DateTime.Now;
+                                        //log.Demo = Demo;
+                                        //log.Isdel = 0;
+                                        //log.CreateUser = userId;
+                                        //printlog.Add(log);
+                                        if (i >= 100)
+                                        {
+                                            break;
+                                        }
+                                    }
+                                }
+                                else
+                                {
+                                    throw new Exception("褰撳墠绠卞唴娌℃湁鏀爜");
+                                }
+                                #endregion
+                            }
+                            #endregion
+                        }
+                        else
+                        {
+                            if (string.IsNullOrWhiteSpace(boxNo))
+                            {
+                                throw new Exception("璧峰绠辩爜涓嶈兘涓虹┖");
+                            }
+
+                            #region 澶氫釜绠辩爜鍜屽唴鏀爜
+
+                            var sql = $@"select * from  BllBoxInfo where IsDel = '0' and Origin = 'WMS鐢熸垚' and BoxNo >='{boxNo}' and BoxNo <= '{endBoxNo}'";
+                            var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql);
+                            var data3 = data2.GroupBy(m => m.BoxNo).Select(m => m.Key).OrderBy(m => m).ToList();
+                            if (data3.Count == 0)
+                            {
+                                throw new Exception($"鏈煡璇㈠埌{boxNo}-{endBoxNo}涓俊鎭�");
+                            }
+                            var i = 0;
+                            var j = 0;
+                            foreach (var demo in data3)
+                            {
+                                var data = list.Where(m => m.BoxNo == demo).ToList();
+                                var boxData = data.FirstOrDefault();
+                                if (boxData == null)
+                                {
+                                    throw new Exception($"鏈煡璇㈠埌{demo}绠辩爜淇℃伅");
+                                }
+                                // 鐗╂枡鏉$爜淇℃伅璧嬪��
+                                BoxInfoDto model = new BoxInfoDto();
+                                model.SkuNo = boxData.SkuNo;
+                                model.SkuName = boxData.SkuName;
+                                model.LotNo = boxData.LotNo;                      //鎵规
+                                model.SupplierLot = boxData.SupplierLot;                        // 鍘熷巶鎵瑰彿
+                                model.Standard = boxData.Standard;                              // 瑙勬牸/鍨嬪彿
+                                model.PackageStandard = boxData.PackageStandard;                // 鍖呰瑙勬牸
+
+                                model.ExpirationTime = boxData.ExpirationTime;                  // 鏈夋晥鏈熻嚦
+                                model.StoreTime = boxData.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                model.Qty = data.Sum(m => m.Qty);     // 鏁伴噺
+                                model.BoxNo = boxData.BoxNo;                 // 鏀彿     
+
+                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
+
+                                // 娣诲姞鍒發ist闆嗗悎
+                                printModelList.Add(model);
+
+                                j++;
+                                if (j >= 100)
+                                {
+                                    break;
+                                }
+                                if (data.Count(m => !string.IsNullOrWhiteSpace(m.BoxNo3)) > 0) //鍒ゆ柇鏄惁鏈夋敮鐮�
+                                {
+                                    foreach (var item in data.OrderBy(m => m.BoxNo3).ToList())
+                                    {
+                                        // 鐗╂枡鏉$爜淇℃伅璧嬪��
+                                        BoxInfoDto model1 = new BoxInfoDto();
+                                        model1.SkuNo = item.SkuNo;
+                                        model1.SkuName = item.SkuName;
+                                        model1.LotNo = item.LotNo;                      //鎵规
+                                        model1.SupplierLot = item.SupplierLot;                        // 鍘熷巶鎵瑰彿
+                                        model1.Standard = item.Standard;                              // 瑙勬牸/鍨嬪彿
+                                        model1.PackageStandard = item.PackageStandard;                // 鍖呰瑙勬牸
+
+                                        model1.ExpirationTime = item.ExpirationTime;                  // 鏈夋晥鏈熻嚦
+                                        model1.StoreTime = item.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
+                                        model1.Qty = item.Qty;// 鏁伴噺
+                                        model1.BoxNo = item.BoxNo3;                 // 鏀彿     
+
+                                        model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
+
+                                        // 娣诲姞鍒發ist闆嗗悎
+                                        printModelList.Add(model1);
+                                        i++;
+                                        ////娣诲姞鎵撳嵃璁板綍
+                                        //WmsLabelPrintLog log = new WmsLabelPrintLog();
+                                        //log.BoxCode = item.BoxCode1;
+                                        //log.CreateTime = DateTime.Now;
+                                        //log.Demo = Demo;
+                                        //log.Isdel = 0;
+                                        //log.CreateUser = userId;
+                                        //printlog.Add(log);
+                                        if (i >= 100)
+                                        {
+                                            break;
+                                        }
+                                    }
+                                }
+
+                            }
+
+                            #endregion
+                        }
+                        break;
+                    default:
+                        throw new Exception("璇烽�夋嫨琛ユ墦绫诲瀷");
+                }
+
+                #endregion
+
+                return printModelList;
+            }
+            catch (Exception e)
+            {
+                throw new Exception(e.Message);
+            }
+        }
     }
 }

--
Gitblit v1.8.0