From ecb386a4201213c6635f28f9e9e02e3faf217b51 Mon Sep 17 00:00:00 2001
From: yuyou_x <2336760928@qq.com>
Date: 星期六, 16 三月 2024 11:08:34 +0800
Subject: [PATCH] 修改储位图例柱状图以及圆形图显示数据问题。

---
 Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs | 1319 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 1,059 insertions(+), 260 deletions(-)

diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
index e9f9f90..9b74c1f 100644
--- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
@@ -7,6 +7,7 @@
 using System.Linq;
 using System.Linq.Expressions;
 using Model.ModelDto.BllAsnDto;
+using Model.ModelVm.BllAsnVm;
 using Utility.Tools;
 using WMS.BLL.LogServer;
 using WMS.DAL;
@@ -263,7 +264,7 @@
                   .AndIF(!string.IsNullOrWhiteSpace(model.ProductionTime), it => it.ProductionTime >= Convert.ToDateTime(model.ProductionTime))
                   .AndIF(!string.IsNullOrWhiteSpace(model.InspectMark), it => it.InspectMark == model.InspectMark.Trim())
                   .AndIF(!string.IsNullOrWhiteSpace(model.BitBoxMark), it => it.BitBoxMark == model.BitBoxMark.Trim())
-                  .AndIF(!string.IsNullOrWhiteSpace(model.Origin), it => it.Origin == model.Origin.Trim())
+                  .AndIF(!string.IsNullOrWhiteSpace(model.Origin), it => model.Origin.Trim().Contains(it.Origin))
                   .And(m => m.SkuNo != "100099" && m.IsDel == "0" && m.Status == "0")
                   .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
                 var total = 0;
@@ -399,9 +400,136 @@
         }
 
 
+
+        //鑾峰彇鏍囩绠辩爜淇℃伅
+        public List<BoxInfoDto> GetLabelBoxList(LabelBoxInfoVm model, out int count)
+        {
+            try
+            {
+                Expression<Func<BllBoxInfo, bool>> item = Expressionable.Create<BllBoxInfo>()
+                    .AndIF(!string.IsNullOrWhiteSpace(model.AsnNo), it => it.ASNNo.Contains(model.AsnNo.Trim()))
+                    .AndIF(!string.IsNullOrWhiteSpace(model.BoxNo), it => it.BoxNo.Contains(model.BoxNo.Trim()))
+                    .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.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" && it.Origin == "WMS鐢熸垚")
+                    .ToExpression();
+                
+                var total = 0;
+                var data = GetAllWhereAsync(item)
+                    .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id)
+                    .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id)
+                    .Select((a, b, c) => new BoxInfoDto()
+                    {
+                        Id = a.Id,
+                        ASNNo = a.ASNNo,
+                        ASNDetailNo = a.ASNDetailNo,
+                        BoxNo = a.BoxNo,
+                        BoxNo2 = a.BoxNo2,
+                        BoxNo3 = a.BoxNo3,
+                        Qty = a.Qty,
+                        FullQty = a.FullQty,
+
+                        SkuNo = a.SkuNo,
+                        SkuName = a.SkuName,
+                        Standard = a.Standard,
+                        PackageStandard = a.PackageStandard,
+
+                        LotNo = a.LotNo,
+                        LotText = a.LotText,
+                        
+                        Status = a.Status,
+                        SupplierLot = a.SupplierLot,
+
+                        ProductionTime = a.ProductionTime,
+                        ExpirationTime = a.ExpirationTime,
+                        StoreTime = a.StoreTime,
+                        CompleteTime = a.CompleteTime,
+
+                        InspectMark = a.InspectMark,
+                        BitBoxMark = a.BitBoxMark,
+                        InspectStatus = a.InspectStatus,
+
+                        Origin = a.Origin,
+                        QtyCount = a.QtyCount,
+                        QtyOrd = a.QtyOrd,
+                        
+
+                        CreateUserName = b.RealName,
+                        UpdateUserName = c.RealName,
+                        CreateTime = a.CreateTime,
+                        UpdateTime = a.UpdateTime
+
+                    }).OrderByDescending(a => a.CreateTime).OrderBy(a => a.BoxNo).ToOffsetPage(model.Page, model.Limit, ref total);
+                count = total;
+                return data;
+            }
+            catch (Exception e)
+            {
+                throw new Exception(e.Message);
+            }
+        }
+
+        //鑾峰彇鏍囩妯℃澘鏍规嵁鍏ュ簱鍗曟槑缁咺D
+        public BoxInfoDto GetLabelBoxModel(int id)
+        {
+            try
+            {
+                var asnDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.Id == id && m.IsDel == "0");
+                if (asnDetail == null)
+                {
+                    throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏淇℃伅锛岃鏍稿疄");
+                }
+
+                var packInfo = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == asnDetail.PackagNo);
+                if (packInfo == null)
+                {
+                    throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏涓殑鐗╂枡鍖呰淇℃伅");
+                }
+
+                var str = "";
+
+                if (!string.IsNullOrWhiteSpace(packInfo.L1Name))
+                {
+                    str += packInfo.L1Num + "/" + packInfo.L1Name;
+                }
+                if (!string.IsNullOrWhiteSpace(packInfo.L2Name))
+                {
+                    str += "-" + packInfo.L2Num + "/" + packInfo.L2Name;
+                }
+                if (!string.IsNullOrWhiteSpace(packInfo.L3Name))
+                {
+                    str += "-" + packInfo.L3Num + "/" + packInfo.L3Name;
+                }
+                if (!string.IsNullOrWhiteSpace(packInfo.L4Name))
+                {
+                    str += "-" + packInfo.L4Num + "/" + packInfo.L4Name;
+                }
+                if (!string.IsNullOrWhiteSpace(packInfo.L5Name))
+                {
+                    str += "-" + packInfo.L5Num + "/" + packInfo.L5Name;
+                }
+
+
+                var data = new BoxInfoDto();
+                data.SkuNo = asnDetail.SkuNo;
+                data.SkuName = asnDetail.SkuName;
+                data.Standard = asnDetail.Standard;
+                data.SupplierLot = asnDetail.SupplierLot;
+                data.PackageStandard = str;
+                return data;
+            }
+            catch (Exception e)
+            {
+                throw new Exception(e.Message);
+            }
+        }
+
         //鑾峰彇鏍囩淇℃伅(鐢熸垚鏍囩)
-        public List<LabelBoxDto> AddLabelBoxReturn(int imId, string isReset, decimal arriveQty, string skuName, string standard, string packStandard, string skuNo,
-            string supplierLot, string productionTime, string expirationTime, string storeTime, int userId)
+        public List<BllBoxInfo> AddLabelBox(int imId, string isReset, decimal arriveQty, string productionTime, string expirationTime, string storeTime,string supplierLot, int userId)
         {
             try
             { 
@@ -418,15 +546,37 @@
                 {
                     throw new Exception("鏈煡璇㈠埌鍗曟嵁淇℃伅");
                 }
-                //鐗╂枡
-                var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == asnList.SkuNo);
+                
                 var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == asnList.PackagNo);
                 if (pack == null)
                 {
                     throw new Exception("鏈煡璇㈠埌褰撳墠鍗曟嵁涓墿鏂欑殑鍖呰淇℃伅");
                 }
+
+                var packStr = "";
+
+                if (!string.IsNullOrWhiteSpace(pack.L1Name))
+                {
+                    packStr += pack.L1Num + "/" + pack.L1Name;
+                }
+                if (!string.IsNullOrWhiteSpace(pack.L2Name))
+                {
+                    packStr += "-" + pack.L2Num + "/" + pack.L2Name;
+                }
+                if (!string.IsNullOrWhiteSpace(pack.L3Name))
+                {
+                    packStr += "-" + pack.L3Num + "/" + pack.L3Name;
+                }
+                if (!string.IsNullOrWhiteSpace(pack.L4Name))
+                {
+                    packStr += "-" + pack.L4Num + "/" + pack.L4Name;
+                }
+                if (!string.IsNullOrWhiteSpace(pack.L5Name))
+                {
+                    packStr += "-" + pack.L5Num + "/" + pack.L5Name;
+                }
                 //鏍囩琛�
-                var label = Db.Queryable<BllLabelBoxNo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == imId).ToList();
+                var label = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.Origin == "WMS鐢熸垚").ToList();
 
 
                 #endregion
@@ -436,40 +586,14 @@
                 var bNum = 0;//绠辩墿鍝佹暟閲�
                 var zNum = 0;//鏀墿鍝佹暟閲�
                 var packLevel = 0;
-                var isGo = true;
-
-                if (pack.L5Num.HasValue)
-                {
-                    if (pack.L5Name != "鎵�")
-                    {
-                        isGo = false;
-                        packLevel = 5;
-                        bNum = Convert.ToInt32(pack.L5Num);
-                    }
-                }
-                if (pack.L4Num.HasValue && isGo)
-                {
-                    if (pack.L4Name != "鎵�")
-                    {
-                        isGo = false;
-                        packLevel = 4;
-                        bNum = Convert.ToInt32(pack.L4Num);
-                    }
-                }
-                if (pack.L3Num.HasValue && isGo)
-                {
-                    if (pack.L4Name != "鎵�")
-                    {
-                        isGo = false;
-                        packLevel = 3;
-                        bNum = Convert.ToInt32(pack.L3Num);
-                    }
-                }
+                
                 if (pack.L2Num.HasValue)
                 {
-                    packLevel = 2;
-                    bNum = Convert.ToInt32(pack.L2Num);
-
+                    if (pack.L2Name != "鎵�")
+                    {
+                        packLevel = 2; 
+                        bNum = Convert.ToInt32(pack.L2Num);
+                    }
                 }
                 if (pack.L1Num.HasValue)
                 {
@@ -481,36 +605,44 @@
                     zNum = Convert.ToInt32(pack.L1Num);
                 }
 
-                if (packLevel <= 1)//鍖呰绛夌骇灏忎簬1锛屾寜鐓�1绾ф爣绛炬墦鍗�
+                if (packLevel < 1)//鍖呰绛夌骇灏忎簬1锛屾寜鐓�1绾ф爣绛炬墦鍗�
                 {
-                    packLevel = 1;
+                    throw new Exception("鍖呰淇℃伅鏈夎锛屽皬浜庝竴绾�");
                 }
 
                 #endregion
+                var modelList = new List<BllBoxInfo>();
 
+                var addLotNo = "";
+                if (arriveQty <= 0)
+                {
+                    throw new Exception("鍒拌揣鏁伴噺涓嶈兘灏忎簬绛変簬0!");
+                }
+                Db.BeginTran();
                 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; //鐢熶骇鏉$爜鏁伴噺
@@ -529,23 +661,39 @@
                     string maxBoxCode = ""; //绠辩爜鍙�
                     // 鐢熸垚鑷紪鎵瑰彿
                     string toDayTime = DateTime.Now.ToString("yyyyMMdd");
-                    var diJiJian = 0;
-
-                    var maxLotNo = label.Max(a => a.LotNo);
-                    var maxBoxNo = label.Max(a => a.BoxNo);
+                    
                     if (isReset == "0")
                     {
-
-                        maxLotNoStr = maxLotNo;
-                        maxBoxCode = maxBoxNo;
-                        if (string.IsNullOrWhiteSpace(maxLotNoStr))
+                        //鍒ゆ柇鍗曟嵁鏄惁鏄綑鏂欓��鍥炲崟
+                        if (asn.Type == "4")
                         {
-                            maxLotNoStr = toDayTime.Substring(2, 6) + "0001";
+                            maxLotNoStr = asnList.LotNo;
+                            maxBoxCode = label.Where(m=>m.LotNo == maxLotNoStr).Max(a => a.BoxNo);
+                            if (string.IsNullOrWhiteSpace(maxLotNoStr))
+                            {
+                                throw new Exception("杞﹂棿浣欐枡閫�鍥炲崟鎹壒娆′笉鑳戒负绌�");
+                            }
                         }
+                        else
+                        {
+                            var labelCount = label.Where(m => m.ASNDetailNo == imId).ToList();
+                            if (labelCount.Count <= 0)
+                            {
+                                throw new Exception("褰撳墠鍗曟嵁鏄庣粏杩樻湭鐢熸垚鏍囩锛岃閫夋嫨閲嶇疆鎵规閫夐」涓衡�樻槸鈥欙紱");
+                            }
+                            maxLotNoStr = labelCount.Max(a => a.LotNo);
+                            
+                            if (string.IsNullOrWhiteSpace(maxLotNoStr))
+                            {
+                                maxLotNoStr = toDayTime.Substring(2, 6) + "0001";
+                            }
+                            maxBoxCode = label.Where(m => m.LotNo == maxLotNoStr).Max(a => a.BoxNo);
+                        }
+                        
                     }
                     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";
@@ -566,91 +714,73 @@
                         }
                     }
 
+                    addLotNo = maxLotNoStr;
                     #endregion
 
-                    var modelList = new List<LabelBoxDto>();
+
 
                     for (int i = 1; i <= labelNum; i++)
                     {
-                        // 鐗╂枡鏉$爜淇℃伅璧嬪��
-                        LabelBoxDto model = new LabelBoxDto();
-                        model.AsnDetailNo = imId;
-                        model.SkuNo = asnList.SkuNo;
-                        model.SkuName = asnList.SkuName;
-
-                        model.SupplierName = asn.CustomerName;                        // 渚涘簲鍟�
-
-                        model.Standard = asnList.Standard;                            // 瑙勬牸
-                        model.PackageStandard = packStandard;
-                        model.SupplierLot = supplierLot;                         // 鍘傚鎵瑰彿 
-                        model.LotNo = maxLotNoStr;                      //鎵规
-
-                        model.ProductionTime = DateTime.Parse(productionTime);          // 鐢熶骇鏃ユ湡 
-                        model.StoreTime = DateTime.Parse(storeTime);                     // 鍌ㄥ瓨鏈熻嚦
-                        model.ExpirationTime = DateTime.Parse(expirationTime);          // 鏈夋晥鏈熻嚦/璐瓨鏈� 
+                        decimal boxQty = 0;
                         if (i == labelNum)
                         {
                             // 鏈�鍚庝竴涓潯鐮�
                             var s = zNum * (i - 1);
                             if (zNum > qty - s)
                             {
-                                model.Qty = qty - s;// 鏁伴噺
+                                boxQty = qty - s;// 鏁伴噺
                             }
                             else
                             {
-                                model.Qty = zNum;// 鏁伴噺
+                                boxQty = zNum;// 鏁伴噺
                             }
                         }
                         else
                         {
-                            model.Qty = zNum;         // 鏁伴噺
+                            boxQty = zNum;         // 鏁伴噺
                         }
 
-
-                        if (maxBoxCode == "")
+                        //鑾峰彇绠辩爜
+                        if (string.IsNullOrWhiteSpace(maxBoxCode))
                         {
-                            var str = model.LotNo + "000001";
-                            model.BoxNo = str;                 // 鏀彿     鎵瑰彿+ 娴佹按  2302010001000001
-                            maxBoxCode = model.BoxNo;
+                            var str = "B"+maxLotNoStr + "000001"; //鎵瑰彿+ 娴佹按  2302010001000001
+                            maxBoxCode = str;
                         }
                         else
                         {
-                            model.BoxNo = maxBoxCode.Substring(0, 10) + (int.Parse(maxBoxCode.Substring(10, 6)) + 1).ToString().PadLeft(6, '0');
-                            maxBoxCode = model.BoxNo;
-                        }
-                        model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 80, 50);
-
-                        // 娣诲姞鍒發ist闆嗗悎
-                        modelList.Add(model);
-
+                            maxBoxCode = maxBoxCode.Substring(0, 11) + (int.Parse(maxBoxCode.Substring(11, 6)) + 1).ToString().PadLeft(6, '0'); 
+                        } 
+                        
                         // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛�
-                        var labelModel = new BllLabelBoxNo()
+                        var labelModel = new BllBoxInfo()
                         {
                             ASNNo = asnList.ASNNo,
                             ASNDetailNo = asnList.Id,
-                            BoxNo = model.BoxNo,
-                            ParentBoxNo = "",
-                            Qty = model.Qty,
-                            SkuNo = model.SkuNo,
-                            SkuName = model.SkuName,
-                            Standard = model.Standard,
-                            PackageStandard = model.PackageStandard,
+                            BoxNo = maxBoxCode, 
+                            Qty = int.Parse(boxQty.ToString()),
+                            FullQty = bNum,
+                            Status = "0",
+                            SkuNo = asnList.SkuNo,
+                            SkuName = asnList.SkuName,
+                            LotNo = maxLotNoStr,
+                            Standard = asnList.Standard,
+                            PackageStandard = packStr,
+                            SupplierLot = supplierLot,
+                            InspectMark = "0",
+                            BitBoxMark = bNum > boxQty ? "1":"0",
+                            InspectStatus = "",
 
-                            LotNo = model.LotNo,
-                            SupplierName = asn.CustomerName,
-                            ProductionTime = model.ProductionTime,
-                            SupplierLot = model.SupplierLot,
-                            StoreTime = model.StoreTime,
-                            ExpirationTime = model.ExpirationTime,
-                            IsUse = "0",
-                            Level = "1",
+                            ProductionTime = DateTime.Parse(productionTime),
+                            StoreTime = DateTime.Parse(storeTime),
+                            ExpirationTime = DateTime.Parse(expirationTime),
 
+                            Origin = "WMS鐢熸垚",
                             CreateUser = userId,
                             CreateTime = DateTime.Now,
                         };
 
                         Db.Insertable(labelModel).ExecuteCommand();
-
+                        modelList.Add(labelModel);
                     }
 
                     #endregion
@@ -660,25 +790,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());
@@ -697,20 +829,38 @@
                     string toDayTime2 = DateTime.Now.ToString("yyyyMMdd");
                     if (isReset == "0")
                     {
-                        var maxCode = label.Max(a => a.LotNo);
-                        var boxCode1 = label.Where(m => m.Level == "1").Max(a => a.BoxNo);//绠卞彿
-                        var boxCode2 = label.Where(m => m.Level == "2").Max(a => a.BoxNo);//鏀彿
-                        maxCodestr2 = maxCode;
-                        maxboxcode2 = boxCode1;
-                        maxboxcode3 = boxCode2;
-                        if (string.IsNullOrWhiteSpace(maxCodestr2))
+                        //鍒ゆ柇鍗曟嵁鏄惁鏄綑鏂欓��鍥炲崟
+                        if (asn.Type == "4")
                         {
-                            maxCodestr2 = toDayTime2.Substring(2, 6) + "0001";
+                            maxCodestr2 = asnList.LotNo;
+                            maxboxcode2 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo);
+                            maxboxcode3 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo3);//鏀彿
+                            if (string.IsNullOrWhiteSpace(maxCodestr2))
+                            {
+                                throw new Exception("杞﹂棿浣欐枡閫�鍥炲崟鎹壒娆′笉鑳戒负绌�");
+                            }
                         }
+                        else
+                        {
+                            var labelCount = label.Where(m => m.ASNDetailNo == imId).ToList();
+                            if (labelCount.Count <= 0)
+                            {
+                                throw new Exception("褰撳墠鍗曟嵁鏄庣粏杩樻湭鐢熸垚鏍囩锛岃閫夋嫨閲嶇疆鎵规閫夐」涓衡�樻槸鈥欙紱");
+                            }
+                            maxCodestr2 = labelCount.Max(a => a.LotNo); ;
+                            
+                            if (string.IsNullOrWhiteSpace(maxCodestr2))
+                            {
+                                maxCodestr2 = toDayTime2.Substring(2, 6) + "0001";
+                            }
+                            maxboxcode2 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo);//绠卞彿;
+                            maxboxcode3 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo3);//鏀彿;
+                        }
+                        
                     }
                     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";
@@ -731,61 +881,43 @@
                         }
                     }
 
+                    addLotNo = maxCodestr2;
                     #endregion
 
-                    var modelList = new List<LabelBoxDto>();
+
 
                     for (int i = 1; i <= labelNum2; i++)//绠辩爜鏍囩
                     {
-                        // 鐗╂枡鏉$爜淇℃伅璧嬪��
-                        LabelBoxDto model = new LabelBoxDto();
-                        model.AsnDetailNo = imId;
-                        model.SkuNo = asnList.SkuNo;
-                        model.SkuName = asnList.SkuName;
-
-                        model.Standard = asnList.Standard;               // 瑙勬牸
-                        model.PackageStandard = packStandard;
-
-                        model.SupplierLot = supplierLot;                 // 鍘傚鎵瑰彿 
-                        model.LotNo = maxCodestr2;                      //鎵规
-
-                        model.ProductionTime = DateTime.Parse(productionTime);          // 鐢熶骇鏃ユ湡 
-                        model.StoreTime = DateTime.Parse(storeTime);                     // 鍌ㄥ瓨鏈熻嚦
-                        model.ExpirationTime = DateTime.Parse(expirationTime);          // 鏈夋晥鏈熻嚦/璐瓨鏈� 
+                        //绠卞唴鏁伴噺
+                        decimal boxQty = 0;
                         if (i == labelNum2)
                         {
                             // 鏈�鍚庝竴涓潯鐮�
                             var s = bNum * (i - 1);
                             if (bNum > qty2 - s)
                             {
-                                model.Qty = qty2 - s;// 鏁伴噺
+                                boxQty = qty2 - s;// 鏁伴噺
                             }
                             else
                             {
-                                model.Qty = bNum;// 鏁伴噺
+                                boxQty = bNum;// 鏁伴噺
                             }
                         }
                         else
                         {
-                            model.Qty = bNum;                                                         // 鏁伴噺
+                            boxQty = bNum;                                                         // 鏁伴噺
                         }
 
-                        if (maxboxcode2 == "")
+                        //鑾峰彇绠辩爜
+                        if (string.IsNullOrWhiteSpace(maxboxcode2))
                         {
-                            maxboxcode2 = model.LotNo + "000001";
-                            model.BoxNo = maxboxcode2;        // 绠卞彿     鎵瑰彿+绗嚑绠�
-                            maxboxcode2 = model.BoxNo;
+                            maxboxcode2 = "B"+maxCodestr2 + "000001"; // 绠卞彿     鎵瑰彿+绗嚑绠�
                         }
                         else
                         {
-                            model.BoxNo = maxboxcode2.Substring(0, 10) + (int.Parse(maxboxcode2.Substring(10, 6)) + 1).ToString().PadLeft(6, '0');
-                            maxboxcode2 = model.BoxNo;
+                            maxboxcode2 = maxboxcode2.Substring(0, 11) + (int.Parse(maxboxcode2.Substring(11, 6)) + 1).ToString().PadLeft(6, '0'); 
                         }
-                        model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 80, 50);
-
-                        // 娣诲姞鍒發ist闆嗗悎
-                        modelList.Add(model);
-
+                        //鑾峰彇绠卞唴鏀爣绛炬暟閲�
                         if (i == labelNum2)
                         {
                             var isGo2 = false;
@@ -796,16 +928,11 @@
                                 {
                                     break;
                                 }
-                                var d = zNum;
-                                if (i == labelNum2)
+                                var s = bNum * (i - 1);
+                                var s2 = zNum * (j - 1);
+                                if (zNum >= qty2 - s - s2)
                                 {
-                                    var s = bNum * (i - 1);
-                                    var s2 = zNum * (j - 1);
-                                    if (zNum >= qty2 - s - s2)
-                                    {
-                                        d = (int)(qty2 - s - s2);    // 鏁伴噺
-                                        isGo2 = true;
-                                    }
+                                    isGo2 = true;
                                 }
                                 sl++;
                             }
@@ -814,99 +941,61 @@
 
                         for (int j = 1; j <= labelNumZ2; j++)//鏈�灏忓崟浣嶆爣绛�
                         {
-                            if (isGo)
-                            {
-                                break;
-                            }
-                            var d = zNum;
+                            
+                            decimal d = zNum;
                             if (i == labelNum2)
                             {
                                 var s = bNum * (i - 1);
                                 var s2 = zNum * (j - 1);
                                 if (zNum >= qty2 - s - s2)
                                 {
-                                    d = (int)(qty2 - s - s2);    // 鏁伴噺
-                                    isGo = true;
+                                    d = qty2 - s - s2;    // 鏁伴噺
                                 }
                             }
-                            //// 鐗╂枡鏉$爜淇℃伅璧嬪��
-                            //LabelPrint5Model model2 = new LabelPrint5Model();
-                            //model2.ImportId = imId;
-                            //model2.OuterBillCode = list.OuterBillCode;
-                            //model2.ImportBillCode = list.ImportBillCode;
-                            //model2.SkuNo = list.GoodsCode;
-                            //model2.SkuName = list.GoodsName;
-                            //model2.QtyCount = (int)labelNumZ2;                          // 鎬讳欢鏁�(int)labelNumZ2
+                            
+                            if (string.IsNullOrWhiteSpace(maxboxcode3))
+                            {
+                                maxboxcode3 = "Z"+maxCodestr2 + "0001"; // 鏀彿     鎵瑰彿+绗嚑绠� 
+                            }
+                            else
+                            {
+                                maxboxcode3 = maxboxcode3.Substring(0, 11) + (int.Parse(maxboxcode3.Substring(11, 4)) + 1).ToString().PadLeft(4, '0'); 
+                            }
 
-                            //model2.SupplierName = supplierName;                        // 鐢熶骇鍘傚
-                            //model2.ProductionDate = productionDate;                      // 鐢熶骇鏃ユ湡
-                            //model2.SapSkuNo = sapNo;                            // SAP浠g爜
-                            //model2.Standard = good.GoodsStandard;                            // 瑙勬牸
-                            //model2.SupplierLot = supplierLot;                         // 鍘傚鎵瑰彿
+                            var ssss = d.ToString("0");
+                            var sss = int.Parse(ssss);
 
-                            //model2.LotNo = maxCodestr2;                      //鎵规
+                            // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛�
+                            var labelModel = new BllBoxInfo()
+                            {
+                                ASNNo = asnList.ASNNo,
+                                ASNDetailNo = asnList.Id,
+                                BoxNo = maxboxcode2,
+                                BoxNo3 = maxboxcode3,
+                                Qty = sss,
+                                FullQty = bNum,
+                                Status = "0",
+                                SkuNo = asnList.SkuNo,
+                                SkuName = asnList.SkuName,
+                                LotNo = maxCodestr2,
+                                Standard = asnList.Standard,
+                                PackageStandard = packStr,
+                                SupplierLot = asnList.SupplierLot,
+                                InspectMark = "0",
+                                BitBoxMark = bNum > boxQty ? "1" : "0",
+                                InspectStatus = "0",
 
+                                ProductionTime = DateTime.Parse(productionTime),
+                                StoreTime = DateTime.Parse(storeTime),
+                                ExpirationTime = DateTime.Parse(expirationTime),
 
-                            //model2.InspectTime = inspectTime;                     // 澶嶉獙鏈熻嚦
-                            //model2.ExpirationTime = expirationTime;                  // 鏈夋晥鏈熻嚦/璐瓨鏈�
-                            //model2.ExpirationType = good.GoodsTemp;                  // 璐瓨鏉′欢
-                            //model2.Qty = d;                                                         // 鏁伴噺
+                                Origin = "WMS鐢熸垚",
+                                CreateUser = userId,
+                                CreateTime = DateTime.Now,
+                            };
 
-                            //model2.QtyOrd = j;                                               // 绗嚑浠�
-                            //if (maxboxcode3 == "")
-                            //{
-                            //    var str = mesGood.PadRight(16, ' ') + model.LotNo.PadRight(12, ' ') + "0001";
-                            //    model2.BoxCode = str;                 // 鏀彿     鎵瑰彿+绗嚑绠�
-                            //    maxboxcode3 = model2.BoxCode;
-                            //}
-                            //else
-                            //{
-                            //    model2.BoxCode = maxboxcode3.Substring(0, 28) + (int.Parse(maxboxcode3.Substring(28, 4)) + 1).ToString().PadLeft(4, '0');
-                            //    maxboxcode3 = model2.BoxCode;
-                            //}
-
-                            //model2.imageStr = Utility.Extra.BarcodeHelper.GetQrCodeBase64(model2.BoxCode, 85, 85);
-                            //// 娣诲姞鍒發ist闆嗗悎
-
-                            //if (printModel.Count(m => m.BoxCode.Length > 17) <= 100)//鎺掗櫎寰呯鐮佸垽鏂敮鐮佹槸鍚﹀皬浜�100
-                            //{
-                            //    printModel.Add(model2);
-                            //}
-                            //var guid = Guid.NewGuid().ToString("N");
-                            //// 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛�
-                            //var LabelModel2 = new LabelPrint
-                            //{
-                            //    LabelID = guid,
-                            //    LabelStream = model.BoxCode,
-                            //    BoxCode1 = model2.BoxCode,
-                            //    GoodsCode = model2.SkuNo,
-                            //    GoodsName = model2.SkuName,
-                            //    GoodsStandard = model2.Standard,
-                            //    ImportLotNo = model2.LotNo,
-                            //    SupplierName = model2.SupplierName,
-                            //    ImportId = model2.ImportId,
-                            //    OuterBillCode = model2.OuterBillCode,
-                            //    ImportBillCode = model2.ImportBillCode,
-                            //    ProductionDate = model2.ProductionDate,
-                            //    SapSkuNo = model2.SapSkuNo,
-                            //    Qty = model2.Qty,
-                            //    SupplierLot = model2.SupplierLot,
-                            //    InspectTime = model2.InspectTime,
-                            //    ExpirationTime = model2.ExpirationTime,
-                            //    QtyCount = model2.QtyCount,
-                            //    QtyOrd = model2.QtyOrd,
-                            //    ExpirationType = model2.ExpirationType,
-                            //    BoxNum = bNum,//model.Qty,
-
-                            //    BulkTank = model.Qty == bNum ? 0 : 1,//闆跺ご绠�
-                            //    BulkCase = 0,//闆跺ご鐩�
-
-                            //    CreateUser = createUser,
-                            //    CreateTime = DateTime.Now,
-                            //    IsUse = 0
-                            //};
-
-                            //DataContext.LabelPrint.InsertOnSubmit(LabelModel2);
+                            Db.Insertable(labelModel).ExecuteCommand();
+                            modelList.Add(labelModel);
                         }
 
 
@@ -914,11 +1003,589 @@
 
                     #endregion
                 }
-
-                //return printModel;
+                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();
+                    } 
+                }
+                Db.CommitTran();
+                return modelList;
 
 
-                throw new NotImplementedException();
+                //throw new NotImplementedException();
+            }
+            catch (Exception e)
+            {
+                Db.RollbackTran();
+                throw new Exception(e.Message);
+            }
+        }
+
+        // 琛ユ墦鏍囩
+        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)
             {
@@ -926,6 +1593,138 @@
             }
         }
 
+        //鏍规嵁鍏ュ簱鍗曞彿杩囧幓鍗曟嵁涓嬫墍鏈夋壒娆″彿
+        public List<string> GetLotNoListByAsn(string asnNo)
+        {
+            try
+            {
+                var data = new List<string>();
+                var asnList = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo).ToList();
+                if (asnList.Count == 0)
+                {
+                    throw new Exception("鏈煡璇㈠埌璇ュ崟鎹彿鐨勪俊鎭�");
+                }
+
+                foreach (var item in asnList)
+                {
+                    if (string.IsNullOrWhiteSpace(item.LotNo))
+                    {
+                        continue;
+                    }
+
+                    var strList = item.LotNo.Split(";");
+                    foreach (var str in strList)
+                    {
+                        if (string.IsNullOrWhiteSpace(str))
+                        {
+                            continue;
+                        }
+                        data.Add(str);
+                    }
+                }
+
+                return data;
+            }
+            catch (Exception e)
+            {
+                throw new Exception(e.Message);
+            }
+        }
+
+        //鍒犻櫎鍗曟嵁涓嬪崟涓垨澶氫釜鎵规鐨勬爣绛�
+        public void DelLabelByAsnNo(string asnNo,string lotNo, int userId)
+        {
+            try
+            {
+                var asnList = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo).ToList();
+                if (asnList.Count == 0)
+                {
+                    throw new Exception("鏈煡璇㈠埌璇ュ崟鎹彿鐨勪俊鎭�");
+                }
+
+                Db.BeginTran();
+
+                //鎵规涓虹┖锛氬綋鍓嶅崟鎹笅鎵�鏈夋壒娆$殑鏍囩鍏ㄩ儴鍒犻櫎锛� 鏈夋壒娆★細浼ゅ褰撳墠鍗曟嵁涓嬪綋鍓嶆壒娆$殑鏍囩
+                if (string.IsNullOrWhiteSpace(lotNo)) //鍒犻櫎鍏ㄩ儴鏍囩
+                {
+                    var labelList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo).ToList();
+                    if (labelList.Count(m => m.Status != "0") >= 1)
+                    {
+                        throw new Exception("褰撳墠鍗曟嵁鎵规鐨勬爣绛惧凡鏈夊凡浣跨敤锛屼笉鑳藉垹闄�");
+                    }
+
+                    foreach (var item in asnList)
+                    {
+                        if (string.IsNullOrWhiteSpace(item.LotNo))
+                        {
+                            continue;
+                        }
+
+                        item.LotNo = "";
+                        Db.Updateable(item).ExecuteCommand();
+
+                    }
+                    Db.Deleteable(labelList).ExecuteCommand();
+                }
+                else  //鍒犻櫎鍥哄畾鎵规鏍囩
+                {
+                    var labelList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo && m.LotNo == lotNo).ToList();
+                    if (labelList.Count(m=>m.Status != "0") >= 1 )
+                    {
+                        throw new Exception("褰撳墠鍗曟嵁鎵规鐨勬爣绛惧凡鏈夊凡浣跨敤锛屼笉鑳藉垹闄�");
+                    }
+
+                    foreach (var item in asnList)
+                    {
+                        if (string.IsNullOrWhiteSpace(item.LotNo) || item.LotNo!=lotNo)
+                        {
+                            continue;
+                        }
+
+                        var strList = item.LotNo.Split(";");
+                        var updateLotNo = "";
+                        foreach (var str in strList)
+                        {
+                            if (string.IsNullOrWhiteSpace(str) || str == lotNo)
+                            {
+                                continue;
+                            }
+
+                            if (string.IsNullOrWhiteSpace(updateLotNo))
+                            {
+                                updateLotNo = str;
+                            }
+                            else
+                            {
+                                updateLotNo += ";" + str;
+                            }
+                             
+                        }
+
+                        item.LotNo = updateLotNo;
+                        Db.Updateable(item).ExecuteCommand();
+
+                    }
+                    Db.Deleteable(labelList).ExecuteCommand();
+                }
+
+                Db.CommitTran();
+
+                var msg = $"鍒犻櫎浜嗗崟鎹彿锛歿asnNo}";
+                if (!string.IsNullOrWhiteSpace(lotNo))
+                {
+                    msg += $"銆佹壒娆″彿锛歿lotNo}";
+                }
+                msg += "鐨勬爣绛句俊鎭�";
+
+                new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鐗╂枡鏍囩", asnNo, "鍒犻櫎", msg, userId);
+            }
+            catch (Exception e)
+            {
+                Db.RollbackTran();
+                throw new Exception(e.Message);
+            }
+        }
 
     }
 }

--
Gitblit v1.8.0