From ac85f1b3f6ca3b530cb75e26e77f5ac18924a2ec Mon Sep 17 00:00:00 2001 From: bklLiudl <673013083@qq.com> Date: 星期五, 27 六月 2025 14:59:56 +0800 Subject: [PATCH] 编写车间出库-数量 --- Wms/Wms/Controllers/PdaSoController.cs | 22 +++++ Pda/View/SoSetting/WorkshopOut.html | 19 +--- Wms/Model/ModelVm/PdaVm/PdaSoVm.cs | 14 +++ Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 136 ++++++++++++++++++++++++++++++++++ Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs | 9 ++ 5 files changed, 187 insertions(+), 13 deletions(-) diff --git a/Pda/View/SoSetting/WorkshopOut.html b/Pda/View/SoSetting/WorkshopOut.html index 54eb6c7..5ef004e 100644 --- a/Pda/View/SoSetting/WorkshopOut.html +++ b/Pda/View/SoSetting/WorkshopOut.html @@ -287,7 +287,7 @@ /* 鏍囩鍒囨崲浠g爜 */ $('#demodiv').hide(); $('#demodiv1').hide(); - var xianshiyemian = 0; + var xianshiyemian = 0; // 0锛氭爣绛� 1锛氭暟閲� $('#option1').attr("style", "background-color: red;width: 50%;float: left;text-align: center;"); //閫変腑鍚庨鑹� $('#option2').attr("style", "background-color: #999;width: 50%;float: right;text-align: center;"); //榛樿棰滆壊 @@ -461,7 +461,7 @@ BoxNo: $("#BoxCode").val(), TableType: xianshiyemian, } - //缁勭洏 + // 鍑哄簱 sendData(IP + "/PdaSo/ChejianPick", param, 'post', function (res) { if (res.code == 0) { //鎴愬姛 layer.msg(res.msg, { @@ -484,13 +484,6 @@ }); } else if (xianshiyemian == 1) { - if ($("#bar1").val() == "") { - layer.msg('璇烽�夋嫨鍏ュ簱鍗�', { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); - return; - } if ($("#SkuNo").val() == "") { layer.msg('璇疯緭鍏ョ墿鏂�', { icon: 2, @@ -509,13 +502,13 @@ PalletNo: $("#PalletNo2").val(), SkuNo: $("#SkuNo").val(), LotNo: $("#LotNo2").val(), - SkuQty: parseFloat($("#SkuQty2").val()), //鐗╂枡鏁伴噺 - AreaNo: $("#area").val(), + PickQty: $("#SkuQty2").val(), //鐗╂枡鏁伴噺parseFloat() + AreaNo: $("#area2").val(), TableType: xianshiyemian, } console.log(param) - //缁勭洏 - sendData(IP + "/PdaAsn/ChejianIn", param, 'post', function (res) { + // 鏁伴噺鏍囩 鍑哄簱鍑芥暟 + sendData(IP + "/PdaSo/ChejianPickNum", param, 'post', function (res) { if (res.code == 0) { //鎴愬姛 layer.msg(res.msg, { icon: 1, diff --git a/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs b/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs index 76576ff..18f1ee8 100644 --- a/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs +++ b/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs @@ -15,6 +15,20 @@ public string PalletNo { get; set; } /// <summary> + /// 鐗╂枡缂栫爜 + /// </summary> + public string SkuNo { get; set; } + /// <summary> + /// 杞﹂棿 + /// </summary> + public string AreaNo { get; set; } + + /// <summary> + /// 鎵规鍙� + /// </summary> + public string LotNo { get; set; } + + /// <summary> /// 鏂版墭鐩樼爜 /// </summary> public string PalletNoNew { get; set; } diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index b76f141..cd662cb 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs @@ -1596,6 +1596,142 @@ } } + // 杞﹂棿Pda鎷h揣-鏁伴噺 + public async Task ChejianPickNum(PdaSoVm model, int userId) + { + Db.BeginTran(); + try + { + #region 鍒ゆ柇 + + if (string.IsNullOrWhiteSpace(model.PalletNo)) + { + throw Oops.Bah("鎵樼洏鐮佷笉鑳戒负绌�"); + } + if (string.IsNullOrWhiteSpace(model.SkuNo)) + { + throw Oops.Bah("鐗╂枡缂栫爜涓嶈兘涓虹┖"); + } + + decimal skuNum = 0; + if (string.IsNullOrEmpty(model.PickQty)) + { + throw Oops.Bah("鐗╂枡鏁伴噺涓嶅彲涓簄ull"); + } + else + { + skuNum = decimal.Parse(model.PickQty); + if (skuNum <= 0) + { + throw Oops.Bah("鐗╂枡鏁伴噺搴斿ぇ浜�0锛�"); + } + } + + // 鍒ゆ柇鏄惁璐存爣鐗╂枡 + var skuModel = await Db.Queryable<SysMaterials>().FirstAsync(m => m.IsDel == "0" && m.SkuNo == model.SkuNo); + if (skuModel == null) + { + throw Oops.Bah("鐗╂枡涓嶅瓨鍦紝璇锋鏌ョ墿鏂欑紪鐮佹槸鍚︽嫰鍗达紒"); + } + else + { + if (skuModel.IsPasteCode != "0") + { + throw Oops.Bah("璇ョ墿鏂欎负璐存爣鐗╂枡锛岃鍒版爣绛鹃〉闈㈡嫞璐э紒"); + } + } + + + //搴撳瓨鏄庣粏 + var stockDetail = await Db.Queryable<DataStockDetail>() + .FirstAsync(m => m.IsDel == "0" && m.PalletNo == model.PalletNo + && m.SkuNo == model.SkuNo && m.LotNo == model.LotNo); + if (stockDetail == null) + { + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樹笂璐х墿鐨勫簱瀛樻槑缁嗕俊鎭紒"); + } + + // 楠岃瘉鏄惁杞﹂棿绾胯竟浠撳簱 + var areaList = new List<string>() { "B06", "B07", "B09" }; + if (!areaList.Contains(stockDetail.AreaNo)) + { + throw Oops.Bah("鎵樼洏涓嶆槸杞﹂棿鎵樼洏锛�"); + } + + //搴撳瓨鎬昏〃 + var stock = await Db.Queryable<DataStock>() + .FirstAsync(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo); + if (stock == null) + { + throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樹笂璐х墿鐨勫簱瀛樹俊鎭紒"); + } + #endregion + + var pickQty = skuNum; + + //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� + stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇� + stockDetail.Qty -= pickQty; + if (stockDetail.Qty == stockDetail.LockQty) + { + stockDetail.Status = "2"; + } + else if (stockDetail.Qty > stockDetail.LockQty && stockDetail.LockQty > 0) + { + stockDetail.Status = "1"; + } + else + { + stockDetail.Status = "0"; + } + + if (stockDetail.Qty <= 0) + { + await Db.Deleteable(stockDetail).ExecuteCommandAsync(); + } + else + { + await Db.Updateable(stockDetail).ExecuteCommandAsync(); + } + stock.Qty -= pickQty; + if (stock.Qty <= 0) + { + await Db.Deleteable(stock).ExecuteCommandAsync(); + } + else + { + await Db.Updateable(stock).ExecuteCommandAsync(); + } + + var num2 = await Db.Queryable<DataStockDetail>().CountAsync(m => m.IsDel == "0" && m.PalletNo == model.PalletNo); + if (num2 <= 0) + { + //鏀瑰彉鎵樼洏鐘舵�� + var pallet = await Db.Queryable<SysPallets>().FirstAsync(m => m.PalletNo == model.PalletNo && m.IsDel == "0"); + if (pallet == null) + { + throw Oops.Bah("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�"); + } + pallet.Status = "0"; + await Db.Updateable(pallet).ExecuteCommandAsync(); + } + + //娣诲姞鎿嶄綔鏃ュ織璁板綍 + var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "杞﹂棿鍑哄簱", + skuModel.SkuName, "鎷h揣", $"鍦≒DA杞﹂棿鍑哄簱椤典笂瀵癸細锛歿skuModel.SkuName}鐨勭墿鏂欒繘琛屾嫞璐ф搷浣�", userId); + Db.CommitTran(); + } + catch (AppFriendlyException e) + { + Db.RollbackTran(); + } + catch (Exception e) + { + Db.RollbackTran(); + throw new Exception(e.Message); + } + } + /// <summary> /// 鏍规嵁绠辩爜鑾峰彇鏍囩绠辩爜淇℃伅锛堣溅闂村叆搴�-鑾峰彇WMS鐢熸垚鐨勭淇℃伅锛� /// </summary> diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs index 1ec35da..486d8e6 100644 --- a/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs +++ b/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs @@ -39,6 +39,15 @@ Task ChejianPick(string palletNo, string boxNo, int userId); + + /// <summary> + /// 杞﹂棿鎸夊嚭搴� 鎸夋暟閲� + /// </summary> + /// <param name="palletNo"></param> + /// <param name="boxNo"></param> + /// <param name="userId"></param> + /// <returns></returns> + Task ChejianPickNum(PdaSoVm model, int userId); List<BoxInfoDto> GetWmsBoxInfos(string boxNo); diff --git a/Wms/Wms/Controllers/PdaSoController.cs b/Wms/Wms/Controllers/PdaSoController.cs index dca3e5d..77e01ba 100644 --- a/Wms/Wms/Controllers/PdaSoController.cs +++ b/Wms/Wms/Controllers/PdaSoController.cs @@ -326,9 +326,31 @@ [HttpPost] public async Task ChejianPick(PdaSoVm model) { + if (_userManager.UserId == 0) + { + throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅"); + } + await _pdaSoSvc.ChejianPick(model.PalletNo, model.BoxNo, _userManager.UserId); } + /// <summary> + /// 杞﹂棿Pda鍑哄簱-鏁伴噺 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + [HttpPost] + public async Task ChejianPickNum(PdaSoVm model) + { + if (_userManager.UserId == 0) + { + throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅"); + } + + await _pdaSoSvc.ChejianPickNum(model, _userManager.UserId); + } + #endregion #region JC23鐗堝彇鏍� -- Gitblit v1.8.0