From bdd84cc48ba7b2527584c44d174da8e7d20c5375 Mon Sep 17 00:00:00 2001 From: zhaowc <526854230@qq.com> Date: 星期三, 18 九月 2024 16:37:13 +0800 Subject: [PATCH] 增加对申请入库时对平库库位的校验 --- Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 153 insertions(+), 25 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs index 27ac2ea..152ebb3 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs @@ -106,6 +106,19 @@ if (modelList.Count > 0) { + if (!string.IsNullOrWhiteSpace(modelList[0].PackagNo)) + { + // 鏌ヨ鏁存墭鏁伴噺 姝ゅUDF1鐢ㄦ潵瀛樺偍鏁存墭鏁伴噺銆� + var packagModel = Db.Queryable<SysPackag>().Where(m => m.PackagNo == modelList[0].PackagNo && m.IsDel == "0").First(); + switch (packagModel.Level.ToString()) + { + case "1": modelList[0].UDF1 = packagModel.L1Num.ToString(); break; + case "2": modelList[0].UDF1 = packagModel.L2Num.ToString(); break; + case "3": modelList[0].UDF1 = packagModel.L3Num.ToString(); break; + case "4": modelList[0].UDF1 = packagModel.L4Num.ToString(); break; + default: modelList[0].UDF1 = packagModel.L5Num.ToString(); break; + } + } return modelList[0]; } @@ -277,7 +290,8 @@ try { string sqlString = string.Empty; - sqlString = "select b.SkuNo,b.SkuName,a.LotNo,a.Qty,a.PalletNo,a.Id from BllPalletBind a left join BllArrivalNoticeDetail b on a.ASNDetailNo = b.Id where a.IsDel = '0' and b.IsDel = '0' "; + sqlString = "select b.SkuNo,b.SkuName,a.LotNo,a.Qty,a.PalletNo,a.Id from BllPalletBind a " + + "left join BllArrivalNoticeDetail b on a.ASNDetailNo = b.Id where a.IsDel = '0' and b.IsDel = '0' "; if (!string.IsNullOrEmpty(model.PalletNo)) { sqlString += $"and PalletNo = '{model.PalletNo}' and a.Status = '0' "; @@ -892,7 +906,7 @@ #endregion #region 鍦扮爜淇℃伅(鍌ㄤ綅淇℃伅) - var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == model.LocatNo && w.Status == "0" && w.WareHouseNo == "W02"); + var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == model.LocatNo && w.Status == "0"); if (storageLocat == null) { strMsg = "-1:鍌ㄤ綅淇℃伅涓嶅瓨鍦ㄦ垨闈炵┖闂茬姸鎬侊紝璇锋牳鏌�!"; @@ -1888,16 +1902,17 @@ BoxNo, SkuNo, SkuName, - LotNo, + LotNo, + BitBoxMark, SUM(Qty) as Qty FROM BllBoxInfo WHERE IsDel = '0' AND Status='0' AND BoxNo = '{model.BoxNo}' - GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo; "; + GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); - if (models == null) + if (models.Count == 0 ) { throw new Exception("绠辩爜淇℃伅涓嶅瓨鍦�!"); } @@ -1909,6 +1924,55 @@ throw ex; } } + + /// <summary> + /// 鏍规嵁绠辩爜鍚戣拷婧郴缁熻姹傛爣绛剧鐮佷俊鎭� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public List<BoxInfoDto> GetFMBindBoxInfos(string boxno) + { + try + { + #region 绠辩爜璇锋眰鎺ュ彛锛屾寮忕郴缁熸斁寮� + /*var jsonData = JsonConvert.SerializeObject(boxno); + + var response = HttpHelper.DoPost(url, jsonData, "绠辩爜淇℃伅璇锋眰", "FM"); + + var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁 + if (obj.Success != 0) + { + throw new Exception("璇锋眰澶辫触" + obj.Message); + }*/ + #endregion + string sqlString = $@"SELECT + ASNNo, + BoxNo, + SkuNo, + SkuName, + LotNo, + BitBoxMark, + SUM(Qty) as Qty + FROM BllBoxInfo + WHERE IsDel = '0' + AND Status='0' + AND BoxNo = '{boxno}' + GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; + var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); // response + + if (models.Count == 0) + { + throw new Exception("绠辩爜淇℃伅涓嶅瓨鍦�!"); + } + + return models; + } + catch (Exception ex) + { + throw ex; + } + } + // 鏍规嵁鍗曟嵁鍙疯幏鍙栧崟鎹槑缁嗗垪琛� public List<ArrivalNoticeDetailDto> GetBindArrivalNoticeDetails(ArrivalNoticeVm model) { @@ -4582,6 +4646,18 @@ var bindId = 0; if (bind == null) { + DateTime? pTime = null; + DateTime? eTime = null; + if (!string.IsNullOrWhiteSpace(detail.Lot1)) + { + pTime = DateTime.Parse(detail.Lot1); + } + if (!string.IsNullOrWhiteSpace(detail.Lot2)) + { + eTime = DateTime.Parse(detail.Lot2); + } + + bind = new BllPalletBind { ASNNo = model.AsnNo, @@ -4597,6 +4673,8 @@ SupplierLot = detail.SupplierLot, //InspectMark = model.IsSample, //鏄惁鍙栨牱鎵樼洏 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 //SamplingQty = 0, //鍙栨牱鏁伴噺 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 + ProductionTime = pTime, + ExpirationTime = eTime, BitPalletMark = "1", IsBale = "0", IsBelt = "0", @@ -4652,6 +4730,12 @@ } else { + string inspectStatusStr = "0"; + if (sku.IsInspect == "1") + { + inspectStatusStr = "1"; + } + // 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁 sd1 = new DataStockDetail() { @@ -4680,7 +4764,7 @@ ExpirationTime = bind.ExpirationTime, Status = "0", InspectMark = bind.InspectMark, - InspectStatus = sku.IsInspect, + InspectStatus = inspectStatusStr, BitPalletMark = bind.BitPalletMark, PackagNo = detail.PackagNo, //liudl 鐢眘ku鐨勫寘瑁呯紪鍙峰彉涓哄叆搴撳崟鏄庣粏鐨勫寘瑁呯紪鐮� IsBale = bind.IsBale, @@ -4870,9 +4954,6 @@ sqlStr += $"insert into LogPalletTrack values('{model.PalletNo}','{model.AsnNo}','缁勭洏','0',getDate(),{userId},NULL,NULL);"; Db.Ado.ExecuteCommand(sqlStr); new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "鎵樼洏缁戝畾", model.AsnNo, "娣诲姞", $"娣诲姞浜嗘墭鐩樼爜涓猴細{model.PalletNo}鐨勭粍鐩樹俊鎭�", userId); - - - } #endregion @@ -4922,7 +5003,7 @@ #endregion #region 鍦扮爜淇℃伅(鍌ㄤ綅淇℃伅) - var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == model.LocatNo && w.Status == "0" && w.WareHouseNo == "W02"); + var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == model.LocatNo && w.Status == "0"); if (storageLocat == null) { throw new Exception("鍌ㄤ綅淇℃伅涓嶅瓨鍦ㄦ垨闈炵┖闂茬姸鎬侊紝璇锋牳鏌�!"); @@ -5153,7 +5234,7 @@ SendDate = serverTime, //鍙戦�佹椂闂� BackDate = serverTime, //杩斿洖鏃堕棿 StartLocat = "",//璧峰浣嶇疆 - EndLocat = "鍔涜骞冲簱",//鐩爣浣嶇疆 + EndLocat = "骞冲簱",//鐩爣浣嶇疆 PalletNo = bindInfo.PalletNo,//鎵樼洏鐮� IsSend = 0,//鏄惁鍙啀娆′笅鍙� IsCancel = 0,//鏄惁鍙彇娑� @@ -5161,7 +5242,7 @@ Type = "0",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 Status = "2",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 OrderType = "0",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� - Msg = "鍔涜骞冲簱鐨勫叆搴撲换鍔�", + Msg = "骞冲簱鐨勫叆搴撲换鍔�", }; Db.Insertable(exTask).ExecuteCommand(); @@ -5175,6 +5256,27 @@ bindInfo.TaskNo = taskNo; //浠诲姟鍙� Db.Updateable(bindInfo).ExecuteCommand(); #endregion + + /* #region 娣诲姞鎵樼洏涓婃灦璁板綍 + var upShelf = new BllPalletUpShelf() + { + TaskNo = exTask.TaskNo, + TraceNo = bindInfo.ASNNo, + PalletNo = bindInfo.PalletNo, + SkuNo = stockModel.SkuNo, + SkuName = stockModel.SkuName, + LotNo = stockModel.LotNo, + Status = "1", + + WareHouseNo = bindInfo.WareHouseNo, + RoadwayNo = bindInfo.RoadwayNo, + AreaNo = "", + LocatNo = "", + + CreateUser = 0, + }; + Db.Insertable(upShelf).ExecuteCommand(); + #endregion*/ #region 搴撳瓨绠辨敮鏄庣粏琛� // 鎻掑叆鏂扮粍鐨勭鏀俊鎭� @@ -5241,11 +5343,13 @@ //淇敼搴撳瓨鏄庣粏淇℃伅 foreach (var item in stockDetail) { - item.Status = "0"; //鐘舵�佹洿鏀逛负寰呭垎閰� - item.WareHouseNo = "W02"; //鎵�灞炰粨搴� - item.LocatNo = model.LocatNo;//鍌ㄤ綅鍦板潃 - item.UpdateTime = serverTime; //淇敼鏃堕棿 - item.UpdateUser = model.CreateUser; //淇敼浜� + item.Status = "0"; // 鐘舵�佹洿鏀逛负寰呭垎閰� + item.WareHouseNo = storageLocat.WareHouseNo; // 鎵�灞炰粨搴� + item.RoadwayNo = storageLocat.RoadwayNo; // 鎵�灞炲贩閬� + item.AreaNo = storageLocat.AreaNo; // 鎵�灞炲尯鍩� + item.LocatNo = model.LocatNo; // 鍌ㄤ綅鍦板潃 + item.UpdateTime = serverTime; // 淇敼鏃堕棿 + item.UpdateUser = model.CreateUser; // 淇敼浜� //淇敼搴撳瓨鏄庣粏淇℃伅 Db.Updateable(item).ExecuteCommand(); } @@ -5271,7 +5375,7 @@ SendDate = DateTime.Now, //鍙戦�佹椂闂� BackDate = DateTime.Now, //杩斿洖鏃堕棿 StartLocat = "",//璧峰浣嶇疆 - EndLocat = "鐗у師骞冲簱",//鐩爣浣嶇疆 + EndLocat = "骞冲簱",//鐩爣浣嶇疆 PalletNo = model.PalletNo,//鎵樼洏鐮� IsSend = 0,//鏄惁鍙啀娆′笅鍙� IsCancel = 0,//鏄惁鍙彇娑� @@ -5279,21 +5383,44 @@ Type = "0",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 Status = "2",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 OrderType = "3",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� - Msg = "鐗у師骞冲簱鐨勫叆搴撲换鍔�", + Msg = "骞冲簱鐨勫叆搴撲换鍔�", }; Db.Insertable(exTask).ExecuteCommand(); //鎵樼洏缁戝畾淇℃伅 - var bindInfo = Db.Queryable<BllPalletBind>().First(w => w.IsDel == "0" && w.PalletNo == model.PalletNo && w.Status == "2" && string.IsNullOrEmpty(w.LocatNo)); + var bindInfo = Db.Queryable<BllPalletBind>().First(w => w.IsDel == "0" && w.PalletNo == model.PalletNo + && w.Status == "2" && string.IsNullOrEmpty(w.LocatNo)); if (bindInfo != null) { - bindInfo.WareHouseNo = "W02";//鎵�灞炰粨搴� - bindInfo.LocatNo = model.LocatNo;//鍌ㄤ綅鍦板潃 + bindInfo.WareHouseNo = storageLocat.WareHouseNo; // 鎵�灞炰粨搴� + bindInfo.RoadwayNo = storageLocat.RoadwayNo; // 鎵�灞炲贩閬� + bindInfo.LocatNo = model.LocatNo; // 鍌ㄤ綅鍦板潃 bindInfo.UpdateTime = serverTime; bindInfo.UpdateUser = model.CreateUser; - bindInfo.CompleteTime = serverTime; //瀹屾垚鏃堕棿 - bindInfo.TaskNo = taskNo; //浠诲姟鍙� + bindInfo.CompleteTime = serverTime; // 瀹屾垚鏃堕棿 + bindInfo.TaskNo = taskNo; // 浠诲姟鍙� Db.Updateable(bindInfo).ExecuteCommand(); } + #endregion + + #region 娣诲姞鎵樼洏涓婃灦璁板綍 + var palletupinfo = stockDetail.First(); + var upShelf = new BllPalletUpShelf() + { + TaskNo = exTask.TaskNo, + TraceNo = bindInfo.ASNNo, + PalletNo = bindInfo.PalletNo, + SkuNo = palletupinfo.SkuNo, + SkuName = palletupinfo.SkuName, + LotNo = palletupinfo.LotNo, + Status = "2", + LocatNo = model.LocatNo, + WareHouseNo = bindInfo.WareHouseNo, + RoadwayNo = bindInfo.RoadwayNo, + AreaNo = storageLocat.AreaNo, + + CreateUser = 0, + }; + Db.Insertable(upShelf).ExecuteCommand(); #endregion } storageLocat.Status = "1";//鐘舵�佸凡浣跨敤 @@ -5302,7 +5429,8 @@ //淇敼鍌ㄤ綅淇℃伅 Db.Updateable(storageLocat).ExecuteCommand(); - new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "骞冲簱鍏ュ簱", model.PalletNo, "瀹屾垚", $"鍦≒DA涓婂畬鎴愬崟鎹彿涓猴細{model.ASNNo}鐨勬墭鐩樼爜涓猴細{model.PalletNo}鐨勫钩搴撳叆搴撴搷浣�", (int)model.CreateUser); + new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "骞冲簱鍏ュ簱", model.PalletNo, "瀹屾垚", + $"鍦≒DA涓婂畬鎴愬崟鎹彿涓猴細{model.ASNNo}鐨勬墭鐩樼爜涓猴細{model.PalletNo}鐨勫钩搴撳叆搴撴搷浣�", (int)model.CreateUser); Db.CommitTran(); } catch (Exception ex) -- Gitblit v1.8.0