From cbf4a8f42cd0d7e4ff994ee7f9b9e9c33b9c39c8 Mon Sep 17 00:00:00 2001
From: Demo <Demo@DESKTOP-CPA90BF>
Date: 星期三, 13 三月 2024 19:32:29 +0800
Subject: [PATCH] PDA取样出库拣货
---
Wms/Wms/Controllers/PdaSoController.cs | 31 ++++
Wms/Model/ModelVm/PdaVm/PdaSoVm.cs | 6
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 173 +++++++++++++++++-------
Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs | 15 ++
Pda/View/SoSetting/SampleOut.html | 162 ++++++++++++----------
5 files changed, 257 insertions(+), 130 deletions(-)
diff --git a/Pda/View/SoSetting/SampleOut.html b/Pda/View/SoSetting/SampleOut.html
index e54a94e..b223c7e 100644
--- a/Pda/View/SoSetting/SampleOut.html
+++ b/Pda/View/SoSetting/SampleOut.html
@@ -549,8 +549,9 @@
var form = layui.form;
/* 鏍囩鍒囨崲浠g爜 */
-
var xianshiyemian = 0;
+ /* 鏍囩鍒囨崲浠g爜 */
+ var sampleType = ""; //0 搴撳唴鍙栨牱锛� 1 搴撳墠鍙栨牱
$('#kuneilabel').hide();
$('#kuqianlabel').hide();
@@ -655,6 +656,17 @@
$('#kuneilabel').show();
$('#kuneiQty').show();
$('#kuqianlabel').hide();
+ updateBillList();
+ if ($('#bar').val() == "") {
+ clear1();
+ return;
+ } else {
+ updateSkuLotNoList();
+ updateQtyList();
+ getBar();
+ GetBoxInfo();
+ }
+ sampleType = 0;
}
if (res.data == "1") {//搴撳墠鍙栨牱
$('#kuqianlabel').show();
@@ -662,17 +674,10 @@
$('#kuneiQty').hide();
updateAsnBillList();
+ GetBoxInfo();
+ sampleType = 1;
}
- // updateBillList();
- // if ($('#bar').val() == "") {
- // clear1();
- // return;
- // } else {
- // updateSkuLotNoList();
- // updateQtyList();
- // getBar();
- // GetBoxInfo();
- // }
+
}else { //涓嶆垚鍔�
layer.msg(res.msg, {
icon: 2,
@@ -941,73 +946,78 @@
//鍗曟嫞璐э紙纭鎸夐挳锛�
form.on('submit(formPickScatter)', function (data) {
- if ($('#bar').val() == "") {
- layer.msg("璇烽�夋嫨鍑哄簱鍗�", {
- icon: 2,
- time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
- }); return;
- }
- if ($('#bar').val() == "") {
- layer.msg("璇烽�夋嫨鐗╂枡-鎵规", {
- icon: 2,
- time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
- }); return;
- }
- if ($('#palletNo').val() == "") {
- layer.msg("璇疯緭鍏ユ墭鐩樼爜", {
- icon: 2,
- time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
- }); return;
- }
- if(isContinue=="0"){
- if ($('#boxNo').val() == "") {
- layer.msg("璇疯緭鍏ョ鐮�", {
- icon: 2,
- time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
- }); return;
- }
- if ($('#boxQty').val() == "") {
- layer.msg("绠卞唴鏁伴噺涓虹┖锛屼笉鑳芥嫞璐�", {
- icon: 2,
- time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
- });
- return;
- }
- if(($('#boxNo3').val() != "" && ($('#pickQty1').val() != "" || $('#pickQty1').val() != 0))){
- layer.msg("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏ワ紒", {
- icon: 2,
- time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
- });
- return;
- }
- if($('#pickQty1').val() != "" && $('#pickQty1').val()>parseInt($('#pickQty').val())){
- layer.msg("鎷h揣鏁伴噺涓嶈兘澶т簬寰呮嫞鏁伴噺锛�", {
- icon: 2,
- time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
- });
- return;
- }
- }
- // let boxQty = parseInt($('#boxQty').val())
- // let qty = parseInt($('#qty').val())
- // if (qty <= 0 || qty > boxQty) {
- // layer.msg("鎷h揣鏁伴噺闇�澶т簬0锛屽苟涓斾笉鑳借秴杩囧緟鎷g鍐呮暟閲�", {
- // icon: 2,
- // time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
- // });
- // return;
- // }
+ if (sampleType == "0") {
+ if ($('#bar').val() == "") {
+ layer.msg("璇烽�夋嫨鍑哄簱鍗�", {
+ icon: 2,
+ time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+ }); return;
+ }
+ if ($('#bar').val() == "") {
+ layer.msg("璇烽�夋嫨鐗╂枡-鎵规", {
+ icon: 2,
+ time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+ }); return;
+ }
+ if ($('#palletNo').val() == "") {
+ layer.msg("璇疯緭鍏ユ墭鐩樼爜", {
+ icon: 2,
+ time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+ }); return;
+ }
+ if(isContinue=="0"){
+ if ($('#boxNo').val() == "") {
+ layer.msg("璇疯緭鍏ョ鐮�", {
+ icon: 2,
+ time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+ }); return;
+ }
+ if ($('#boxQty').val() == "") {
+ layer.msg("绠卞唴鏁伴噺涓虹┖锛屼笉鑳芥嫞璐�", {
+ icon: 2,
+ time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+ });
+ return;
+ }
+ if(($('#boxNo3').val() != "" && ($('#pickQty1').val() != "" || $('#pickQty1').val() != 0))){
+ layer.msg("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏ワ紒", {
+ icon: 2,
+ time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+ });
+ return;
+ }
+ if($('#pickQty1').val() != "" && $('#pickQty1').val()>parseInt($('#pickQty').val())){
+ layer.msg("鎷h揣鏁伴噺涓嶈兘澶т簬寰呮嫞鏁伴噺锛�", {
+ icon: 2,
+ time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+ });
+ return;
+ }
+ }
+
+
+ }
+ else if (sampleType == "1") {
+
+ }
+ else {
+ layer.msg("绫诲瀷閿欒锛岃鍒锋柊椤甸潰閲嶈瘯", {
+ icon: 2,
+ time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+ });
+ return;
+ }
+
+ if (canPickBox == false) {
- if (canPickBox == false) {
+ layer.msg("璇锋眰鏈畬鎴愶紝涓嶈閲嶅璇锋眰", {
+ icon: 2,
+ time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+ });
+ return;
+ }
- layer.msg("璇锋眰鏈畬鎴愶紝涓嶈閲嶅璇锋眰", {
- icon: 2,
- time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
- });
- return;
- }
-
- reqPickScatter()
+ reqPickScatter()
return false; //闃绘琛ㄥ崟璺宠浆銆傚鏋滈渶瑕佽〃鍗曡烦杞紝鍘绘帀杩欐鍗冲彲銆�
});
diff --git a/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs b/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs
index c422d89..7d8997a 100644
--- a/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs
+++ b/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs
@@ -58,6 +58,12 @@
/// </summary>
public string Type { get; set; }
+
+ /// <summary>
+ /// 鍏ュ簱搴撳崟鍙� 搴撳墠鍙栨牱鍑哄簱浣跨敤
+ /// </summary>
+ public string AsnNo { get; set; }
+
}
/// <summary>
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index 211d77a..785537c 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -1388,39 +1388,17 @@
}
- //鍑哄簱鍗�
- var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.AsnSampleNo == asnNo);
- BllExportNoticeDetail noticeDetail2;
- if (notice != null && notice.Status != "6")
- {
-
- }
- else
- {
- //鍒涘缓鍑哄簱鍗曞強鏄庣粏
-
- }
-
- //鍑哄簱鍗曟槑缁�
- var noticeDetail = Db.Queryable<BllExportNoticeDetail>()
- .First(m => m.IsDel == "0" && m.Id == int.Parse(soDetailId));
- if (noticeDetail == null)
- {
- throw new Exception("鏈煡璇㈠埌璇ュ嚭搴撳崟鏄庣粏鐨勪俊鎭�");
- }
- //鍑哄簱鍒嗛厤淇℃伅
- var allot2 = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.Status == "5" && m.SONo == soNo && m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo);
- if (allot2 == null)
- {
- throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑鍒嗛厤淇℃伅");
- }
-
-
//搴撳瓨鏄庣粏
- var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.Id == allot.StockId);
+ var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.ASNNo == asnNo && m.PalletNo == palletNo);
if (stockDetail == null)
{
- throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨鏄庣粏淇℃伅锛�");
+ throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樼殑搴撳瓨鏄庣粏淇℃伅锛�");
+ }
+
+ var sku = Db.Queryable<SysMaterials>().First(m=>m.IsDel == "0" && m.SkuNo == stockDetail.SkuNo);
+ if (sku == null)
+ {
+ throw new Exception("鏈煡璇㈠埌褰撳墠鎵樼洏涓婄殑鐗╂枡淇℃伅");
}
//搴撳瓨鎬昏〃
var stock = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo);
@@ -1429,11 +1407,111 @@
throw new Exception("鏈煡璇㈠埌璇ユ墭鐩樺垎閰嶇殑搴撳瓨淇℃伅锛�");
}
+ //鍑哄簱鍗�
+ var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.AsnSampleNo == asnNo);
+ //鍒涘缓鍑哄簱鍗�
+ if (notice == null || (notice != null && notice.Status != "6"))
+ {
+ var billNo = "";
+ var bl = true;
+ do
+ {
+ //鑾峰彇鑷鍗曟嵁鍙�
+ billNo = new Common().GetMaxNo("SO");
+ var no = billNo;
+ bl = Db.Queryable<BllExportNotice>().Any(m => m.SONo == no);
+ } while (bl);
+
+
+ var addNotice = new BllExportNotice()
+ {
+ SONo = billNo,
+ Type = "3",
+ Status = "4",
+ Origin = "WMS",
+
+ IsWave = "0",
+ WaveNo = "",
+ IsDespatch = "0",
+ CompleteTime = DateTime.Now,
+ CreateUser = 0,
+ };
+
+ var n = Db.Insertable(addNotice).ExecuteCommand();
+ notice = addNotice;
+ }
+
+ //鍒涘缓鍑哄簱鍗曟槑缁�
+ var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(m => m.IsDel == "0" && m.SONo == notice.SONo && m.SkuNo == stockDetail.SkuNo && m.LotNo.Contains(stockDetail.LotNo));
+ if (noticeDetail == null)
+ {
+ var addNoticeDetail = new BllExportNoticeDetail()
+ {
+ SONo = notice.SONo,
+ SkuNo = sku.SkuNo,
+ SkuName = sku.SkuName,
+ Standard = sku.Standard,
+ LotNo = stockDetail.LotNo,
+ LotText = "",
+ Qty = 0,
+ AllotQty = 0,
+ FactQty = 0,
+ CompleteQty = 0,
+ PackagNo = sku.PackagNo,
+ Price = sku.Price,
+ //Money = string.IsNullOrWhiteSpace(sku.Price.ToString()) ? null : sku.Price * pickQty,
+ IsBale = "",
+ IsBelt = "",
+ SupplierLot = stock.SupplierLot,
+ IsWave = "0",
+ WaveNo = "",
+ IsIssueLotNo = "0",
+ Status = "3",
+ CreateUser = 0,
+ };
+ var m = Db.Insertable(addNoticeDetail).ExecuteCommand();
+ noticeDetail = addNoticeDetail;
+ }
+ //鍑哄簱鍒嗛厤淇℃伅
+ var allot2 = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.Status == "5" && m.SONo == notice.SONo && m.PalletNo == palletNo);
+ if (allot2 == null)
+ {
+ //娣诲姞鍒嗛厤琛ㄤ俊鎭�
+ var addAllot = new BllExportAllot
+ {
+ SONo = notice.SONo,
+ WaveNo = "",
+ SODetailNo = noticeDetail.Id,
+ StockId = stockDetail.Id,
+ LotNo = stockDetail.LotNo,
+ LotText = stockDetail.LotText,
+ SupplierLot = stockDetail.SupplierLot,
+ SkuNo = sku.SkuNo,
+ SkuName = sku.SkuName,
+ Standard = sku.Standard,
+ PalletNo = palletNo,
+ IsBale = "0" , //鏄惁瑁瑰寘
+ IsBelt = "0" , //鏄惁鎵撳甫
+
+ Qty = 0,
+ CompleteQty = 0,
+
+ Status = "5",
+ LogisticsId = notice.LogisticsId,
+ IsAdvance = "0",
+ OutMode = "",//鍑哄簱鍙�
+
+ CreateUser = userId,
+ CreateTime = DateTime.Now
+ };
+
+ var fp = Db.Insertable(addAllot).ExecuteCommand();
+ allot2 = addAllot;
+ }
+
+
#endregion
-
-
-
//鍒ゆ柇鏄暎鏀嫞璐ц繕鏄暟閲忔嫞璐�
var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐�
@@ -1547,6 +1625,8 @@
}
pickQty += item.Qty;
}
+
+
//鏀瑰彉搴撳唴绠辩爜鏄惁闆剁淇℃伅
if (biaoShi == "1")
{
@@ -1561,31 +1641,14 @@
Db.Insertable(comList).ExecuteCommand();
//淇敼鍑哄簱鍒嗛厤淇℃伅
- allot.CompleteQty += pickQty;
- allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
- if (allot.Status == "5")
- {
- //鍒ゆ柇璇ユ墭鐩樻槸鍚﹁繕瀛樺湪鐗╂枡 瀛樺湪鏀逛负寰呭洖搴� 寰呭洖搴撳畬鎴愬悗鏀逛负宸插畬鎴�
- }
+ allot2.Qty += pickQty;
+ allot2.CompleteQty += pickQty;
Db.Updateable(allot).ExecuteCommand();
//鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
stockDetail.Qty -= pickQty;
- stockDetail.LockQty -= 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)
{
Db.Deleteable(stockDetail).ExecuteCommand();
@@ -1595,7 +1658,6 @@
Db.Updateable(stockDetail).ExecuteCommand();
}
stock.Qty -= pickQty;
- stock.LockQty -= pickQty;
if (stock.Qty <= 0)
{
Db.Deleteable(stock).ExecuteCommand();
@@ -1617,6 +1679,9 @@
Db.Updateable(pallet).ExecuteCommand();
}
//淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
+ noticeDetail.Qty += pickQty;
+ noticeDetail.AllotQty += pickQty;
+ noticeDetail.FactQty += pickQty;
noticeDetail.CompleteQty += pickQty;
Db.Updateable(noticeDetail).ExecuteCommand();
diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs
index 0b1509b..a1481b1 100644
--- a/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs
+++ b/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs
@@ -129,5 +129,20 @@
/// <returns>鍗曟嵁闆嗗悎</returns>
List<string> GetAsnNoByPallet(string palletNo);
+ /// <summary>
+ /// 鍙栨牱鍑哄簱鎷h揣(鏍囩)
+ /// </summary>
+ /// <param name="soType">鎷h揣绫诲瀷 0搴撳唴鍙栨牱锛屾湁鍑哄簱鍗曞強鍒嗛厤淇℃伅锛� 1搴撳墠鍙栨牱锛屽弽鍚戞坊鍔犲嚭搴撳崟鍙婂垎閰嶄俊鎭�</param>
+ /// <param name="soNo">鍑哄簱鍗�</param>
+ /// <param name="soDetailId">鍑哄簱鍗曟槑缁�</param>
+ /// <param name="palletNo">鎵樼洏鍙�</param>
+ /// <param name="boxNo">澶栫鐮�</param>
+ /// <param name="boxNo3">鍐呯鐮�</param>
+ /// <param name="pickQty1">鎷h揣鏁伴噺</param>
+ /// <param name="asnNo">鍏ュ簱鍗�</param>
+ /// <param name="userId">鎿嶄綔浜篒D</param>
+ void SampleSoSetPick(string soType, string soNo, string soDetailId, string palletNo, string boxNo,
+ string boxNo3, string pickQty1, string asnNo, int userId);
+
}
}
diff --git a/Wms/Wms/Controllers/PdaSoController.cs b/Wms/Wms/Controllers/PdaSoController.cs
index bc959a6..b357110 100644
--- a/Wms/Wms/Controllers/PdaSoController.cs
+++ b/Wms/Wms/Controllers/PdaSoController.cs
@@ -393,7 +393,38 @@
}
}
+ /// <summary>
+ /// 鍙栨牱鍑哄簱鎷h揣(鏍囩)
+ /// </summary>
+ /// <param name="model"></param>
+ /// <returns></returns>
+ [HttpPost]
+ public IActionResult SampleSoSetPick(PdaSoVm model)
+ {
+ try
+ {
+ var claimsIdentity = this.User.Identity as ClaimsIdentity;
+ if (claimsIdentity == null)
+ {
+ throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
+ }
+ string UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
+ if (string.IsNullOrWhiteSpace(UserId))
+ {
+ throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅");
+ }
+ int uid = Convert.ToInt32(UserId);
+ _pdaSoSvc.SampleSoSetPick(model.Type,model.SoNo, model.SoDetailId, model.PalletNo, model.BoxNo, model.BoxNo3, model.PickQty, model.AsnNo, uid);
+
+ return Ok(new { data = "", code = 0, msg = "(鏍囩)鍙栨牱鍑哄簱鎷h揣" });
+ }
+ catch (Exception e)
+ {
+ return Ok(new { data = "", code = 1, msg = "(鏍囩)鍙栨牱鍑哄簱鎷h揣閿欒锛�" + e.Message });
+ }
+
+ }
}
--
Gitblit v1.8.0