From 51f7eb771322a65ee552ca9b60280632f72760e6 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期三, 15 十月 2025 16:55:08 +0800
Subject: [PATCH] 修改物料管理列表

---
 Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs |  319 +++++++++++++++++++++++++++++++++-------------------
 1 files changed, 203 insertions(+), 116 deletions(-)

diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index 87d19a9..cadc2e7 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -275,7 +275,7 @@
 
             try
             {
-                if (model.Origin == "褰曞叆")
+                if (model.Origin == "褰曞叆" || model.Origin == "瀵煎叆")
                 {
                     model.ASNNo = new Common().GetMaxNo("ASN");
                 }
@@ -290,6 +290,7 @@
                         throw new Exception("鍗曟嵁绫诲瀷涓嶅彲涓虹┖!");
                     }
                 }
+
                 
                 lock (AsnLock)
                 {
@@ -422,12 +423,16 @@
                             {
                                 throw new Exception("涓嶅厤妫�鐗╂枡杩囨湡鏃ユ湡杞崲澶辫触");
                             }
-                            lot1 = lot12.ToString();
-                            lot2 = lot22.ToString();
+                            lot1 = lot12.ToString("yyyy-MM-dd");
+                            lot2 = lot22.ToString("yyyy-MM-dd");
                         }
                         if (string.IsNullOrWhiteSpace(detailModel.PackagNo))
                         {
-                            throw new Exception("鍖呰涓嶈兘涓虹┖");
+                            detailModel.PackagNo = sku.PackagNo;
+                            if (string.IsNullOrWhiteSpace(detailModel.PackagNo))
+                            {
+                                throw new Exception("鍖呰涓嶈兘涓虹┖");
+                            }
                         }
                         // 璁$畻鍑烘�婚噾棰�
                         detailModel.Money = detailModel.Price * detailModel.Qty;
@@ -436,7 +441,7 @@
                             ASNNo = model.ASNNo,
                             SkuNo = detailModel.SkuNo,
                             SkuName = detailModel.SkuName,
-                            Standard = detailModel.Standard,
+                            Standard = sku.Standard,
                             LotNo = detailModel.LotNo == null ? "" : detailModel.LotNo.Trim(),
                             LotText = detailModel.LotText,
                             Qty = (decimal)detailModel.Qty,
@@ -493,6 +498,64 @@
                         return "-2:娣诲姞澶辫触鏁版嵁鍥炴粴!";
                     }
                 }
+            }
+            catch (Exception ex)
+            {
+                throw new Exception(ex.Message);
+            }
+        }
+
+        //瀵煎叆鍏ュ簱鍗曟嵁
+        public string ImportArrivalNotice(ArrivalNoticeVms models)
+        {
+            string strMessage = "";
+            try
+            {
+                if (models.ListArrivalNotice.Count <= 0)
+                {
+                    strMessage = "-1:鏂囦欢鍐呮棤鏁版嵁璇锋牳瀹�!";
+                }
+                var num = 0;
+                int CreateUser = Convert.ToInt32(models.CreateUser);
+                List<string> noticeList = new List<string>();
+                foreach (ArrivalNoticeVm model in models.ListArrivalNotice)
+                {
+                    try
+                    {
+                        model.CreateUser = models.CreateUser;
+                        model.Origin = "瀵煎叆";
+                        var msg = AddArrivalNotice(model);
+                        strMessage += msg;
+                        if (msg == "")
+                        {
+                            num += 1;
+                            var hasBoxItem = noticeList.Exists(x => x == model.ASNNo);
+                            if (!hasBoxItem)
+                            {
+                                noticeList.Add(model.ASNNo);
+                            }
+                        }
+                    }
+                    catch(Exception ex)
+                    {
+                        throw new Exception($"鐗╂枡缂栫爜锛歿model.AsnDetail[0].SkuNo},鐗╂枡鍚嶇О锛歿model.AsnDetail[0].SkuName}锛屽鍏ュけ璐ワ細"+ex.Message);
+                        // ignored
+                    }
+                }
+                if (num > 0)
+                {
+                    new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", $"鍏卞鍏ヤ簡{noticeList.Count}鏉″崟鎹�", "瀵煎叆", $"鍏卞鍏ヤ簡{noticeList.Count}鏉″崟鎹�", CreateUser);
+                }
+                if (strMessage.Contains("-1") && num > 0)
+                {
+                    return "閮ㄥ垎瀵煎叆鎴愬姛" + strMessage;
+                }
+                if (num > 0)
+                {
+                    return "瀵煎叆鎴愬姛" + strMessage;
+                }
+
+                return strMessage;
             }
             catch (Exception ex)
             {
@@ -777,10 +840,10 @@
                     return "-1:鍏ュ簱鍗曠姸鎬佸凡鍙樻洿锛屼笉鍙垹闄�!";
 
                 }
-                if (asnModel.Origin != "褰曞叆" && asnModel.Origin != "閲囪喘鍗�")
-                {
-                    return "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲鍒犻櫎;";
-                }
+                //if (asnModel.Origin != "褰曞叆" && asnModel.Origin != "閲囪喘鍗�")
+                //{
+                //    return "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲鍒犻櫎;";
+                //}
 
                 // 鍒犻櫎鎬诲崟
                 var editDateTime = DateTime.Now;
@@ -961,108 +1024,108 @@
                     return "-1:鍏冲崟澶辫触锛�";
                 }
                 #region 閲囪喘璁″垝锛岃嫢鏄噰璐鍗曟牴鎹噰璐鍒掑崟鑷姩鐢熸垚鍏ュ簱鍗曚俊鎭�
-                if (notice.Type == "1" && !string.IsNullOrEmpty(notice.OrderCode))
-                {
-                    // 鑾峰彇閲囪喘鎬诲崟淇℃伅
-                    var planOrd = Db.Queryable<BllProcurePlanNotice>().First(it => it.OrderCode == notice.OrderCode && it.IsDel == "0");
-                    //鍏ュ簱鍗曟槑缁�
-                    var noticeDetailList = Db.Queryable<BllArrivalNoticeDetail>()
-                        .Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo).ToList();
-                    foreach (var item in noticeDetailList)
-                    {
-                        //閲囪喘鍗曟槑缁�
-                        var planDetail = Db.Queryable<BllProcurePlanNoticeDetail>()
-                            .First(it => it.ParentId == planOrd.Id && it.SkuNo == item.SkuNo && it.IsDel == "0");
-                        planDetail.CompleteQty += item.CompleteQty;
-                        if (planDetail.CompleteQty >= planDetail.Qty)
-                        {
-                            planDetail.Status = "2";
-                            planDetail.CompleteTime = comTime;
-                        }
-                        else
-                        {
-                            planDetail.Status = "1";
-                        }
-                        Db.Updateable(planDetail).ExecuteCommand();
-                    }
-                    // 缁存姢閲囪喘鎬诲崟淇℃伅
-                    var planDetailNum = Db.Queryable<BllProcurePlanNoticeDetail>().Count(m => m.IsDel == "0" && m.ParentId == planOrd.Id && m.Status != "2");
-                    if (planDetailNum == 0)
-                    {
-                        planOrd.Status = "2";
-                        planOrd.CompleteTime = comTime;
-                        Db.Updateable(planOrd).ExecuteCommand();
-                    }
-                    else
-                    {
-                        if (planOrd.Status == "0")
-                        {
-                            planOrd.Status = "1";
-                            Db.Updateable(planOrd).ExecuteCommand();
-                        }
-                    }
-                    //閲囪喘鍗曟槑缁�
-                    var planDetailList = Db.Queryable<BllProcurePlanNoticeDetail>()
-                        .Where(it => it.ParentId == planOrd.Id && it.IsDel == "0" && it.CompleteQty < it.Qty).ToList();
-                    foreach (var item in planDetailList)
-                    {
-                        //鍒ゆ柇鏈夋棤姝e湪鎵ц鐨�
-                        var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(it => it.OrderDetailCode == item.OrderDetailCode && it.IsDel == "0" && it.Status == "0");
-                        if (noticeDetail != null)
-                        {
-                            continue;
-                        }
-                        // 鑾峰彇鐗╂枡璇︾粏淇℃伅
-                        var skuModel = Db.Queryable<SysMaterials>().First(it => it.SkuNo == item.SkuNo && it.IsDel == "0");
-                        if (skuModel == null)
-                        {
-                            continue;
-                        }
-                        // 楠岃瘉鍖呰淇℃伅鏄惁瀛樺湪
-                        var packagModel = Db.Queryable<SysPackag>().First(it => it.PackagNo == item.PackagNo && it.IsDel == "0");
-                        if (packagModel == null)
-                        {
-                            continue;
-                        }
-                        // 鍏ュ簱鎬昏〃淇℃伅
-                        string asnNo = new Common().GetMaxNo("ASN");
-                        var asnModel1 = new BllArrivalNotice()
-                        {
-                            ASNNo = asnNo,
-                            Status = "0",//鎵ц鐘舵�侊紝0锛氱瓑寰呮墽琛�
-                            Type = "1",//鍗曟嵁绫诲瀷锛�1锛氶噰璐叆搴�
-                            Origin = "閲囪喘鍗�",
-                            CustomerNo = item.CustomerNo,
-                            CustomerName = item.CustomerName,
-                            OrderCode = planOrd.OrderCode,
-                            CreateUser = 0
-                        };
-                        // 鎻掑叆鍏ュ簱鎬昏〃淇℃伅
-                        Db.Insertable(asnModel1).ExecuteCommand();
-                        //鍏ュ簱鍗曟槑缁�
-                        var arrDetailModel = new BllArrivalNoticeDetail()
-                        {
-                            ASNNo = asnNo,
-                            SkuNo = skuModel.SkuNo,
-                            SkuName = skuModel.SkuName,
-                            Standard = skuModel.Standard,
-                            LotNo = "",
-                            LotText = "",
-                            Qty = 0,
-                            FactQty = 0,
-                            CompleteQty = 0,
-                            PackagNo = packagModel.PackagNo,
-                            SupplierLot = "",
-                            Status = "0",
-                            IsSampling = "0",
-                            InspectStatus = "0",
-                            OrderDetailCode = item.OrderDetailCode,
-                            CreateUser = 0
-                        };
-                        // 鎻掑叆鍏ュ簱鎬昏〃淇℃伅
-                        Db.Insertable(arrDetailModel).ExecuteCommand();
-                    }
-                }
+                //if (notice.Type == "1" && !string.IsNullOrEmpty(notice.OrderCode))
+                //{
+                //    // 鑾峰彇閲囪喘鎬诲崟淇℃伅
+                //    var planOrd = Db.Queryable<BllProcurePlanNotice>().First(it => it.OrderCode == notice.OrderCode && it.IsDel == "0");
+                //    //鍏ュ簱鍗曟槑缁�
+                //    var noticeDetailList = Db.Queryable<BllArrivalNoticeDetail>()
+                //        .Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo).ToList();
+                //    foreach (var item in noticeDetailList)
+                //    {
+                //        //閲囪喘鍗曟槑缁�
+                //        var planDetail = Db.Queryable<BllProcurePlanNoticeDetail>()
+                //            .First(it => it.ParentId == planOrd.Id && it.SkuNo == item.SkuNo && it.IsDel == "0");
+                //        planDetail.CompleteQty += item.CompleteQty;
+                //        if (planDetail.CompleteQty >= planDetail.Qty)
+                //        {
+                //            planDetail.Status = "2";
+                //            planDetail.CompleteTime = comTime;
+                //        }
+                //        else
+                //        {
+                //            planDetail.Status = "1";
+                //        }
+                //        Db.Updateable(planDetail).ExecuteCommand();
+                //    }
+                //    // 缁存姢閲囪喘鎬诲崟淇℃伅
+                //    var planDetailNum = Db.Queryable<BllProcurePlanNoticeDetail>().Count(m => m.IsDel == "0" && m.ParentId == planOrd.Id && m.Status != "2");
+                //    if (planDetailNum == 0)
+                //    {
+                //        planOrd.Status = "2";
+                //        planOrd.CompleteTime = comTime;
+                //        Db.Updateable(planOrd).ExecuteCommand();
+                //    }
+                //    else
+                //    {
+                //        if (planOrd.Status == "0")
+                //        {
+                //            planOrd.Status = "1";
+                //            Db.Updateable(planOrd).ExecuteCommand();
+                //        }
+                //    }
+                //    //閲囪喘鍗曟槑缁�
+                //    var planDetailList = Db.Queryable<BllProcurePlanNoticeDetail>()
+                //        .Where(it => it.ParentId == planOrd.Id && it.IsDel == "0" && it.CompleteQty < it.Qty).ToList();
+                //    foreach (var item in planDetailList)
+                //    {
+                //        //鍒ゆ柇鏈夋棤姝e湪鎵ц鐨�
+                //        var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(it => it.OrderDetailCode == item.OrderDetailCode && it.IsDel == "0" && it.Status == "0");
+                //        if (noticeDetail != null)
+                //        {
+                //            continue;
+                //        }
+                //        // 鑾峰彇鐗╂枡璇︾粏淇℃伅
+                //        var skuModel = Db.Queryable<SysMaterials>().First(it => it.SkuNo == item.SkuNo && it.IsDel == "0");
+                //        if (skuModel == null)
+                //        {
+                //            continue;
+                //        }
+                //        // 楠岃瘉鍖呰淇℃伅鏄惁瀛樺湪
+                //        var packagModel = Db.Queryable<SysPackag>().First(it => it.PackagNo == item.PackagNo && it.IsDel == "0");
+                //        if (packagModel == null)
+                //        {
+                //            continue;
+                //        }
+                //        // 鍏ュ簱鎬昏〃淇℃伅
+                //        string asnNo = new Common().GetMaxNo("ASN");
+                //        var asnModel1 = new BllArrivalNotice()
+                //        {
+                //            ASNNo = asnNo,
+                //            Status = "0",//鎵ц鐘舵�侊紝0锛氱瓑寰呮墽琛�
+                //            Type = "1",//鍗曟嵁绫诲瀷锛�1锛氶噰璐叆搴�
+                //            Origin = "閲囪喘鍗�",
+                //            CustomerNo = item.CustomerNo,
+                //            CustomerName = item.CustomerName,
+                //            OrderCode = planOrd.OrderCode,
+                //            CreateUser = 0
+                //        };
+                //        // 鎻掑叆鍏ュ簱鎬昏〃淇℃伅
+                //        Db.Insertable(asnModel1).ExecuteCommand();
+                //        //鍏ュ簱鍗曟槑缁�
+                //        var arrDetailModel = new BllArrivalNoticeDetail()
+                //        {
+                //            ASNNo = asnNo,
+                //            SkuNo = skuModel.SkuNo,
+                //            SkuName = skuModel.SkuName,
+                //            Standard = skuModel.Standard,
+                //            LotNo = "",
+                //            LotText = "",
+                //            Qty = 0,
+                //            FactQty = 0,
+                //            CompleteQty = 0,
+                //            PackagNo = packagModel.PackagNo,
+                //            SupplierLot = "",
+                //            Status = "0",
+                //            IsSampling = "0",
+                //            InspectStatus = "0",
+                //            OrderDetailCode = item.OrderDetailCode,
+                //            CreateUser = 0
+                //        };
+                //        // 鎻掑叆鍏ュ簱鎬昏〃淇℃伅
+                //        Db.Insertable(arrDetailModel).ExecuteCommand();
+                //    }
+                //}
                 #endregion
 
                 Db.Ado.CommitTran();
@@ -1258,9 +1321,16 @@
                     resultModel.Message = "鍏ュ簱鍗曟槑缁嗕笉鍙负绌�!";
                     return resultModel;
                 }
+                var asnModel = Db.Queryable<BllArrivalNotice>().First(w => w.IsDel == "0" && w.OrderCode == model.orderNo);
+                if (asnModel != null)
+                {
+                    resultModel.Message = $"{model.orderNo}璇ュ崟鍙峰凡瀛樺湪鍏ュ簱鍗�!";
+                    return resultModel;
+                }
+
                 // 鍏ュ簱鎬昏〃淇℃伅
                 string asnNo = new Common().GetMaxNo("ASN");
-                var asnModel = new BllArrivalNotice()
+                asnModel = new BllArrivalNotice()
                 {
                     ASNNo = asnNo,
                     Status = "0",//绛夊緟鎵ц
@@ -1287,9 +1357,9 @@
                         resultModel.Message = "搴旀敹鐗╂枡鏁伴噺搴斿ぇ浜�0!";
                         return resultModel;
                     }
-                    if (string.IsNullOrEmpty(asnDetailModel.lotNo.ToString()))
+                    if (string.IsNullOrEmpty(asnDetailModel.lotNo) && asnModel.Type != "1")
                     {
-                        resultModel.Message = "鎵规鍙蜂笉鍙负绌�!";
+                        resultModel.Message = "闈為噰璐叆搴擄紝鎵规鍙蜂笉鍙负绌�!";
                         return resultModel;
                     }
 
@@ -1310,7 +1380,7 @@
                         SkuNo = asnDetailModel.skuNo.ToString(),
                         SkuName = skuModel.SkuName,
                         Standard = skuModel.Standard,
-                        LotNo = asnDetailModel.lotNo.ToString(),
+                        LotNo = asnDetailModel.lotNo,
                         LotText = "",
                         Qty = Convert.ToDecimal(asnDetailModel.expectedQty),
                         FactQty = 0,
@@ -1324,6 +1394,23 @@
                         InspectStatus = "0",
                         CreateUser = 0
                     };
+                    detailModel.BoxCodeStr = detailModel.LotNo;
+                    if (string.IsNullOrWhiteSpace(detailModel.LotNo))
+                    {
+                        string toDayTime = DateTime.Now.ToString("yyyyMM");
+                        var maxBoxCodeStr = Db.Queryable<BllArrivalNoticeDetail>()
+                            .Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK")
+                            && m.CreateTime.ToString("yyyyMM") == DateTime.Now.ToString("yyyyMM")).Max(m => m.BoxCodeStr);
+                        if (string.IsNullOrWhiteSpace(maxBoxCodeStr))
+                        {
+                            maxBoxCodeStr = "BK" + toDayTime.Substring(2, 4) + "0001";
+                        }
+                        else
+                        {
+                            maxBoxCodeStr = "BK" + (int.Parse(maxBoxCodeStr.Replace("BK", "")) + 1).ToString();
+                        }
+                        detailModel.BoxCodeStr = maxBoxCodeStr;
+                    }
 
                     detailModels.Add(detailModel);
                 }
@@ -1405,7 +1492,7 @@
                 //绯荤粺瀵规帴鍚庢斁寮�
                 var jsonData = JsonConvert.SerializeObject(soInfo);
 
-                var response = HttpHelper.DoPost(url, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "ERP");
+                var response = HttpHelper.DoPost(url, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "SAP");
 
                 var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁
                 if (obj.Success != 0)

--
Gitblit v1.8.0