From 48df8080d7befac9fff4f5345750699c592512f6 Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期三, 07 五月 2025 08:21:28 +0800
Subject: [PATCH] 修改问题
---
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 256 ++++++++++++++++++++++++--------------------------
1 files changed, 123 insertions(+), 133 deletions(-)
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
index 5270e8a..6b68462 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -128,39 +128,8 @@
var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺
var bNum = 0;//绠辩爜鐗╁搧鏁伴噺
- if (pack == null)
- {
- throw new Exception("鑾峰彇鐗╂枡鍖呰淇℃伅澶辫触锛岃鏍稿疄!");
- }
- if (pack.L5Num.HasValue)
- {
- pNum = (int)pack.L5Num;
- bNum = (int)pack.L4Num;
- }
- else if (pack.L4Num.HasValue)
- {
- pNum = (int)pack.L4Num;
- bNum = (int)pack.L3Num;
- }
- else if (pack.L3Num.HasValue)
- {
- pNum = (int)pack.L3Num;
- bNum = (int)pack.L2Num;
- }
- else if (pack.L2Num.HasValue)
- {
- pNum = (int)pack.L2Num;
- bNum = (int)pack.L1Num;
- }
- else if (pack.L1Num.HasValue)
- {
- pNum = (int)pack.L1Num;
- bNum = (int)pack.L1Num;
- }
- if (pNum == 0 || bNum == 0)
- {
- throw new Exception($"缁戝畾澶辫触锛寋detail.SkuNo}鐗╁搧鍖呰鏈壘鍒帮紒");
- }
+ //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
+ new Common().GetPackQtyInfo(detail.PackagNo, ref pNum, ref bNum);
#endregion
@@ -1123,6 +1092,7 @@
{
try
{
+ Db.BeginTran();
#region 鍒ゆ柇
//0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欏叆搴� 8锛氱敓浜ч��鏂欏叆搴�
@@ -1187,54 +1157,23 @@
{
throw new Exception("璇ユ墭鐩樺凡鏈夊偍浣嶄俊鎭紝璇锋牳瀹烇紒");
}
- if (stockDetail != null && (stockDetail.SkuNo != detail.SkuNo || stockDetail.LotNo != model.LotNo))
- {
- throw new Exception("璇ユ墭鐩樺湪搴撳瓨宸叉湁鍏跺畠鐗╂枡鎵规淇℃伅锛岃鏍稿疄锛�");
- }
+ //if (stockDetail != null && (stockDetail.SkuNo != detail.SkuNo || stockDetail.LotNo != model.LotNo))
+ //{
+ // throw new Exception("璇ユ墭鐩樺湪搴撳瓨宸叉湁鍏跺畠鐗╂枡鎵规淇℃伅锛岃鏍稿疄锛�");
+ //}
#endregion
#region 鍖呰
var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == detail.SkuNo);
- var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == detail.PackagNo); // liudl 鐢盨ku鍖呰缂栧彿鍙樻洿涓哄叆搴撳崟鏄庣粏鍖呰缂栧彿
+ //var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == detail.PackagNo); // liudl 鐢盨ku鍖呰缂栧彿鍙樻洿涓哄叆搴撳崟鏄庣粏鍖呰缂栧彿
var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺
var bNum = 0;//绠辩爜鐗╁搧鏁伴噺
-
- if (pack == null)
- {
- throw new Exception("鑾峰彇鐗╂枡鍖呰澶辫触锛岃鏍稿疄!");
- }
- if (pack.L5Num.HasValue)
- {
- pNum = (int)pack.L5Num;
- bNum = (int)pack.L4Num;
- }
- else if (pack.L4Num.HasValue)
- {
- pNum = (int)pack.L4Num;
- bNum = (int)pack.L3Num;
- }
- else if (pack.L3Num.HasValue)
- {
- pNum = (int)pack.L3Num;
- bNum = (int)pack.L2Num;
- }
- else if (pack.L2Num.HasValue)
- {
- pNum = (int)pack.L2Num;
- bNum = (int)pack.L1Num;
- }
- else if (pack.L1Num.HasValue)
- {
- pNum = (int)pack.L1Num;
- bNum = (int)pack.L1Num;
- }
- if (pNum == 0 || bNum == 0)
- {
- throw new Exception($"缁戝畾澶辫触锛寋detail.SkuNo}鐗╁搧鍖呰鏈壘鍒帮紒");
- }
+ //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
+ new Common().GetPackQtyInfo(detail.PackagNo, ref pNum, ref bNum);
+
#endregion
@@ -1330,10 +1269,16 @@
{
tags = "1";
}
-
+ //楠岃瘉搴撳瓨鎵樼洏鏄惁鏈夎创鏍囩墿鏂�
+ var skuStr = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0" && m.IsPasteCode == "1").Select(m => m.SkuNo).ToList();
+ var sdHave = Db.Queryable<DataStockDetail>().Count(m => m.IsDel == "0" && m.PalletNo == model.PalletNo && skuStr.Contains(m.SkuNo));
+ if (sdHave>0)
+ {
+ throw new Exception("褰撳墠鎵樼洏鍚湁璐存爣鐗╂枡淇℃伅锛屼笉鑳界粍鎵�");
+ }
// 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭�
var sd1 = Db.Queryable<DataStockDetail>()
- .First(m => m.IsDel == "0" && m.ASNDetailNo == bind.ASNDetailNo && m.PalletNo == model.PalletNo && m.LotNo == bind.LotNo);
+ .First(m => m.IsDel == "0" && m.ASNDetailNo == bind.ASNDetailNo && m.PalletNo == model.PalletNo && m.SkuNo == detail.SkuNo && m.LotNo == bind.LotNo);
var sdId1 = 0;
if (sd1 != null)
{
@@ -1426,8 +1371,6 @@
}
#endregion
-
-
#region 鏇存敼缁勬墭淇℃伅
var isSample = "0";//鏄惁鍙栨牱
@@ -1497,10 +1440,12 @@
Db.Updateable(notice).ExecuteCommand();
#endregion
- #region 搴撳瓨鏄庣粏
+ #region 鏇存敼搴撳瓨鏄庣粏鏁伴噺
+
sd1.Qty = bind.Qty;
//鏇存敼搴撳瓨鏄庣粏鏁伴噺
Db.Updateable(sd1).Where(m => m.Id == sdId1).ExecuteCommand();
+
#endregion
#region 搴撳瓨
@@ -1574,9 +1519,12 @@
sqlStr += $"insert into LogPalletTrack values('{model.PalletNo}','{model.AsnNo}','缁勭洏','0',getDate(),{userId},NULL,NULL);";
Db.Ado.ExecuteCommand(sqlStr);
new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "鎵樼洏缁戝畾", model.AsnNo, "娣诲姞", $"娣诲姞浜嗘墭鐩樼爜涓猴細{model.PalletNo}鐨勭粍鐩樹俊鎭�", userId);
+
+ Db.CommitTran();
}
catch (Exception e)
{
+ Db.RollbackTran();
throw new Exception(e.Message);
}
}
@@ -1589,13 +1537,11 @@
{
try
{
- var item = Expressionable.Create<BllArrivalNoticeDetail>()
- .AndIF(true, it => it.IsDel == "0")
- .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
-
- var modelList = Db.Queryable<BllArrivalNoticeDetail>().Where(item)
- .LeftJoin<BllArrivalNotice>((tb1, tb2) => tb1.ASNNo == tb2.ASNNo && tb2.IsDel == "0" && (tb1.Status == "0" || tb1.Status == "1"))
- .LeftJoin<SysMaterials>((tb1, tb2, tb3) => tb1.SkuNo == tb3.SkuNo && tb3.IsDel == "0" && tb3.IsPasteCode == "1")
+
+ var modelList = Db.Queryable<BllArrivalNoticeDetail>()
+ .LeftJoin<BllArrivalNotice>((tb1, tb2) => tb1.ASNNo == tb2.ASNNo )
+ .LeftJoin<SysMaterials>((tb1, tb2, tb3) => tb1.SkuNo == tb3.SkuNo )
+ .Where((tb1, tb2, tb3) => tb1.IsDel == "0" && tb2.IsDel == "0" && (tb2.Status == "0" || tb2.Status == "1") && tb3.IsDel == "0" && tb3.IsPasteCode == "1")
.Select((tb1, tb2, tb3) => tb1.ASNNo).Distinct().ToList();
return modelList;
@@ -1613,13 +1559,11 @@
{
try
{
- var item = Expressionable.Create<BllArrivalNoticeDetail>()
- .AndIF(true, it => it.IsDel == "0")
- .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
- var modelList = Db.Queryable<BllArrivalNoticeDetail>().Where(item)
- .LeftJoin<BllArrivalNotice>((tb1, tb2) => tb1.ASNNo == tb2.ASNNo && tb2.IsDel == "0" && (tb2.Status == "0" || tb2.Status == "1"))
- .LeftJoin<SysMaterials>((tb1, tb2, tb3) => tb1.SkuNo == tb3.SkuNo && tb3.IsDel == "0" && tb3.IsPasteCode == "0")
+ var modelList = Db.Queryable<BllArrivalNoticeDetail>()
+ .LeftJoin<BllArrivalNotice>((tb1, tb2) => tb1.ASNNo == tb2.ASNNo )
+ .LeftJoin<SysMaterials>((tb1, tb2, tb3) => tb1.SkuNo == tb3.SkuNo )
+ .Where((tb1, tb2, tb3) => tb1.IsDel == "0" && tb2.IsDel == "0" && (tb2.Status == "0" || tb2.Status == "1") && tb3.IsDel == "0" && tb3.IsPasteCode == "0")
.Select((tb1, tb2, tb3) => tb1.ASNNo).Distinct().ToList();
return modelList;
@@ -1859,6 +1803,94 @@
}
}
+ /// <summary>
+ /// 楠岃瘉鎵樼洏鏄惁瀛樺湪
+ /// </summary>
+ /// <param name="palletNo">鎵樼洏鍙�</param>
+ /// <returns>"":鍙娇鐢� -1:涓嶅彲浣跨敤锛堝師鍥�)</returns>
+ public string IsEnablePalletNo(string palletNo)
+ {
+ string sqlMsg = "";
+ string sqlString = string.Empty;
+ try
+ {
+ sqlString = $"select * from SysPallets where PalletNo = '{palletNo}' and isdel = '0';";
+ var models = Db.Ado.SqlQuery<PalletBindVm>(sqlString);
+
+ if (models.Count > 1)
+ {
+ sqlMsg = "-1:瀛樺湪閲嶅鎵樼洏鍙�,璇锋鏌�!";
+ return sqlMsg;
+ }
+ if (models.Count > 0)
+ {
+ if (models[0].Status == "1")
+ {
+ sqlString = $"select count(id) from DataStockDetail where PalletNo = '{palletNo}' and isnull(LocatNo,'') != '' and isdel = '0';";
+ int rowNum = Db.Ado.GetInt(sqlString);
+ if (rowNum > 0)
+ {
+ sqlMsg = "-1:鎵樼洏浣跨敤涓紝姝ゆ墭鐩樺簲鍦ㄥ簱鍐呰鏍稿疄!";
+ }
+ }
+ }
+ else
+ {
+ sqlMsg = "-1:鎵樼洏鍙蜂笉瀛樺湪!";
+ }
+
+ return sqlMsg;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+ /// <summary>
+ /// 鏍规嵁鍗曟嵁鑾峰彇鏍囩鏁伴噺
+ /// </summary>
+ /// <param name="asnNo">鍏ュ簱鍗�</param>
+ /// <param name="asnDetailId">鍏ュ簱鍗曟槑缁嗗彿</param>
+ /// <returns></returns>
+ public BoxListInfoDto GetBoxCountByAsn(string asnNo,int? asnDetailId)
+ {
+ try
+ {
+
+ var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == asnDetailId);
+ if (detail == null)
+ {
+ throw new Exception("娌℃湁鏌ヨ鍒板崟鎹槑缁嗕俊鎭�");
+ }
+ var data = new BoxListInfoDto()
+ {
+ SkuNo = detail.SkuNo,
+ SkuName = detail.SkuName,
+ LotNo = detail.LotNo,
+
+ };
+ //鑾峰彇鐘舵�佹槸鏈粍鎵樼殑鏍囩淇℃伅
+ var models = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo && m.ASNDetailNo == asnDetailId ).GroupBy(m=> new { m.ProductionTime,m.ExpirationTime }).Select(m=>new { m.ProductionTime ,m.ExpirationTime}).OrderBy(m=>m.ProductionTime).ToList();//&& m.Status == "0"
+ foreach (var item in models)
+ {
+ var boxNoList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo && m.ASNDetailNo == asnDetailId && m.ProductionTime == item.ProductionTime).Select(m => m.BoxNo).ToList();
+ if (boxNoList.Count > 0)
+ {
+ data.BoxNoList = boxNoList;
+ data.Date1 = item.ProductionTime.ToString();
+ data.Date2 = item.ExpirationTime.ToString();
+
+ break;
+ }
+ }
+ return data;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
#endregion
@@ -1906,49 +1938,7 @@
- /// <summary>
- /// 楠岃瘉鎵樼洏鏄惁瀛樺湪
- /// </summary>
- /// <param name="palletNo">鎵樼洏鍙�</param>
- /// <returns>"":鍙娇鐢� -1:涓嶅彲浣跨敤锛堝師鍥�)</returns>
- public string IsEnablePalletNo(string palletNo)
- {
- string sqlMsg = "";
- string sqlString = string.Empty;
- try
- {
- sqlString = $"select * from SysPallets where PalletNo = '{palletNo}' and isdel = '0';";
- var models = Db.Ado.SqlQuery<PalletBindVm>(sqlString);
-
- if (models.Count > 1)
- {
- sqlMsg = "-1:瀛樺湪閲嶅鎵樼洏鍙�,璇锋鏌�!";
- return sqlMsg;
- }
- if (models.Count > 0)
- {
- if (models[0].Status == "1")
- {
- sqlString = $"select count(id) from DataStockDetail where PalletNo = '{palletNo}' and isnull(LocatNo,'') != '' and isdel = '0';";
- int rowNum = Db.Ado.GetInt(sqlString);
- if (rowNum > 0)
- {
- sqlMsg = "-1:鎵樼洏浣跨敤涓紝姝ゆ墭鐩樺簲鍦ㄥ簱鍐呰鏍稿疄!";
- }
- }
- }
- else
- {
- sqlMsg = "-1:鎵樼洏鍙蜂笉瀛樺湪!";
- }
-
- return sqlMsg;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- }
+
// 鏍规嵁绠辩爜鎴栨墭鐩樺彿鑾峰彇绠辨敮淇℃伅 liudl
public List<BoxInfoDto> GetBoxInfos(BoxInfoVm model)
--
Gitblit v1.8.0