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