From 8f6e51b0674bfa6382e1b9730c0eaadeb5a78bc9 Mon Sep 17 00:00:00 2001 From: yuyou_x <2336760928@qq.com> Date: 星期四, 29 二月 2024 14:23:52 +0800 Subject: [PATCH] 调整pda手持是否数量盘点代码,修改更换有无码盘点界面及后台代码,修改pda确认代码,修改调整库存代码。 --- Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs | 193 ++++++++++++++++++++++++++++++----------------- 1 files changed, 123 insertions(+), 70 deletions(-) diff --git a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs index 65bb133..2d8c259 100644 --- a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs +++ b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs @@ -107,7 +107,7 @@ try { var total = 0; - var list = Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel =="0" && m.CRNo == crNo) + var list = Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && m.CRNo == crNo) .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id) .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id) .Select((a, b, c) => new StockCheckDetailDto() @@ -234,7 +234,7 @@ if (string.IsNullOrWhiteSpace(model.CrNo)) { var num = Db.Queryable<BllStockCheck>().Count(m => m.IsDel == "0" && (m.Status == 0 || m.Status == 1)); - if (num>0) + if (num > 0) { throw new Exception("宸叉湁绛夊緟鎵ц鐨勭洏鐐瑰崟鎹鍏堝畬鎴愭垨鍒犻櫎"); } @@ -339,7 +339,7 @@ CreateTime = time }; list.Add(detail); - var sd = Db.Queryable<DataStockDetail>().Where(m => m.IsDel =="0" && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo && m.Status == "0").ToList(); + var sd = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo && m.Status == "0").ToList(); foreach (var s in sd) { s.Status = "3"; @@ -356,7 +356,7 @@ } - if (list.Count>0) + if (list.Count > 0) { Db.Insertable(list).ExecuteCommand(); } @@ -397,7 +397,7 @@ d.IsDel = "1"; d.UpdateTime = time; d.UpdateUser = userId; - var item = Db.Queryable<DataStockDetail>().Where(m => m.IsDel =="0" && m.PalletNo == d.PalletNo && m.SkuNo ==d.SkuNo && m.LotNo == d.LotNo && m.Status == "3").ToList(); + var item = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == d.PalletNo && m.SkuNo == d.SkuNo && m.LotNo == d.LotNo && m.Status == "3").ToList(); foreach (var i in item) { i.Status = "0"; @@ -586,37 +586,49 @@ } else if (l.CheckResult == 2)//鐩樼泩 - { + { + var sku = Db.Queryable<SysMaterials>().First(a => a.IsDel == "0" && a.SkuNo == l.SkuNo); var stockDetailInfo = stockDetail.First(m => m.PalletNo == d.PalletNo && m.SkuNo == d.SkuNo && m.LotNo == d.LotNo);//搴撳瓨鏄庣粏 - var stockBoxInfo = stockBox.First(m => m.StockDetailId == stockDetailInfo.Id);//搴撳瓨绠辨敮鏄庣粏 - var boxInfo = boxQtyList.First(m => m.boxNo == l.BoxNo);//鎵惧埌瀵瑰簲绠卞瓙鏄惁闆剁 - //娣诲姞搴撳瓨绠辨敮淇℃伅 - var databox = new DataBoxInfo + + if (sku.Type != "4") { - StockDetailId = stockDetailInfo.Id, - BindNo= stockBoxInfo.BindNo, - BoxNo = l.BoxNo, - BoxNo2 = l.BoxNo2, - BoxNo3 = l.BoxNo3, - PalletNo = l.PalletNo, - Qty = (int)l.RealQty, - FullQty = stockBoxInfo.FullQty,//婊$鏁伴噺 - Status = "2", - SkuNo = l.SkuNo, - SkuName = l.SkuName, - LotNo = l.LotNo, - LotText = l.LotText, - Standard = l.Standard, - SupplierLot = l.SupplierLot, + var stockBoxInfo = stockBox.First(m => m.StockDetailId == stockDetailInfo.Id);//搴撳瓨绠辨敮鏄庣粏 + var boxInfo = boxQtyList.First(m => m.boxNo == l.BoxNo);//鎵惧埌瀵瑰簲绠卞瓙鏄惁闆剁 + //娣诲姞搴撳瓨绠辨敮淇℃伅 + var databox = new DataBoxInfo + { + StockDetailId = stockDetailInfo.Id, + BindNo = stockBoxInfo.BindNo, + BoxNo = l.BoxNo, + BoxNo2 = l.BoxNo2, + BoxNo3 = l.BoxNo3, + PalletNo = l.PalletNo, + Qty = (int)l.RealQty, + FullQty = stockBoxInfo.FullQty,//婊$鏁伴噺 + Status = "2", + SkuNo = l.SkuNo, + SkuName = l.SkuName, + LotNo = l.LotNo, + LotText = l.LotText, + Standard = l.Standard, + SupplierLot = l.SupplierLot, - InspectMark = stockBoxInfo.InspectMark, - InspectStatus = stockBoxInfo.InspectStatus, - ProductionTime = stockBoxInfo.ProductionTime, - BitBoxMark = boxInfo.bitBoxMark, - }; - Db.Insertable<DataBoxInfo>(databox).ExecuteCommand(); - //搴撳瓨鏄庣粏澧炲姞鏁伴噺 - stockDetailInfo.Qty += (int)l.RealQty; + InspectMark = stockBoxInfo.InspectMark, + InspectStatus = stockBoxInfo.InspectStatus, + ProductionTime = stockBoxInfo.ProductionTime, + BitBoxMark = boxInfo.bitBoxMark, + }; + Db.Insertable<DataBoxInfo>(databox).ExecuteCommand(); + //搴撳瓨鏄庣粏澧炲姞鏁伴噺 + stockDetailInfo.Qty += (int)l.RealQty; + } + else + { + //搴撳瓨鏄庣粏澧炲姞鏁伴噺 + stockDetailInfo.Qty = (int)l.RealQty; + } + stockDetailInfo.Status = "0"; + Db.Updateable(stockDetailInfo).ExecuteCommand(); //搴撳瓨澧炲姞鏁伴噺 var de = stock.First(m => m.SkuNo == l.SkuNo && m.LotNo == l.LotNo); @@ -624,7 +636,15 @@ { throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鐨勪俊鎭�"); } - de.Qty += (int)l.RealQty; + if (sku.Type != "4") + { + de.Qty += (int)l.RealQty; + } + else + { + de.Qty += (int)(l.RealQty - l.Qty); + } + Db.Updateable(de).ExecuteCommand(); } } @@ -636,7 +656,7 @@ if (d.Qty == d.RealQty) { d.CheckResult = 0; - if (demo.Count(m=>m.CheckResult == 1 || m.CheckResult == 2)>0) + if (demo.Count(m => m.CheckResult == 1 || m.CheckResult == 2) > 0) { d.CheckResult = 3; } @@ -650,7 +670,7 @@ d.CheckResult = 1; } Db.Updateable(d).ExecuteCommand(); - + #region 娣诲姞鍒ゆ柇鐩樼偣瀹屾墭鐩樻槸鍚︽槸闆舵墭 var material = materialList.FirstOrDefault(m => m.SkuNo == d.SkuNo); if (material == null) @@ -708,13 +728,13 @@ Db.Updateable(notice).ExecuteCommand(); //娣诲姞鎿嶄綔鏃ュ織璁板綍 var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", notice.CRNo, "璋冩暣鍗曟嵁", $"璋冩暣浜嗗崟鎹彿涓簕notice.CRNo}鐨勭洏鐐瑰崟淇℃伅", userId); - + //鎻愪氦浜嬪姟 Db.CommitTran(); return true; } catch (Exception e) - { + { //鍥炴粴浜嬪姟 Db.RollbackTran(); throw new Exception(e.Message); @@ -868,6 +888,8 @@ //瑕佸嚭搴撶殑鏄庣粏闆嗗悎 var outStockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToList(); var outStockBox = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToList(); + //鑾峰彇鐗╂枡淇℃伅 + var skuNo = Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.Type == "4").Select(a => a.SkuNo).ToList(); var time = DateTime.Now; Db.BeginTran(); try @@ -877,32 +899,63 @@ { if (item.Status == 0) { - var de = outStockDetail.Where(m => - m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo).Select(m => m.Id).ToList(); - var bo = outStockBox.Where(m => de.Contains(m.StockDetailId)).ToList(); var logList = new List<BllStockCheckLog>(); - foreach (var b in bo) + //鍒ゆ柇鏄惁涓烘棤鐮佺墿鏂� + if (skuNo.Contains(item.SkuNo)) { + var de = outStockDetail.First(m => m.IsDel == "0" && + m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo); + var checkLog = new BllStockCheckLog() { CRNo = item.CRNo, PalletNo = item.PalletNo, - BoxNo = b.BoxNo, - BoxNo2 = b.BoxNo2, - BoxNo3 = b.BoxNo3, - Qty = b.Qty, - SkuNo = b.SkuNo, - SkuName = b.SkuName, - Standard = b.Standard, - LotNo = b.LotNo, - LotText = b.LotText, - SupplierLot = b.SupplierLot, + BoxNo = "", + BoxNo2 = "", + BoxNo3 = "", + Qty = (int?)de.Qty, + SkuNo = de.SkuNo, + SkuName = de.SkuName, + Standard = de.Standard, + LotNo = de.LotNo, + LotText = de.LotText, + SupplierLot = de.SupplierLot, CreateUser = userId, CreateTime = time }; logList.Add(checkLog); - } + + } + else + { + var de = outStockDetail.Where(m => + m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo).Select(m => m.Id).ToList(); + var bo = outStockBox.Where(m => de.Contains(m.StockDetailId)).ToList(); + foreach (var b in bo) + { + var checkLog = new BllStockCheckLog() + { + CRNo = item.CRNo, + PalletNo = item.PalletNo, + BoxNo = b.BoxNo, + BoxNo2 = b.BoxNo2, + BoxNo3 = b.BoxNo3, + Qty = b.Qty, + SkuNo = b.SkuNo, + SkuName = b.SkuName, + Standard = b.Standard, + LotNo = b.LotNo, + LotText = b.LotText, + SupplierLot = b.SupplierLot, + + CreateUser = userId, + CreateTime = time + }; + logList.Add(checkLog); + } + } + //鐢熸垚鐩樼偣璁板綍 Db.Insertable(logList).ExecuteCommand(); } @@ -915,10 +968,10 @@ { var de = outStockDetail.First(m => m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo); //鍒ゆ柇鏄惁鏄浂绠卞簱锛屽綋鍓嶆槑缁嗕俊鎭洿鎺ユ洿鏂板嚭搴撳畬鎴� - if (de!= null && de.WareHouseNo=="W02") + if (de != null && de.WareHouseNo == "W02") { //鐩樼偣鏄庣粏鐘舵�佹敼涓哄緟鐩樼偣 - item.Status = 2; + item.Status = 2; Db.Updateable(item).ExecuteCommand(); //鐩樼偣淇℃伅淇敼 if (notice.Status == 0) @@ -985,7 +1038,7 @@ #region 娣诲姞鍑哄簱浠诲姟 var taskNo = new Common().GetMaxNo("TK"); //娣诲姞鍑哄簱浠诲姟 - var exTask = new LogTask + var exTask = new LogTask { TaskNo = taskNo, Sender = "WMS", @@ -1104,22 +1157,22 @@ try { var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss") - response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS"); + //response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS"); //姝e紡鐗堟湰鏀惧紑 var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss") ////瑙f瀽杩斿洖鏁版嵁 - var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); - if (wcsModel.StatusCode == 0) - { - // //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�// - new TaskServer().EditTaskIssueOk(list2, time1, time2); - str += "涓嬪彂鎴愬姛"; - } - if (wcsModel.StatusCode == -1) - { - new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg); - throw new Exception(wcsModel.Msg); - } + //var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); + //if (wcsModel.StatusCode == 0) + //{ + // //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�// + // new TaskServer().EditTaskIssueOk(list2, time1, time2); + //str += "涓嬪彂鎴愬姛"; + //} + //if (wcsModel.StatusCode == -1) + //{ + // new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg); + // throw new Exception(wcsModel.Msg); + //} } catch (Exception ex) { @@ -1383,5 +1436,5 @@ } #endregion - } + } } -- Gitblit v1.8.0