From 950fac9fd7b9477fc2bbe3253d217f62ac7608e5 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期一, 21 七月 2025 17:01:21 +0800
Subject: [PATCH] SAP接口开发

---
 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs |  119 ++++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 89 insertions(+), 30 deletions(-)

diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index 4ab2a27..b83a0fb 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -630,7 +630,7 @@
         }
 
         //鍥炰紶鍑哄簱鍗�
-        public bool FinishSo(int id, string url, int userId)
+        public bool FinishSo(int id, string url, string url2, int userId)
         {
             try
             {
@@ -652,34 +652,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 +2047,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 +2087,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 +2206,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 +2236,8 @@
                     Db.Updateable(locate).ExecuteCommand();
 
 
+                    locatStart.Status = "2";//瑕佸叆搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍏ュ簱
+                    Db.Updateable(locate).ExecuteCommand();
                     #endregion
 
                     //娣诲姞鎿嶄綔鏃ュ織璁板綍

--
Gitblit v1.8.0