From 157abc191c34e57c1b958ae74fc3de6518ca8a30 Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期五, 28 二月 2025 11:06:36 +0800
Subject: [PATCH] 修改客户需求

---
 Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs |  543 ++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 444 insertions(+), 99 deletions(-)

diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
index db0a3dc..650d65e 100644
--- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
@@ -15,6 +15,10 @@
 using WMS.Entity.Context;
 using WMS.Entity.SysEntity;
 using WMS.IBLL.IBllAsnServer;
+using ZXing;
+using Model.ModelDto.BllCheckDto;
+using WMS.Entity.BllCheckEntity;
+using System.Data.SqlTypes;
 
 namespace WMS.BLL.BllAsnServer
 {
@@ -264,7 +268,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;
@@ -296,6 +300,7 @@
                         CreateTime = a.CreateTime,
                         UpdateTime = a.UpdateTime
                     })
+                    .OrderByDescending(a=>a.BoxNo)
                     .OrderByDescending(a => a.CreateTime)
                     .ToOffsetPage(model.Page, model.Limit, ref total);
                 count = total;
@@ -412,17 +417,19 @@
                     .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;
                 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()
+                    .LeftJoin<SysMaterials>((a, b, c,d) => a.SkuNo == d.SkuNo)
+                    .LeftJoin<SysUnit>((a, b, c, d,e) => d.UnitNo == e.UnitNo)
+                    .Select((a, b, c,d,e) => new BoxInfoDto()
                     {
                         Id = a.Id,
                         ASNNo = a.ASNNo,
@@ -440,6 +447,8 @@
 
                         LotNo = a.LotNo,
                         LotText = a.LotText,
+
+                        unit =  e.UnitName,
                         
                         Status = a.Status,
                         SupplierLot = a.SupplierLot,
@@ -463,7 +472,7 @@
                         CreateTime = a.CreateTime,
                         UpdateTime = a.UpdateTime
 
-                    }).OrderByDescending(a => a.CreateTime).OrderBy(a => a.BoxNo).ToOffsetPage(model.Page, model.Limit, ref total);
+                    }).OrderBy(a => a.BoxNo).OrderByDescending(a => a.CreateTime).ToOffsetPage(model.Page, model.Limit, ref total);
                 count = total;
                 return data;
             }
@@ -520,6 +529,7 @@
                 data.Standard = asnDetail.Standard;
                 data.SupplierLot = asnDetail.SupplierLot;
                 data.PackageStandard = str;
+                data.SupplierLot = asnDetail.SupplierLot;
                 return data;
             }
             catch (Exception e)
@@ -529,18 +539,51 @@
         }
 
         //鑾峰彇鏍囩淇℃伅(鐢熸垚鏍囩)
-        public List<BllBoxInfo> AddLabelBox(int imId, string isReset, decimal arriveQty, 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
-            { 
+            {
 
                 #region 鍗曟嵁銆佺墿鏂欍�佸寘瑁呫�佹爣绛句俊鎭幏鍙�
-
+                if (string.IsNullOrWhiteSpace(productionTime))
+                {
+                    throw new Exception("鐢熶骇鏃ユ湡涓嶈兘涓虹┖");
+                }
+                if (!string.IsNullOrWhiteSpace(expirationTime) && !string.IsNullOrWhiteSpace(storeTime))
+                {
+                    throw new Exception("鏈夋晥鏈熷拰鍌ㄥ瓨鏈熶笉鑳藉悓鏃跺~鍐�");
+                }
+                if (isReset != "0")
+                {
+                    throw new Exception("涓嶅彲閲嶇疆鎵规");
+                }
+                DateTime proTime;
+                DateTime expTime;
+                DateTime stoTime;
+                var bl1= DateTime.TryParse(productionTime, out proTime);
+                var bl2= DateTime.TryParse(expirationTime, out expTime);
+                var bl3= DateTime.TryParse(storeTime, out stoTime);
+                if (!bl1)
+                {
+                    throw new Exception("鐢熶骇鏃ユ湡杞崲澶辫触");
+                }
+                if (!bl2 && !string.IsNullOrWhiteSpace(expirationTime))
+                {
+                    throw new Exception("鏈夋晥鏈熻浆鎹㈠け璐�");
+                }
+                if (!bl3 && !string.IsNullOrWhiteSpace(storeTime))
+                {
+                    throw new Exception("鍌ㄥ瓨鏈熻浆鎹㈠け璐�");
+                }
                 var asnList = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.Id == imId && m.IsDel == "0");
                 if (asnList == null)
                 {
                     throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏淇℃伅");
                 }
+                //if (asnList.LotNo.Length != 10 && asnList.LotNo.Length != 11 && asnList.LotNo.Length != 12)
+                //{
+                //    throw new Exception("鍗曟嵁杩涘巶缂栧彿浣嶆暟闀垮害閿欒");
+                //}
                 var asn = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == asnList.ASNNo && m.IsDel == "0");
                 if (asn == null)
                 {
@@ -576,7 +619,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
@@ -605,36 +648,44 @@
                     zNum = Convert.ToInt32(pack.L1Num);
                 }
 
-                if (packLevel <= 1)//鍖呰绛夌骇灏忎簬1锛屾寜鐓�1绾ф爣绛炬墦鍗�
+                if (packLevel < 1)//鍖呰绛夌骇灏忎簬1锛屾寜鐓�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; //鐢熶骇鏉$爜鏁伴噺
@@ -653,23 +704,39 @@
                     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;
-                        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);
+                            maxLotNoStr = asnList.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); // 鑾峰彇浠婂ぉ鏈�澶ф壒娆″彿 20241013
                         if (string.IsNullOrWhiteSpace(maxCode))
                         {
                             maxLotNoStr = toDayTime.Substring(2, 6) + "0001";
@@ -680,7 +747,7 @@
                             var timeStr = toDayTime.Substring(2, 6);
                             if (lotStr == timeStr)
                             {
-                                maxLotNoStr = toDayTime.Substring(2, 6) + (int.Parse(maxCode.Substring(6, 4)) + 1).ToString().PadLeft(4, '0');
+                                maxLotNoStr = toDayTime.Substring(2, 6) + (int.Parse(maxCode.Substring(maxCode.Length - 4, 4)) + 1).ToString().PadLeft(4, '0');
                             }
                             else
                             {
@@ -690,9 +757,10 @@
                         }
                     }
 
+                    addLotNo = maxLotNoStr;
                     #endregion
 
-                    
+
 
                     for (int i = 1; i <= labelNum; i++)
                     {
@@ -716,14 +784,14 @@
                         }
 
                         //鑾峰彇绠辩爜
-                        if (maxBoxCode == "")
+                        if (string.IsNullOrWhiteSpace(maxBoxCode))
                         {
                             var str = "B"+maxLotNoStr + "000001"; //鎵瑰彿+ 娴佹按  2302010001000001
                             maxBoxCode = str;
                         }
                         else
                         {
-                            maxBoxCode = maxBoxCode.Substring(0, 11) + (int.Parse(maxBoxCode.Substring(11, 6)) + 1).ToString().PadLeft(6, '0'); 
+                            maxBoxCode = maxBoxCode.Substring(0, maxBoxCode.Length - 6) + (int.Parse(maxBoxCode.Substring(maxBoxCode.Length - 6, 6)) + 1).ToString().PadLeft(6, '0'); 
                         } 
                         
                         // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛�
@@ -732,7 +800,7 @@
                             ASNNo = asnList.ASNNo,
                             ASNDetailNo = asnList.Id,
                             BoxNo = maxBoxCode, 
-                            Qty = int.Parse(boxQty.ToString()),
+                            Qty = boxQty,
                             FullQty = bNum,
                             Status = "0",
                             SkuNo = asnList.SkuNo,
@@ -740,20 +808,25 @@
                             LotNo = maxLotNoStr,
                             Standard = asnList.Standard,
                             PackageStandard = packStr,
-                            SupplierLot = asnList.SupplierLot,
+                            SupplierLot = supplierLot,
                             InspectMark = "0",
                             BitBoxMark = bNum > boxQty ? "1":"0",
-                            InspectStatus = "",
+                            InspectStatus = "0",
 
-                            ProductionTime = DateTime.Parse(productionTime),
-                            StoreTime = DateTime.Parse(storeTime),
-                            ExpirationTime = DateTime.Parse(expirationTime),
-
+                            ProductionTime = proTime,
+                            
                             Origin = "WMS鐢熸垚",
                             CreateUser = userId,
                             CreateTime = DateTime.Now,
                         };
-
+                        if (bl2)
+                        {
+                            labelModel.ExpirationTime = expTime;
+                        }
+                        if (bl3)
+                        {
+                            labelModel.StoreTime = stoTime;
+                        }
                         Db.Insertable(labelModel).ExecuteCommand();
                         modelList.Add(labelModel);
                     }
@@ -765,25 +838,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,20 +877,39 @@
                     string toDayTime2 = DateTime.Now.ToString("yyyyMMdd");
                     if (isReset == "0")
                     {
-                        var maxCode = label.Max(a => a.LotNo);
-                        var boxCode1 = label.Max(a => a.BoxNo);//绠卞彿
-                        var boxCode2 = label.Max(a => a.BoxNo3);//鏀彿
-                        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); ;
+                            maxCodestr2 = asnList.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";
@@ -836,9 +930,10 @@
                         }
                     }
 
+                    addLotNo = maxCodestr2;
                     #endregion
 
-                     
+
 
                     for (int i = 1; i <= labelNum2; i++)//绠辩爜鏍囩
                     {
@@ -863,13 +958,13 @@
                         }
 
                         //鑾峰彇绠辩爜
-                        if (maxboxcode2 == "")
+                        if (string.IsNullOrWhiteSpace(maxboxcode2))
                         {
                             maxboxcode2 = "B"+maxCodestr2 + "000001"; // 绠卞彿     鎵瑰彿+绗嚑绠�
                         }
                         else
                         {
-                            maxboxcode2 = maxboxcode2.Substring(0, 11) + (int.Parse(maxboxcode2.Substring(11, 6)) + 1).ToString().PadLeft(6, '0'); 
+                            maxboxcode2 = maxboxcode2.Substring(0, maxboxcode2.Length - 6) + (int.Parse(maxboxcode2.Substring(maxboxcode2.Length-6, 6)) + 1).ToString().PadLeft(6, '0'); 
                         }
                         //鑾峰彇绠卞唴鏀爣绛炬暟閲�
                         if (i == labelNum2)
@@ -907,14 +1002,17 @@
                                 }
                             }
                             
-                            if (maxboxcode3 == "")
+                            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'); 
+                                maxboxcode3 = maxboxcode3.Substring(0, maxboxcode3.Length - 4) + (int.Parse(maxboxcode3.Substring(maxboxcode3.Length - 4, 4)) + 1).ToString().PadLeft(4, '0'); 
                             }
+
+                            //var ssss = d.ToString("0");
+                            //var sss = int.Parse(ssss);
 
                             // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛�
                             var labelModel = new BllBoxInfo()
@@ -923,7 +1021,7 @@
                                 ASNDetailNo = asnList.Id,
                                 BoxNo = maxboxcode2,
                                 BoxNo3 = maxboxcode3,
-                                Qty = int.Parse(d.ToString()),
+                                Qty = d,
                                 FullQty = bNum,
                                 Status = "0",
                                 SkuNo = asnList.SkuNo,
@@ -931,20 +1029,25 @@
                                 LotNo = maxCodestr2,
                                 Standard = asnList.Standard,
                                 PackageStandard = packStr,
-                                SupplierLot = asnList.SupplierLot,
+                                SupplierLot = supplierLot,
                                 InspectMark = "0",
                                 BitBoxMark = bNum > boxQty ? "1" : "0",
                                 InspectStatus = "0",
 
-                                ProductionTime = DateTime.Parse(productionTime),
-                                StoreTime = DateTime.Parse(storeTime),
-                                ExpirationTime = DateTime.Parse(expirationTime),
-
+                                ProductionTime = proTime,
+                                
                                 Origin = "WMS鐢熸垚",
                                 CreateUser = userId,
                                 CreateTime = DateTime.Now,
                             };
-
+                            if (bl2)
+                            {
+                                labelModel.ExpirationTime = expTime;
+                            }
+                            if (bl3)
+                            {
+                                labelModel.StoreTime = stoTime;
+                            }
                             Db.Insertable(labelModel).ExecuteCommand();
                             modelList.Add(labelModel);
                         }
@@ -954,7 +1057,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();
+                    } 
+                }
+                Db.CommitTran();
                 return modelList;
 
 
@@ -962,6 +1078,7 @@
             }
             catch (Exception e)
             {
+                Db.RollbackTran();
                 throw new Exception(e.Message);
             }
         }
@@ -978,6 +1095,8 @@
                 //List<WmsLabelPrintLog> printlog = new List<WmsLabelPrintLog>();
                 //鏍囩琛ㄦ暟鎹俊鎭�
                 var list = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.Origin == "WMS鐢熸垚").ToList();
+                
+
 
                 #region MyRegion
 
@@ -998,6 +1117,9 @@
                             {
                                 throw new Exception($"鏈煡璇㈠埌{boxNo}淇℃伅");
                             }
+                            //鍗曚綅
+                            var sqlString = "select a.UnitName as unit from  SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + data.SkuNo + "'";
+                            var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault() ;
                             // 鐗╂枡鏉$爜淇℃伅璧嬪��
                             BoxInfoDto model = new BoxInfoDto();
                             model.SkuNo = data.SkuNo;
@@ -1011,10 +1133,11 @@
                             model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
 
                             model.Qty = dataList.Sum(m=>m.Qty);// 鏁伴噺
+                            model.unit = unitname.unit;
 
                             model.BoxNo = data.BoxNo;                 // 绠卞彿     
 
-                            model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo,100, 25);
+                            model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo,160, 40,false);
 
                             // 娣诲姞鍒發ist闆嗗悎
                             printModelList.Add(model);
@@ -1053,6 +1176,9 @@
                                 {
                                     throw new Exception($"鏈煡璇㈠埌{item}淇℃伅");
                                 }
+                                //鍗曚綅
+                                var sqlString = "select a.UnitName as unit from  SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + data.SkuNo + "'";
+                                var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault();
                                 // 鐗╂枡鏉$爜淇℃伅璧嬪��
                                 BoxInfoDto model = new BoxInfoDto();
                                 model.SkuNo = data.SkuNo;
@@ -1066,10 +1192,11 @@
                                 model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
 
                                 model.Qty = data1.Sum(m => m.Qty);// 鏁伴噺
+                                model.unit = unitname.unit;
 
                                 model.BoxNo = data.BoxNo;                 // 绠卞彿     
 
-                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25);
+                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
 
                                 // 娣诲姞鍒發ist闆嗗悎
                                 printModelList.Add(model);
@@ -1105,6 +1232,9 @@
                             {
                                 throw new Exception($"鏈煡璇㈠埌{boxNo2}淇℃伅");
                             }
+                            //鍗曚綅
+                            var sqlString = "select a.UnitName as unit from  SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + data.SkuNo + "'";
+                            var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault();
                             // 鐗╂枡鏉$爜淇℃伅璧嬪��
                             BoxInfoDto model = new BoxInfoDto();
                             model.SkuNo = data.SkuNo;
@@ -1118,10 +1248,11 @@
                             model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
 
                             model.Qty = data.Qty;// 鏁伴噺
+                            model.unit = unitname.unit;
 
                             model.BoxNo = data.BoxNo3;                 // 鏀彿     
 
-                            model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25);
+                            model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
 
                             // 娣诲姞鍒發ist闆嗗悎
                             printModelList.Add(model);
@@ -1157,6 +1288,9 @@
                             var i = 0;
                             foreach (var data in data2)
                             {
+                                //鍗曚綅
+                                var sqlString = "select a.UnitName as unit from  SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + data.SkuNo + "'";
+                                var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault();
                                 // 鐗╂枡鏉$爜淇℃伅璧嬪��
                                 BoxInfoDto model = new BoxInfoDto();
                                 model.SkuNo = data.SkuNo;
@@ -1170,10 +1304,11 @@
                                 model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
 
                                 model.Qty = data.Qty;// 鏁伴噺
+                                model.unit = unitname.unit;
 
                                 model.BoxNo = data.BoxNo3;                 // 绠卞彿     
 
-                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25);
+                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
 
                                 // 娣诲姞鍒發ist闆嗗悎
                                 printModelList.Add(model);
@@ -1221,8 +1356,10 @@
                                     {
                                         throw new Exception($"褰撳墠鏀爜涓嶆槸绠辩爜鍐�");
                                     }
-                                    
 
+                                    //鍗曚綅
+                                    var sqlString = "select a.UnitName as unit from  SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + data.SkuNo + "'";
+                                    var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault();
                                     // 鐗╂枡鏉$爜淇℃伅璧嬪�� 绠辩爜
                                     BoxInfoDto model1 = new BoxInfoDto();
                                     model1.SkuNo = data.SkuNo;
@@ -1235,9 +1372,10 @@
                                     model1.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                     model1.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
                                     model1.Qty = dataList.Sum(m=>m.Qty);// 鏁伴噺
+                                    model1.unit = unitname.unit;
                                     model1.BoxNo = data.BoxNo;                 // 绠卞彿     
 
-                                    model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 100, 25);
+                                    model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
 
                                     // 娣诲姞鍒發ist闆嗗悎
                                     printModelList.Add(model1);
@@ -1254,9 +1392,10 @@
                                     model.ExpirationTime = data.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                     model.StoreTime = data.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
                                     model.Qty = data.Qty;// 鏁伴噺
+                                    model.unit = unitname.unit;
                                     model.BoxNo = data.BoxNo3;                 // 鏀彿     
 
-                                    model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25);
+                                    model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
 
                                     // 娣诲姞鍒發ist闆嗗悎
                                     printModelList.Add(model);
@@ -1289,6 +1428,9 @@
 
                                     var data = list.Where(m => m.BoxNo == boxNo);
                                     var boxData = data2.FirstOrDefault();
+                                    //鍗曚綅
+                                    var sqlString = "select a.UnitName as unit from  SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + boxData.SkuNo + "'";
+                                    var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault();
                                     // 鐗╂枡鏉$爜淇℃伅璧嬪��
                                     BoxInfoDto model = new BoxInfoDto();
                                     model.SkuNo = boxData.SkuNo;
@@ -1301,9 +1443,10 @@
                                     model.ExpirationTime = boxData.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                     model.StoreTime = boxData.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
                                     model.Qty = data.Sum(m => m.Qty);     // 鏁伴噺
+                                    model.unit = unitname.unit;
                                     model.BoxNo = boxData.BoxNo;                 // 鏀彿     
 
-                                    model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25);
+                                    model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
 
                                     // 娣诲姞鍒發ist闆嗗悎
                                     printModelList.Add(model);
@@ -1311,6 +1454,9 @@
                                     var i = 0;
                                     foreach (var item in data2)
                                     {
+                                        //鍗曚綅
+                                        sqlString = "select a.UnitName as unit from  SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + item.SkuNo + "'";
+                                        unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault();
                                         // 鐗╂枡鏉$爜淇℃伅璧嬪��
                                         BoxInfoDto model1 = new BoxInfoDto();
                                         model1.SkuNo = item.SkuNo;
@@ -1323,9 +1469,10 @@
                                         model1.ExpirationTime = item.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                         model1.StoreTime = item.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
                                         model1.Qty = item.Qty;// 鏁伴噺
+                                        model1.unit = unitname.unit;
                                         model1.BoxNo = item.BoxNo3;                 // 鏀彿     
 
-                                        model.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 100, 25);
+                                        model.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
 
                                         // 娣诲姞鍒發ist闆嗗悎
                                         printModelList.Add(model);
@@ -1357,6 +1504,9 @@
                                 {
                                     throw new Exception($"鏈煡璇㈠埌{boxNo}绠辩爜淇℃伅");
                                 }
+                                //鍗曚綅
+                                var sqlString = "select a.UnitName as unit from  SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + boxData.SkuNo + "'";
+                                var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault();
                                 // 鐗╂枡鏉$爜淇℃伅璧嬪��
                                 BoxInfoDto model = new BoxInfoDto();
                                 model.SkuNo = boxData.SkuNo;
@@ -1369,9 +1519,10 @@
                                 model.ExpirationTime = boxData.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                 model.StoreTime = boxData.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
                                 model.Qty = data.Sum(m => m.Qty);     // 鏁伴噺
+                                model.unit = unitname.unit;
                                 model.BoxNo = boxData.BoxNo;                 // 鏀彿     
 
-                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25);
+                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
 
                                 // 娣诲姞鍒發ist闆嗗悎
                                 printModelList.Add(model);
@@ -1381,6 +1532,9 @@
                                     var i = 0;
                                     foreach (var item in data)
                                     {
+                                        //鍗曚綅
+                                        sqlString = "select a.UnitName as unit from  SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + item.SkuNo + "'";
+                                        unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault();
                                         // 鐗╂枡鏉$爜淇℃伅璧嬪��
                                         BoxInfoDto model1 = new BoxInfoDto();
                                         model1.SkuNo = item.SkuNo;
@@ -1393,9 +1547,10 @@
                                         model1.ExpirationTime = item.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                         model1.StoreTime = item.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
                                         model1.Qty = item.Qty;     // 鏁伴噺
+                                        model1.unit = unitname.unit;
                                         model1.BoxNo = item.BoxNo3;                 // 鏀彿     
 
-                                        model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 100, 25);
+                                        model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
 
 
                                         // 娣诲姞鍒發ist闆嗗悎
@@ -1449,6 +1604,9 @@
                                 {
                                     throw new Exception($"鏈煡璇㈠埌{demo}绠辩爜淇℃伅");
                                 }
+                                //鍗曚綅
+                                var sqlString = "select a.UnitName as unit from  SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + boxData.SkuNo + "'";
+                                var unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault();
                                 // 鐗╂枡鏉$爜淇℃伅璧嬪��
                                 BoxInfoDto model = new BoxInfoDto();
                                 model.SkuNo = boxData.SkuNo;
@@ -1461,9 +1619,10 @@
                                 model.ExpirationTime = boxData.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                 model.StoreTime = boxData.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
                                 model.Qty = data.Sum(m => m.Qty);     // 鏁伴噺
+                                model.unit = unitname.unit;
                                 model.BoxNo = boxData.BoxNo;                 // 鏀彿     
 
-                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25);
+                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
 
                                 // 娣诲姞鍒發ist闆嗗悎
                                 printModelList.Add(model);
@@ -1477,6 +1636,9 @@
                                 {
                                     foreach (var item in data.OrderBy(m => m.BoxNo3).ToList())
                                     {
+                                        //鍗曚綅
+                                        sqlString = "select a.UnitName as unit from  SysUnit a left join SysMaterials b on a.UnitNo = b.UnitNo where b.SkuNo = '" + item.SkuNo + "'";
+                                        unitname = Db.Ado.SqlQuery<BoxInfoDto>(sqlString).FirstOrDefault();
                                         // 鐗╂枡鏉$爜淇℃伅璧嬪��
                                         BoxInfoDto model1 = new BoxInfoDto();
                                         model1.SkuNo = item.SkuNo;
@@ -1489,9 +1651,10 @@
                                         model1.ExpirationTime = item.ExpirationTime;                  // 鏈夋晥鏈熻嚦
                                         model1.StoreTime = item.StoreTime;                     // 鍌ㄥ瓨鏈熻嚦 
                                         model1.Qty = item.Qty;// 鏁伴噺
+                                        model1.unit = unitname.unit;
                                         model1.BoxNo = item.BoxNo3;                 // 鏀彿     
 
-                                        model.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 100, 25);
+                                        model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
 
                                         // 娣诲姞鍒發ist闆嗗悎
                                         printModelList.Add(model1);
@@ -1521,10 +1684,9 @@
                 }
 
                 #endregion
+                 
+                
 
-                //dataContext.WmsLabelPrintLog.InsertAllOnSubmit(printlog);
-                //    dataContext.SubmitChanges();
-                //    return printModel;
                 return printModelList;
             }
             catch (Exception e)
@@ -1532,5 +1694,188 @@
                 throw new Exception(e.Message);
             }
         }
+
+        //鏍规嵁鍏ュ簱鍗曞彿杩囧幓鍗曟嵁涓嬫墍鏈夋壒娆″彿
+        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);
+            }
+        }
+
+
+        //缂栬緫鏍囩鏁伴噺
+        public void EditLabelQty(int id, string qty, int userId)
+        {
+            try
+            {
+                if (string.IsNullOrWhiteSpace(qty))
+                {
+                    throw new Exception("缂栬緫鏁伴噺涓嶅彲涓虹┖");
+                }
+                var qtyData = 0m;
+                var isOk = decimal.TryParse(qty, out qtyData);
+                var boxInfo = Db.Queryable<BllBoxInfo>().First(m => m.IsDel == "0" && m.Id == id);
+                if (boxInfo == null)
+                {
+                    throw new Exception("鏈煡璇㈠埌璇ユ爣绛句俊鎭�");
+                }
+
+                if (isOk)
+                {
+                    if (qtyData <= 0)
+                    {
+                        throw new Exception("鏁伴噺涓嶈兘灏忎簬绛変簬0");
+                    }
+                    boxInfo.Qty = qtyData;
+
+                    Db.Updateable(boxInfo).ExecuteCommand();
+                }
+                else
+                {
+                    throw new Exception("鏁伴噺杞崲澶辫触");
+                }
+
+                var msg = $"缂栬緫浜嗙鍙凤細{boxInfo.BoxNo}";
+                if (!string.IsNullOrWhiteSpace(boxInfo.BoxNo3))
+                {
+                    msg += $"銆佹敮鍙凤細{boxInfo.BoxNo3}";
+                }
+                msg += "鐨勬爣绛炬暟閲忎俊鎭�";
+
+                new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鐗╂枡鏍囩", boxInfo.BoxNo, "缂栬緫", msg, userId);
+            }
+            catch (Exception e)
+            {
+                throw new Exception(e.Message);
+            }
+        }
+
+
     }
 }

--
Gitblit v1.8.0