From c9fe2c53364abe0e0e495a1b756267f865159e2e Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期三, 25 六月 2025 12:17:26 +0800
Subject: [PATCH] Merge branch 'csc'
---
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 179 +++++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 131 insertions(+), 48 deletions(-)
diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index a5376b2..e0381b5 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -1,5 +1,6 @@
锘縰sing Model.InterFaceModel;
using Model.ModelDto;
+using Model.ModelDto.BllAsnDto;
using Model.ModelDto.SysDto;
using Model.ModelVm;
using Model.ModelVm.SysVm;
@@ -119,6 +120,7 @@
Status = tb1.Status,
AsnType = tb2.Type,
AsnStatus = tb2.Status,
+ IsPasteCode = tb5.IsPasteCode,
Lot1 = tb1.Lot1,
Lot2 = tb1.Lot2,
UDF1 = tb1.UDF1,
@@ -137,7 +139,7 @@
}
//鑾峰彇鍏ュ簱鍗曟槑缁嗗墿浣欐墦鍗版暟閲�
- public string GetAsnDetailQtyList(int id)
+ public LabelPrintInfoDto GetAsnDetailQtyList(int id)
{
try
{
@@ -146,11 +148,23 @@
{
throw new Exception("鏈煡璇㈠埌鍏ュ簱鍗曟槑缁�");
}
+ var data = new LabelPrintInfoDto();
+ data.ProductionTime = string.IsNullOrEmpty(detail.Lot1) ? "" : Convert.ToDateTime(detail.Lot1).ToString("yyyy-MM-dd");
+ data.ExpirationTime = string.IsNullOrEmpty(detail.Lot2) ? "" : Convert.ToDateTime(detail.Lot2).ToString("yyyy-MM-dd");
+ data.SupplierLot = detail.SupplierLot;
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;
-
- return qty.ToString();
+ if (qty<0)
+ {
+ qty = 0;
+ }
+ data.Qty = qty.ToString();
+ return data;
}
catch (Exception e)
{
@@ -249,11 +263,11 @@
string strMessage = "";
/** model.type 锛堝崟鎹被鍨�)
- * 鎴愬搧鍏ュ簱 0
+ * 鎴愬搧鍏ュ簱 0
* 閲囪喘鍏ュ簱 1
- * 涓棿鍝佷笉璐� 2
- * 閫�璐у叆搴� 3
+ * 閫�璐у叆搴� 3
* 浣欐枡閫�鍥炲叆搴� 4
+ * 鐢熶骇閫�鏂欏叆搴� 8
*/
var TypeLot = "1, 5, 6, 7"; //鎵规鍙负绌哄崟鎹被鍨�
@@ -293,6 +307,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 +326,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 +359,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 +398,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.IsInspect == "0")//鏄惁鍏嶆锛�0锛氬惁 1锛氭槸
+ {
+ //涓嶅厤妫�鐗╂枡 鐢熶骇鏃ユ湡銆佹湁鏁堟湡涓嶈兘涓虹┖
+ 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 +433,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 +447,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 +507,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 +575,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 +611,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 +662,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 +674,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,
@@ -627,6 +701,7 @@
&& it.IsBelt == detailModel.IsBelt
&& it.Lot1 == detailModel.Lot1 // 鐢熶骇鏃ユ湡
&& it.Lot2 == detailModel.Lot2 // 杩囨湡鏃ユ湡
+ && it.BoxCodeStr == detailModel.BoxCodeStr
&& it.UDF1 == detailModel.UDF1
&& it.UDF2 == detailModel.UDF2
&& it.UDF3 == detailModel.UDF3
@@ -654,13 +729,14 @@
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;
dbDetail.IsBale = detailModel.IsBale;
dbDetail.Lot1 = detailModel.Lot1;
dbDetail.Lot2 = detailModel.Lot2;
+ dbDetail.BoxCodeStr = detailModel.BoxCodeStr;
dbDetail.UDF1 = detailModel.UDF1;
dbDetail.UDF2 = detailModel.UDF2;
dbDetail.UDF3 = detailModel.UDF3;
@@ -787,7 +863,7 @@
return "-1:鍏ュ簱鍗曠姸鎬佸凡鍙樻洿锛屼笉鍙垹闄�!";
}
- if (asnModel.Origin != "褰曞叆" && asnModel.Origin != "閲囪喘鍗�")
+ if (asnModel.Origin != "褰曞叆" )//&& asnModel.Origin != "閲囪喘鍗�"
{
return "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲鍒犻櫎;";
@@ -818,10 +894,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