From 05679f2a536bc8ee97af46009c50c6aa93306d46 Mon Sep 17 00:00:00 2001
From: admin <qiutairan163@163.com>
Date: 星期五, 19 十二月 2025 11:42:59 +0800
Subject: [PATCH] Merge branch 'master' of http://47.95.120.53:8083/r/JC34WMS
---
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 137 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 132 insertions(+), 5 deletions(-)
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index 791436c..987c28e 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -746,7 +746,7 @@
VBELN = notice.OrderCode,
WERKS = notice.CustomerNo,
LFART = notice.Type,
- WADAT_IST = Convert.ToDateTime(notice.CompleteTime).ToString("yyyy-MM-dd"),
+ WADAT_IST = Convert.ToDateTime(notice.UpdateTime).ToString("yyyy-MM-dd"),
ITEM = list
};
#region 閫氳繃鎺ュ彛鍙戦�佽嚦erp
@@ -1941,6 +1941,13 @@
foreach (var d in noticeDetail)
{
+ if (notice.Type == "0")//鎴愬搧鍑哄簱锛岃鍒掓暟閲忓拰鎷h揣鏁伴噺蹇呴』涓�鑷�
+ {
+ if (d.CompleteQty != d.Qty)
+ {
+ throw new Exception($"鍏冲崟澶辫触,鐗╂枡:{d.SkuNo}璁″垝鏁伴噺鍜屾嫞璐ф暟閲忎笉涓�鑷达紒");
+ }
+ }
#region MyRegion
//鏇存敼搴撳瓨鏄庣粏閿佸畾鏁伴噺
//var orders = dataContext.WmsExportOrder.Where(o => o.ExportDetailId == d.Id
@@ -2149,10 +2156,10 @@
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);
+ strr[i] = comDetail[i].BoxNo2 + "," + 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);
+ strr[i] = comDetail[i].BoxNo3 + "," + comDetail[i].SONo + "," + userinfo + "," + Convert.ToString(comDetail[i].CreateTime);
break;
default:
break;
@@ -2180,6 +2187,123 @@
throw new Exception("鐢熸垚XML鏂囦欢閿欒锛�" + ex.Message);
}
}
+
+
+ /// <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(OrderCode,'') when '' then 'null' else OrderCode end OrderCode
+ 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["OrderCode"] + ""}_linklink"; } break;
+ //鎶芥鍑哄簱
+ case "2": { xmlName = "CheckWareHouseOut"; fileName = $@"CheckWareHouseOut_{dr["OrderCode"] + ""}_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].BoxNo2 + "," + comDetail[i].SONo + "," + userinfo + "," + Convert.ToString(comDetail[i].CreateTime); break;
+ case 3: strr[i] = comDetail[i].BoxNo3 + "," + 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
@@ -2852,9 +2976,12 @@
}
//杩橀渶瑕佸垎閰嶇殑鏁伴噺
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" };
+ string areaNoSql = $@"select AreaNo from SysStorageArea where IsDel='0' and AreaType='1'";
+ DataTable areaNoDt = Db.Ado.GetDataTable(areaNoSql);
+ List<string> areaNoList = areaNoDt.Rows.Cast<DataRow>().Select(e => e["AreaNo"] + "").ToList();
+
//搴撳瓨鏄庣粏 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" && !areaNoList.Contains(m.AreaNo)).ToList();
--
Gitblit v1.8.0