From 27742f9fa3339984db3bc821b027cce4d69c2536 Mon Sep 17 00:00:00 2001
From: test <15284381150@163.com>
Date: 星期一, 11 八月 2025 13:16:18 +0800
Subject: [PATCH] 修改创建出库单据,客户信息

---
 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs |  145 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 110 insertions(+), 35 deletions(-)

diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index 4ab2a27..d1c5d5b 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -332,17 +332,33 @@
                 //鑾峰彇搴撳瓨
                 var stockList = Db.Queryable<DataStock>().Where(s => skuNos.Contains(s.SkuNo) && (s.Qty - s.FrozenQty - s.LockQty) > 0).ToList();
 
+                //string CustomerName = string.Empty;
+                //if (!string.IsNullOrEmpty(model.customerNo))
+                //{
+                //    //瀹㈡埛淇℃伅
+                //    var customer = Db.Queryable<SysCustomer>().First(m => m.IsDel == "0" && m.CustomerNo == model.customerNo);
+                //    if (customer == null)
+                //    {
+                //        throw new Exception("瀹㈡埛淇℃伅涓嶅瓨鍦�!");
+                //    }
+                //    CustomerName = customer.CustomerName;
+                //}
                 string CustomerName = string.Empty;
                 if (!string.IsNullOrEmpty(model.customerNo))
                 {
-                    //瀹㈡埛淇℃伅
                     var customer = Db.Queryable<SysCustomer>().First(m => m.IsDel == "0" && m.CustomerNo == model.customerNo);
-                    if (customer == null)
+                    if (customer != null)
                     {
-                        throw new Exception("瀹㈡埛淇℃伅涓嶅瓨鍦�!");
+                        CustomerName = customer.CustomerName;
                     }
-                    CustomerName = customer.CustomerName;
-                }               
+                    else
+                    {
+                        // 璁板綍鏃ュ織锛屼究浜庢帓鏌�
+                        Console.WriteLine($"璀﹀憡锛氬鎴蜂俊鎭笉瀛樺湪锛宑ustomerNo={model.customerNo}");
+                        // 鍙缃粯璁ゅ鎴峰悕绉版垨鍏朵粬澶勭悊锛屾牴鎹笟鍔″喅瀹�
+                        CustomerName = "榛樿瀹㈡埛";
+                    }
+                }
                 //鎵胯繍鍟嗕俊鎭�
                 //var logistics = Db.Queryable<SysLogisticsInfo>().First(m => m.IsDel == "0" && m.CarrierName == model.LogisticsNo);
                 //int? logisticsId = null;
@@ -630,7 +646,7 @@
         }
 
         //鍥炰紶鍑哄簱鍗�
-        public bool FinishSo(int id, string url, int userId)
+        public bool FinishSo(int id, string url, string url2, int userId)
         {
             try
             {
@@ -652,34 +668,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;
@@ -1998,7 +2063,7 @@
                    .AndIF(!string.IsNullOrWhiteSpace(model.BitPalletMark), m => m.BitPalletMark == model.BitPalletMark)
                    .And(m => !string.IsNullOrWhiteSpace(m.WareHouseNo))
                    .And(a => a.Status == "0")
-                   .And(a => a.WareHouseNo == "W01")
+                   .And(a => a.WareHouseNo == "W02")
                    .ToExpression();
             var data = await Db.Queryable<DataStockDetail>().Where(item).OrderBy(m => m.LocatNo).ToPageListAsync(model.Page, model.Limit, count);
             //data.Select(m => m.Status == "0" && m.IsDel == "0");
@@ -2038,6 +2103,12 @@
                 if (detailGroup.Count > 1)
                 {
                     throw new Exception($"鏈湪搴撳唴鏌ヨ鍒拌鎵樼洏淇℃伅");
+                }
+
+                var locatStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == outMode && w.Status == "0");
+                if (locatStart == null)
+                {
+                    throw new Exception($"鐩爣鍌ㄤ綅涓嶅瓨鍦ㄦ垨闈炵┖闂诧紝璇锋鏌�");
                 }
 
 
@@ -2151,14 +2222,16 @@
 
                     outDtoList.Add(new OutCommandDto()
                     {
+                        TaskNo = exTask.TaskNo, // 浠诲姟鍙�
+                        TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
+
                         PalletNo = palletNo,//鎵樼洏鍙�
                         StartLocate = locate.LocatNo, // 璧峰浣嶇疆
                         StartRoadway = locate.RoadwayNo,
                         EndLocate = outMode, // 鐩爣浣嶇疆 
-                        TaskNo = exTask.TaskNo, // 浠诲姟鍙�
-                        TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
-                        OutMode = outMode,  //鐩爣鍦板潃
-                        Order = 1
+
+                        Order = 999,
+                        Type = PLCTypeEnum.AGV
                     });
                     #endregion
 
@@ -2179,6 +2252,8 @@
                     Db.Updateable(locate).ExecuteCommand();
 
 
+                    locatStart.Status = "2";//瑕佸叆搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍏ュ簱
+                    Db.Updateable(locate).ExecuteCommand();
                     #endregion
 
                     //娣诲姞鎿嶄綔鏃ュ織璁板綍

--
Gitblit v1.8.0