From b2d25faa69ee7e9f24b6ac98d3b4dcbddada70bc Mon Sep 17 00:00:00 2001
From: yuyou_x <2336760928@qq.com>
Date: 星期四, 14 三月 2024 13:37:15 +0800
Subject: [PATCH] 修改pda托盘绑定同一物料多批次 无法具体选中批次问题。
---
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 164 +++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 124 insertions(+), 40 deletions(-)
diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index ebbd1ce..c8a1d77 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -136,8 +136,8 @@
throw new Exception("鏈煡璇㈠埌鍏ュ簱鍗曟槑缁�");
}
- var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m=>m.Qty);
- var qty = detail.Qty-labelQty;
+ var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty);
+ var qty = detail.Qty - labelQty;
return qty.ToString();
}
@@ -153,28 +153,34 @@
try
{
string skuType = string.Empty;
- switch(model.Type)//0锛氬師鏂� 1锛氬寘鏉� 2锛氭垚鍝� 3锛氳�楁潗 4锛氬崐鎴愬搧
+ switch (model.Type)//0锛氬師鏂� 1锛氬寘鏉� 2锛氭垚鍝� 3锛氳�楁潗 4锛氬崐鎴愬搧
{
case "0"://鎴愬搧鍏ュ簱
+ skuType = "(2)";
+ break;
+ case "3"://閫�璐у叆搴�
+ skuType = "(2)";
+ break;
+ case "5"://鍏跺畠鍏ュ簱
+ skuType = "(0,1,3)";
+ break;
+ case "6"://浠e偍鍏ュ簱
skuType = "(2)";
break;
case "1"://閲囪喘鍏ュ簱
skuType = "(0,1,3)";
break;
- case "2"://涓棿鍝佸叆搴�
- skuType = "(4)";
- break;
- case "3"://閫�璐у叆搴�
- skuType = "(2)";
- break;
case "4"://杞﹂棿浣欐枡閫�鍥炲叆搴�
skuType = "(0,1,3)";
break;
- case "5"://鍏跺畠鍏ュ簱
- skuType = "(2)";
+ case "2"://涓棿鍝佸叆搴�
+ skuType = "(4)";
break;
- case "6"://浠e偍鍏ュ簱
- skuType = "(2)";
+ case "7"://瀵勫瓨鍏ュ簱
+ skuType = "(3)";
+ break;
+ default: //鍏跺畠
+ skuType = "(0,1,2,3,4)";
break;
}
@@ -231,6 +237,9 @@
string strMessage = "";
string sqlString = string.Empty;
string sqlDetailStr = string.Empty;
+ //0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欏叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
+ var TypeLot = "1, 2, 5, 6, 7"; //鎵规鍙负绌哄崟鎹被鍨�
+
try
{
if (model.Origin == "褰曞叆")
@@ -246,6 +255,15 @@
if (string.IsNullOrEmpty(model.Type))
{
throw new Exception("鍗曟嵁绫诲瀷涓嶅彲涓虹┖!");
+ }
+ }
+ //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
+ // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
+ if (model.Type == "1" || model.Type == "4")
+ {
+ if (!string.IsNullOrWhiteSpace(model.LotNo))
+ {
+ throw new Exception("閲囪喘鍏ュ簱鎴栦綑鏂欓��鍥炰笉鍙緭鍏ユ壒娆★紝涓嶅彲缂栬緫!");
}
}
@@ -274,8 +292,12 @@
}
if (string.IsNullOrEmpty(detailModel.LotNo))
{
- strMessage = "-1:鎵规鍙蜂笉鍙负绌�;";
- continue;
+ //鍒ゆ柇鏄惁涓轰笉闄愬埗鎵规鍗曟嵁
+ if (!TypeLot.Contains(model.Type))
+ {
+ strMessage = "-1:鎵规鍙蜂笉鍙负绌�;";
+ continue;
+ }
}
// 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁�
string sqlCount = $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' ";
@@ -337,6 +359,18 @@
string sqlDetailStr = string.Empty;
try
{
+ //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
+ // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
+ int isType = 0;
+ if (model.Type == "1" || model.Type == "4")
+ {
+ isType = 1;
+ if (!string.IsNullOrWhiteSpace(model.LotNo))
+ {
+ strMessage = "-1:閲囪喘鍏ュ簱鎴栦綑鏂欓��鍥炰笉鍙緭鍏ユ壒娆★紝涓嶅彲缂栬緫;";
+ return strMessage;
+ }
+ }
if (model.Origin != "褰曞叆")
{
strMessage = "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲缂栬緫;";
@@ -353,7 +387,7 @@
sqlString = "UPDATE BllArrivalNotice SET ";
sqlString += $"CustomerNo = '{model.CustomerNo}',CustomerName = '{model.CustomerName}',";
- sqlString += $"LotNo = '{model.LotNo}',LotText = '{model.LotText}',";
+ sqlString += $"LotNo = '{model.LotNo}',LotText = '{model.LotText}',";
sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
sqlString += $"WHERE ASNNo = '{model.ASNNo}'";
@@ -391,7 +425,7 @@
strMessage = "-1:鏁伴噺蹇呴』澶т簬0;";
continue;
}
- if (string.IsNullOrEmpty(detailModel.LotNo))
+ if (string.IsNullOrEmpty(detailModel.LotNo) && isType != 1)
{
strMessage = "-1:鎵规鍙蜂笉鍙负绌�;";
continue;
@@ -496,6 +530,7 @@
}
+
// 鍒犻櫎鎬诲崟
sqlString = $"UPDATE BllArrivalNotice SET IsDel = '1',";
sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
@@ -505,10 +540,30 @@
sqlString += $"UPDATE BllArrivalNoticeDetail SET IsDel = '1',";
sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
+
+ //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
+ // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
+ int notdel = 0;
+ if (model.Type == "1" || model.Type == "4")
+ {
+ //鑾峰彇鍗曟嵁鐢熸垚瀵瑰簲鏍囩
+ var list = Db.Queryable<BllBoxInfo>().Where(a => a.IsDel == "0" && a.Status == "0" && a.BindNo == null);
+
+ //楠岃瘉瀵瑰簲绠辨敮淇℃伅鏄惁瀛樺湪
+ if (list == null)
+ {
+ return "-1:宸叉湁绠辩爜宸茬粦瀹氭墭鐩樻垨宸插叆搴擄紝涓嶅彲鍒犻櫎!";
+ }
+
+ // 鍒犻櫎瀵瑰簲绠辨敮淇℃伅
+ sqlString += $"UPDATE BllBoxInfo SET IsDel = '1',";
+ sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' ";
+ sqlString += $"WHERE ASNNo = '{model.ASNNo}';";
+ notdel = 1;
+ }
Db.Ado.BeginTran();
int rowCount = Db.Ado.ExecuteCommand(sqlString);
-
- if (rowCount < 2)
+ if (rowCount < 2 + notdel)
{
Db.RollbackTran();
return "-1:鍒犻櫎澶辫触锛�";
@@ -519,6 +574,7 @@
}
catch (Exception ex)
{
+ Db.RollbackTran();
throw ex;
}
}
@@ -595,6 +651,11 @@
//{
// throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︿负鎵ц瀹屾垚");
//}
+ var palletBind = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo && m.Status != "2").ToList();
+ if (palletBind != null && palletBind.Count > 0)
+ {
+ throw new Exception("瀛樺湪鏈叆搴撳畬鎴愭墭鐩樹俊鎭紝涓嶅厑璁稿叧鍗�");
+ }
var sqlString = "";
@@ -626,7 +687,7 @@
}
}
//鍏ュ簱鍗曟挙閿�鐢宠
- public void CancelOrder(int id,string reason,int userId)
+ public void CancelOrder(int id, string reason, int userId)
{
try
{
@@ -635,29 +696,29 @@
{
throw new Exception("鏈煡璇㈠埌鍏ュ簱鍗曟嵁淇℃伅");
}
- if (notice.Status!="1" && notice.Status != "2")
+ if (notice.Status != "1" && notice.Status != "2")
{
throw new Exception("鍏ュ簱鍗曟嵁鐘舵�佷笉鏄鍦ㄦ墽琛屾垨鎵ц瀹屾垚锛屼笉鑳芥挙閿�");
}
var bind = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo).ToList();
- if (bind.Count==0)
+ if (bind.Count == 0)
{
throw new Exception("鏈煡璇㈠埌鍏ュ簱鍗曟嵁鐨勬墭鐩樼粦瀹氫俊鎭�");
}
- if (bind.Count(m=>m.Status== "1")>0)
+ if (bind.Count(m => m.Status == "1") > 0)
{
throw new Exception("褰撳墠鍏ュ簱鍗曟嵁鐨勬墭鐩樼粦瀹氫俊鎭湁姝e湪鎵ц鐨勶紝璇风◢鍚庡畬鎴愬悗鍐嶆挙閿�");
}
var auditLog = Db.Queryable<BllAuditLog>().Where(m => m.IsDel == "0" && m.Status == "0");
var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo);
- if (auditLog.Count(m=>m.OrderNo == notice.ASNNo)>0)
+ if (auditLog.Count(m => m.OrderNo == notice.ASNNo) > 0)
{
throw new Exception("褰撳墠鍏ュ簱鍗曟嵁宸叉湁鎾ら攢瀹℃牳锛岃绛夊緟瀹℃牳瀹屾垚");
}
-
+
var startStatusName = "";
var endStatusName = "";
@@ -672,7 +733,7 @@
endStatusName = "姝e湪鎵ц";
break;
default:
- throw new Exception("鍗曟嵁鐘舵�侀敊璇�");
+ throw new Exception("鍗曟嵁鐘舵�侀敊璇�");
}
var palletStr = "";
@@ -680,27 +741,46 @@
var msgL = "";
foreach (var item in bind)
{
- if (auditLog.Count(m=>m.OrderNo ==item.ASNNo && m.PalletNo.Contains(item.PalletNo)) >0)
+ if (auditLog.Count(m => m.OrderNo == item.ASNNo && m.PalletNo.Contains(item.PalletNo)) > 0)
{
continue;
}
if (!palletStr.Contains(item.PalletNo))
{
- palletStr += item.PalletNo+";";
+ palletStr += item.PalletNo + ";";
}
-
+
var info = boxInfo.First(m => m.BindNo == item.Id);
- if (!msgS.Contains(info.SkuNo))
+ //鑾峰彇鎵樼洏缁戝畾瀵瑰簲鍗曟嵁
+ var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(a => a.IsDel == "0" && a.Id == item.ASNDetailNo);
+ if (info != null)
{
- msgS += info.SkuNo + ";";
+ if (!msgS.Contains(info.SkuNo))
+ {
+ msgS += info.SkuNo + ";";
+ }
+
+ if (!msgL.Contains(info.LotNo))
+ {
+ msgL += info.LotNo + ";";
+
+ }
+ }
+ else
+ {
+ if (!msgS.Contains(noticeDetail.SkuNo))
+ {
+ msgS += noticeDetail.SkuNo + ";";
+ }
+
+ if (!msgL.Contains(noticeDetail.LotNo))
+ {
+ msgL += noticeDetail.LotNo + ";";
+
+ }
}
- if (!msgL.Contains(info.LotNo))
- {
- msgL += info.LotNo + ";";
-
- }
}
var time = DateTime.Now;
var log = new BllAuditLog()
@@ -718,7 +798,7 @@
IsDel = "0",
CreateUser = userId,
CreateTime = time
- };
+ };
Db.Insertable(log).ExecuteCommand();
new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", notice.ASNNo, "娣诲姞", $"娣诲姞浜嗗崟鎹彿涓簕notice.ASNNo}鐨勫崟鎹挙閿�鐢宠", userId);
}
@@ -752,7 +832,7 @@
{
//娣诲姞鎿嶄綔鏃ュ織
new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", notice.ASNNo, "缂栬緫", $"缂栬緫浜嗗崟鎹彿涓簕notice.ASNNo}鐨勫娉ㄤ俊鎭�", userId);
- }
+ }
}
catch (Exception ex)
{
@@ -808,7 +888,7 @@
{
ASNNo = asnNo,
Type = model.AsnType,
- Origin = model.Origin,
+ Origin = string.IsNullOrEmpty(model.Origin) ? "ERP" : model.Origin,
CustomerNo = model.Customer,
CustomerName = CustomerModel.CustomerName,
OrderCode = model.OrderCode,
@@ -892,6 +972,10 @@
{
throw new Exception("鏈煡璇㈠埌鍗曟嵁淇℃伅");
}
+ if (notice.Status != "3")
+ {
+ throw new Exception("澶嶆牳澶辫触锛屽崟鎹潪鍏抽棴鐘舵��");
+ }
var detail = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.ASNNo == notice.ASNNo && m.IsDel == "0").ToList();
if (detail.Count == 0)
{
@@ -949,5 +1033,5 @@
#endregion
}
-
+
}
--
Gitblit v1.8.0