From 69ccec8360ba960e8e3198356ea7a23c625393fd Mon Sep 17 00:00:00 2001
From: admin <qiutairan163@163.com>
Date: 星期二, 16 十二月 2025 17:30:31 +0800
Subject: [PATCH] 开发AddExportXmls批量生成xml接口
---
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 118 insertions(+), 1 deletions(-)
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index 791436c..5259d77 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -2181,6 +2181,123 @@
}
}
+
+ /// <summary>
+ /// 鎵归噺鐢熸垚xml
+ /// </summary>
+ /// <param name="date">鏃ユ湡</param>
+ /// <param name="userId">鐢ㄦ埛id</param>
+ /// <returns></returns>
+ /// <exception cref="Exception"></exception>
+ public List<ExportXmlDto> AddExportXmls(string date, int userId)
+ {
+ List<ExportXmlDto> xmlList = new List<ExportXmlDto>();
+ try
+ {
+ string exportSql = $@"select SONo,Status,Type,case isnull(CustomerNo,'') when '' then 'null' else CustomerNo end CustomerNo
+ from BllExportNotice
+ where IsDel='0' and Type='0'and SONo like 'SO{date.Replace("-", "")}%'
+ order by SONo";
+ DataTable exportDt = Db.Ado.GetDataTable(exportSql);
+
+ if (exportDt == null || exportDt.Rows.Count < 1)
+ {
+ return xmlList;
+ }
+
+ foreach (DataRow dr in exportDt.Rows)
+ {
+ string soNo = dr["SONo"] + "";
+ string status = dr["Status"] + "";
+ string type = dr["Type"] + "";
+
+ var noticeDetial = Db.Queryable<BllExportNoticeDetail>().Where(w => w.IsDel == "0" && w.SONo == soNo).First();
+ if (noticeDetial == null)
+ {
+ throw new Exception("鏈煡璇㈠埌鍑哄簱鍗曟嵁鏄庣粏淇℃伅");
+ }
+ List<string> statusList = new List<string>() { "4", "5", "6" };
+ if (!statusList.Contains(status))
+ {
+ throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︿负鎵ц瀹屾垚鎴栬鍗曞叧闂�/宸蹭笂浼�");
+ }
+ string xmlName = string.Empty;
+ string fileName = "";
+ switch (type)
+ {
+ //鎴愬搧鍑哄簱/閿�鍞嚭搴�
+ case "0": { xmlName = "SalesWareHouseOut"; fileName = $@"SalesWareHouseOut_{dr["CustomerNo"] + ""}_linklink"; } break;
+ //鎶芥鍑哄簱
+ case "2": { xmlName = "CheckWareHouseOut"; fileName = $@"CheckWareHouseOut_{dr["CustomerNo"] + ""}_linklink"; } 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 == soNo).ToList();
+ var userinfo = Db.Queryable<SysUserInfor>().Where(m => m.Id == comDetail.First().CreateUser).First().RealName;
+
+ //寮�鍚簨鍔�
+ Db.BeginTran();
+ try
+ {
+ var pars = new List<string>();
+ string[] strr = new string[comDetail.Count];
+
+ 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]);
+ }
+
+ XmlDocument dom = HttpHelper.EncodeParsToFuMa(pars, "", xmlName, "ExInfoXml");
+
+ ExportXmlDto xmlDto = new ExportXmlDto()
+ {
+ fileName = fileName,
+ fileContent = dom.InnerXml
+ };
+ xmlList.Add(xmlDto);
+ //娣诲姞鎿嶄綔鏃ュ織璁板綍
+ var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鍗曟嵁", soNo, "涓婁紶", $"涓婁紶浜嗗崟鎹彿涓簕soNo}鐨勫崟鎹俊鎭�", userId);
+
+ Db.CommitTran();
+ }
+ catch (Exception e)
+ {
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+ }
+ return xmlList;
+ }
+ catch (Exception ex)
+ {
+ throw new Exception("鐢熸垚XML鏂囦欢閿欒锛�" + ex.Message);
+ }
+ }
+
+
#endregion
#region 鎵樼洏鍑哄簱
@@ -2852,7 +2969,7 @@
}
//杩橀渶瑕佸垎閰嶇殑鏁伴噺
decimal needQty = detail.Qty - (detail.AllotQty == null ? 0 : decimal.Parse(detail.AllotQty.ToString()));
-
+
//鎺掗櫎杞﹂棿搴撳瓨
List<string> areaNoList = new List<string>() { "B06", "B07", "B09", "B24", "B26", "B27", "B28", "B29" };
//搴撳瓨鏄庣粏 Status 0锛氬緟鍒嗛厤 1锛氶儴鍒嗗垎閰� 2锛氬凡鍒嗛厤
--
Gitblit v1.8.0