From f512b0475560ed449f936e0b7a27ba197e6bafe5 Mon Sep 17 00:00:00 2001 From: IPC-610 <IPC-610@DESKTOP-6LEOOS3> Date: 星期四, 26 九月 2024 15:16:08 +0800 Subject: [PATCH] Merge branch 'master' of https://gitee.com/liudongl/jc24-wms --- Wms/Wms/appsettings.json | 1 Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs | 2 Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 48 ++ Wms/Wms/Tools/ApiUrlConfig.cs | 6 Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 787 ++++++++++++++++++++++++++++++++++++++++++------ Wms/Wms/Controllers/BllAsnController.cs | 8 Wms/Model/InterFaceModel/HttpModel.cs | 44 ++ Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs | 40 +- 8 files changed, 805 insertions(+), 131 deletions(-) diff --git a/Wms/Model/InterFaceModel/HttpModel.cs b/Wms/Model/InterFaceModel/HttpModel.cs index 57c5de1..bb9669c 100644 --- a/Wms/Model/InterFaceModel/HttpModel.cs +++ b/Wms/Model/InterFaceModel/HttpModel.cs @@ -315,6 +315,50 @@ public int? QtyCount { get; set; } } + + //鍏ュ簱浠诲姟鍗曟嵁淇℃伅 + public class ResponseOrderTaskModel + { + /// <summary> + /// WMS涓嬪彂鍗曞彿 + /// </summary> + public string? OrderNo { get; set; } + + /// <summary> + /// 浠诲姟鍙� + /// </summary> + public string? TaskNo { get; set; } + + /// <summary> + /// 鎵规鍙� + /// </summary> + public string? LotNo { get; set; } + + /// <summary> + /// 鐗╂枡缂栫爜 + /// </summary> + public string? SkuNo { get; set; } + + /// <summary> + /// 鐗╂枡鍚嶇О + /// </summary> + public string? SkuName { get; set; } + + /// <summary> + /// 瑙勬牸 + /// </summary> + public string? BoxType { get; set; } + + /// <summary> + /// 鎬荤鏁�/璁″垝绠辨暟/棰勪及绠辨暟 + /// </summary> + public int? Qty { get; set; } + + /// <summary> + /// 浠诲姟绫诲瀷 + /// </summary> + public int? TaskType { get; set; } + } #endregion #region AGV-Model diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs index a23c682..34dfe6f 100644 --- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs @@ -18,6 +18,8 @@ using WMS.Entity.SysEntity; using WMS.IBLL.IBllAsnServer; using WMS.BLL.SysServer; +using System.Threading.Tasks; +using System.Security.Policy; namespace WMS.BLL.BllAsnServer { @@ -254,7 +256,7 @@ } //娣诲姞鍏ュ簱鍗曟嵁 - public string AddArrivalNotice(ArrivalNoticeVm model) + public string AddArrivalNotice(ArrivalNoticeVm model, string url) { string strMessage = ""; string sqlString = string.Empty; @@ -262,6 +264,7 @@ //0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欏叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴� var TypeLot = "1, 2, 5, 6, 7"; //鎵规鍙负绌哄崟鎹被鍨� + var addOder = new List<ResponseOrderTaskModel>(); try { if (model.Origin == "褰曞叆") @@ -341,6 +344,20 @@ sqlDetailStr += $"'{model.ASNNo}','{detailModel.SkuNo}','{detailModel.SkuName}','{detailModel.Standard}', "; sqlDetailStr += $"'{detailModel.LotNo}','{detailModel.LotText}','{detailModel.Qty}','{detailModel.PackagNo}','{detailModel.Price}', "; sqlDetailStr += $"{detailModel.Money},'{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');"; + + if (model.Type == "1") + { + addOder.Add(new ResponseOrderTaskModel() + { + OrderNo = model.ASNNo, + LotNo = detailModel.LotNo, + SkuNo = detailModel.SkuNo, + SkuName = detailModel.SkuName, + BoxType = detailModel.Standard, + Qty = (int)detailModel.Qty, + TaskType = 0 + }); + } } if (sqlDetailStr == string.Empty) @@ -359,6 +376,35 @@ if (rowCount > 0 && rowDetailCount > 0) { new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "娣诲姞", $"娣诲姞浜嗗崟鎹彿涓簕model.ASNNo}鐨勫崟鎹俊鎭�", Convert.ToInt32(model.CreateUser)); + + if (addOder.Count > 0) + { + // 姝e紡杩愯绋嬪簭鏀惧紑 + var jsonData = JsonConvert.SerializeObject(addOder); + string response = ""; + + try + { + var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss") + //缁橶CS涓嬪彂鍏ュ簱鍗曚俊鎭� + response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS"); + + //////瑙f瀽杩斿洖鏁版嵁 + var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); + if (wcsModel.StatusCode == 0) + { + + } + if (wcsModel.StatusCode == -1) + { + + } + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + } return strMessage; } else diff --git a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs index eb2d920..6079f7a 100644 --- a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs @@ -77,12 +77,13 @@ { throw new Exception("鍗曟嵁鍙蜂笉鍙负绌�!"); } - if (model.AsnDetailNo == 0) - { - throw new Exception("鍗曟嵁鏄庣粏涓嶅彲涓虹┖!"); - } + //if (model.AsnDetailNo == 0) + //{ + // throw new Exception("鍗曟嵁鏄庣粏涓嶅彲涓虹┖!"); + //} //鏍规嵁鍗曟嵁鍙疯幏鍙栧叆搴撳崟鎬诲崟 - notice = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.AsnNo && a.OrderCode == model.OrderCode); + notice = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.AsnNo); + //notice = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.AsnNo && a.OrderCode == model.OrderCode); if (notice.Status != "0" && notice.Status != "1" && notice.Status != "2") { throw new Exception("璇ュ崟鎹凡鍏冲崟!"); @@ -96,7 +97,8 @@ throw new Exception("鎵规涓嶈兘涓虹┖!"); } // 楠岃瘉鍏ュ簱鍗曟槑缁嗘槸鍚﹀瓨鍦� - detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailNo && m.ASNNo == model.AsnNo && m.LotNo == model.LotNo && m.SkuNo == model.SkuNo); + detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo && m.LotNo == model.LotNo && m.SkuNo == model.SkuNo); + //detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailNo && m.ASNNo == model.AsnNo && m.LotNo == model.LotNo && m.SkuNo == model.SkuNo); if (detail == null) { throw new Exception("褰撳墠鐗╂枡鍙婃壒娆′笌鍗曟嵁鏃犲叧鑱旓紝璇锋牳瀹�!"); @@ -176,14 +178,14 @@ #endregion //鍒ゆ柇鎵樼洏缁戝畾淇℃伅涓槸鍚︽湁 - var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == model.AsnDetailNo && m.PalletNo == model.PalletNo && m.Status != "2"); + var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == detail.Id && m.PalletNo == model.PalletNo && m.Status != "2"); var bindId = 0; if (bind == null) { bind = new BllPalletBind { - ASNNo = model.AsnNo, - ASNDetailNo = model.AsnDetailNo, + ASNNo = notice.ASNNo, + ASNDetailNo = detail.Id, PalletNo = model.PalletNo, PalletNo2 = "", PalletNo3 = "", @@ -230,8 +232,8 @@ { var boxInfo = new BllBoxInfo() { - ASNNo = model.AsnNo, - ASNDetailNo = model.AsnDetailNo, + ASNNo = notice.ASNNo, + ASNDetailNo = detail.Id, OrderCode = box.OrderCode, BindNo = bindId, BoxNo = box.BoxNo, @@ -270,10 +272,10 @@ } 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($"鎵樼洏缁戝畾鏄庣粏涓紝鍚湁绠辩爜鐗╂枡鎴栨壒娆′笉涓�鑷�"); @@ -288,8 +290,8 @@ boxFullQty += box.Qty; var boxInfo = new BllBoxInfo() { - ASNNo = model.AsnNo, - ASNDetailNo = model.AsnDetailNo, + ASNNo = detail.ASNNo, + ASNDetailNo = detail.Id, OrderCode = box.OrderCode, BindNo = bindId, BoxNo = box.BoxNo, @@ -376,9 +378,9 @@ // 鏇存敼鎵樼洏浣跨敤鐘舵�� var sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{model.PalletNo}';"; //娣诲姞鎵樼洏璁板綍琛ㄦ暟鎹� - sqlStr += $"insert into LogPalletTrack values('{model.PalletNo}','{model.AsnNo}','缁勭洏','0',getDate(),{userId},NULL,NULL);"; + sqlStr += $"insert into LogPalletTrack values('{model.PalletNo}','{notice.ASNNo}','缁勭洏','0',getDate(),{userId},NULL,NULL);"; Db.Ado.ExecuteCommand(sqlStr); - new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "鎵樼洏缁戝畾", model.AsnNo, "娣诲姞", $"娣诲姞浜嗘墭鐩樼爜涓猴細{model.PalletNo}鐨勭粍鐩樹俊鎭�", userId); + new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "鎵樼洏缁戝畾", notice.ASNNo, "娣诲姞", $"娣诲姞浜嗘墭鐩樼爜涓猴細{model.PalletNo}鐨勭粍鐩樹俊鎭�", userId); Db.CommitTran(); } diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index b506589..ad272a5 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs @@ -18,6 +18,8 @@ using WMS.BLL.LogServer; using WMS.DAL; using WMS.Entity.LogEntity; +using Model.ModelDto.SysDto; +using Model.ModelDto.BllSoDto; namespace WMS.BLL.BllPdaServer { @@ -973,7 +975,9 @@ try { string strMsg = ""; - var outDtoList = new List<OutCommandDto>(); //鍑哄簱鏁版嵁鐨勯泦鍚� + var outDto1 = new List<OutCommandDto>(); //鍏堝嚭搴撴暟鎹殑闆嗗悎锛堟繁搴︿负1鐨勫偍浣嶏級 + var outDto2 = new List<OutCommandDto>(); //鍚庡嚭搴撴暟鎹殑闆嗗悎锛堟繁搴︿负2鐨勫偍浣嶏級 + var moveDto = new List<OutCommandDto>(); //瑕佺Щ搴撴暟鎹殑闆嗗悎 //鑾峰彇褰撳墠鏃堕棿 DateTime serverTime = Db.GetDate(); //鑾峰彇搴撳瓨鏄庣粏鏄惁灏忎簬绛変簬璇ュ灈鏁� @@ -997,132 +1001,637 @@ return strMsg; } - int i = 0; - + var com = new Common(); Db.BeginTran(); //閬嶅巻搴撳瓨淇℃伅 foreach (var s in stockDetail) { + //if (outDto1.Contains(m=>m.PalletNo == s.PalletNo) >0) + //{ + // continue; + //} //鑾峰彇鍌ㄤ綅淇℃伅 var locat = Db.Queryable<SysStorageLocat>().First(l => l.LocatNo == s.LocatNo && l.IsDel == "0" && l.WareHouseNo == "W01"); - - if (locat != null) + if(locat == null) { - if (locat.Status != "1") - { - continue; - } - //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓� - locat.Status = "3"; //3 鍑哄簱涓� - locat.UpdateTime = serverTime; //淇敼鏃堕棿 - locat.UpdateUser = userId; //淇敼浜� - //淇敼鍌ㄤ綅淇℃伅 - Db.Updateable(locat).ExecuteCommand(); + continue; } - - //澧炲姞搴撳瓨閿佸畾鏁伴噺 - //stock.AllotQty += - stock.LockQty += (int)s.Qty; //閿佸畾鏁伴噺 - stock.UpdateTime = serverTime; //淇敼鏃堕棿 - stock.UpdateUser = userId; //淇敼浜� - //淇敼搴撳瓨鎬昏〃淇℃伅 - Db.Updateable(stock).ExecuteCommand(); - - //澧炲姞搴撳瓨鏄庣粏閿佸畾鏁伴噺 - //s.AllotQty += - s.LockQty += (int)s.Qty; //閿佸畾鏁伴噺 - s.UpdateTime = serverTime; //淇敼鏃堕棿 - s.UpdateUser = userId; //淇敼浜� - s.Status = "2"; //2 宸插垎閰� - //淇敼搴撳瓨鏄庣粏淇℃伅 - Db.Updateable(s).ExecuteCommand(); - - #region 鍒嗛厤 - - //娣诲姞鍒嗛厤琛ㄤ俊鎭� - var allot = new BllExportAllot + + ////鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓� + //locat.Status = "3"; //3 鍑哄簱涓� + //locat.UpdateTime = serverTime; //淇敼鏃堕棿 + //locat.UpdateUser = userId; //淇敼浜� + ////淇敼鍌ㄤ綅淇℃伅 + //Db.Updateable(locat).ExecuteCommand(); + + if (locat.Status == "1") { - SONo = "", - WaveNo = "", - SODetailNo = 0, - StockId = s.Id, - LotNo = "", - LotText = "", - SupplierLot = "", - SkuNo = s.SkuNo, - SkuName = s.SkuName, - Standard = s.Standard, - PalletNo = s.PalletNo, - IsBale = "0", //鏄惁瑁瑰寘 - IsBelt = "0", //鏄惁鎵撳甫 + if (locat.Depth == "01") //娣卞害涓�1 + { + #region 鏀瑰彉搴撳瓨 - //BoxexQty = s.Qty, - Qty = (int)s.Qty, - CompleteQty = 0, - Status = "1", - LogisticsId = 0, - IsAdvance = "0", - OutMode = model.OutMode,//鍑哄簱鍙� + //澧炲姞搴撳瓨閿佸畾鏁伴噺 + stock.LockQty += (int)s.Qty; //閿佸畾鏁伴噺 + stock.UpdateTime = serverTime; //淇敼鏃堕棿 + stock.UpdateUser = userId; //淇敼浜� + Db.Updateable(stock).ExecuteCommand();//淇敼搴撳瓨鎬昏〃淇℃伅 - CreateUser = userId, - CreateTime = DateTime.Now - }; - Db.Insertable(allot).ExecuteCommand(); + //澧炲姞搴撳瓨鏄庣粏閿佸畾鏁伴噺 + s.LockQty += (int)s.Qty; //閿佸畾鏁伴噺 + s.UpdateTime = serverTime; //淇敼鏃堕棿 + s.UpdateUser = userId; //淇敼浜� + s.Status = "2"; //2 宸插垎閰� + Db.Updateable(s).ExecuteCommand();//淇敼搴撳瓨鏄庣粏淇℃伅 - #endregion + #endregion - #region 娣诲姞鍑哄簱浠诲姟淇℃伅 + #region 鍒嗛厤 - var taskNo = new Common().GetMaxNo("TK"); - var exTask = new LogTask //鍑哄簱浠诲姟 + //娣诲姞鍒嗛厤琛ㄤ俊鎭� + var allot = new BllExportAllot + { + SONo = "", + WaveNo = "", + SODetailNo = 0, + StockId = s.Id, + LotNo = "", + LotText = "", + SupplierLot = "", + SkuNo = s.SkuNo, + SkuName = s.SkuName, + Standard = s.Standard, + PalletNo = s.PalletNo, + IsBale = "0", //鏄惁瑁瑰寘 + IsBelt = "0", //鏄惁鎵撳甫 + + //BoxexQty = s.Qty, + Qty = (int)s.Qty, + CompleteQty = 0, + Status = "1", + LogisticsId = 0, + IsAdvance = "0", + OutMode = model.OutMode,//鍑哄簱鍙� + + CreateUser = userId, + CreateTime = DateTime.Now + }; + Db.Insertable(allot).ExecuteCommand(); + + #endregion + + #region 娣诲姞鍑哄簱浠诲姟淇℃伅 + + var taskNo = new Common().GetMaxNo("TK"); + var exTask = new LogTask //鍑哄簱浠诲姟 + { + TaskNo = taskNo, + Sender = "WMS", + Receiver = "PDA", + IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + + StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆 + EndLocat = model.OutMode,//鐩爣浣嶇疆 + PalletNo = s.PalletNo,//鎵樼洏鐮� + IsSend = 1,//鏄惁鍙啀娆′笅鍙� + IsCancel = 1,//鏄惁鍙彇娑� + IsFinish = 1,//鏄惁鍙畬鎴� + Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + CreateTime = serverTime, //鍒涘缓鏃堕棿 + CreateUser = userId, //鍒涘缓浜� + Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 + //FinishDate = serverTime, //瀹屾垚鏃堕棿 + }; + outDto1.Add(new OutCommandDto() + { + PalletNo = exTask.PalletNo,//鎵樼洏鍙� + StartLocate = exTask.StartLocat, // 璧峰浣嶇疆 + StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬� + EndLocate = model.OutMode, // 鐩爣浣嶇疆 + TaskNo = exTask.TaskNo, // 浠诲姟鍙� + TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱) + OutMode = model.OutMode, //鐩爣鍦板潃 + Order = 1 + }); + Db.Insertable(exTask).ExecuteCommand(); + + #endregion + + #region 鍌ㄤ綅鐘舵�佸彉鏇� + //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓� + locat.Status = "3"; //3 鍑哄簱涓� + Db.Updateable(locat).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅 + #endregion + } + else if (locat.Depth == "02") //娣卞害涓�2 + { + //鑾峰彇鍑哄簱娣卞害涓�2鍌ㄤ綅鍓嶉潰鐨勫偍浣嶄俊鎭� + var sql2 = $@"select * from SysStorageLocat where WareHouseNo = '{locat.WareHouseNo}' and row = {locat.Row} and [Column] = {locat.Column} and Layer = {locat.Layer} and Depth = '01'; "; + var slotBefore = Db.Ado.SqlQuery<SysStorageLocat>(sql2).First(); + if (slotBefore == null) + { + #region 鏀瑰彉搴撳瓨 + + //澧炲姞搴撳瓨閿佸畾鏁伴噺 + stock.LockQty += (int)s.Qty; //閿佸畾鏁伴噺 + stock.UpdateTime = serverTime; //淇敼鏃堕棿 + stock.UpdateUser = userId; //淇敼浜� + Db.Updateable(stock).ExecuteCommand();//淇敼搴撳瓨鎬昏〃淇℃伅 + + //澧炲姞搴撳瓨鏄庣粏閿佸畾鏁伴噺 + s.LockQty += (int)s.Qty; //閿佸畾鏁伴噺 + s.UpdateTime = serverTime; //淇敼鏃堕棿 + s.UpdateUser = userId; //淇敼浜� + s.Status = "2"; //2 宸插垎閰� + Db.Updateable(s).ExecuteCommand();//淇敼搴撳瓨鏄庣粏淇℃伅 + + #endregion + + #region 鍒嗛厤 + + //娣诲姞鍒嗛厤琛ㄤ俊鎭� + var allot = new BllExportAllot + { + SONo = "", + WaveNo = "", + SODetailNo = 0, + StockId = s.Id, + LotNo = "", + LotText = "", + SupplierLot = "", + SkuNo = s.SkuNo, + SkuName = s.SkuName, + Standard = s.Standard, + PalletNo = s.PalletNo, + IsBale = "0", //鏄惁瑁瑰寘 + IsBelt = "0", //鏄惁鎵撳甫 + + //BoxexQty = s.Qty, + Qty = (int)s.Qty, + CompleteQty = 0, + Status = "1", + LogisticsId = 0, + IsAdvance = "0", + OutMode = model.OutMode,//鍑哄簱鍙� + + CreateUser = userId, + CreateTime = DateTime.Now + }; + Db.Insertable(allot).ExecuteCommand(); + + #endregion + + #region 娣诲姞鍑哄簱浠诲姟淇℃伅 + + var taskNo = new Common().GetMaxNo("TK"); + var exTask = new LogTask //鍑哄簱浠诲姟 + { + TaskNo = taskNo, + Sender = "WMS", + Receiver = "PDA", + IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + + StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆 + EndLocat = model.OutMode,//鐩爣浣嶇疆 + PalletNo = s.PalletNo,//鎵樼洏鐮� + IsSend = 1,//鏄惁鍙啀娆′笅鍙� + IsCancel = 1,//鏄惁鍙彇娑� + IsFinish = 1,//鏄惁鍙畬鎴� + Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + CreateTime = serverTime, //鍒涘缓鏃堕棿 + CreateUser = userId, //鍒涘缓浜� + Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 + //FinishDate = serverTime, //瀹屾垚鏃堕棿 + }; + outDto1.Add(new OutCommandDto() + { + PalletNo = exTask.PalletNo,//鎵樼洏鍙� + StartLocate = exTask.StartLocat, // 璧峰浣嶇疆 + StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬� + EndLocate = model.OutMode, // 鐩爣浣嶇疆 + TaskNo = exTask.TaskNo, // 浠诲姟鍙� + TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱) + OutMode = model.OutMode, //鐩爣鍦板潃 + Order = 1 + }); + Db.Insertable(exTask).ExecuteCommand(); + + #endregion + + #region 鍌ㄤ綅鐘舵�佸彉鏇� + //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓� + locat.Status = "3"; //3 鍑哄簱涓� + Db.Updateable(locat).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅 + #endregion + } + else + { + //鍒ゆ柇鍌ㄤ綅鐘舵�� + if (slotBefore.Status == "0") + { + #region 鏀瑰彉搴撳瓨 + + //澧炲姞搴撳瓨閿佸畾鏁伴噺 + stock.LockQty += (int)s.Qty; //閿佸畾鏁伴噺 + stock.UpdateTime = serverTime; //淇敼鏃堕棿 + stock.UpdateUser = userId; //淇敼浜� + Db.Updateable(stock).ExecuteCommand();//淇敼搴撳瓨鎬昏〃淇℃伅 + + //澧炲姞搴撳瓨鏄庣粏閿佸畾鏁伴噺 + s.LockQty += (int)s.Qty; //閿佸畾鏁伴噺 + s.UpdateTime = serverTime; //淇敼鏃堕棿 + s.UpdateUser = userId; //淇敼浜� + s.Status = "2"; //2 宸插垎閰� + Db.Updateable(s).ExecuteCommand();//淇敼搴撳瓨鏄庣粏淇℃伅 + + #endregion + + #region 鍒嗛厤 + + //娣诲姞鍒嗛厤琛ㄤ俊鎭� + var allot = new BllExportAllot + { + SONo = "", + WaveNo = "", + SODetailNo = 0, + StockId = s.Id, + LotNo = "", + LotText = "", + SupplierLot = "", + SkuNo = s.SkuNo, + SkuName = s.SkuName, + Standard = s.Standard, + PalletNo = s.PalletNo, + IsBale = "0", //鏄惁瑁瑰寘 + IsBelt = "0", //鏄惁鎵撳甫 + + //BoxexQty = s.Qty, + Qty = (int)s.Qty, + CompleteQty = 0, + Status = "1", + LogisticsId = 0, + IsAdvance = "0", + OutMode = model.OutMode,//鍑哄簱鍙� + + CreateUser = userId, + CreateTime = DateTime.Now + }; + Db.Insertable(allot).ExecuteCommand(); + + #endregion + + #region 娣诲姞鍑哄簱浠诲姟淇℃伅 + + var taskNo = new Common().GetMaxNo("TK"); + var exTask = new LogTask //鍑哄簱浠诲姟 + { + TaskNo = taskNo, + Sender = "WMS", + Receiver = "PDA", + IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + + StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆 + EndLocat = model.OutMode,//鐩爣浣嶇疆 + PalletNo = s.PalletNo,//鎵樼洏鐮� + IsSend = 1,//鏄惁鍙啀娆′笅鍙� + IsCancel = 1,//鏄惁鍙彇娑� + IsFinish = 1,//鏄惁鍙畬鎴� + Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + CreateTime = serverTime, //鍒涘缓鏃堕棿 + CreateUser = userId, //鍒涘缓浜� + Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 + //FinishDate = serverTime, //瀹屾垚鏃堕棿 + }; + outDto1.Add(new OutCommandDto() + { + PalletNo = exTask.PalletNo,//鎵樼洏鍙� + StartLocate = exTask.StartLocat, // 璧峰浣嶇疆 + StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬� + EndLocate = model.OutMode, // 鐩爣浣嶇疆 + TaskNo = exTask.TaskNo, // 浠诲姟鍙� + TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱) + OutMode = model.OutMode, //鐩爣鍦板潃 + Order = 1 + }); + Db.Insertable(exTask).ExecuteCommand(); + + #endregion + + #region 鍌ㄤ綅鐘舵�佸彉鏇� + //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓� + locat.Status = "3"; //3 鍑哄簱涓� + Db.Updateable(locat).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅 + #endregion + } + else if(slotBefore.Status == "1") + { + //鍒ゆ柇鎵樼洏涓婄墿鏂� + var pallSku = Db.Queryable<DataStockDetail>().First(m=>m.SkuNo == "100099" && m.LocatNo == slotBefore.LocatNo); + if (pallSku == null) //绉诲簱 + { + #region 鍒嗛厤 + + //娣诲姞鍒嗛厤琛ㄤ俊鎭� + var allot = new BllExportAllot + { + SONo = "", + WaveNo = "", + SODetailNo = 0, + StockId = s.Id, + LotNo = "", + LotText = "", + SupplierLot = "", + SkuNo = s.SkuNo, + SkuName = s.SkuName, + Standard = s.Standard, + PalletNo = s.PalletNo, + IsBale = "0", //鏄惁瑁瑰寘 + IsBelt = "0", //鏄惁鎵撳甫 + + //BoxexQty = s.Qty, + Qty = (int)s.Qty, + CompleteQty = 0, + Status = "1", + LogisticsId = 0, + IsAdvance = "0", + OutMode = model.OutMode,//鍑哄簱鍙� + + CreateUser = userId, + CreateTime = DateTime.Now + }; + Db.Insertable(allot).ExecuteCommand(); + + #endregion + + #region 娣诲姞绉诲簱浠诲姟淇℃伅 + + var taskNo = new Common().GetMaxNo("TK"); + var exTask = new LogTask //鍑哄簱浠诲姟 + { + TaskNo = taskNo, + Sender = "WMS", + Receiver = "PDA", + IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + + StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆 + EndLocat = model.OutMode,//鐩爣浣嶇疆 + PalletNo = s.PalletNo,//鎵樼洏鐮� + IsSend = 1,//鏄惁鍙啀娆′笅鍙� + IsCancel = 1,//鏄惁鍙彇娑� + IsFinish = 1,//鏄惁鍙畬鎴� + Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + CreateTime = serverTime, //鍒涘缓鏃堕棿 + CreateUser = userId, //鍒涘缓浜� + Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅 + //FinishDate = serverTime, //瀹屾垚鏃堕棿 + }; + moveDto.Add(new OutCommandDto() + { + PalletNo = exTask.PalletNo,//鎵樼洏鍙� + StartLocate = exTask.StartLocat, // 璧峰浣嶇疆 + StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬� + EndLocate = model.OutMode, // 鐩爣浣嶇疆 + TaskNo = exTask.TaskNo, // 浠诲姟鍙� + TaskType = "2",// 浠诲姟绫诲瀷 (鍑哄簱) + OutMode = model.OutMode, //鐩爣鍦板潃 + Order = 1 + }); + Db.Insertable(exTask).ExecuteCommand(); + + #endregion + + #region 鍌ㄤ綅鐘舵�佸彉鏇� + //鏇存敼鍌ㄤ綅鐘舵�佷负绉诲嚭涓� + slotBefore.Status = "5"; //5 绉诲嚭涓� + Db.Updateable(slotBefore).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅 + #endregion + } + else //鍑哄簱 + { + #region 鏀瑰彉搴撳瓨 + + //澧炲姞搴撳瓨閿佸畾鏁伴噺 + stock.LockQty += (int)s.Qty; //閿佸畾鏁伴噺 + stock.UpdateTime = serverTime; //淇敼鏃堕棿 + stock.UpdateUser = userId; //淇敼浜� + Db.Updateable(stock).ExecuteCommand();//淇敼搴撳瓨鎬昏〃淇℃伅 + + //澧炲姞搴撳瓨鏄庣粏閿佸畾鏁伴噺 + s.LockQty += (int)s.Qty; //閿佸畾鏁伴噺 + s.UpdateTime = serverTime; //淇敼鏃堕棿 + s.UpdateUser = userId; //淇敼浜� + s.Status = "2"; //2 宸插垎閰� + Db.Updateable(s).ExecuteCommand();//淇敼搴撳瓨鏄庣粏淇℃伅 + + #endregion + + #region 鍒嗛厤 + + //娣诲姞鍒嗛厤琛ㄤ俊鎭� + var allot = new BllExportAllot + { + SONo = "", + WaveNo = "", + SODetailNo = 0, + StockId = s.Id, + LotNo = "", + LotText = "", + SupplierLot = "", + SkuNo = s.SkuNo, + SkuName = s.SkuName, + Standard = s.Standard, + PalletNo = s.PalletNo, + IsBale = "0", //鏄惁瑁瑰寘 + IsBelt = "0", //鏄惁鎵撳甫 + + //BoxexQty = s.Qty, + Qty = (int)s.Qty, + CompleteQty = 0, + Status = "1", + LogisticsId = 0, + IsAdvance = "0", + OutMode = model.OutMode,//鍑哄簱鍙� + + CreateUser = userId, + CreateTime = DateTime.Now + }; + Db.Insertable(allot).ExecuteCommand(); + + #endregion + + #region 娣诲姞鍑哄簱浠诲姟淇℃伅 + + var taskNo = new Common().GetMaxNo("TK"); + var exTask = new LogTask //鍑哄簱浠诲姟 + { + TaskNo = taskNo, + Sender = "WMS", + Receiver = "PDA", + IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + + StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆 + EndLocat = model.OutMode,//鐩爣浣嶇疆 + PalletNo = s.PalletNo,//鎵樼洏鐮� + IsSend = 1,//鏄惁鍙啀娆′笅鍙� + IsCancel = 1,//鏄惁鍙彇娑� + IsFinish = 1,//鏄惁鍙畬鎴� + Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + CreateTime = serverTime, //鍒涘缓鏃堕棿 + CreateUser = userId, //鍒涘缓浜� + Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 + //FinishDate = serverTime, //瀹屾垚鏃堕棿 + }; + outDto2.Add(new OutCommandDto() + { + PalletNo = exTask.PalletNo,//鎵樼洏鍙� + StartLocate = exTask.StartLocat, // 璧峰浣嶇疆 + StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬� + EndLocate = model.OutMode, // 鐩爣浣嶇疆 + TaskNo = exTask.TaskNo, // 浠诲姟鍙� + TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱) + OutMode = model.OutMode, //鐩爣鍦板潃 + Order = 1 + }); + Db.Insertable(exTask).ExecuteCommand(); + + #endregion + #region 鍌ㄤ綅鐘舵�佸彉鏇� + //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓� + slotBefore.Status = "3"; //3 鍑哄簱涓� + Db.Updateable(slotBefore).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅 + #endregion + } + if (int.Parse(model.Num) == outDto1.Count + outDto2.Count) + { + break;//闇�姹傚灈鏁板凡杈惧埌 鍙互鍑哄簱浜� + } + else + { + #region 鏀瑰彉搴撳瓨 + + //澧炲姞搴撳瓨閿佸畾鏁伴噺 + stock.LockQty += (int)s.Qty; //閿佸畾鏁伴噺 + stock.UpdateTime = serverTime; //淇敼鏃堕棿 + stock.UpdateUser = userId; //淇敼浜� + Db.Updateable(stock).ExecuteCommand();//淇敼搴撳瓨鎬昏〃淇℃伅 + + //澧炲姞搴撳瓨鏄庣粏閿佸畾鏁伴噺 + s.LockQty += (int)s.Qty; //閿佸畾鏁伴噺 + s.UpdateTime = serverTime; //淇敼鏃堕棿 + s.UpdateUser = userId; //淇敼浜� + s.Status = "2"; //2 宸插垎閰� + Db.Updateable(s).ExecuteCommand();//淇敼搴撳瓨鏄庣粏淇℃伅 + + #endregion + + #region 鍒嗛厤 + + //娣诲姞鍒嗛厤琛ㄤ俊鎭� + var allot = new BllExportAllot + { + SONo = "", + WaveNo = "", + SODetailNo = 0, + StockId = s.Id, + LotNo = "", + LotText = "", + SupplierLot = "", + SkuNo = s.SkuNo, + SkuName = s.SkuName, + Standard = s.Standard, + PalletNo = s.PalletNo, + IsBale = "0", //鏄惁瑁瑰寘 + IsBelt = "0", //鏄惁鎵撳甫 + + //BoxexQty = s.Qty, + Qty = (int)s.Qty, + CompleteQty = 0, + Status = "1", + LogisticsId = 0, + IsAdvance = "0", + OutMode = model.OutMode,//鍑哄簱鍙� + + CreateUser = userId, + CreateTime = DateTime.Now + }; + Db.Insertable(allot).ExecuteCommand(); + + #endregion + + #region 娣诲姞鍑哄簱浠诲姟淇℃伅 + + var taskNo = new Common().GetMaxNo("TK"); + var exTask = new LogTask //鍑哄簱浠诲姟 + { + TaskNo = taskNo, + Sender = "WMS", + Receiver = "PDA", + IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + + StartLocat = locat == null ? "" : s.LocatNo,//璧峰浣嶇疆 + EndLocat = model.OutMode,//鐩爣浣嶇疆 + PalletNo = s.PalletNo,//鎵樼洏鐮� + IsSend = 1,//鏄惁鍙啀娆′笅鍙� + IsCancel = 1,//鏄惁鍙彇娑� + IsFinish = 1,//鏄惁鍙畬鎴� + Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + CreateTime = serverTime, //鍒涘缓鏃堕棿 + CreateUser = userId, //鍒涘缓浜� + Msg = "Pda绌烘墭浠�" + locat == null ? "" : s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 + //FinishDate = serverTime, //瀹屾垚鏃堕棿 + }; + outDto2.Add(new OutCommandDto() + { + PalletNo = exTask.PalletNo,//鎵樼洏鍙� + StartLocate = exTask.StartLocat, // 璧峰浣嶇疆 + StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬� + EndLocate = model.OutMode, // 鐩爣浣嶇疆 + TaskNo = exTask.TaskNo, // 浠诲姟鍙� + TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱) + OutMode = model.OutMode, //鐩爣鍦板潃 + Order = 1 + }); + Db.Insertable(exTask).ExecuteCommand(); + + #endregion + #region 鍌ㄤ綅鐘舵�佸彉鏇� + + //鏇存敼鍌ㄤ綅鐘舵�佷负鍑哄簱涓� + locat.Status = "3"; //3 鍑哄簱涓� + Db.Updateable(locat).ExecuteCommand();//淇敼鍌ㄤ綅淇℃伅 + #endregion + } + } + } + + } + + } + + if (int.Parse(model.Num) == outDto1.Count+ outDto2.Count) { - TaskNo = taskNo, - Sender = "WMS", - Receiver = "PDA", - IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 - - StartLocat = locat == null ? "闆剁搴�" : s.LocatNo,//璧峰浣嶇疆 - EndLocat = model.OutMode,//鐩爣浣嶇疆 - PalletNo = s.PalletNo,//鎵樼洏鐮� - IsSend = 1,//鏄惁鍙啀娆′笅鍙� - IsCancel = 1,//鏄惁鍙彇娑� - IsFinish = 1,//鏄惁鍙畬鎴� - Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 - Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 - OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� - CreateTime = serverTime, //鍒涘缓鏃堕棿 - CreateUser = userId, //鍒涘缓浜� - Msg = "Pda绌烘墭浠�" + locat == null ? "闆剁搴�" : s.LocatNo + "鍒�" + model.OutMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 - //FinishDate = serverTime, //瀹屾垚鏃堕棿 - }; - outDtoList.Add(new OutCommandDto() - { - PalletNo = exTask.PalletNo,//鎵樼洏鍙� - StartLocate = exTask.StartLocat, // 璧峰浣嶇疆 - StartRoadway = locat.RoadwayNo, //鎵�灞炲贩閬� - EndLocate = model.OutMode, // 鐩爣浣嶇疆 - TaskNo = exTask.TaskNo, // 浠诲姟鍙� - TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱) - OutMode = model.OutMode, //鐩爣鍦板潃 - Order = 1 - }); - Db.Insertable(exTask).ExecuteCommand(); - - #endregion - i += 1; - if (i == int.Parse(model.Num)) - { - //闇�姹傚灈鏁板凡杈惧埌 鍙互鍑哄簱浜� - break; + break;//闇�姹傚灈鏁板凡杈惧埌 鍙互鍑哄簱浜� } } - - if (outDtoList.Count > 0) + outDto1.AddRange(moveDto); + outDto1.AddRange(outDto2); + 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 @@ -1153,7 +1662,7 @@ } //娣诲姞鎿嶄綔鏃ュ織璁板綍 - var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "绌烘墭鍑哄簱", i + "", "涓嬪彂", $"鐢≒DA涓嬪彂浜� {i} 涓┖鎵樺灈", userId); + var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "绌烘墭鍑哄簱", int.Parse(model.Num) + "", "涓嬪彂", $"鐢≒DA涓嬪彂浜� {int.Parse(model.Num)} 涓┖鎵樺灈", userId); Db.CommitTran(); return ""; @@ -1167,6 +1676,68 @@ } + 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.AreaNo}') 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; + } + //鑾峰彇骞冲簱鎵樼洏淇℃伅 public List<BoxInfo> GetPingKuInfoByPallet(string soNo, string palletNo) { diff --git a/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs b/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs index 1d48688..a55e6df 100644 --- a/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs +++ b/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs @@ -45,7 +45,7 @@ /// </summary> /// <param name="model"></param> /// <returns></returns> - string AddArrivalNotice(ArrivalNoticeVm model); + string AddArrivalNotice(ArrivalNoticeVm model, string url); /// <summary> /// 缂栬緫鍏ュ簱鍗� /// </summary> diff --git a/Wms/Wms/Controllers/BllAsnController.cs b/Wms/Wms/Controllers/BllAsnController.cs index e31f593..a999bec 100644 --- a/Wms/Wms/Controllers/BllAsnController.cs +++ b/Wms/Wms/Controllers/BllAsnController.cs @@ -9,6 +9,8 @@ using WMS.IBLL.IBllAsnServer; using WMS.IBLL.ILogServer; using Model.ModelVm.BllAsnVm; +using Wms.Tools; +using Microsoft.Extensions.Options; namespace Wms.Controllers { @@ -18,6 +20,7 @@ public class BllAsnController : ControllerBase { #region 渚濊禆娉ㄥ叆 + private readonly ApiUrlConfig _config; //鎺ュ彛浜や簰璺緞 private readonly IArrivalNoticeServer _arrivalNoticeSvc; // 鍏ュ簱鍗曟嵁Svc private readonly IPalletBindServer _PalletBindSvc; // 鎵樼洏缁戝畾Svc private readonly IBllBoxInfoServer _BoxInfoSvc; @@ -29,8 +32,9 @@ #endregion #region 鏋勯�犲嚱鏁� - public BllAsnController(IArrivalNoticeServer arrivalNoticeSvc, IPalletBindServer palletBindSvc,IBllBoxInfoServer bllBoxInfoSvc, ITaskServer taskSvc,IOperationASNServer logSvc, IPalletUnbindServer palletUnbind,IAuditLogServer auditLog,IBllLabelBoxNoServer labelBox) + public BllAsnController(IOptions<ApiUrlConfig> setting, IArrivalNoticeServer arrivalNoticeSvc, IPalletBindServer palletBindSvc,IBllBoxInfoServer bllBoxInfoSvc, ITaskServer taskSvc,IOperationASNServer logSvc, IPalletUnbindServer palletUnbind,IAuditLogServer auditLog,IBllLabelBoxNoServer labelBox) { + _config = setting.Value; _arrivalNoticeSvc = arrivalNoticeSvc; _PalletBindSvc = palletBindSvc; _BoxInfoSvc = bllBoxInfoSvc; @@ -134,7 +138,7 @@ } model.CreateUser = int.Parse(UserId); - string strMesage = _arrivalNoticeSvc.AddArrivalNotice(model); + string strMesage = _arrivalNoticeSvc.AddArrivalNotice(model, _config.WcsHost + _config.AddOrderTaskUrl); if (strMesage == "") { diff --git a/Wms/Wms/Tools/ApiUrlConfig.cs b/Wms/Wms/Tools/ApiUrlConfig.cs index e037216..e219376 100644 --- a/Wms/Wms/Tools/ApiUrlConfig.cs +++ b/Wms/Wms/Tools/ApiUrlConfig.cs @@ -103,5 +103,11 @@ #endregion + #region WCS + /// <summary> + /// //缁橶CS涓嬪彂鍏ュ簱鍗曚俊鎭� + /// </summary> + public string AddOrderTaskUrl { get; set; } + #endregion } } diff --git a/Wms/Wms/appsettings.json b/Wms/Wms/appsettings.json index 7402f8d..0b01b9f 100644 --- a/Wms/Wms/appsettings.json +++ b/Wms/Wms/appsettings.json @@ -31,6 +31,7 @@ // WCS "IssueComApiUrl": "/api/demo/wcsTasks", //涓嬪彂鍛戒护(鍑哄簱銆佺Щ搴�) "IssueComApiUrl2": "/api/demo/wcsTask", //"/api/WCSApi/AddTask", //閲嶆柊涓嬪彂鍛戒护(鍑哄簱銆佺Щ搴�) + "AddOrderTaskUrl": "/api/demo/addOrderTask", //WMS缁橶CS涓嬪彂鐨勫叆搴撳崟浠诲姟 // ERP "AsnFinishUrl": "/api/wmsInterface/OutStockTask", //鍏ュ簱璁㈠崟鍏抽棴 -- Gitblit v1.8.0