From 4c49b591b3833a2752634355cb37b0a74923e916 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期五, 07 十一月 2025 09:41:17 +0800
Subject: [PATCH] 开发成品出库导出上传码上放心平台xm文件

---
 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs |   81 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 72 insertions(+), 9 deletions(-)

diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index fd465ab..c9bc7b9 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -2013,6 +2013,13 @@
             }
         }
 
+        /// <summary>
+        /// 瀵煎嚭xml鏂囦欢
+        /// </summary>
+        /// <param name="id"></param>
+        /// <param name="userId"></param>
+        /// <returns></returns>
+        /// <exception cref="Exception"></exception>
         public XmlNode AddExXmlStr(int id, int userId)
         {
             try
@@ -2022,27 +2029,80 @@
                 {
                     throw new Exception("鏈煡璇㈠埌鍑哄簱鍗曟嵁淇℃伅");
                 }
+                var noticeDetial = Db.Queryable<BllExportNoticeDetail>().Where(w => w.IsDel == "0" && w.SONo == notice.SONo).First();
+                if (noticeDetial == null)
+                {
+                    throw new Exception("鏈煡璇㈠埌鍑哄簱鍗曟嵁鏄庣粏淇℃伅");
+                }
                 var statusLis = new List<string>() { "4", "5", "6" };
                 if (!statusLis.Contains(notice.Status))
                 {
                     throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︿负鎵ц瀹屾垚鎴栬鍗曞叧闂�/宸蹭笂浼�");
                 }
+                string xmlName = string.Empty;
+                switch (notice.Type)
+                {
+                    case "0"://鎴愬搧鍑哄簱/閿�鍞嚭搴�
+                        xmlName = "SalesWareHouseOut";
+                        break;
+                    case "2"://鎶芥鍑哄簱
+                        xmlName = "CheckWareHouseOut";
+                        break;
+                    default:
+                        throw new Exception("鍗曟嵁绫诲瀷寮傚父");
+                }
+
+                var materiDetial = Db.Queryable<SysMaterials>().First(w => w.IsDel == "0" && w.SkuNo == noticeDetial.SkuNo);
+                var packType = Db.Queryable<SysPackag>().First(w => w.IsDel == "0" && w.PackagNo == materiDetial.PackagNo);
+                int level = 0;
+                if (!string.IsNullOrEmpty(packType.L2Name))
+                {
+                    level = 1;
+                }
+                if (!string.IsNullOrEmpty(packType.L3Name))
+                {
+                    level = 2;
+                }
+                if (!string.IsNullOrEmpty(packType.L4Name))
+                {
+                    level = 3;
+                }
                 //鍑哄簱鍗曟槑缁�
-                var comDetail = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.SONo == notice.SONo).Select(m => m.BoxNo3).ToList();
+                var comDetail = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.SONo == notice.SONo).ToList();
+                var userinfo = Db.Queryable<SysUserInfor>().Where(m => m.Id == comDetail.First().CreateUser).First().RealName;
+
                 Db.BeginTran();//寮�鍚簨鍔�
 
                 try
                 {
                     //Hashtable pars = new Hashtable();       //鐢ㄦ潵瀛樻斁鍙傛暟
                     var pars = new List<string>();
-                    //for (int i = 0; i < 10; i++)
-                    //{
-                    //    pars.Add("202203240009000479940290"); 
-                    //} 
+                    string[] strr = new string[comDetail.Count];
 
-                    var dom = HttpHelper.EncodeParsToFuMa(comDetail, "ceshi", "ExInfoXml");
+                    for (int i = 0; i < comDetail.Count(); i++)
+                    {
+                        switch (level)
+                        {
+                            case 1:
+                                strr[i] = comDetail[i].BoxNo + "," + comDetail[i].SONo + "," + userinfo + "," + Convert.ToString(comDetail[i].CreateTime);
+                                break;
+                            case 2:
+                                strr[i] = comDetail[i].BoxNo3 + "," + comDetail[i].SONo + "," + userinfo + "," + Convert.ToString(comDetail[i].CreateTime);
+                                break;
+                            case 3:
+                                strr[i] = comDetail[i].BoxNo2 + "," + comDetail[i].SONo + "," + userinfo + "," + Convert.ToString(comDetail[i].CreateTime);
+                                break;
+                            default:
+                                break;
+                        }
+
+
+                        pars.Add(strr[i]);
+                    }
+                    //string fileName = $"{xmlName}_{notice.OrderCode}_linklink";
+                    var dom = HttpHelper.EncodeParsToFuMa(pars, "", xmlName, "ExInfoXml");
                     ////娣诲姞鎿嶄綔鏃ュ織璁板綍
-                    //var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鍗曟嵁", notice.SONo, "鍏冲崟", $"鍏抽棴浜嗗崟鎹彿涓簕notice.SONo}鐨勫崟鎹俊鎭�", userId);
+                    var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鍗曟嵁", notice.SONo, "涓婁紶", $"涓婁紶浜嗗崟鎹彿涓簕notice.SONo}鐨勫崟鎹俊鎭�", userId);
 
                     Db.CommitTran();
                     return dom;
@@ -2731,7 +2791,9 @@
                         //杩橀渶瑕佸垎閰嶇殑鏁伴噺
                         decimal needQty = detail.Qty - (detail.AllotQty == null ? 0 : decimal.Parse(detail.AllotQty.ToString()));
                         //搴撳瓨鏄庣粏 Status 0锛氬緟鍒嗛厤 1锛氶儴鍒嗗垎閰�  2锛氬凡鍒嗛厤 
-                        var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.SkuNo == detail.SkuNo && (m.Qty - m.FrozenQty - m.LockQty + m.InspectQty) > 0 && (m.Status == "0" || m.Status == "1") && m.IsDel == "0").ToList();
+                        var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.SkuNo == detail.SkuNo && (m.Qty - m.FrozenQty - m.LockQty + m.InspectQty) > 0 && (m.Status == "0" || m.Status == "1") && m.IsDel == "0"
+                        && m.AreaNo != "B06" && m.AreaNo != "B07" && m.AreaNo != "B09" && m.AreaNo != "B24")//鎺掗櫎杞﹂棿搴撳瓨
+                            .ToList();
 
 
                         //鍒ゆ柇鍗曞彿鏄惁鎸囧畾鎵规
@@ -3156,7 +3218,8 @@
                         m => m.SkuNo.Contains(msg.Trim())
                              || m.SkuName.Contains(msg.Trim())
                              || m.LocatNo.Contains(msg.Trim()))
-                    .And(m => m.IsDel == "0" && m.SkuNo == detail.SkuNo && m.LotNo == detail.LotNo && (m.Status == "0" || m.Status == "1"))
+                    .And(m => m.IsDel == "0" && m.SkuNo == detail.SkuNo && m.LotNo == detail.LotNo && (m.Status == "0" || m.Status == "1")
+                        && m.AreaNo != "B06" && m.AreaNo != "B07" && m.AreaNo != "B09" && m.AreaNo != "B24")//鎺掗櫎杞﹂棿搴撳瓨
                     .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
 
                 var list = Db.Queryable<DataStockDetail>().Where(item).Select(a => new StockDetailDto

--
Gitblit v1.8.0