From 260d6082a7e53e0f040365a763da9bcf952118bd Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期三, 04 九月 2024 16:51:46 +0800
Subject: [PATCH] 修改平库出库页面单据加载托盘位置功能
---
Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs | 202 ++++++++++++++++++++++++++++++++------------------
1 files changed, 129 insertions(+), 73 deletions(-)
diff --git a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
index 283f9ed..0b6d63a 100644
--- a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
@@ -33,7 +33,7 @@
#region 鎺ュ彛鏂规硶
- //JC23缁戝畾鐗╂枡鎵樼洏鍗冲鍔犲簱瀛�
+ //JC26缁戝畾鐗╂枡鎵樼洏鍗冲鍔犲簱瀛�
public void BindPalletStock(BoxPalletBindVm model, int userId)
{
try
@@ -227,7 +227,9 @@
BllQualityInspect quality = new BllQualityInspect();
if (model.Type == "0")
{
- quality = Db.Queryable<BllQualityInspect>().Where(a => a.IsDel == "0" && a.SkuNo == detail.SkuNo && a.LotNo == detail.LotNo).OrderByDescending(a => a.CreateTime).First();
+ quality = Db.Queryable<BllQualityInspect>()
+ .Where(a => a.IsDel == "0" && a.SkuNo == detail.SkuNo && a.LotNo == detail.LotNo)
+ .OrderByDescending(a => a.CreateTime).First();
}
DataStockDetail sd1 = null;
@@ -265,7 +267,7 @@
InspectQty = 0,
ASNNo = bind.ASNNo,
ASNDetailNo = bind.ASNDetailNo,
- WareHouseNo = "",//鎵�灞炰粨搴�
+ WareHouseNo = "W01",//鎵�灞炰粨搴�
RoadwayNo = "",//鎵�灞炲贩閬�
AreaNo = "",//鎵�灞炲尯鍩�
LocatNo = "",//鍌ㄤ綅鍦板潃
@@ -399,10 +401,11 @@
}
else if (model.Type == "0")//鐗╂枡鎵�
{
- if (model.Detail.Count(m => m.OrderCode != detail.OrderDetailCode) > 0)
- {
- throw new Exception($"鎵樼洏缁戝畾鏄庣粏涓紝鍚湁绠辩爜鐢熶骇宸ュ崟涓嶄竴鑷�");
- }
+ // 浣跨敤鍦烘櫙涓嶆槑纭�
+ //if (model.Detail.Count(m => m.OrderCode != detail.OrderDetailCode) > 0)
+ //{
+ // throw new Exception($"鎵樼洏缁戝畾鏄庣粏涓紝鍚湁绠辩爜鐢熶骇宸ュ崟涓嶄竴鑷�");
+ //}
if (model.Detail.Count(m => m.SkuNo != model.SkuNo || m.LotNo != model.LotNo) > 0)
{
throw new Exception($"鎵樼洏缁戝畾鏄庣粏涓紝鍚湁绠辩爜鐗╂枡鎴栨壒娆′笉涓�鑷�");
@@ -443,8 +446,8 @@
Standard = box.Standard,
PackageStandard = box.PackageStandard,
StoreTime = box.StoreTime,
- QtyCount = (int)box.QtyCount,
- QtyOrd = (int)box.QtyOrd,
+ QtyCount = box.QtyCount,
+ QtyOrd = box.QtyOrd,
CreateUser = userId,
CreateTime = comTime,
};
@@ -592,7 +595,7 @@
#endregion
- #region 鎵樼洏缁戝畾
+ #region 缁勬墭鏀惰揣
public List<PalletBindDto> GetPalletBindList(PalletBindVm model, out int count)
{
try
@@ -601,8 +604,17 @@
if (!string.IsNullOrWhiteSpace(model.SkuNo) || !string.IsNullOrWhiteSpace(model.SkuName))
{
- var detailList = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.SkuNo.Contains(model.SkuNo.Trim()) && m.SkuName.Contains(model.SkuName.Trim())).Select(m => m.Id).Distinct().ToList();
+ var detailList = Db.Queryable<BllArrivalNoticeDetail>()
+ .Where(m => m.IsDel == "0" && m.SkuNo.Contains(model.SkuNo.Trim()) && m.SkuName.Contains(model.SkuName.Trim()))
+ .Select(m => m.Id).Distinct().ToList();
strList = detailList;
+ if (strList.Count <= 0)
+ {
+ // 鐗╂枡缂栫爜銆佸悕绉版绱㈠け璐ョ洿鎺ヨ繑鍥瀗ull
+ count = 0;
+ return null;
+ }
+
}
Expression<Func<BllPalletBind, bool>> item = Expressionable.Create<BllPalletBind>()
.AndIF(!string.IsNullOrWhiteSpace(model.ASNNo), it => it.ASNNo.Contains(model.ASNNo.Trim()))
@@ -614,7 +626,7 @@
.AndIF(!string.IsNullOrWhiteSpace(model.LotNo), it => it.LotNo.Contains(model.LotNo.Trim()))
.AndIF(!string.IsNullOrWhiteSpace(model.LotText), it => it.LotText.Contains(model.LotText.Trim()))
.AndIF(!string.IsNullOrWhiteSpace(model.StartTime), it => it.CreateTime >= Convert.ToDateTime(model.StartTime))
- .AndIF(!string.IsNullOrWhiteSpace(model.EndTime), it => it.CreateTime <= Convert.ToDateTime(model.EndTime))
+ .AndIF(!string.IsNullOrWhiteSpace(model.EndTime), it => it.CreateTime <= Convert.ToDateTime(model.EndTime).AddDays(1))
.AndIF(!string.IsNullOrWhiteSpace(model.Status), it => it.Status == model.Status)
.And(m => m.IsDel == "0")
.ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
@@ -624,9 +636,10 @@
.LeftJoin<BllArrivalNoticeDetail>((a, b) => a.ASNDetailNo == b.Id)
.LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
.LeftJoin<SysUserInfor>((a, b, c, d) => a.UpdateUser == d.Id)
- //.LeftJoin<SysStorageLocat>((a, b, c, d, e) => a.LocatNo == e.LocatNo)
+ .LeftJoin<SysStorageLocat>((a, b, c, d, e) => a.LocatNo == e.LocatNo)
+ .LeftJoin<SysWareHouse>((a, b, c, d, e,f) => a.WareHouseNo == f.WareHouseNo)
//.LeftJoin<BllBoxInfo>((a, b, c, d, e, f) => a.Id == e.BindNo)
- .Select((a, b, c, d) => new PalletBindDto()
+ .Select((a, b, c, d,e,f) => new PalletBindDto()
{
Id = a.Id,
ASNNo = a.ASNNo,
@@ -638,6 +651,7 @@
LocatNo = a.LocatNo,
RoadwayNo = a.RoadwayNo,
WareHouseNo = a.WareHouseNo,
+ WareHouseName = a.WareHouseNo+"-"+f.WareHouseName,
Qty = a.Qty,
FullQty = a.FullQty,
SamplingQty = a.SamplingQty,
@@ -671,6 +685,7 @@
throw new Exception(ex.Message);
}
}
+
public List<BoxInfoDto> GetBoxInfoList(BoxInfoVm model, out int count)
{
@@ -1361,7 +1376,7 @@
.AndIF(!string.IsNullOrWhiteSpace(layer), m => m.Layer == int.Parse(layer))
.AndIF(!string.IsNullOrWhiteSpace(locateNo), m => m.LocatNo.Contains(locateNo))
.And(m => m.IsDel == "0" && m.Status == "0" && m.Flag == "0" && m.WareHouseNo == houseNo)
- .And(m => m.AreaNo == categoryAreaNo)
+ .And(m => categoryAreaNo.Contains(m.AreaNo))
.ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
var total = 0;
var list = Db.Queryable<SysStorageLocat>().Where(item).OrderByDescending(a => a.Depth).OrderBy(a => a.Column)
@@ -1719,18 +1734,18 @@
var sku = skuList.FirstOrDefault(m => m.SkuNo == skuNo);
if (sku == null)
{
- throw new Exception("鐗╂枡淇℃伅涓湭鏌ヨ鍒板叆搴撳崟鏄庣粏鍖呭惈鐨勭墿鏂欎俊鎭紝涓嶅彲鍏ュ簱");
+ throw new Exception("鐗╂枡缂栫爜涓嶅瓨鍦紝涓嶅彲鍏ュ簱");
}
//鍒ゆ柇鐗╂枡鏄惁鍚湁绫诲埆淇℃伅
if (string.IsNullOrWhiteSpace(sku.CategoryNo))
{
- throw new Exception($"鐗╂枡锛歿sku.SkuNo}鏈煡璇㈠埌绫诲埆淇℃伅");
+ throw new Exception($"鐗╂枡锛歿sku.SkuNo}鏈缃被鍒�,涓嶅彲鍏ュ簱");
}
var skuCategory = skuCategoryList.FirstOrDefault(m => m.CategoryNo == sku.CategoryNo);
if (skuCategory == null)
{
- throw new Exception($"鏈湪绫诲埆淇℃伅涓煡璇㈠埌鐗╂枡锛歿sku.SkuNo}鍖呭惈鐨勭被鍒�");
+ throw new Exception($"{sku.SkuNo}鐗╂枡绫诲埆涓嶅瓨鍦紝涓嶅彲鍏ュ簱");
}
var areaStr = skuCategory.AreaNo.Split(",");
@@ -1834,7 +1849,7 @@
}
//濡傛灉璺冲贩閬撳苟涓旀湭鎵惧埌鍚堥�傜┖鍌ㄤ綅,鍒欒烦鍒版渶鍚庝竴娆′娇鐢ㄧ殑宸烽亾鏌ヨ
- if (roadNo == "")
+ if (string.IsNullOrWhiteSpace(roadNo))
{
if (useLog != null)
{
@@ -1867,7 +1882,7 @@
roadNo = item;
}
//褰撳墠宸锋湁浣嶇疆鍒欓��鍑�
- if (roadNo != null)
+ if (!string.IsNullOrWhiteSpace(roadNo))
{
break;
}
@@ -1919,6 +1934,7 @@
};
Db.Insertable(exTask).ExecuteCommand();
+ var asnNo = "";
// 娣诲姞鎵樼洏缁戝畾琛ㄦ墭鐩樺叆搴撲换鍔″彿 liudl
if (palletBindList.Count < 1)
{
@@ -1932,9 +1948,35 @@
bindModel.WareHouseNo = houseNo;
bindModel.RoadwayNo = roadNo;
Db.Updateable(bindModel).ExecuteCommand();
+ asnNo = stockModel.ASNNo;
}
+
+
}
}
+ foreach (DataStockDetail stockModel in stockDetail)
+ {
+ //娣诲姞鎵樼洏涓婃灦璁板綍
+ var upShelf = new BllPalletUpShelf()
+ {
+ TaskNo = exTask.TaskNo,
+ TraceNo = asnNo,
+ PalletNo = palletNo,
+ SkuNo = stockModel.SkuNo,
+ SkuName = stockModel.SkuName,
+ LotNo = stockModel.LotNo,
+ Status = "1",
+
+ WareHouseNo = houseNo,
+ RoadwayNo = roadNo,
+ AreaNo = "",
+ LocatNo = "",
+
+ CreateUser = 0,
+ };
+ Db.Insertable(upShelf).ExecuteCommand();
+ }
+
if (palletBindList.Count >= 1)
{
@@ -2242,7 +2284,7 @@
};
Db.Insertable(exTask).ExecuteCommand();
-
+ var asnNo = "";
// 娣诲姞鎵樼洏缁戝畾琛ㄦ墭鐩樺叆搴撲换鍔″彿 liudl
foreach (DataStockDetail stockModel in stockDetail)
{
@@ -2255,9 +2297,32 @@
bindModel.RoadwayNo = locate.RoadwayNo;
bindModel.LocatNo = locate.LocatNo;
Db.Updateable(bindModel).ExecuteCommand();
+ asnNo = stockModel.ASNNo;
}
}
+ foreach (DataStockDetail stockModel in stockDetail)
+ {
+ //娣诲姞鎵樼洏涓婃灦璁板綍
+ var upShelf = new BllPalletUpShelf()
+ {
+ TaskNo = exTask.TaskNo,
+ TraceNo = asnNo,
+ PalletNo = palletNo,
+ SkuNo = stockModel.SkuNo,
+ SkuName = stockModel.SkuName,
+ LotNo = stockModel.LotNo,
+ Status = "1",
+ WareHouseNo = houseNo,
+ RoadwayNo = locate.RoadwayNo,
+ AreaNo = locate.AreaNo,
+ LocatNo = locate.LocatNo,
+
+ CreateUser = 0,
+ };
+ Db.Insertable(upShelf).ExecuteCommand();
+ }
+
oldTaskNo = taskNo;
}
else
@@ -2272,16 +2337,34 @@
}
Db.Updateable(oldTask).ExecuteCommand();
- var bindModel = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.Status == "2"
- && m.PalletNo == oldTask.PalletNo && m.TaskNo == oldTaskNo);
- if (bindModel != null && string.IsNullOrWhiteSpace(bindModel.LocatNo))
+
+ var bindModelList = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.Status == "2"
+ && m.PalletNo == oldTask.PalletNo && m.TaskNo == oldTaskNo).ToList();
+ foreach (var bindModel in bindModelList)
{
- bindModel.TaskNo = oldTask.TaskNo;
- bindModel.WareHouseNo = locate.WareHouseNo;
- bindModel.RoadwayNo = locate.RoadwayNo;
- bindModel.LocatNo = locate.LocatNo;
- Db.Updateable(bindModel).ExecuteCommand();
+ if (string.IsNullOrWhiteSpace(bindModel.LocatNo))
+ {
+ bindModel.TaskNo = oldTask.TaskNo;
+ bindModel.WareHouseNo = locate.WareHouseNo;
+ bindModel.RoadwayNo = locate.RoadwayNo;
+ bindModel.LocatNo = locate.LocatNo;
+ Db.Updateable(bindModel).ExecuteCommand();
+
+ }
}
+ //鏇存敼涓婃灦淇℃伅
+ var upShelfList = Db.Queryable<BllPalletUpShelf>().Where(m => m.IsDel == "0" && m.TaskNo == oldTask.TaskNo && m.PalletNo == palletNo).ToList();
+ foreach (var upShelf in upShelfList)
+ {
+ upShelf.WareHouseNo = locate.WareHouseNo;
+ upShelf.RoadwayNo = locate.RoadwayNo;
+ upShelf.LocatNo = locate.LocatNo;
+ upShelf.Status = "1";
+ Db.Updateable(upShelf).ExecuteCommand();
+
+ }
+
+
}
locate.Status = "2";
@@ -2652,6 +2735,7 @@
//娣诲姞鎿嶄綔鏃ュ織璁板綍
var k = new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId);
}
+
//鍒ゆ柇鏄惁鏄洖娴佸叆搴撳畬鎴�
if (stockDetail.Any())
{
@@ -3251,7 +3335,13 @@
task.FinishDate = comTime;//瀹屾垚鏃堕棿
//鏇存柊浠诲姟淇℃伅
Db.Updateable(task).ExecuteCommand();
-
+ //鏇存敼鎵樼洏涓婃灦璁板綍淇℃伅
+ var upShelfList = Db.Queryable<BllPalletUpShelf>().Where(m => m.IsDel == "0" && m.TaskNo == taskNo && m.PalletNo == task.PalletNo).ToList();
+ foreach (var upShelf in upShelfList)
+ {
+ upShelf.Status = "2";
+ Db.Updateable(upShelf).ExecuteCommand();
+ }
//鍒ゆ柇鏄惁鏄洖娴佸叆搴撳畬鎴�
if (stockDetail.Any())
{
@@ -3294,49 +3384,6 @@
Db.Updateable(dataBoxInfoList).ExecuteCommand();
#endregion
- #region 閲囪喘璁″垝
- //var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == item.ASNDetailNo);
- //if (noticeDetail == null)
- //{
- // throw new Exception("鏈煡璇㈠埌鎵樼洏缁戝畾鐨勫叆搴撳崟鏄庣粏淇℃伅");
- //}
- //var notice = Db.Queryable<BllArrivalNotice>().First(m => m.IsDel == "0" && m.ASNNo == noticeDetail.ASNNo);
- //if (notice == null)
- //{
- // throw new Exception("鏈煡璇㈠埌鎵樼洏缁戝畾鐨勫叆搴撳崟淇℃伅");
- //}
- //if (notice.Type == "1" && !string.IsNullOrEmpty(noticeDetail.OrderDetailCode))
- //{
- // //閲囪喘鍗曟槑缁�
- // var planDetail = Db.Queryable<BllProcurePlanNoticeDetail>().First(it => it.OrderDetailCode == noticeDetail.OrderDetailCode && it.IsDel == "0");
- // planDetail.CompleteQty += item.Qty;
- // if (planDetail.CompleteQty >= planDetail.Qty)
- // {
- // planDetail.Status = "2";
- // planDetail.CompleteTime = comTime;
- // }
- // Db.Updateable(planDetail).ExecuteCommand();
-
- // //閲囪喘鍗�
- // var planOrd = Db.Queryable<BllProcurePlanNotice>().First(it => it.Id == planDetail.ParentId && it.IsDel == "0");
- // var planDetailNum = Db.Queryable<BllProcurePlanNoticeDetail>()
- // .Count(m => m.IsDel == "0" && m.ParentId == planDetail.ParentId && m.Status != "2");
- // if (planDetailNum == 0)
- // {
- // planOrd.Status = "2";
- // planOrd.CompleteTime = comTime;
- // Db.Updateable(planOrd).ExecuteCommand();
- // }
- // else
- // {
- // if (planOrd.Status == "0")
- // {
- // planOrd.Status = "1";
- // Db.Updateable(planOrd).ExecuteCommand();
- // }
- // }
- //}
- #endregion
item.Status = "3";
item.CompleteTime = comTime;
}
@@ -3587,6 +3634,15 @@
}
Db.Updateable(bind).ExecuteCommand();
}
+ //鏇存敼鎵樼洏涓婃灦璁板綍淇℃伅
+ var upShelfList = Db.Queryable<BllPalletUpShelf>().Where(m => m.IsDel == "0" && m.TaskNo == taskNo && m.PalletNo == task.PalletNo).ToList();
+ foreach (var upShelf in upShelfList)
+ {
+ upShelf.IsDel = "1";
+ Db.Updateable(upShelf).ExecuteCommand();
+ }
+
+ //鍌ㄤ綅淇℃伅
var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat);
if (locate != null)
{
--
Gitblit v1.8.0