From c586d7e6347609a545bd588d7297bf272b32e465 Mon Sep 17 00:00:00 2001
From: test <15284381150@163.com>
Date: 星期五, 15 八月 2025 09:34:12 +0800
Subject: [PATCH] 修改创建出库单据中的仓库编号

---
 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs |  137 ++++++++++++++++++++++++++++++++++++---------
 1 files changed, 109 insertions(+), 28 deletions(-)

diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index 3704120..cd21a0c 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -342,7 +342,8 @@
                         throw new Exception("瀹㈡埛淇℃伅涓嶅瓨鍦�!");
                     }
                     CustomerName = customer.CustomerName;
-                }               
+                }
+
                 //鎵胯繍鍟嗕俊鎭�
                 //var logistics = Db.Queryable<SysLogisticsInfo>().First(m => m.IsDel == "0" && m.CarrierName == model.LogisticsNo);
                 //int? logisticsId = null;
@@ -366,9 +367,21 @@
                 try
                 {
                     var list = new List<BllExportNoticeDetail>();
+                    var houseNo = string.Empty;
                     //娣诲姞鍑哄簱鍗�
                     foreach (var d in model.orderDetailList)
                     {
+                        if (!string.IsNullOrEmpty(houseNo))
+                        {
+                            if (houseNo != d.wareHouseNo)
+                            {
+                                throw new Exception("鍚屼釜鍑哄簱鍗曚笅鏄庣粏鍒楄〃鍙戝嚭浠撳簱涓嶄竴鑷�!");
+                            }
+                        }
+                        else
+                        {
+                            houseNo = d.wareHouseNo;
+                        }
                         if (d.skuQty < 1)
                         {
                             throw new Exception("鍑哄簱鏁伴噺蹇呴』澶т簬0");
@@ -589,16 +602,35 @@
                         OrderCode=model.orderNo,
                         Type = model.orderType,
                         Status = "0",
-                        Origin = "WMS",
+                        Origin = "SAP",
                         CustomerNo = model.customerNo,
                         CustomerName = CustomerName,
                         LogisticsId = null,//logisticsId,
                         IsWave = "0",
                         WaveNo = "",
                         IsDespatch = "0",
-
+                        
                         CreateUser = 0,
                     };
+                    if (houseNo == "1000" || houseNo == "1001" || houseNo == "2000" || houseNo == "2002" || houseNo == "2003" || houseNo == "2004")
+                    {
+                        notice.WareHouseNo = "W02";
+                    }
+                    else if (houseNo == "4000")
+                    {
+                        notice.WareHouseNo = "W01";
+                    }
+                    else
+                    {
+                        // houseNo鎶涘紓甯革紝閬垮厤鍑虹幇闈濿01锛學02鐨勫��
+                        throw new Exception($"涓嶆敮鎸佺殑鍙戝嚭浠撳簱缂栧彿锛歿houseNo}锛屼粎鏀寔鐢熸垚W01鍜學02浠撳簱鐨勫崟鎹�");
+                    }
+                    //棰濆鏍¢獙锛堝彲閫夛紝鍙岄噸淇濋殰锛�
+                    if (notice.WareHouseNo != "W01" && notice.WareHouseNo != "W02")
+                    {
+                        throw new Exception($"浠撳簱缂栧彿寮傚父锛歿notice.WareHouseNo}锛屼粎鍏佽W01鍜學02");
+                    }
+
 
                     var n = Db.Insertable<BllExportNotice>(notice).ExecuteCommand();
                     var m = Db.Insertable<BllExportNoticeDetail>(list).ExecuteCommand();
@@ -630,7 +662,7 @@
         }
 
         //鍥炰紶鍑哄簱鍗�
-        public bool FinishSo(int id, string url, int userId)
+        public bool FinishSo(int id, string url, string url2, int userId)
         {
             try
             {
@@ -652,34 +684,83 @@
                 {
                     throw new Exception("澶嶆牳澶辫触锛屽鏍镐汉鍛樺拰鍏抽棴璁㈠崟浜哄憳涓嶈兘鐩稿悓锛�");
                 }
-                var list = new List<SoDetail>();
-                foreach (var d in detail)
+                if (notice.Type == "2")//鎶芥鍑哄簱
                 {
-                    var item = new SoDetail()
+                    var list = new List<SendSampleSku>();
+                    foreach (var d in detail)
                     {
-                        SkuNo = d.SkuNo,
-                        LotNo = d.LotNo,
-                        Qty = (decimal)d.CompleteQty
-                    };
-                    list.Add(item);
-                }
-                var soInfo = new SoInfo()
-                {
-                    OrderCode = notice.OrderCode,
-                    SoDetails = list
-                };
-                #region 閫氳繃鎺ュ彛鍙戦�佽嚦erp
-                //绯荤粺瀵规帴鍚庢斁寮�
-                /*var jsonData = JsonConvert.SerializeObject(soInfo);
+                        var item = new SendSampleSku()
+                        {
+                            skuNo = d.SkuNo,
+                            skuName = d.SkuName,
+                            lotNo = d.LotNo,
+                            skuQty = Convert.ToDecimal(d.CompleteQty)
+                        };
+                        list.Add(item);
+                    }
+                    SendSampleVm sendSampleVm = new SendSampleVm();
+                    sendSampleVm.pallDataList = list;
 
-                var response = HttpHelper.DoPost(url, jsonData, "鍑哄簱鍗曞畬鎴愪笂浼�", "ERP");
-                
-                var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁
-                if (obj.Success != 0)
+                    SapSampleVm sapSampleVm = new SapSampleVm();
+                    sapSampleVm.data = sendSampleVm;
+
+                    #region 閫氳繃鎺ュ彛鍙戦�佽嚦erp
+                    //绯荤粺瀵规帴鍚庢斁寮�
+                    /*var jsonData = JsonConvert.SerializeObject(sapSampleVm);
+
+                    var response = HttpHelper.DoPost(url2, jsonData, "鎶芥鍑哄簱瀹屾垚涓婁紶", "ERP");
+
+                    var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁
+                    if (obj.Success != 0)
+                    {
+                        throw new Exception("涓婁紶澶辫触" + obj.Message);
+                    }*/
+                    #endregion
+                }
+                else
                 {
-                    throw new Exception("涓婁紶澶辫触" + obj.Message);
-                }*/
-                #endregion
+                    var list = new List<BackSoDetail>();
+                    foreach (var d in detail)
+                    {
+                        var mater = Db.Queryable<SysMaterials>().First(w => w.IsDel == "0" && w.SkuNo == d.SkuNo);
+                        if (mater == null)
+                        {
+                            throw new Exception($"澶嶆牳澶辫触锛岀墿鏂欑紪鐮�:{d.SkuNo}鐨勭墿鏂欎俊鎭笉瀛樺湪");
+                        }
+                        var item = new BackSoDetail()
+                        {
+                            POSNR = d.OrderDetailCode,
+                            MATNR = d.SkuNo,
+                            CHARG = d.LotNo,
+                            LFIMG = d.CompleteQty.ToString(),
+                            MEINS = mater.UnitNo,
+                            HSDAT = "",
+                            VFDAT = ""
+                        };
+                        list.Add(item);
+                    }
+                    var soInfo = new BackSoVm()
+                    {
+                        ZUUID = Guid.NewGuid().ToString(),
+                        VBELN = notice.OrderCode,
+                        WERKS = notice.CustomerNo,
+                        LFART = notice.Type,
+                        WADAT_IST = Convert.ToDateTime(notice.CompleteTime).ToString("yyyy-MM-dd"),
+                        ITEM = list
+                    };
+                    #region 閫氳繃鎺ュ彛鍙戦�佽嚦erp
+                    //绯荤粺瀵规帴鍚庢斁寮�
+                    /*var jsonData = JsonConvert.SerializeObject(soInfo);
+
+                    var response = HttpHelper.DoPost(url, jsonData, "鍑哄簱鍗曞畬鎴愪笂浼�", "ERP");
+
+                    var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁
+                    if (obj.Success != 0)
+                    {
+                        throw new Exception("涓婁紶澶辫触" + obj.Message);
+                    }*/
+                    #endregion
+                }
 
                 notice.Status = "6";
                 notice.CheckTime = DateTime.Now;

--
Gitblit v1.8.0