From 3b4538f1ca5a50f1c68a479620276b4db09bd954 Mon Sep 17 00:00:00 2001 From: yuyou_x <2336760928@qq.com> Date: 星期四, 29 二月 2024 14:24:47 +0800 Subject: [PATCH] Merge branch 'yyk' --- Pda/View/HouseDataSetting/stockCheck.html | 98 +++++++++- HTML/views/HouseWithinSetting/StockCheck.html | 2 Wms/Wms/Controllers/PdaCrController.cs | 4 Wms/Model/ModelVm/PdaVm/PdaCrVm.cs | 5 Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs | 204 +++++++++++++++------ Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs | 193 +++++++++++++------- Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 2 Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs | 6 8 files changed, 363 insertions(+), 151 deletions(-) diff --git a/HTML/views/HouseWithinSetting/StockCheck.html b/HTML/views/HouseWithinSetting/StockCheck.html index e05f44d..b1219ad 100644 --- a/HTML/views/HouseWithinSetting/StockCheck.html +++ b/HTML/views/HouseWithinSetting/StockCheck.html @@ -695,7 +695,7 @@ }); }); } else if (obj.event === 'finish') {//鐢熸垚璋冩暣鍗� - layer.confirm('纭畾瀹屾垚姝ゅ崟鎹悧锛�', function(index) { + layer.confirm('纭畾璋冩暣搴撳瓨鍚楋紵', function(index) { var param = { Id: parseInt(Id), Origin:data.Origin diff --git a/Pda/View/HouseDataSetting/stockCheck.html b/Pda/View/HouseDataSetting/stockCheck.html index 387d64c..4077e1a 100644 --- a/Pda/View/HouseDataSetting/stockCheck.html +++ b/Pda/View/HouseDataSetting/stockCheck.html @@ -168,6 +168,9 @@ word-break: break-all; word-wrap: break-word; } + .layui-form-switch { + margin-top: 0; + } </style> <link rel="stylesheet" href="/css/adapter.css" /> </head> @@ -218,9 +221,16 @@ autocomplete="off" class="layui-input"> </div> </div> - + <div class="layout-tab-page"> - <div class="layui-form-item layout-input" style="margin-top: 10px;"> + <div id="" class="layui-form-item layout-input" > + <label class="layui-form-label">鏄惁鏁伴噺鐩樼偣锛�</label> + <div class="layui-input-block" style="position: absolute;top: 100;"> + <input type="checkbox" name="IsZhengTuo" id="IsZhengTuo" lay-skin="switch" lay-text="鏄瘄鍚�" + lay-filter="IsZhengTuo" class="layui-input" > + </div> + </div> + <div id="boxno1" class="layui-form-item layout-input" style="margin-top: 10px;"> <label class="layui-form-label">绠辩爜锛�</label> <div class="layui-input-block"> <input id="boxNo" type="text" lay-verify="boxNo" placeholder="璇锋壂鎻忓绠辨潯鐮�" @@ -276,13 +286,13 @@ </form> </div> - <div id="" class="layout-tbl-paging"> + <div id="tableid" class="layout-tbl-paging"> <table id="tableBoxList" class="tbl-box-list" border="" cellspacing="" cellpadding=""> <tr> - <th style="width: 40%;">绠辩爜</th> - <th style="width: 30%;">鏀爜</th> - <th style="width: 15%;">绠卞唴鏁伴噺</th> - <th style="width: 15%;">缁撴灉</th> + <th style="width: 40%;"><p id="a">绠辩爜</p></th> + <th style="width: 30%;"><p id="b">鏀爜</p></th> + <th style="width: 15%;"><p id="c">绠卞唴鏁伴噺</p></th> + <th style="width: 15%;"><p id="d">缁撴灉</p></th> </tr> <tr id="boxCell" style="display: none;"> <td name="boxNo"></td> @@ -310,6 +320,51 @@ var canPickBox = true; $("#palletNo").focus(); + //鏄惁鏁伴噺鐩樼偣 + var isContinue = "0"; + + form.on('switch(IsZhengTuo)', function (obj) { + $("#a").html(''); + $("#b").html(''); + $("#c").html(''); + + if (obj.elem.checked) { + $('#boxno1').attr("style", "display:none") + $('#boxno3').attr("style", "display:none") + isContinue="1"; + + $("#a").html('鐗╂枡缂栫爜'); + $("#b").html('鎵樼洏鏉$爜'); + $("#c").html('鎵樼洏鏁伴噺'); + + } else { + $('#boxno1').attr("style", "display:block") + $('#boxno3').attr("style", "display:block") + isContinue="0"; + + $("#a").html('绠辩爜'); + $("#b").html('鏀爜'); + $("#c").html('绠卞唴鏁伴噺'); + + if ($("#Result").val() != "0") { + $('#boxno3').addClass("show"); + $('#boxno3').removeClass("noshow"); + }else{ + $('#boxno3').addClass("noshow"); + $('#boxno3').removeClass("show"); + } + if($("#Result").val() == "2"){ + $('#factNum').removeAttr("disabled"); + } + else{ + $('#factNum').attr("disabled","disabled"); + } + } + $('#boxNo').val(""); + $('#boxNo3').val(""); + refreshTable() + checkPalletState() + }); $("#menuImg").click(function (e) { //console.log("menuImg") @@ -326,7 +381,7 @@ $("#menuList").hide() }) - // //褰撴墭鐩樻潯鐮佽緭鍏ユ澶卞幓鐒︾偣鏃�,妫�鏌ヤ竴涓嬫墭鐩樼姸鎬� + //褰撴墭鐩樻潯鐮佽緭鍏ユ澶卞幓鐒︾偣鏃�,妫�鏌ヤ竴涓嬫墭鐩樼姸鎬� // $("#palletNo").blur(function () { // //console.log("0000000000000") // if ($("#palletNo").val() == "") { @@ -447,7 +502,9 @@ "CrDetail": $("#skuLotNo").val(), "PalletNo": $("#palletNo").val(), "BoxNo": $("#boxNo").val(), + "isContinue": isContinue, } + console.log(param) synData(IP + "/PdaCr/GetStockCheckLogList", param, 'post', function (res) { console.log(res) if (res.code == 0) { //鎴愬姛 @@ -482,7 +539,7 @@ }, function () { }); return } - if ($("#Result").val() == "2") { + if ($("#Result").val() == "2" && isContinue == "0") { if ($("#boxNo").val() == "" ||$("#boxNo3").val() == "") { layer.msg("璇锋壂鎻忓绠辨潯鐮佸拰鏀爜", { icon: 2, @@ -509,6 +566,7 @@ "BoxNo3": $("#boxNo3").val(), "Result": $("#Result").val(), "Qty": parseInt($("#factNum").val()), + "isContinue": isContinue, } sendData(IP + "/PdaCr/CrSetCheck", param, 'post', function (res) { @@ -523,6 +581,7 @@ $("#boxNo3").val('') $("#Result").val('0') refreshTable() + GetOutInfo() canPickBox = true }); @@ -551,10 +610,10 @@ $('#boxno3').addClass("noshow"); $('#boxno3').removeClass("show"); } - if(data.value == "2"){ + if(data.value == "2" || isContinue == "1"){ $('#factNum').removeAttr("disabled"); } - else{ + else if(isContinue != "1"){ $('#factNum').attr("disabled","disabled"); } $('#boxNo3').val(""); @@ -574,7 +633,7 @@ } - if (data.length > 0) { //鎴愬姛 + if (data.length > 0 || isContinue == "1") { //鎴愬姛 $("#boxNum").val(data.length) var list = data var arrTrs = new Array() @@ -586,9 +645,18 @@ tr.appendTo("#tableBoxList"); idx++; tr.attr('index', idx) - tr.find("td[name='boxNo']").html(list[i].BoxNo); - tr.find("td[name='boxNo3']").html(list[i].BoxNo3); + //鍒ゆ柇鏄惁涓烘暟閲� + if(isContinue == "1") + { + tr.find("td[name='boxNo']").html(list[i].SkuNo); + tr.find("td[name='boxNo3']").html(list[i].PalletNo); + } + else{ + tr.find("td[name='boxNo']").html(list[i].BoxNo); + tr.find("td[name='boxNo3']").html(list[i].BoxNo3); + } tr.find("td[name='qty']").html(list[i].Qty); + var CheckResultStr=''; if(list[i].CheckResult=='0'){ @@ -599,6 +667,8 @@ CheckResultStr='鐩樼泩'; }else if(list[i].CheckResult=='3'){ CheckResultStr='瀹炵墿涓嶇'; + }else if(list[i].CheckResult=='4'){ + CheckResultStr='鏁伴噺鐩樼偣'; } tr.find("td[name='result']").html(CheckResultStr); diff --git a/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs b/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs index d0d9661..5c3e3cb 100644 --- a/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs +++ b/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs @@ -36,6 +36,11 @@ /// </summary> public string Result { get; set; } + /// <summary> + /// 鏄惁鏁伴噺鐩樼偣 + /// </summary> + public string isContinue { get; set; } + } public class PdaPalletCheckVm 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 - } + } } diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs index b350535..b0ba6db 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs @@ -1827,7 +1827,7 @@ throw new Exception("璇ユ墭鐩樻湭鍦ㄥ簱澶栵紝璇锋牳瀹烇紒"); } // 楠岃瘉鍏ュ簱鍗曟槑缁嗘槸鍚﹀瓨鍦� - var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && m.LotNo.Contains(model.LotNo)); + var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && model.LotNo.Contains(m.LotNo)); if (detail == null) { throw new Exception("-1:褰撳墠鐗╂枡鍙婃壒娆′笌鍗曟嵁鏃犲叧鑱旓紝璇锋牳瀹�!"); diff --git a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs index e01b252..4bb15cd 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs @@ -83,7 +83,7 @@ } //鑾峰彇瑕佺洏鐐圭殑绠辩爜淇℃伅锛堢洏鐐硅褰曚腑鏁版嵁锛� - public List<StockCheckLogDto> GetStockCheckLogList(string crNo, string crDetail, string palletNo, string boxNo) + public List<StockCheckLogDto> GetStockCheckLogList(string crNo, string crDetail, string palletNo, string boxNo, string isContinue) { try { @@ -102,6 +102,18 @@ var detail = crDetail.Split("-"); var sku = detail[0]; + //鍒ゆ柇鏄惁涓烘棤鐮佺墿鏂� + var skuinfo = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == sku); + //鍒ゆ柇鏄惁瀛樺湪鐗╂枡娑堟伅 + if (skuinfo == null) + { + throw new Exception("鎵樼洏鐮佷笉鑳戒负绌�"); + } + int isQtySku = 0; + if (skuinfo.Type == "4" && isContinue == "1") + { + isQtySku = 1; + } var lotNo = detail[1]; var list = Db.Queryable<BllStockCheckLog>().Where(m => m.IsDel == "0" && m.CRNo == crNo); //var deList= Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && m.SkuNo == sku && m.LotNo == lotNo && m.PalletNo == palletNo); @@ -109,25 +121,47 @@ //{ // throw new Exception("鏈煡璇㈠埌鎵樼洏涓婄殑鐩樼偣鐗╂枡鎵规淇℃伅"); //} - list = list.Where(m => m.SkuNo == sku && m.LotNo == lotNo && m.PalletNo == palletNo); if (!string.IsNullOrWhiteSpace(boxNo)) { list = list.Where(m => m.BoxNo == boxNo); } - - var data = list.Select(m => new StockCheckLogDto() + List<StockCheckLogDto> data = new List<StockCheckLogDto>(); + //鍒ゆ柇鏄惁涓烘棤鐮佺墿鏂� + if (isQtySku == 1) { - BoxNo = m.BoxNo, - BoxNo3 = m.BoxNo3, - SkuNo = m.SkuNo, - SkuName = m.SkuName, - LotNo = m.LotNo, - Qty = m.Qty, - CheckResult = m.CheckResult, + //鑾峰彇搴撳瓨淇℃伅 + var stockDetail = Db.Queryable<DataStockDetail>().First(a => a.IsDel == "0" && a.Status == "3" && a.SkuNo == sku && a.PalletNo == palletNo); - }).ToList(); + var model = new StockCheckLogDto() + { + PalletNo = palletNo, + SkuNo = sku, + Qty = (int?)stockDetail.Qty, + CheckResult = 4, + }; + + data.Add(model); + + } + else + { + data = list.Select(m => new StockCheckLogDto() + { + BoxNo = m.BoxNo, + BoxNo3 = m.BoxNo3, + SkuNo = m.SkuNo, + SkuName = m.SkuName, + LotNo = m.LotNo, + Qty = m.Qty, + CheckResult = m.CheckResult, + + }).ToList(); + + } + return data; + } catch (Exception e) { @@ -135,7 +169,7 @@ } } - public void CrSetCheck(string crNo, string crDetail, string palletNo, string boxNo, string boxNo3, string result, int? qty, int userId) + public void CrSetCheck(string crNo, string crDetail, string palletNo, string boxNo, string boxNo3, string result, int? qty, string isContinue, int userId) { try { @@ -165,8 +199,8 @@ //鐩樼偣璁板綍 var checkLog = Db.Queryable<BllStockCheckLog>().Where(m => m.IsDel == "0" && m.CRNo == crNo && m.PalletNo == palletNo && m.SkuNo == sku && m.LotNo == lotNo && m.CheckResult == null); - var time = DateTime.Now; + //姝e父 if (result == "0") { if (!string.IsNullOrWhiteSpace(boxNo)) @@ -178,7 +212,7 @@ checkLog = checkLog.Where(m => m.BoxNo3 == boxNo3); } - if (checkLog.Count() == 0) + if (checkLog.Count() == 0 && isContinue == "0") { throw new Exception("鏈煡璇㈠埌鏈洏鐐圭殑绠辨敮淇℃伅"); } @@ -189,7 +223,7 @@ { if (l.CheckResult != null) { - continue; + continue; } l.RealQty = l.Qty; l.CheckResult = 0; @@ -204,6 +238,7 @@ checkDetail.RealQty = 0; } checkDetail.RealQty += num; + checkDetail.CheckResult = 0; //if (checkDetail.CheckResult == null || checkDetail.CheckResult == 0) //{ // checkDetail.CheckResult = 0; @@ -211,6 +246,7 @@ Db.Updateable(checkDetail).ExecuteCommand(); Db.Updateable(list).ExecuteCommand(); } + //鐩樹簭 else if (result == "1") { if (!string.IsNullOrWhiteSpace(boxNo)) @@ -222,10 +258,20 @@ checkLog = checkLog.Where(m => m.BoxNo3 == boxNo3); } - if (checkLog.Count() == 0) + if (checkLog.Count() == 0 && isContinue == "0") { throw new Exception("鏈煡璇㈠埌绠辨敮淇℃伅"); } + + // + if (isContinue == "1") + { + if (qty == null || qty <= 0) + { + throw new Exception("鏁伴噺鐩樼偣鏃躲�佺洏浜忔暟閲忎笉鑳戒负绌轰笖闇�澶т簬0"); + } + } + var list = checkLog.ToList(); var num = 0; @@ -242,64 +288,100 @@ checkDetail.RealQty = 0; } checkDetail.RealQty += num; - //checkDetail.CheckResult = 1; + if (isContinue == "1") + { + checkDetail.RealQty = qty; + } + checkDetail.CheckResult = 1; Db.Updateable(checkDetail).ExecuteCommand(); Db.Updateable(list).ExecuteCommand(); } + //鐩樼泩 else if (result == "2") { - if (string.IsNullOrWhiteSpace(boxNo) || string.IsNullOrWhiteSpace(boxNo3)) + if (isContinue == "0") { - throw new Exception("鐩樼泩鏃剁鐮佷笌鏀爜涓嶈兘涓虹┖"); + if (string.IsNullOrWhiteSpace(boxNo) || string.IsNullOrWhiteSpace(boxNo3)) + { + throw new Exception("鐩樼泩鏃剁鐮佷笌鏀爜涓嶈兘涓虹┖"); + } } - if (qty == null || qty <= 0) { throw new Exception("鐩樼泩鏃舵暟閲忎笉鑳戒负绌轰笖闇�澶т簬0"); } - - var count = Db.Queryable<DataBoxInfo>() - .Count(m => m.IsDel == "0" && m.BoxNo == boxNo && m.BoxNo3 == boxNo3); - var count2 = Db.Queryable<BllStockCheckLog>() - .Count(m => m.IsDel == "0" && m.BoxNo == boxNo && m.BoxNo3 == boxNo3); - if (count > 0 || count2 > 0) + if (isContinue == "0") { - throw new Exception("褰撳墠搴撳瓨涓凡瀛樺湪璇ョ鏀俊鎭�"); + var count = Db.Queryable<DataBoxInfo>() + .Count(m => m.IsDel == "0" && m.BoxNo == boxNo && m.BoxNo3 == boxNo3); + var count2 = Db.Queryable<BllStockCheckLog>() + .Count(m => m.IsDel == "0" && m.BoxNo == boxNo && m.BoxNo3 == boxNo3); + if (count > 0 || count2 > 0) + { + throw new Exception("褰撳墠搴撳瓨涓凡瀛樺湪璇ョ鏀俊鎭�"); + } } - var crLog = new BllStockCheckLog() + BllStockCheckLog crLog = new BllStockCheckLog(); + if (isContinue == "0") { - CRNo = crNo, - PalletNo = palletNo, - BoxNo = boxNo, - BoxNo2 = null, - BoxNo3 = boxNo3, - Qty = qty, - SkuNo = checkDetail.SkuNo, - SkuName = checkDetail.SkuName, - Standard = checkDetail.Standard, - LotNo = checkDetail.LotNo, - LotText = checkDetail.LotText, - SupplierLot = checkDetail.SupplierLot, + crLog = new BllStockCheckLog() + { + CRNo = crNo, + PalletNo = palletNo, + BoxNo = boxNo, + BoxNo2 = null, + BoxNo3 = boxNo3, + Qty = qty, + SkuNo = checkDetail.SkuNo, + SkuName = checkDetail.SkuName, + Standard = checkDetail.Standard, + LotNo = checkDetail.LotNo, + LotText = checkDetail.LotText, + SupplierLot = checkDetail.SupplierLot, - RealQty = qty, - CheckResult = 2, - CheckDate = time, - CheckUserId = userId, + RealQty = qty, + CheckResult = 2, + CheckDate = time, + CheckUserId = userId, - CreateUser = userId, - CreateTime = time - }; - if (checkDetail.RealQty == null) + CreateUser = userId, + CreateTime = time + }; + } + else + { + var checkInfo = Db.Queryable<BllStockCheckLog>().First(m => + m.IsDel == "0" && m.CRNo == crNo && m.PalletNo == palletNo && m.SkuNo == sku && m.LotNo == lotNo); + checkInfo.RealQty = qty; + checkInfo.CheckResult = 2; + + checkInfo.CheckUserId = userId; + checkInfo.CheckDate = time; + + checkInfo.UpdateUser = userId; + checkInfo.UpdateTime = time; + Db.Updateable(checkInfo).ExecuteCommand(); + } + + if (checkDetail.RealQty == null && isContinue == "0") { checkDetail.RealQty = 0; } checkDetail.RealQty += qty; - //checkDetail.CheckResult = 1; + if (isContinue == "1") + { + checkDetail.RealQty = qty; + } + checkDetail.CheckResult = 2; Db.Updateable(checkDetail).ExecuteCommand(); - Db.Insertable(crLog).ExecuteCommand(); + if (isContinue == "0") + { + Db.Insertable(crLog).ExecuteCommand(); + } } else { + Db.RollbackTran(); throw new Exception("鐩樼偣缁撴灉涓嶇锛岃鏍稿疄锛�"); } var checkLogNum = Db.Queryable<BllStockCheckLog>().Where(m => m.IsDel == "0" && m.CRNo == crNo && m.PalletNo == palletNo && m.SkuNo == sku && m.LotNo == lotNo); @@ -352,7 +434,7 @@ { str += " and PalletNo like @palletno"; } - + //鎺掑簭 str += " order by LotNo,LocatNo,PalletNo"; List<DataStockDetail> stockList = Db.Ado.SqlQuery<DataStockDetail>(str, new @@ -377,7 +459,7 @@ { throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�"); } - var detail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).Select(m=>m.Id).ToList(); + var detail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).Select(m => m.Id).ToList(); var info = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && detail.Contains(m.StockDetailId)) .GroupBy(m => m.BoxNo).Select(a => new PdaPalletNoCheckDto { @@ -386,7 +468,7 @@ }).ToList(); return info; } - catch(Exception e) + catch (Exception e) { throw new Exception(e.Message); } @@ -401,9 +483,9 @@ { throw new Exception("绠辩爜涓嶈兘涓虹┖"); } - + var info = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo) - .GroupBy(m => new{m.BoxNo,m.SkuNo,m.SkuName,m.LotNo}).Select(a => new PdaPalletNoCheckDto + .GroupBy(m => new { m.BoxNo, m.SkuNo, m.SkuName, m.LotNo }).Select(a => new PdaPalletNoCheckDto { BoxNo = a.BoxNo, SkuNo = a.SkuNo, @@ -411,7 +493,7 @@ LotNo = a.LotNo, Qty = SqlFunc.AggregateSum(a.Qty) }).ToList(); - if (info.Count>1) + if (info.Count > 1) { throw new Exception("褰撳墠绠辩爜鏌ヨ鍑哄鏉$墿鏂欐垨鎵规淇℃伅锛岃鏍稿疄"); } @@ -425,7 +507,7 @@ } //瑙g粦鍘熸墭鐩樼粦瀹氭柊鎵樼洏 - public void SaveUnbind(string palletNo,string boxNo,string palletNoNew,int userId) + public void SaveUnbind(string palletNo, string boxNo, string palletNoNew, int userId) { try { @@ -450,7 +532,7 @@ throw new Exception("鍘熸墭鐩樹笂鏈煡鍒扮鏀槑缁嗭紝璇锋牳瀹�"); } //搴撳瓨鏄庣粏id - var infoIds = infos.GroupBy(m => m.StockDetailId).Select(a =>a.StockDetailId).ToList(); + var infoIds = infos.GroupBy(m => m.StockDetailId).Select(a => a.StockDetailId).ToList(); if (infoIds.Count == 0) { throw new Exception("鏈煡璇㈠埌褰撳墠绠辩爜淇℃伅锛岃鏍稿疄"); @@ -485,7 +567,7 @@ } } } - } + } #endregion } if (!newPalletHaveGoods)//鏂版墭鐩樹笂娌℃湁鐗╁搧 @@ -520,7 +602,7 @@ } var stockDetail2 = stockDetailList.FirstOrDefault(w => w.SkuNo == stockDetail1.SkuNo && w.LotNo == stockDetail1.LotNo); - var stId = 0; + var stId = 0; if (stockDetail2 == null) //娣诲姞-鏂版墭鐩樹笂娌℃湁鍚岀墿鏂欏悓鎵规鐗╁搧 { //鏂版墭鐩樻坊鍔犲簱瀛樻槑缁� diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs index 73083ca..021aec0 100644 --- a/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs +++ b/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs @@ -34,8 +34,9 @@ /// <param name="crDetail">鐩樼偣鏄庣粏ID 鐗╂枡-鎵规</param> /// <param name="palletNo">鎵樼洏鍙�</param> /// <param name="boxNo">绠辩爜鍙�</param> + /// <param name="isContinue">鏄惁鏁伴噺鐩樼偣</param> /// <returns></returns> - List<StockCheckLogDto> GetStockCheckLogList(string crNo, string crDetail,string palletNo,string boxNo); + List<StockCheckLogDto> GetStockCheckLogList(string crNo, string crDetail,string palletNo,string boxNo,string isContinue); /// <summary> /// 鐩樼偣搴撳瓨 @@ -47,8 +48,9 @@ /// <param name="boxNo3">鏀爜</param> /// <param name="result">缁撴灉</param> /// <param name="qty">鏁伴噺</param> + /// <param name="isContinue">鏄惁鏁伴噺鐩樼偣</param> /// <param name="userId"></param> - void CrSetCheck(string crNo, string crDetail, string palletNo, string boxNo,string boxNo3,string result, int? qty,int userId); + void CrSetCheck(string crNo, string crDetail, string palletNo, string boxNo,string boxNo3,string result, int? qty,string isContinue, int userId); #endregion diff --git a/Wms/Wms/Controllers/PdaCrController.cs b/Wms/Wms/Controllers/PdaCrController.cs index 8704a51..b4f542b 100644 --- a/Wms/Wms/Controllers/PdaCrController.cs +++ b/Wms/Wms/Controllers/PdaCrController.cs @@ -77,7 +77,7 @@ { try { - var list = _pdaCrSvc.GetStockCheckLogList(model.CrNo, model.CrDetail, model.PalletNo, model.BoxNo); + var list = _pdaCrSvc.GetStockCheckLogList(model.CrNo, model.CrDetail, model.PalletNo, model.BoxNo,model.isContinue); return Ok(new { code = 0, msg = "瑕佺洏鐐圭殑绠辩爜淇℃伅", data = list }); } @@ -109,7 +109,7 @@ return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" }); } - _pdaCrSvc.CrSetCheck(model.CrNo, model.CrDetail, model.PalletNo, model.BoxNo, model.BoxNo3, model.Result, model.Qty, int.Parse(userId)); + _pdaCrSvc.CrSetCheck(model.CrNo, model.CrDetail, model.PalletNo, model.BoxNo, model.BoxNo3, model.Result, model.Qty,model.isContinue, int.Parse(userId)); return Ok(new { code = 0, msg = "鐩樼偣瀹屾垚", data = "" }); } -- Gitblit v1.8.0