From 2db77d2cfc617aacefc05f0c946e34e85be8e434 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期五, 20 六月 2025 16:14:24 +0800
Subject: [PATCH] Merge branch 'wxw'
---
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 167 ++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 121 insertions(+), 46 deletions(-)
diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index a5376b2..880f59b 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -119,6 +119,7 @@
Status = tb1.Status,
AsnType = tb2.Type,
AsnStatus = tb2.Status,
+ IsPasteCode = tb5.IsPasteCode,
Lot1 = tb1.Lot1,
Lot2 = tb1.Lot2,
UDF1 = tb1.UDF1,
@@ -148,8 +149,15 @@
}
var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty + (m.SamplingQty == null? 0: m.SamplingQty));
+ if (labelQty == null)
+ {
+ labelQty = 0;
+ }
var qty = detail.Qty - labelQty;
-
+ if (qty<0)
+ {
+ qty = 0;
+ }
return qty.ToString();
}
catch (Exception e)
@@ -249,11 +257,11 @@
string strMessage = "";
/** model.type 锛堝崟鎹被鍨�)
- * 鎴愬搧鍏ュ簱 0
+ * 鎴愬搧鍏ュ簱 0
* 閲囪喘鍏ュ簱 1
- * 涓棿鍝佷笉璐� 2
- * 閫�璐у叆搴� 3
+ * 閫�璐у叆搴� 3
* 浣欐枡閫�鍥炲叆搴� 4
+ * 鐢熶骇閫�鏂欏叆搴� 8
*/
var TypeLot = "1, 5, 6, 7"; //鎵规鍙负绌哄崟鎹被鍨�
@@ -293,6 +301,8 @@
};
List<BllArrivalNoticeDetail> details = new List<BllArrivalNoticeDetail>();
+ var skuList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList();
+
foreach (ArrivalNoticeDetailVm detailModel in model.AsnDetail)
{
if (string.IsNullOrEmpty(detailModel.SkuNo))
@@ -310,8 +320,8 @@
strMessage = "-1:鏁伴噺蹇呴』澶т簬0;";
continue;
}
-
- if (model.Type == "1" || model.Type == "5" || model.Type == "6" || model.Type == "7")
+
+ if ( model.Type == "5" || model.Type == "6" || model.Type == "7")
{
if (!string.IsNullOrWhiteSpace(detailModel.LotNo))
{
@@ -343,12 +353,27 @@
detailModel.LotNo = maxLotNo;
}
}
- if (model.Type == "0" || model.Type == "2" || model.Type == "3" || model.Type == "4")
+ //if (model.Type == "0" || model.Type == "1" || model.Type == "2" || model.Type == "3" || model.Type == "4" && model.Type == "8")
+ //{
+ // if (string.IsNullOrWhiteSpace(detailModel.LotNo))
+ // {
+ // throw new Exception("褰撳墠鍗曟嵁绫诲瀷鎵规涓嶅彲涓虹┖!");
+ // }
+ //}
+ detailModel.BoxCodeStr = detailModel.LotNo;
+ if (string.IsNullOrWhiteSpace(detailModel.LotNo))
{
- if (string.IsNullOrWhiteSpace(detailModel.LotNo))
+ string toDayTime = DateTime.Now.ToString("yyyyMM");
+ var maxBoxCodeStr = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK") && m.CreateTime.ToString("yyyyMMdd") == DateTime.Now.ToString("yyyyMMdd")).Max(m => m.BoxCodeStr);
+ if(string.IsNullOrWhiteSpace(maxBoxCodeStr))
{
- throw new Exception("褰撳墠鍗曟嵁绫诲瀷鎵规涓嶅彲涓虹┖!");
+ maxBoxCodeStr = "BK" + toDayTime.Substring(2, 4) + "0001";
}
+ else
+ {
+ maxBoxCodeStr = "BK" + (int.Parse(maxBoxCodeStr.Replace("BK", "")) + 1).ToString();
+ }
+ detailModel.BoxCodeStr = maxBoxCodeStr;
}
// 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁�
@@ -367,6 +392,33 @@
{
detailModel.Price = 0;
}
+ var sku = skuList.FirstOrDefault(m => m.SkuNo == detailModel.SkuNo);
+ if (sku == null)
+ {
+ throw new Exception("鏈煡璇㈠嚭鐗╂枡淇℃伅!");
+ }
+ string lot1 = detailModel.Lot1;
+ string lot2 = detailModel.Lot2;
+ if (sku.IsPasteCode == "0")
+ {
+ //涓嶈创鏍囩墿鏂� 鐢熶骇鏃ユ湡銆佹湁鏁堟湡涓嶈兘涓虹┖
+ DateTime lot12;
+ DateTime lot22;
+ if (!DateTime.TryParse(detailModel.Lot1, out lot12))
+ {
+ throw new Exception("闈炶创鏍囩墿鏂欑敓浜ф棩鏈熻浆鎹㈠け璐�");
+ }
+ if (!DateTime.TryParse(detailModel.Lot2, out lot22))
+ {
+ throw new Exception("闈炶创鏍囩墿鏂欒繃鏈熸棩鏈熻浆鎹㈠け璐�");
+ }
+ lot1 = lot12.ToString();
+ lot2 = lot22.ToString();
+ }
+ if (string.IsNullOrWhiteSpace(detailModel.PackagNo))
+ {
+ throw new Exception("鍖呰涓嶈兘涓虹┖");
+ }
// 璁$畻鍑烘�婚噾棰�
detailModel.Money = detailModel.Price * detailModel.Qty;
BllArrivalNoticeDetail detail = new BllArrivalNoticeDetail()
@@ -375,7 +427,7 @@
SkuNo = detailModel.SkuNo,
SkuName = detailModel.SkuName,
Standard = detailModel.Standard,
- LotNo = detailModel.LotNo.Trim(),
+ LotNo = detailModel.LotNo == null ? "" : detailModel.LotNo.Trim(),
LotText = detailModel.LotText,
Qty = (decimal)detailModel.Qty,
PackagNo = detailModel.PackagNo,
@@ -389,6 +441,9 @@
Status = "0",
IsSampling = "0",
InspectStatus = "0",
+ Lot1 = lot1, //鐢熶骇鏃ユ湡
+ Lot2 = lot2, // 杩囨湡鏃ユ湡
+ BoxCodeStr = detailModel.BoxCodeStr,
UDF1 = detailModel.UDF1,
UDF2 = detailModel.UDF2,
UDF3 = detailModel.UDF3,
@@ -446,12 +501,12 @@
lock (AsnLock)
{
//鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴�
- // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
+ // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴� 8 鐢熶骇閫�鏂欏叆搴�
//0銆�2銆�3銆�4 鎵规涓嶈兘涓虹┖
//1銆佹坊鍔犲繀椤讳负绌恒�佺紪杈戜笉鍙负绌猴紝涓嶈兘鏇存敼
//5銆�6 鎵规鍙负绌哄彲涓嶄负绌�
//7 蹇呴』涓虹┖
- var TypeLot = "1, 5, 6, 7"; //鎵规涓虹敓鎴愭壒娆″崟鎹被鍨�
+ var TypeLot = " 5, 6, 7"; //鎵规涓虹敓鎴愭壒娆″崟鎹被鍨�
var asnInfo = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == model.ASNNo && m.IsDel == "0");
if (asnInfo == null)
@@ -514,13 +569,13 @@
return strMessage;
}
- if (model.Type == "0" || model.Type == "2" || model.Type == "3" || model.Type == "4")
- {
- if (string.IsNullOrWhiteSpace(detailModel.LotNo))
- {
- throw new Exception("褰撳墠鍗曟嵁绫诲瀷鎵规涓嶅彲涓虹┖!");
- }
- }
+ //if (model.Type == "0" || model.Type == "2" || model.Type == "3" || model.Type == "4")
+ //{
+ // if (string.IsNullOrWhiteSpace(detailModel.LotNo))
+ // {
+ // throw new Exception("褰撳墠鍗曟嵁绫诲瀷鎵规涓嶅彲涓虹┖!");
+ // }
+ //}
if (TypeLot.Contains(model.Type))
{
@@ -550,38 +605,48 @@
//鐢熸垚鑷湁鎵规
if (detailModel.Id == 0 || detailModel.Id == null || string.IsNullOrWhiteSpace(detailModel.LotNo))
{
- var notice = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && TypeLot.Contains(m.Type)).Select(m => m.ASNNo).ToList();
- if (string.IsNullOrWhiteSpace(maxLotNo))
+ //var notice = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && TypeLot.Contains(m.Type)).Select(m => m.ASNNo).ToList();
+ //if (string.IsNullOrWhiteSpace(maxLotNo))
+ //{
+ // maxLotNo = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && !string.IsNullOrWhiteSpace(m.LotNo) && notice.Contains(m.ASNNo)).Max(m => m.LotNo);
+ //}
+ //if (string.IsNullOrWhiteSpace(maxLotNo))
+ //{
+ // maxLotNo = toDayTime.Substring(2, 6) + "0001";
+ //}
+ //else
+ //{
+ // var lotStr = maxLotNo.Substring(0, 6);
+ // var timeStr = toDayTime.Substring(2, 6);
+ // if (lotStr == timeStr)
+ // {
+ // maxLotNo = toDayTime.Substring(2, 6) + (int.Parse(maxLotNo.Substring(6, 4)) + 1).ToString().PadLeft(4, '0');
+ // }
+ // else
+ // {
+ // maxLotNo = timeStr + "0001";
+ // }
+ //}
+ //detailModel.LotNo = maxLotNo;
+ var maxBoxCodeStr = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK") && m.CreateTime.ToString("yyyyMMdd") == DateTime.Now.ToString("yyyyMMdd")).Max(m => m.BoxCodeStr);
+ if (string.IsNullOrWhiteSpace(maxBoxCodeStr))
{
- maxLotNo = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && !string.IsNullOrWhiteSpace(m.LotNo) && notice.Contains(m.ASNNo)).Max(m => m.LotNo);
- }
- if (string.IsNullOrWhiteSpace(maxLotNo))
- {
- maxLotNo = toDayTime.Substring(2, 6) + "0001";
+ maxBoxCodeStr = "BK" + toDayTime.Substring(2, 4) + "0001";
}
else
{
- var lotStr = maxLotNo.Substring(0, 6);
- var timeStr = toDayTime.Substring(2, 6);
- if (lotStr == timeStr)
- {
- maxLotNo = toDayTime.Substring(2, 6) + (int.Parse(maxLotNo.Substring(6, 4)) + 1).ToString().PadLeft(4, '0');
- }
- else
- {
- maxLotNo = timeStr + "0001";
- }
+ maxBoxCodeStr = "BK" + (int.Parse(maxBoxCodeStr.Replace("BK", "")) + 1).ToString();
}
- detailModel.LotNo = maxLotNo;
+ detailModel.BoxCodeStr = maxBoxCodeStr;
}
if (detailModel.Id == 0 || detailModel.Id == null)
{
- if (model.Type == "1")
- {
- strMessage = "-1:閲囪喘鍏ュ簱涓嶅彲鏇存敼鏄庣粏锛屽彧鍙紪杈戞暟閲�;";
- return strMessage;
- }
+ //if (model.Type == "1")
+ //{
+ // strMessage = "-1:閲囪喘鍏ュ簱涓嶅彲鏇存敼鏄庣粏锛屽彧鍙紪杈戞暟閲�;";
+ // return strMessage;
+ //}
// 璁$畻鍑烘�婚噾棰�
detailModel.Money = detailModel.Price * detailModel.Qty;
@@ -591,7 +656,7 @@
SkuNo = detailModel.SkuNo,
SkuName = detailModel.SkuName,
Standard = detailModel.Standard,
- LotNo = detailModel.LotNo.Trim(),
+ LotNo = detailModel.LotNo == null ? "" : detailModel.LotNo.Trim(),
LotText = detailModel.LotText,
Qty = (decimal)detailModel.Qty,
PackagNo = detailModel.PackagNo,
@@ -603,8 +668,11 @@
IsBelt = detailModel.IsBelt,
SupplierLot = detailModel.SupplierLot,
Status = "0",
+ IsSampling = "0",
+ InspectStatus = "0",
Lot1 = detailModel.Lot1,
Lot2 = detailModel.Lot2,
+ BoxCodeStr = detailModel.BoxCodeStr,
UDF1 = detailModel.UDF1,
UDF2 = detailModel.UDF2,
UDF3 = detailModel.UDF3,
@@ -654,7 +722,7 @@
detailModel.Money = detailModel.Price * detailModel.Qty;
dbDetail.Qty = (decimal)detailModel.Qty;
- dbDetail.LotNo = detailModel.LotNo;
+ dbDetail.LotNo = detailModel.LotNo == null ? "" : detailModel.LotNo.Trim();
dbDetail.Money = detailModel.Money;
dbDetail.LotText = detailModel.LotText;
dbDetail.SupplierLot = detailModel.SupplierLot;
@@ -787,7 +855,7 @@
return "-1:鍏ュ簱鍗曠姸鎬佸凡鍙樻洿锛屼笉鍙垹闄�!";
}
- if (asnModel.Origin != "褰曞叆" && asnModel.Origin != "閲囪喘鍗�")
+ if (asnModel.Origin != "褰曞叆" )//&& asnModel.Origin != "閲囪喘鍗�"
{
return "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲鍒犻櫎;";
@@ -818,10 +886,17 @@
asnDetail.UpdateTime = editDateTime;
asnDetail.UpdateUser = model.CreateUser;
+ //鐢熸垚鐨勬爣绛�
+ var boxList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == asnDetail.Id && m.Origin == "WMS鐢熸垚").ToList();
+
Db.Ado.BeginTran();
int rowCount = Db.Updateable(asnModel).ExecuteCommand();
rowCount += Db.Updateable(asnDetail).ExecuteCommand();
-
+ if (boxList.Count>0)
+ {
+ rowCount += Db.Deleteable(boxList).ExecuteCommand();
+ }
+
if (rowCount < 2)
{
Db.RollbackTran();
--
Gitblit v1.8.0