From f493448ee02fd2f92cf4ed17a48957c4c84532e9 Mon Sep 17 00:00:00 2001 From: yuyou_x <2336760928@qq.com> Date: 星期三, 06 三月 2024 14:21:26 +0800 Subject: [PATCH] 增加指定储位传参,增加对应dto模型和视图模型,修改指定储位获取数据源代码,修改pda托盘绑定判断,修改指定储位后台逻辑代码 --- 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 | 81 ++++++++- 9 files changed, 426 insertions(+), 87 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..3b2e68a 100644 --- a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs @@ -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