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/BllQualityServer/QualityInspectServer.cs |  123 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 123 insertions(+), 0 deletions(-)

diff --git a/Wms/WMS.BLL/BllQualityServer/QualityInspectServer.cs b/Wms/WMS.BLL/BllQualityServer/QualityInspectServer.cs
index 7bed1a0..0cc581b 100644
--- a/Wms/WMS.BLL/BllQualityServer/QualityInspectServer.cs
+++ b/Wms/WMS.BLL/BllQualityServer/QualityInspectServer.cs
@@ -2,6 +2,8 @@
 using System.Collections.Generic;
 using System.Data;
 using System.Text;
+using System.Threading.Tasks;
+using Model.InterFaceModel;
 using Model.ModelDto.BllQualityDto;
 using Model.ModelVm;
 using SqlSugar;
@@ -218,7 +220,128 @@
 
             return isquality;
         }
+        /// <summary>
+        /// SAP涓嬪彂搴撳瓨璋冩暣鍗�
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        /// <exception cref="Exception"></exception>
+        public string InsertQualitySap(SendQualityVm model)
+        {
+            try
+            {
+                if (string.IsNullOrEmpty(model.orderNo) || model.adjustmentDList.Count <= 0)
+                {
+                    throw new Exception("鍙傛暟閿欒");
+                }
+                var asnInfo = Db.Queryable<BllArrivalNotice>().First(w => w.IsDel == "0" && w.OrderCode == model.orderNo);
+                if (asnInfo == null)
+                {
+                    throw new Exception($"鏈煡璇㈠埌{model.orderNo}瀵瑰簲鐨勫叆搴撳崟淇℃伅");
+                }
+                //寮�鍚簨鍔�
+                Db.BeginTran();
 
+                foreach (var item in model.adjustmentDList)
+                {
+                    var asnDetail = Db.Queryable<BllArrivalNoticeDetail>().First(w => w.IsDel == "0" && w.ASNNo == asnInfo.ASNNo && w.OrderDetailCode == item.lineNo && w.SkuNo == item.skuNo && w.LotNo == item.lotNo);
+                    if (asnDetail == null)
+                    {
+                        throw new Exception($"鏈煡璇㈠埌{item.lineNo}瀵瑰簲鐨勫叆搴撳崟鏄庣粏淇℃伅");
+                    }
+                    asnDetail.InspectStatus = item.IsQualified;
+                    //鏇存柊鍏ュ簱鍗曟槑缁嗚川妫�鐘舵��
+                    Db.Updateable(asnDetail).ExecuteCommand();
+
+                    //鑾峰彇鐗╂枡淇℃伅
+                    var sku = Db.Queryable<SysMaterials>().First(a => a.IsDel == "0" && a.SkuNo == item.skuNo);
+                    if (sku == null)
+                    {
+                        throw new Exception($"鐗╂枡缂栫爜涓簕item.skuNo}鐨勭墿鏂欎俊鎭笉瀛樺湪锛岃鏍告煡锛�");
+                    }
+
+                    string toDayTime = DateTime.Now.ToString("yyyyMMdd");
+                    var maxInspectNo = Db.Queryable<BllQualityInspect>().Where(m => m.IsDel == "0" && m.InspectNo.Contains("SAP")).Max(m => m.InspectNo);
+                    if (string.IsNullOrWhiteSpace(maxInspectNo))
+                    {
+                        maxInspectNo = "SAP" + toDayTime + "0001";
+                    }
+                    else
+                    {
+                        var lotStr = maxInspectNo.Substring(3, 8);
+                        if (lotStr == toDayTime)
+                        {
+                            maxInspectNo = "SAP" + toDayTime + (int.Parse(maxInspectNo.Replace("SAP","").Substring(8, 4)) + 1).ToString().PadLeft(4, '0');
+                        }
+                        else
+                        {
+                            maxInspectNo = "SAP" + toDayTime + "0001";
+                        }
+                    }
+                    var qualityModel = new BllQualityInspect
+                    {
+                        ASNNo = asnDetail.ASNNo,
+                        InspectNo = maxInspectNo,
+                        SkuNo = item.skuNo,
+                        SkuName = item.skuName,
+                        Standard = sku.Standard,
+                        LotNo = item.lotNo,
+                        IsQualified = item.IsQualified,
+                        Origin = "SAP",
+                        FailQty = 0,
+                        PassQty = 0
+                    };
+
+                    //鏌ユ壘搴撳瓨淇℃伅
+                    var stockDetailList = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.SkuNo == item.skuNo && w.LotNo == item.lotNo).ToList();
+                    foreach(var datailItem in stockDetailList)
+                    {
+                        List<DataBoxInfo> boxList = Db.Queryable<DataBoxInfo>().Where(a => a.IsDel == "0" && a.SkuNo == item.skuNo && a.LotNo == item.lotNo && a.PalletNo == datailItem.PalletNo).ToList();
+                        foreach (var boxItem in boxList)
+                        {
+                            if (item.IsQualified == "0")//涓嶅悎鏍�
+                            {
+                                boxItem.InspectStatus = "2";
+                            }
+                            else//鍚堟牸
+                            {
+                                boxItem.InspectStatus = "1";
+                            }                            
+                        }
+                        //鏇存柊绠辩爜鏄庣粏璐ㄦ鐘舵��
+                        Db.Updateable(boxList).ExecuteCommand();
+
+                        if (item.IsQualified == "0")//涓嶅悎鏍�
+                        {
+                            datailItem.InspectStatus = "2";
+                            //涓嶅悎鏍兼暟閲�
+                            qualityModel.FailQty += datailItem.Qty;
+                        }
+                        else//鍚堟牸
+                        {
+                            datailItem.InspectStatus = "1";
+                            //鍚堟牸鏁伴噺
+                            qualityModel.PassQty += datailItem.Qty;
+                        }
+                        //鏇存柊搴撳瓨鏄庣粏璐ㄦ鐘舵��
+                        Db.Updateable(datailItem).ExecuteCommand();
+                    }                    
+                    //娣诲姞璐ㄦ鍙樻洿璁板綍
+                    Db.Insertable(qualityModel).ExecuteCommand();
+                }
+                //鎻愪氦浜嬪姟
+                Db.CommitTran();
+
+                return "0";
+            }
+            catch (Exception ex)
+            {
+                //鍥炴粴浜嬪姟
+                Db.RollbackTran();
+                //鎶涘嚭寮傚父
+                throw new Exception("鎺ユ敹SAP涓嬪彂搴撳瓨璋冩暣鍗曞紓甯�:", ex);
+            }
+        }
         #endregion
 
     }

--
Gitblit v1.8.0