From 3c39510f9cde5772dc343050f2bdf50460d6a912 Mon Sep 17 00:00:00 2001
From: yuyou_x <2336760928@qq.com>
Date: 星期一, 04 三月 2024 16:54:31 +0800
Subject: [PATCH] 增加手动分配寄存显示备注功能,调整后台逻辑代码。
---
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 159 ++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 116 insertions(+), 43 deletions(-)
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index ab76a7d..20dcf0a 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -204,10 +204,18 @@
{
throw new Exception("鏈煡璇㈠埌鍗曟嵁淇℃伅");
}
+ if (notice.Status != "5")
+ {
+ throw new Exception("澶嶆牳澶辫触锛屽崟鎹潪鍏抽棴鐘舵��");
+ }
var detail = Db.Queryable<BllExportNoticeDetail>().Where(m => m.SONo == notice.SONo && m.IsDel == "0").ToList();
if (detail.Count == 0)
{
throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏淇℃伅");
+ }
+ if (userId == notice.UpdateUser)
+ {
+ throw new Exception("澶嶆牳澶辫触锛屽鏍镐汉鍛樺拰鍏抽棴璁㈠崟浜哄憳涓嶈兘鐩稿悓锛�");
}
var list = new List<SoDetail>();
foreach (var d in detail)
@@ -225,21 +233,25 @@
OrderCode = notice.OrderCode,
SoDetails = list
};
- // 閫氳繃鎺ュ彛鍙戦�佽嚦erp
- var jsonData = JsonConvert.SerializeObject(soInfo);
+ #region 閫氳繃鎺ュ彛鍙戦�佽嚦erp
+ //绯荤粺瀵规帴鍚庢斁寮�
+ /*var jsonData = JsonConvert.SerializeObject(soInfo);
var response = HttpHelper.DoPost(url, jsonData, "鍑哄簱鍗曞畬鎴愪笂浼�", "ERP");
-
- //瑙f瀽杩斿洖鏁版嵁
- var obj = JsonConvert.DeserializeObject<ErpModel>(response);
+
+ var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁
if (obj.Success != 0)
{
throw new Exception("涓婁紶澶辫触" + obj.Message);
- }
+ }*/
+ #endregion
+
notice.Status = "6";
notice.UpdateTime = DateTime.Now;
notice.UpdateUser = userId;
Db.Updateable(notice).ExecuteCommand();
+
+ new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鍗曟嵁", notice.SONo, "澶嶆牳", $"澶嶆牳浜嗗崟鎹彿涓簕notice.SONo}鐨勫崟鎹俊鎭�", userId);
return true;
}
catch (Exception e)
@@ -278,7 +290,8 @@
.LeftJoin<SysLogisticsInfo>((a, b) => a.LogisticsId == b.Id)
.LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
.LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id)
- .Select((a, b, c, d) => new ExportNoticeDto()
+ .LeftJoin<SysUserInfor>((a, b, c, d,e) => a.CheckUser == e.Id)
+ .Select((a, b, c, d,e) => new ExportNoticeDto()
{
Id = a.Id,
SONo = a.SONo,
@@ -300,7 +313,10 @@
CreateUserName = c.RealName,
UpdateUserName = c.RealName,
CreateTime = a.CreateTime,
- UpdateTime = a.UpdateTime
+ UpdateTime = a.UpdateTime,
+
+ CheckUserName=e.RealName,
+ CheckTime=a.CheckTime
})
.OrderByDescending(a => a.CreateTime)
.ToOffsetPage(page, limit, ref total);
@@ -321,38 +337,41 @@
var plnList = new List<string>() { "100099" };
var skuList = new List<string>();
var sku = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0" && !plnList.Contains(m.SkuNo)); //鎺掗櫎绌烘墭鐩樼殑鐗╂枡闆嗗悎
- var inspectStatus = "1";//搴撳瓨鍐呯墿鏂欑殑璐ㄦ鐘舵��
- var skuTypeC = new List<string>() { "0" };//鏍囧噯
- var skuTypeY = new List<string>() { "1" };//闈炴爣
- if (type == "0" || type == "2") //鏍囧噯
+ string skuType = string.Empty;
+ switch (type)//0锛氬師鏂� 1锛氬寘鏉� 2锛氭垚鍝� 3锛氳�楁潗 4锛氬崐鎴愬搧
{
- inspectStatus = "0";
- //if (type == "0") //鎴愬搧
- //{
- skuList = sku.Where(m => inspectStatus==m.IsControlled).Select(m => m.SkuNo).ToList();
- //}
-
- //if (type == "1") //鍘熸枡
- //{
- // skuList = sku.Where(m => skuTypeY.Contains(m.Type)).Select(m => m.SkuNo).ToList();
- //}
+ case "0"://鎴愬搧鍏ュ簱
+ skuType = "(2)";
+ break;
+ case "1"://棰嗘枡鍑哄簱
+ skuType = "(0,1,3)";
+ break;
+ case "2"://鎶芥鍑哄簱
+ skuType = "(2)";
+ break;
+ case "3"://鐗╂枡鍙栨牱鍑哄簱
+ skuType = "(0)";
+ break;
+ case "4"://涓嶅悎鏍煎搧鍑哄簱
+ skuType = "(2)";
+ break;
+ case "5"://涓棿鍝佸嚭搴�
+ skuType = "(4)";
+ break;
+ case "6"://浠e偍鍑哄簱
+ skuType = "(2)";
+ break;
+ case "8"://瀵勫瓨鍑哄簱
+ skuType = "(3)";
+ break;
+ default: //鍏跺畠鍑哄簱
+ skuType = "(0,1,2,3,4)";
+ break;
}
- else if (type == "1" || type == "3") //闈炴爣
+ skuList = sku.Where(m => skuType.Contains(m.Type)).Select(m => m.SkuNo).ToList();
+ if (skuList == null)
{
- inspectStatus = "1";
- //if (type == "2") //鎴愬搧
- //{
- skuList = sku.Where(m => inspectStatus==m.IsControlled).Select(m => m.SkuNo).ToList();
- //}
-
- //if (type == "3") //鍘熸枡
- //{
- // skuList = sku.Where(m => skuTypeY.Contains(m.Type)).Select(m => m.SkuNo).ToList();
- //}
- }
- else
- {
- throw new Exception("鍗曟嵁鐘舵�佹湁璇�");
+ throw new Exception("鏈煡鍒板搴斿嚭搴撶被鍨嬬殑鐗╂枡");
}
//skuList = sku.Select(m => m.SkuNo).ToList();
var stockRst = new StockServer();
@@ -608,7 +627,7 @@
s = stock.FirstOrDefault(m => m.SkuNo == d.SkuNo && m.LotNo == d.LotNo);
}
- var stockCount = 0; //st.StockQuantity.Value
+ var stockCount = 0.00m; //st.StockQuantity.Value
if (s != null)
{
stockCount = s.Qty-s.FrozenQty-s.LockQty+d.Qty;
@@ -1360,7 +1379,7 @@
#region 涓嬪彂鍑哄簱銆佸嚭搴撳畬鎴愩�侀噸鏂颁笅鍙戜换鍔°�佸彇娑堜换鍔°�佸紓甯稿鐞�
// 涓嬪彂鍑哄簱锛堣皟鐢╟s鎺ュ彛缁欎粬搴撲綅鍦板潃锛�
- public List<OutCommandDto> IssueOutHouse(string soNo, string outMode, int userId, string url, out string str)
+ public List<OutCommandDto> IssueOutHouse(string soNo, string unstackingMode, string outMode, string loadingAddre, int userId, string url, out string str)
{
try
{
@@ -2256,11 +2275,11 @@
}
#endregion
//鍙栧悎閫傚簱瀛樺晢鍝�
- Dictionary<int, int> stockQtyDic = new Dictionary<int, int>();//鎵樺嚭搴撶墿鍝佹暟
+ Dictionary<int, decimal> stockQtyDic = new Dictionary<int, decimal>();//鎵樺嚭搴撶墿鍝佹暟
Dictionary<string, int> zxQtyDic = new Dictionary<string, int>();//鎵樺嚭鏁寸鏁�
//鍒嗛厤璐х墿
//assign.AllocatePallets(stocks, pNum, bNum, needQty, stockQtyDic, zxQtyDic);
- int qty = assign.AllotPallets(stockDetail, int.Parse(needQty.ToString()), pNum, bNum, stockQtyDic);
+ var qty = assign.AllotPallets(stockDetail, decimal.Parse(needQty.ToString()), pNum, bNum, stockQtyDic);
foreach (var sc in stockQtyDic)
{
@@ -2557,6 +2576,7 @@
LocatNo = a.LocatNo,
RoadwayNo = a.RoadwayNo,
PalletNo = a.PalletNo,
+ Demo = a.Demo,
}).ToList();
return list;
@@ -2678,8 +2698,8 @@
//淇敼鍑哄簱鍗曠姸鎬�
if (notice.Status == "0" || notice.Status == "1")
{
- int totalQty = 0;
- int totalAllotQty = 0;
+ decimal totalQty = 0;
+ decimal totalAllotQty = 0;
foreach (var item in detailList)
{
totalQty += item.Qty;
@@ -2711,5 +2731,58 @@
#endregion
+ /// <summary>
+ /// 鍒ゆ柇鍑哄簱鏄惁闇�瑕佹媶绠�
+ /// </summary>
+ /// <param name="soNo"></param>
+ /// <returns></returns>
+ public string IsNeedUnpack(string soNo)
+ {
+ string result = "0";//鏄惁闇�瑕佹媶绠憋紝0锛氬惁 1锛氭槸
+ if (string.IsNullOrEmpty(soNo))
+ {
+ throw new Exception("鏈壘鍒板搴斿嚭搴撳崟锛�");
+ }
+ try
+ {
+ var notice = Db.Queryable<BllExportNotice>().First(w => w.IsDel == "0" && w.SONo == soNo);
+ if (notice == null)
+ {
+ throw new Exception("鏈壘鍒板搴斿嚭搴撳崟锛�");
+ }
+ //鐗╂枡缂栫爜琛�
+ var skuList = Db.Queryable<SysMaterials>().Where(w => w.IsDel == "0");
+ //鍖呰琛�
+ var packagList= Db.Queryable<SysPackag>().Where(w => w.IsDel == "0");
+ //鍑哄簱鍒嗛厤淇℃伅
+ var allotList = Db.Queryable<BllExportAllot>().Where(w => w.IsDel == "0" && w.SONo == soNo).ToList();
+ foreach (var item in allotList)
+ {
+ var skuInfo = skuList.First(w => w.SkuNo == item.SkuNo);
+ if (skuInfo == null)
+ {
+ throw new Exception("鐗╂枡淇℃伅涓嶅瓨鍦紒");
+ }
+ var packagInfo = packagList.First(w => w.PackagNo == skuInfo.PackagNo);
+ if (packagInfo == null)
+ {
+ throw new Exception("鍖呰淇℃伅涓嶅瓨鍦紒");
+ }
+ if (packagInfo.L2Name == "绠�")
+ {
+ if (item.Qty % (decimal)packagInfo.L2Num != 0)//鑳芥暣闄よ鏄庝笉鐢ㄦ媶绠憋紝涓嶈兘鏁撮櫎璇存槑闇�瑕佹媶绠�
+ {
+ result = "1";//闇�瑕佹媶绠�
+ break;
+ }
+ }
+ }
+ return result;
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+ }
}
}
--
Gitblit v1.8.0