From b2e1c1b263d0cbf6018585b2113cc90abfcf3ed6 Mon Sep 17 00:00:00 2001
From: Administrator <Administrator@DESKTOP-5BIMHQ3>
Date: 星期三, 06 三月 2024 15:25:50 +0800
Subject: [PATCH] Merge branch 'master' into wxw
---
Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs | 27 +++
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 388 +++++++++++++++++++++++++++++++++++-------
HTML/views/ASNSetting/AppointSlot.html | 3
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 4
Wms/Model/ModelVm/BllAsnVm/PalletBindVm.cs | 1
Wms/Wms/Controllers/BllAsnController.cs | 2
Wms/WMS.IBLL/IBllAsnServer/IPalletBindServer.cs | 3
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 4
Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs | 83 ++++++++-
9 files changed, 427 insertions(+), 88 deletions(-)
diff --git a/HTML/views/ASNSetting/AppointSlot.html b/HTML/views/ASNSetting/AppointSlot.html
index 81b9389..d62c817 100644
--- a/HTML/views/ASNSetting/AppointSlot.html
+++ b/HTML/views/ASNSetting/AppointSlot.html
@@ -127,7 +127,8 @@
Row: $("#Row").val(),
Column: $("#Column").val(),
Layer: $("#Layer").val(),
- LocateNo: $("#LocateNo").val()
+ LocateNo: $("#LocateNo").val(),
+ BindId: id,
};
// 娴佹按璇︽儏
var tableIns = table.render({
diff --git a/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs b/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs
index 87cac3d..4070e47 100644
--- a/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs
+++ b/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs
@@ -393,4 +393,31 @@
/// </summary>
public string UpdateUserName { get; set; }
}
+
+ /// <summary>
+ /// 鍌ㄤ綅鐐逛俊鎭�
+ /// </summary>
+ public class AddressCls
+ {
+ /// <summary>
+ /// 鍌ㄤ綅
+ /// </summary>
+ public string LocatNo { get; set; }
+ /// <summary>
+ /// 琛�
+ /// </summary>
+ public int? Row { get; set; }
+ /// <summary>
+ /// 鍒�
+ /// </summary>
+ public int? Column { get; set; }
+ /// <summary>
+ /// 灞�
+ /// </summary>
+ public int? Layer { get; set; }
+ /// <summary>
+ /// 璺濈鐐逛綅
+ /// </summary>
+ public int? DistNum { get; set; }
+ }
}
diff --git a/Wms/Model/ModelVm/BllAsnVm/PalletBindVm.cs b/Wms/Model/ModelVm/BllAsnVm/PalletBindVm.cs
index 00b5e3d..b8d986d 100644
--- a/Wms/Model/ModelVm/BllAsnVm/PalletBindVm.cs
+++ b/Wms/Model/ModelVm/BllAsnVm/PalletBindVm.cs
@@ -175,6 +175,7 @@
public string Column { get; set; }
public string Layer { get; set; }
public string LocateNo { get; set; }
+ public string BindId { get; set; }
}
/// <summary>
diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index 9a39155..cc445d9 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -238,7 +238,7 @@
string sqlString = string.Empty;
string sqlDetailStr = string.Empty;
//0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欏叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴�
- var TypeLot = "1, 2, 5, 6, 7";
+ var TypeLot = "1, 2, 5, 6, 7"; //鎵规鍙负绌哄崟鎹被鍨�
try
{
@@ -780,7 +780,7 @@
}
}
-
+
}
var time = DateTime.Now;
var log = new BllAuditLog()
diff --git a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
index 3593c83..adb86a9 100644
--- a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
@@ -524,7 +524,7 @@
{
OrderNo = notice.ASNNo,
PalletNo = bind.PalletNo,
- Msg = info == null ? $"鐗╂枡锛歿noticeDetail.SkuNo}銆佹壒娆★細{noticeDetail.LotNo};": $"鐗╂枡锛歿info.SkuNo}銆佹壒娆★細{info.LotNo};",
+ Msg = info == null ? $"鐗╂枡锛歿noticeDetail.SkuNo}銆佹壒娆★細{noticeDetail.LotNo};" : $"鐗╂枡锛歿info.SkuNo}銆佹壒娆★細{info.LotNo};",
Reason = reason,
Status = "0",
Opinion = "",
@@ -551,10 +551,19 @@
#region 鎸囧畾鍌ㄤ綅
//鎸囧畾鍌ㄤ綅鏁版嵁婧愶紙姝e父鐨勭┖鍌ㄤ綅锛�
- public List<LocatDto> GetLocateList(string houseNo, string roadwayNo, string row, string column, string layer, string locateNo, int page, int limit, out int count)
+ public List<LocatDto> GetLocateList(string houseNo, string roadwayNo, string row, string column, string layer, string locateNo, string BindId, int page, int limit, out int count)
{
try
{
+ //鑾峰彇鎵樼洏缁戝畾
+ var bindASNDetailNo = Db.Queryable<BllPalletBind>().Where(a => a.IsDel == "0" && a.Status == "0" && a.Id == int.Parse(BindId)).Select(a => a.ASNDetailNo).First();
+ //鑾峰彇鍗曟嵁鏄庣粏
+ var noticeDetailSkuNo = Db.Queryable<BllArrivalNoticeDetail>().Where(a => a.Id == bindASNDetailNo && a.IsDel == "0").Select(a => a.SkuNo).First();
+ //鑾峰彇鐗╂枡
+ var skuCategoryNo = Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.SkuNo == noticeDetailSkuNo).Select(a => a.CategoryNo).First();
+ //鑾峰彇鐗╂枡瀵瑰簲鍖哄煙
+ var categoryAreaNo = Db.Queryable<SysMaterialCategory>().Where(a => a.IsDel == "0" && a.CategoryNo == skuCategoryNo).Select(a => a.AreaNo).First();
+
Expression<Func<SysStorageLocat, bool>> item = Expressionable.Create<SysStorageLocat>()
.AndIF(!string.IsNullOrWhiteSpace(roadwayNo), m => m.RoadwayNo == roadwayNo)
.AndIF(!string.IsNullOrWhiteSpace(row), m => m.Row == int.Parse(row))
@@ -562,6 +571,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.Contains(categoryAreaNo))
.ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
var total = 0;
var list = Db.Queryable<SysStorageLocat>().Where(item)
@@ -611,6 +621,59 @@
{
throw new Exception("璇ュ偍浣嶇姸鎬佷笉鏄┖鍌ㄤ綅鎴栨爣蹇椾笉鏄甯哥殑");
}
+
+
+
+ //鍒ゆ柇褰撳墠鎵樼洏鏄惁瀛樺湪缁戝畾淇℃伅
+ if (bind.LocatNo != null)
+ {
+ //鍒嗗壊宸茬粦鍌ㄤ綅涓庢柊鍌ㄤ綅
+ //宸茬粦鍌ㄤ綅
+ var bindRow = bind.LocatNo.Substring(0, 2);
+ var bindColumn = bind.LocatNo.Substring(2, 2);
+ var bindLayer = bind.LocatNo.Substring(4, 2);
+ var bindDepth = bind.LocatNo.Substring(6, 2);
+ //鏂板偍浣�
+ var Row = locate.LocatNo.Substring(0, 2);
+ var Column = locate.LocatNo.Substring(2, 2);
+ var Layer = locate.LocatNo.Substring(4, 2);
+ var Depth = locate.LocatNo.Substring(6, 2);
+
+ if (bindDepth == "02")
+ {
+ //鍒ゆ柇鎺掑垪灞傛槸鍚︾浉鍚�
+ if (bindRow == Row && bindColumn == Column && bindLayer == Layer)
+ {
+ throw new Exception("鍚屽偍浣嶆繁搴�2涓嶅彲鍚戞繁搴�1鍒囨崲锛�");
+ }
+ }
+ }
+ else
+ {
+ //鑻ユ槸娣卞害1鐨� 鍒欏垽鏂繁搴�2鏄惁涓虹┖鍌ㄤ綅
+ if (locate.Depth == "01")
+ {
+ var locateDepth = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.Row == locate.Row && a.Column == locate.Column && a.Layer == locate.Layer && a.Depth == "02");
+ if (locateDepth != null)
+ {
+ if (locateDepth.Status != "1")
+ {
+ throw new Exception("璇ュ偍浣嶆繁搴�2涓嶆槸鏈夌墿鍝侊紝涓嶅彲缁戝畾");
+ }
+ }
+ }
+ //鍒ゆ柇鏄惁涓烘繁搴�2鐨� 鑻ヤ负娣卞害2 鍒欒幏鍙栨繁搴�1鍌ㄤ綅 鍒ゆ柇鏄惁涓虹┖鍌ㄤ綅
+ if (locate.Depth == "02")
+ {
+ var locateDepth = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.Row == locate.Row && a.Column == locate.Column && a.Layer == locate.Layer && a.Depth == "01");
+ if (locateDepth.Status != "0" || locateDepth.Flag == "2")
+ {
+ throw new Exception("璇ュ偍浣嶆繁搴�1涓嶆槸绌哄偍浣嶆垨鏍囧織涓嶆槸姝e父鐨�");
+ }
+ }
+ }
+
+
var bindIdList = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.PalletNo == bind.PalletNo && m.Status != "2").Select(m => m.Id).ToList();
//鍒ゆ柇鏄惁鏈夐浂绠�
foreach (var item in bindIdList)
@@ -864,7 +927,7 @@
var roadList = Db.Queryable<SysStorageLocat>().Where(m => m.WareHouseNo == houseNo && areaList.Contains(m.AreaNo))
.GroupBy(m => m.RoadwayNo).OrderBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList();
- SysRoadwayUseLog useLog = Db.Queryable<SysRoadwayUseLog>().Where(m=>m.IsDel =="0" && roadList.Contains(m.RoadwayNo)).OrderByDescending(l => l.Id).First(); //宸烽亾鏈�鍚庝竴娆′娇鐢ㄨ褰�
+ SysRoadwayUseLog useLog = Db.Queryable<SysRoadwayUseLog>().Where(m => m.IsDel == "0" && roadList.Contains(m.RoadwayNo)).OrderByDescending(l => l.Id).First(); //宸烽亾鏈�鍚庝竴娆′娇鐢ㄨ褰�
#region 纭畾宸烽亾鎺掑簭
@@ -917,7 +980,7 @@
.Where(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == l).Count();
var bindNum = Db.Queryable<BllPalletBind>()
- .Where(m => m.IsDel == "0" && m.Status == "0" && m.RoadwayNo== l)
+ .Where(m => m.IsDel == "0" && m.Status == "0" && m.RoadwayNo == l)
.GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count();
if (locateCount - bindNum > 0)
{
@@ -944,14 +1007,14 @@
if (locateCount - bindNum > 0)
{
roadNo = useLog.RoadwayNo;
- }
+ }
}
}
}
else//鎸夌収宸烽亾浼樺厛绾у垎閰�
{
foreach (var item in roadList)
- {
+ {
var locateCount = Db.Queryable<SysStorageLocat>()
.Where(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == item).Count();
@@ -967,7 +1030,7 @@
if (roadNo != null)
{
break;
- }
+ }
}
}
@@ -1499,7 +1562,7 @@
#endregion
break;
- case "0":
+ case "0":
var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == item.ASNDetailNo);
if (noticeDetail == null)
{
@@ -1528,7 +1591,7 @@
{
LotNo = item.LotNo,
LotText = noticeDetail.LotText,
- SupplierLot = noticeDetail.SupplierLot,
+ SupplierLot = noticeDetail.SupplierLot,
SkuNo = noticeDetail.SkuNo,
SkuName = noticeDetail.SkuName,
Standard = noticeDetail.Standard,
@@ -1673,7 +1736,7 @@
var asnDetailNum = Db.Queryable<BllArrivalNoticeDetail>()
.Count(m => m.IsDel == "0" && m.ASNNo == noticeDetail.ASNNo && m.Status != "2");
if (asnDetailNum == 0)
- {
+ {
notice.Status = "2";
notice.CompleteTime = comTime;
Db.Updateable(notice).ExecuteCommand();
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
index c57bae9..1e4095d 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -1961,7 +1961,7 @@
}
}
#endregion
- var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == model.AsnDetailId && m.PalletNo == model.PalletNo);
+ var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == model.AsnDetailId && m.PalletNo == model.PalletNo && m.Status != "2");
var bindId = 0;
if (bind == null)
{
@@ -1978,7 +1978,7 @@
Type = "0",
LotNo = model.LotNo,
LotText = detail.LotText,
- SupplierLot = "",
+ SupplierLot = detail.SupplierLot,
InspectMark = "0",
BitPalletMark = "1",
IsBale = "0",
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index c15510f..59a7019 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -199,7 +199,7 @@
{
try
{
- var notice = Db.Queryable<BllExportNotice>().First(m => m.Id == id&& m.IsDel == "0");
+ var notice = Db.Queryable<BllExportNotice>().First(m => m.Id == id && m.IsDel == "0");
if (notice == null)
{
throw new Exception("鏈煡璇㈠埌鍗曟嵁淇℃伅");
@@ -290,8 +290,8 @@
.LeftJoin<SysLogisticsInfo>((a, b) => a.LogisticsId == b.Id)
.LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
.LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id)
- .LeftJoin<SysUserInfor>((a, b, c, d,e) => a.CheckUser == e.Id)
- .Select((a, b, c, d,e) => new ExportNoticeDto()
+ .LeftJoin<SysUserInfor>((a, b, c, d, e) => a.CheckUser == e.Id)
+ .Select((a, b, c, d, e) => new ExportNoticeDto()
{
Id = a.Id,
SONo = a.SONo,
@@ -308,15 +308,15 @@
IsWave = a.IsWave,
WaveNo = a.WaveNo,
IsDespatch = a.IsDespatch,
- Demo=a.Demo,
+ Demo = a.Demo,
CreateUserName = c.RealName,
UpdateUserName = c.RealName,
CreateTime = a.CreateTime,
UpdateTime = a.UpdateTime,
- CheckUserName=e.RealName,
- CheckTime=a.CheckTime
+ CheckUserName = e.RealName,
+ CheckTime = a.CheckTime
})
.OrderByDescending(a => a.CreateTime)
.ToOffsetPage(page, limit, ref total);
@@ -408,7 +408,7 @@
SkuName = it.SkuName,
LotNo = it.LotNo,
Standard = it.Standard,
- Qty = type == "4" ? it.Qty : it.Qty - it.LockQty - it.FrozenQty
+ Qty = type == "4" ? it.Qty : it.Qty - it.LockQty - it.FrozenQty
}).ToList();
@@ -459,7 +459,7 @@
var skuNos = model.Detail.Select(a => a.SkuNo).Distinct().ToList();
//鏍规嵁鐗╂枡鍙疯幏鍙栫墿鏂欎俊鎭�佸簱瀛樻槑缁嗕腑鑾峰彇鎵规鎻忚堪渚涜揣鎵规绛�
var skuList = Db.Queryable<SysMaterials>().Where(a => skuNos.Contains(a.SkuNo) && a.IsDel == "0").ToList();
- var stockList = Db.Queryable<DataStock>().Where(s => skuNos.Contains(s.SkuNo) && (s.Qty-s.FrozenQty-s.LockQty) > 0).ToList();
+ var stockList = Db.Queryable<DataStock>().Where(s => skuNos.Contains(s.SkuNo) && (s.Qty - s.FrozenQty - s.LockQty) > 0).ToList();
//var palletList = contextDb.Queryable<DataStockDetail>().Where(s => skuNos.Contains(s.SkuNo) && (s.Qty - s.FrozenQty - s.LockQty) > 0).ToList();
//瀹㈡埛淇℃伅
var customer = Db.Queryable<SysCustomer>().Where(m => m.IsDel == "0" && m.CustomerNo == model.CustomerNo).ToList();
@@ -531,12 +531,12 @@
CompleteQty = 0,
PackagNo = sku.PackagNo,
Price = sku.Price,
- Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price*d.Qty,
+ Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * d.Qty,
IsBale = d.IsBale,
IsBelt = d.IsBelt,
SupplierLot = stocks.First().SupplierLot,
IsWave = "0",
- WaveNo= "",
+ WaveNo = "",
CreateUser = userId,
};
@@ -558,7 +558,7 @@
LogisticsId = model.LogisticsId,
IsWave = "0",
WaveNo = "",
- IsDespatch="0",
+ IsDespatch = "0",
CreateUser = userId,
};
@@ -630,7 +630,7 @@
var stockCount = 0.00m; //st.StockQuantity.Value
if (s != null)
{
- stockCount = s.Qty-s.FrozenQty-s.LockQty+d.Qty;
+ stockCount = s.Qty - s.FrozenQty - s.LockQty + d.Qty;
}
var dm = new SelectStockSkuDto()
@@ -805,7 +805,7 @@
}
else if (old.Qty != d.Qty || old.IsBale != d.IsBale || old.IsBelt != d.IsBelt)
{
- if (d.Qty > (stock.Qty-stock.FrozenQty-stock.LockQty) + old.Qty)
+ if (d.Qty > (stock.Qty - stock.FrozenQty - stock.LockQty) + old.Qty)
{
throw new Exception("鐗╁搧搴撳瓨鏁伴噺涓嶈冻");
}
@@ -1121,8 +1121,8 @@
.AndIF(!string.IsNullOrWhiteSpace(skuName), m => m.SkuName.Contains(skuName.Trim()))
.AndIF(!string.IsNullOrWhiteSpace(palletNo), m => m.PalletNo.Contains(palletNo.Trim()))
.AndIF(!string.IsNullOrWhiteSpace(lotNo), m => m.LotNo.Contains(lotNo.Trim()))
- .AndIF(!string.IsNullOrWhiteSpace(inspectMark), m => m.InspectMark==inspectMark)
- .AndIF(!string.IsNullOrWhiteSpace(bitPalletMark), m => m.BitPalletMark== bitPalletMark)
+ .AndIF(!string.IsNullOrWhiteSpace(inspectMark), m => m.InspectMark == inspectMark)
+ .AndIF(!string.IsNullOrWhiteSpace(bitPalletMark), m => m.BitPalletMark == bitPalletMark)
.And(m => !string.IsNullOrWhiteSpace(m.WareHouseNo))
.And(a => a.Status == "0")
.And(a => a.WareHouseNo == "W01")
@@ -1154,7 +1154,7 @@
var outDtoList = new List<OutCommandDto>(); //鍑哄簱鏁版嵁鐨勯泦鍚�
str = "";
var stockDetailList = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo && m.IsDel == "0").ToList();
-
+
if (stockDetailList.Count == 0)
{
throw new Exception($"鏈湪搴撳唴鏌ヨ鍒拌鎵樼洏淇℃伅");
@@ -1169,7 +1169,7 @@
}
//鍒ゆ柇鎵樼洏搴撳瓨淇℃伅鍒嗙粍鍚庢槸鍚﹀ぇ浜�1鏉�
var detailGroup = stockDetailList.GroupBy(m => new { m.SkuNo, m.PalletNo, m.WareHouseNo, m.LocatNo }).ToList();
- if (detailGroup.Count>1)
+ if (detailGroup.Count > 1)
{
throw new Exception($"鏈湪搴撳唴鏌ヨ鍒拌鎵樼洏淇℃伅");
}
@@ -1252,7 +1252,7 @@
throw new Exception($"褰撳墠鎵樼洏鎵�鍦ㄧ殑鍌ㄤ綅宸叉崯鍧忥紝涓嶈兘鍑哄簱锛岃鏍稿疄");
}
- if (locate.Status !="1")
+ if (locate.Status != "1")
{
throw new Exception($"褰撳墠鎵樼洏鎵�鍦ㄧ殑鍌ㄤ綅鐘舵�佷笉鏄湁鐗╁搧锛屼笉鑳藉嚭搴擄紝璇锋牳瀹�");
}
@@ -1308,10 +1308,10 @@
Db.Updateable(de).ExecuteCommand();
Db.Updateable(stocka).ExecuteCommand();
}
-
+
locate.Status = "3"; //瑕佸嚭搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍑哄簱
Db.Updateable(locate).ExecuteCommand();
-
+
#endregion
@@ -1385,7 +1385,9 @@
{
#region 闆嗗悎
- var outDtoList = new List<OutCommandDto>(); //鍑哄簱鏁版嵁鐨勯泦鍚�
+ var outDto1 = new List<OutCommandDto>(); //鍏堝嚭搴撴暟鎹殑闆嗗悎锛堟繁搴︿负1鐨勫偍浣嶏級
+ var outDto2 = new List<OutCommandDto>(); //鍚庡嚭搴撴暟鎹殑闆嗗悎锛堟繁搴︿负2鐨勫偍浣嶏級
+ var moveDto = new List<OutCommandDto>(); //瑕佺Щ搴撴暟鎹殑闆嗗悎
//璁板綍閿欒淇℃伅鐨勯泦鍚�
var flagList = new List<int>();//1:褰撳墠瑕佸嚭搴撶殑鍌ㄤ綅姝e湪绉诲嚭銆�2 鍑哄簱鐨勬墭鐩樺偍浣嶄俊鎭敊璇�(鍦ㄥ偍浣嶈〃涓湭鏌ヨ鍒�)銆�3鍌ㄤ綅鎹熷潖涓嶈兘鍑哄簱銆�4 瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱
@@ -1420,6 +1422,7 @@
//寰幆鍒嗛厤鐨勪俊鎭敓鎴愬嚭搴撲换鍔�
foreach (var item in list)
{
+ var taskNoStr = "";
string toLocation = string.Empty;//鐩爣浣嶇疆
string unstackingMode2 = unstackingMode;//鎷嗗灈鏂瑰紡锛�0:鏈哄櫒浜烘媶鍨� 1:PDA鎷嗗灈
#region 鍒ゆ柇鏄惁闇�瑕佹媶绠�
@@ -1450,7 +1453,7 @@
isChai = "1";
unstackingMode2 = "1";//闇�瑕佹媶绠遍渶璧癙DA鎷嗗灈
}
- }
+ }
#endregion
if (unstackingMode2 == "0")//鏈哄櫒浜烘媶鍨�
{
@@ -1550,40 +1553,211 @@
if (locate.Status == "1") //鏈夌墿鍝�
{
#region 娣诲姞鍑哄簱浠诲姟
-
- var taskNo = new Common().GetMaxNo("TK");
- var exTask = new LogTask //鍑哄簱浠诲姟
+ if (locate.Depth == "01") //娣卞害涓�1
{
- TaskNo = taskNo,
- Sender = "WMS",
- Receiver = "WCS",
- IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+ var taskNo = new Common().GetMaxNo("TK");
+ var exTask = new LogTask //鍑哄簱浠诲姟
+ {
+ TaskNo = taskNo,
+ Sender = "WMS",
+ Receiver = "WCS",
+ IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
- StartLocat = locate.LocatNo,//璧峰浣嶇疆
- EndLocat = toLocation,//outMode,//鐩爣浣嶇疆
- PalletNo = item.PalletNo,//鎵樼洏鐮�
- IsSend = 1,//鏄惁鍙啀娆′笅鍙�
- IsCancel = 1,//鏄惁鍙彇娑�
- IsFinish = 1,//鏄惁鍙畬鎴�
- Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
- Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
- OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
- Msg = "浠�" + locate.LocatNo + "鍒�" + toLocation + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
- };
- Db.Insertable(exTask).ExecuteCommand();
- logTaskList.Add(exTask);
+ StartLocat = locate.LocatNo,//璧峰浣嶇疆
+ EndLocat = toLocation,//outMode,//鐩爣浣嶇疆
+ PalletNo = item.PalletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+ Msg = "浠�" + locate.LocatNo + "鍒�" + toLocation + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
+ };
+ Db.Insertable(exTask).ExecuteCommand();
+ logTaskList.Add(exTask);
- outDtoList.Add(new OutCommandDto()
+ outDto1.Add(new OutCommandDto()
+ {
+ PalletNo = item.PalletNo,//鎵樼洏鍙�
+ StartLocate = locate.LocatNo, // 璧峰浣嶇疆
+ StartRoadway = locate.RoadwayNo,//鍏跺疄宸烽亾
+ EndLocate = toLocation,//outMode, // 鐩爣浣嶇疆
+ TaskNo = exTask.TaskNo, // 浠诲姟鍙�
+ TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
+ OutMode = "", //鐩爣鍦板潃
+ Order = 1
+ });
+ }
+ else if (locate.Depth == "02") //娣卞害涓�2
{
- PalletNo = item.PalletNo,//鎵樼洏鍙�
- StartLocate = locate.LocatNo, // 璧峰浣嶇疆
- StartRoadway = locate.RoadwayNo,//鍏跺疄宸烽亾
- EndLocate = toLocation,//outMode, // 鐩爣浣嶇疆
- TaskNo = exTask.TaskNo, // 浠诲姟鍙�
- TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
- OutMode = "", //鐩爣鍦板潃
- Order = 1
- });
+ //鑾峰彇鍑哄簱娣卞害涓�2鍌ㄤ綅鍓嶉潰鐨勫偍浣嶄俊鎭�
+ var slotBefore = com.GetLocateNoDepth1(locate.WareHouseNo, locate.LocatNo);
+ if (slotBefore.Status == "1") //鍓嶉潰鐨勫偍浣嶆湁璐х墿銆佽繘琛岀Щ搴撴搷浣�
+ {
+ //瑕佸嚭搴撴繁搴︿负2鐨勫偍浣嶅墠闈㈢殑鍌ㄤ綅涓揣鐗╂槸鍚﹁鍑哄簱
+ var isout = outStockDetail.Count(m => m.LocatNo == slotBefore.LocatNo);
+
+ if (isout <= 0) //杩涜绉诲簱
+ {
+ //鍘诲簱瀛樿〃涓壘鍒板偍浣嶅搴旂殑鎵樼洏鐮佹搷浣�
+ var stockNew = Db.Queryable<DataStockDetail>().First(m => m.LocatNo == slotBefore.LocatNo);
+ if (stockNew == null)
+ {
+ var slotChange = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == slotBefore.LocatNo);
+ slotChange.Status = "0";
+ Db.Updateable(slotChange).ExecuteCommand();
+ }
+ else
+ {
+ //鑾峰彇绉诲簱鐨勫簱浣�
+ var newSlot = MoveAddress(slotBefore.LocatNo, slotBefore.RoadwayNo, item.SkuNo);
+ //褰撳墠绉诲簱搴撲綅鐨勫偍浣嶄俊鎭�
+ var locatey = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == newSlot && m.IsDel == "0");
+ if (!string.IsNullOrEmpty(newSlot))
+ {
+ #region 娣诲姞鍑哄簱鏃跺彂鐢熺殑绉诲簱浠诲姟
+
+ var exYkTaskNo = new Common().GetMaxNo("TK");
+ var exYkTask = new LogTask //鍑哄簱鏃朵骇鐢熺Щ搴撲换鍔�
+ {
+ TaskNo = exYkTaskNo,
+ Sender = "WMS",
+ Receiver = "WCS",
+ IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+ StartLocat = stockNew.LocatNo,//璧峰浣嶇疆
+ EndLocat = newSlot,//鐩爣浣嶇疆
+ PalletNo = stockNew.PalletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+
+ Msg = stockNew.LocatNo + " ==>> " + newSlot + "鐨勭Щ搴撲换鍔�",
+ };
+ Db.Insertable(exYkTask).ExecuteCommand();
+
+ moveDto.Add(new OutCommandDto()
+ {
+ StartRoadway = slotBefore.RoadwayNo, //璧峰宸烽亾
+ PalletNo = stockNew.PalletNo,//鎵樼洏鍙�
+ StartLocate = stockNew.LocatNo, // 璧峰浣嶇疆
+ EndLocate = newSlot, // 鐩爣浣嶇疆
+ EndRoadway = locatey.RoadwayNo, // 鐩爣宸烽亾
+ TaskNo = exYkTask.TaskNo, // 浠诲姟鍙�
+ TaskType = "2",// 浠诲姟绫诲瀷 (绉诲簱)
+ OutMode = "", //鐩爣鍦板潃
+ Order = 1,
+ });
+ #endregion
+
+ #region 鏀瑰彉鍌ㄤ綅瑁呭~
+ var slotChange = Db.Queryable<SysStorageLocat>().First(m => m.Id == slotBefore.Id);
+ var slotChange2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == newSlot);
+ slotChange.Status = "5"; //鏀瑰彉鐘舵�侊紙姝e湪绉诲嚭锛�
+ slotChange2.Status = "4"; // 鏀瑰彉鐘舵�侊紙姝e湪绉诲叆锛�
+ Db.Updateable(slotChange).ExecuteCommand();
+ Db.Updateable(slotChange2).ExecuteCommand();
+ #endregion
+ }
+ else
+ {
+ #region 娣诲姞鍑哄簱浠诲姟
+
+ var exYkTaskNo1 = new Common().GetMaxNo("TK");
+ var exYkTask1 = new LogTask //鍑哄簱绉诲簱娌℃湁搴撲綅浜嗚繘琛屽嚭搴撲换鍔�
+ {
+ TaskNo = exYkTaskNo1,
+ Sender = "WMS",
+ Receiver = "WCS",
+ IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+ StartLocat = stockNew.LocatNo,//璧峰浣嶇疆
+ EndLocat = "",//鐩爣浣嶇疆
+ PalletNo = stockNew.PalletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+ Msg = locate.LocatNo + "鐨勫嚭搴撲换鍔�"
+ };
+ Db.Insertable(exYkTask1).ExecuteCommand();
+
+ outDto1.Add(new OutCommandDto()
+ {
+ StartRoadway = slotBefore.RoadwayNo, //璧峰宸烽亾
+ PalletNo = stockNew.PalletNo,//鎵樼洏鍙�
+ StartLocate = stockNew.LocatNo, // 璧峰浣嶇疆
+ EndLocate = "", // 鐩爣浣嶇疆
+ EndRoadway = "", // 鐩爣宸烽亾
+ TaskNo = exYkTask1.TaskNo, // 浠诲姟鍙�
+ TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
+ OutMode = "", //鐩爣鍦板潃
+ Order = 1,
+ });
+ #endregion
+
+ #region MyRegion
+
+ var slotChange = Db.Queryable<SysStorageLocat>().First(m => m.Id == slotBefore.Id);
+ slotChange.Status = "3"; //鏀瑰彉鐘舵�侊紙姝e湪鍑哄簱锛�
+ Db.Updateable(slotChange).ExecuteCommand();
+
+ #endregion
+ }
+ }
+ }
+ }
+ else if (slotBefore.Status == "2" || slotBefore.Status == "4") //鍓嶉潰鍌ㄤ綅鐘舵�佹槸鍏ュ簱涓垨鑰呯Щ鍏ヤ腑
+ {
+ flagList.Add(5);
+ continue;
+ }
+
+ #region 娣诲姞鍑哄簱浠诲姟
+
+ var taskNo1 = new Common().GetMaxNo("TK");
+ var exTask1 = new LogTask //鍑哄簱浠诲姟
+ {
+ TaskNo = taskNo1,
+ Sender = "WMS",
+ Receiver = "WCS",
+ IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+ StartLocat = locate.LocatNo,//璧峰浣嶇疆
+ EndLocat = "",//鐩爣浣嶇疆
+ PalletNo = item.PalletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+ Msg = locate.LocatNo + "鐨勫嚭搴撲换鍔�"
+ };
+ Db.Insertable(exTask1).ExecuteCommand();
+
+ outDto2.Add(new OutCommandDto()
+ {
+ StartRoadway = locate.RoadwayNo, //璧峰宸烽亾
+ PalletNo = item.PalletNo,//鎵樼洏鍙�
+ StartLocate = locate.LocatNo, // 璧峰浣嶇疆
+ EndLocate = "", // 鐩爣浣嶇疆
+ EndRoadway = locate.RoadwayNo, //鐩爣宸烽亾
+ TaskNo = exTask1.TaskNo, // 浠诲姟鍙�
+ TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)
+ OutMode = "", //鐩爣鍦板潃
+ Order = 1,
+ });
+ taskNoStr = exTask1.TaskNo;
+ #endregion
+
+ }
#endregion
#region 鏀瑰彉鏁版嵁
@@ -1610,7 +1784,7 @@
locate.Status = "3"; //瑕佸嚭搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍑哄簱
Db.Updateable(locate).ExecuteCommand();
- item.TaskNo = exTask.TaskNo; // 鍑哄簱鍒嗛厤淇℃伅涓洿鏂颁换鍔″彿
+ item.TaskNo = taskNoStr; // 鍑哄簱鍒嗛厤淇℃伅涓洿鏂颁换鍔″彿
item.Status = "1"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛�
item.UnstackingMode = unstackingMode2;//鎷嗗灈鏂瑰紡
item.OutMode = unstackingMode2 == "1" ? outMode : "";//鍑哄簱鍙�
@@ -1645,7 +1819,7 @@
}
}
}
- var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType =="1"&& m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo==item.PalletNo);
+ var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType == "1" && m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo == item.PalletNo);
if (taskNo == null)
{
taskNo = logTaskList.First(m => m.PalletNo == item.PalletNo);//褰撳墠鏈夊悓鎵樼洏涓嶅悓鐗╂枡鍑哄簱
@@ -1693,11 +1867,11 @@
{
str += "3.瑕佸嚭搴撶殑鎵樼洏姝e湪鍏ュ簱銆�";
}
- if (outDtoList.Count > 0)
+ if (outDto1.Count > 0)
{
// 姝e紡杩愯绋嬪簭鏀惧紑
- var list2 = outDtoList.Select(m => m.TaskNo).ToList();
- var jsonData = JsonConvert.SerializeObject(outDtoList);
+ var list2 = outDto1.Select(m => m.TaskNo).ToList();
+ var jsonData = JsonConvert.SerializeObject(outDto1);
string response = "";
try
@@ -1727,7 +1901,7 @@
}
- return outDtoList;
+ return outDto1;
}
catch (Exception e)
{
@@ -1780,7 +1954,7 @@
}
foreach (var item in stockDetail)
{
- if (item.SkuNo== "100099")//鍒ゆ柇鏄惁鏄┖鎵樺嚭搴�
+ if (item.SkuNo == "100099")//鍒ゆ柇鏄惁鏄┖鎵樺嚭搴�
{
//鍒ゆ柇鎬诲簱瀛樻槸鍚︿负0锛屽鏋滀负0鍒犻櫎 鍚﹀垯鍑忓幓鏁伴噺
var stock = Db.Queryable<DataStock>().First(m => m.SkuNo == "100099");
@@ -2037,7 +2211,7 @@
if (noticeDetail.FactQty == 0)
{
var noticeDetail2 = Db.Queryable<BllExportNoticeDetail>().Where(m => m.IsDel == "0" && m.SONo == item.SONo && m.Id != noticeDetail.Id).ToList();
- var num = noticeDetail2.Count(m => m.FactQty>0);
+ var num = noticeDetail2.Count(m => m.FactQty > 0);
//鍒ゆ柇鍑哄簱鍗曠殑鎵�鏈夋槑缁嗘槸鍚﹂兘涓�0锛涘鏋滀负0鍙樻洿鍑哄簱鍗曠姸鎬佷负宸插垎閰�
if (num == 0)
{
@@ -2063,7 +2237,7 @@
//淇敼搴撳瓨鏄庣粏
stockDetail.LockQty -= stockDetail.Qty; //閿佸畾鏁伴噺
stockDetail.Status = "0"; //搴撳瓨鐘舵�� 0锛氬緟鍒嗛厤
-
+
//淇敼搴撳瓨鎬昏〃
datastock.LockQty -= (int)stockDetail.Qty; //閿佸畾鏁伴噺
@@ -2081,13 +2255,13 @@
Db.Updateable(locate).ExecuteCommand();
}
-
+
}
else
{
Db.Updateable(allot).ExecuteCommand();
}
-
+
//娣诲姞鎿嶄綔鏃ュ織璁板綍
var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鏃ュ織", taskNo, "鍙栨秷", $"鐐瑰嚮鍙栨秷鎸夐挳銆佸彇娑堜簡浠诲姟鍙蜂负锛歿taskNo}鐨勪换鍔�", (int)userId);
Db.CommitTran();
@@ -2114,7 +2288,7 @@
try
{
// 鍒ゆ柇褰撳墠浠诲姟鐘舵�� Status 1:姝e湪鎵ц 3:寮傚父缁撴潫
- var taskModel = Db.Queryable<LogTask>().First(m => m.TaskNo == model.TaskNo && m.IsDel == "0" && m.Status == "1");
+ var taskModel = Db.Queryable<LogTask>().First(m => m.TaskNo == model.TaskNo && m.IsDel == "0" && m.Status == "1");
if (taskModel == null)
{
throw new Exception("姝や换鍔′笉瀛樺湪鎴栦换鍔$姸鎬佸凡鍙樻洿!");
@@ -2592,7 +2766,7 @@
{
throw new Exception("鑾峰彇澶辫触锛屾湭鎵惧埌鎸囧畾鍑哄簱鍗�!");
}
- if (notice.Status == "3" && detail.AllotQty >= detail.Qty || notice.Status == "4" || notice.Status == "5")
+ if (notice.Status == "3" && detail.AllotQty >= detail.Qty || notice.Status == "4" || notice.Status == "5")
{
throw new Exception("鑾峰彇澶辫触锛屽嚭搴撳崟鐘舵�佷笉鍏佽!");
}
@@ -2607,7 +2781,7 @@
m => m.SkuNo.Contains(msg.Trim())
|| m.SkuName.Contains(msg.Trim())
|| m.LocatNo.Contains(msg.Trim()))
- .And(m => m.IsDel == "0" && m.SkuNo == detail.SkuNo && m.LotNo == detail.LotNo &&(m.Status == "0" || m.Status == "1"))
+ .And(m => m.IsDel == "0" && m.SkuNo == detail.SkuNo && m.LotNo == detail.LotNo && (m.Status == "0" || m.Status == "1"))
.ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
var list = Db.Queryable<DataStockDetail>().Where(item).Select(a => new StockDetailDto
@@ -2650,7 +2824,7 @@
{
throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撳崟宸插垎閰嶅畬鎴愶紒");
}
- var notice = Db.Queryable<BllExportNotice>().First(a => a.IsDel =="0" && a.SONo == detail.SONo);
+ var notice = Db.Queryable<BllExportNotice>().First(a => a.IsDel == "0" && a.SONo == detail.SONo);
if (notice == null)
{
throw new Exception("鎿嶄綔澶辫触锛屾湭鎵惧埌鎸囧畾鍑哄簱鍗曪紒");
@@ -2686,7 +2860,7 @@
{
throw new Exception("鎿嶄綔澶辫触锛岄儴鍒嗗偍浣嶅簱瀛樺紓甯革紒");
}
- if (st.Qty > (stock.Qty-stock.LockQty-stock.FrozenQty -stock.InspectQty))
+ if (st.Qty > (stock.Qty - stock.LockQty - stock.FrozenQty - stock.InspectQty))
{
throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撴暟閲忚秴鍑哄簱瀛樻暟閲忥紒");
}
@@ -2757,7 +2931,7 @@
{
notice.Status = "2";//璇佹槑鍒嗛厤鏁伴噺澶т簬绛変簬鍑哄簱鏁伴噺 淇敼涓哄凡鍒嗛厤
}
- else if (totalAllotQty< totalQty && totalAllotQty>0)
+ else if (totalAllotQty < totalQty && totalAllotQty > 0)
{
notice.Status = "1";//璇佹槑鍒嗛厤鏁伴噺灏忎簬绛変簬鍑哄簱鏁伴噺 淇敼涓洪儴鍒嗗垎閰�
}
@@ -2800,7 +2974,7 @@
//鐗╂枡缂栫爜琛�
var skuList = Db.Queryable<SysMaterials>().Where(w => w.IsDel == "0");
//鍖呰琛�
- var packagList= Db.Queryable<SysPackag>().Where(w => w.IsDel == "0");
+ var packagList = Db.Queryable<SysPackag>().Where(w => w.IsDel == "0");
//鍑哄簱鍒嗛厤淇℃伅
var allotList = Db.Queryable<BllExportAllot>().Where(w => w.IsDel == "0" && w.SONo == soNo).ToList();
foreach (var item in allotList)
@@ -2829,7 +3003,7 @@
result = "1";//闇�瑕佹媶绠�
break;
}
- }
+ }
return result;
}
catch (Exception ex)
@@ -2837,5 +3011,77 @@
throw new Exception(ex.Message);
}
}
+
+ /// <summary>
+ /// 鑾峰彇绉诲簱鐩爣搴撲綅
+ /// </summary>
+ /// <param name="oldAddress">闇�瑕佺Щ鍔ㄧ殑搴撲綅鍦板潃</param>
+ /// <param name="roadWay">宸烽亾</param>
+ /// <param name="skuNo">鐗╂枡缂栫爜</param>
+ /// <returns>鐩爣搴撲綅鍦板潃 涓�"" 鐩存帴涓嬪彂涓ゆ鍑哄簱鎸囦护</returns>
+ public string MoveAddress(string oldAddress, string roadWay, string skuNo)//01020201 鎺�-鍒�-灞�-娣卞害
+ {
+ string nowAddress = "";
+
+ //鏍规嵁鐗╂枡缂栫爜鑾峰彇瀵瑰簲鍖哄煙
+ var skuCategoryNo = Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.SkuNo == skuNo).Select(a => a.CategoryNo).First();
+ var category = Db.Queryable<SysMaterialCategory>().First(a => a.IsDel == "0" && a.CategoryNo == skuCategoryNo);
+
+ // 鑾峰彇绉诲簱鐩爣鍌ㄤ綅
+ var row = int.Parse(oldAddress.Substring(0, 2));
+ var lie = int.Parse(oldAddress.Substring(2, 2));
+ var ceng = int.Parse(oldAddress.Substring(4, 2));
+
+ var sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng})) as distNum
+ from SysStorageLocat
+ where Flag = '0' and Status = '0' and Depth = '02' and RoadwayNo = '{roadWay}' and AreaNo in '{category}'
+ order by distNum;";
+
+ var addressModels = Db.Ado.SqlQuery<AddressCls>(sqlString).ToList();
+ if (addressModels.Count > 0) // 鍒ゆ柇鍚屽贩閬撳唴鎺掔┖搴撲綅
+ {
+ var listLocaete = new List<string>();
+ foreach (var item in addressModels)
+ {
+ // 鐩爣鍐呭簱浣嶅搴旂殑澶栧簱浣�
+ string addressee = item.LocatNo.Substring(0, 6) + "01";
+
+ // 鍒ゆ柇鐩爣搴撲綅鐨勫搴撲綅鏄惁瀛樺湪璐х墿 (姝e父鎯呭喌涓嬫鍦ㄧЩ鍏ユ儏鍐典笉瀛樺湪锛屽洜涓虹Щ搴撳厛绉诲叆閲岄潰锛屽悗绉诲叆澶栭潰)
+ //SlotStatus 0: 绌哄偍浣� 1锛氭湁璐� 2锛氭鍦ㄥ叆搴� 3锛氭鍦ㄥ嚭搴� 4锛氭鍦ㄧЩ鍏� 5锛氭鍦ㄧЩ鍑�
+ sqlString = $"select count(*) from SysStorageLocat where LocatNo = '{addressee}' and Status = '0' and Flag in ('0','1') ; ";
+ var rowNum = Db.Ado.SqlQuery<int>(sqlString).First();
+ if (rowNum == 0)
+ {
+ continue;
+ }
+ else
+ {
+ nowAddress = item.LocatNo;
+ break;
+ }
+ }
+ }
+ if (nowAddress == "")
+ {
+ // 鍒ゆ柇鍚屽贩閬撳鎺掔┖搴撲綅
+ sqlString = $@"select LocatNo,[Row],[Column],Layer, (ABS(Row-{row}) + ABS([Column]-{lie}) + ABS(Layer-{ceng})) as distNum
+ from SysStorageLocat
+ where Flag = '0' and Status = '0' and Depth = '01' and RoadwayNo = '{roadWay}' and AreaNo in '{category}'
+ order by distNum;";
+ var adderModeling = Db.Ado.SqlQuery<AddressCls>(sqlString).ToList();
+ if (adderModeling.Count > 0)
+ {
+ nowAddress = adderModeling[0].LocatNo;
+ }
+ else
+ {
+ // 搴撳唴涓嶅瓨鍦ㄧ┖鍌ㄤ綅
+ nowAddress = "";
+ }
+ }
+
+
+ return nowAddress;
+ }
}
}
diff --git a/Wms/WMS.IBLL/IBllAsnServer/IPalletBindServer.cs b/Wms/WMS.IBLL/IBllAsnServer/IPalletBindServer.cs
index b6660a2..45ef144 100644
--- a/Wms/WMS.IBLL/IBllAsnServer/IPalletBindServer.cs
+++ b/Wms/WMS.IBLL/IBllAsnServer/IPalletBindServer.cs
@@ -52,11 +52,12 @@
/// <param name="column">鍒�</param>
/// <param name="layer">灞�</param>
/// <param name="locateNo">鍌ㄤ綅鍙�</param>
+ /// <param name="BindId">鎵樼洏缁戝畾id</param>
/// <param name="page"></param>
/// <param name="limit"></param>
/// <param name="count"></param>
/// <returns></returns>
- List<LocatDto> GetLocateList(string houseNo, string roadwayNo,string row, string column,string layer,string locateNo,int page,int limit,out int count);
+ List<LocatDto> GetLocateList(string houseNo, string roadwayNo,string row, string column,string layer,string locateNo, string BindId,int page,int limit,out int count);
/// <summary>
/// 淇濆瓨鎸囧畾鐨勫偍浣�
diff --git a/Wms/Wms/Controllers/BllAsnController.cs b/Wms/Wms/Controllers/BllAsnController.cs
index 868e979..86365ac 100644
--- a/Wms/Wms/Controllers/BllAsnController.cs
+++ b/Wms/Wms/Controllers/BllAsnController.cs
@@ -503,7 +503,7 @@
{
try
{
- var models = _PalletBindSvc.GetLocateList("W01",model.RoadwayNo,model.Row,model.Column,model.Layer,model.LocateNo,model.Page,model.Limit, out int count);
+ var models = _PalletBindSvc.GetLocateList("W01",model.RoadwayNo,model.Row,model.Column,model.Layer,model.LocateNo,model.BindId,model.Page,model.Limit, out int count);
return Ok(new { code = 0, count, msg = "鑾峰彇鎸囧畾鍌ㄤ綅淇℃伅", data = models });
}
--
Gitblit v1.8.0