From 98e221d6dc26183efab868ee5f11a65d5791304e Mon Sep 17 00:00:00 2001
From: test <15284381150@163.com>
Date: 星期五, 19 九月 2025 08:02:20 +0800
Subject: [PATCH] Merge branch 'master' of http://47.95.120.53:8083/r/JC34WMS
---
Pda/View/SoSetting/productOut.html | 37
Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs | 48 +
HTML/views/SOSetting/ExportAllot.html | 2
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 8
Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs | 12
Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs | 12
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 37
Wms/WMS.BLL/BllSoServer/CompleteDetailServer.cs | 4
Wms/WMS.BLL/DataServer/StockServer.cs | 6
HTML/views/SOSetting/ExportNoticeAddFrom.html | 4
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 827 +++++++++++++++++++---------
HTML/views/SOSetting/ComBoxInfo.html | 5
Wms/Wms/Controllers/PdaSoController.cs | 3
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 516 ++++++++++++++++++
HTML/views/SOSetting/PalletNoOut.html | 19
HTML/views/StatisticalReport/InventoryStatistics.html | 69 ++
Wms/Wms/Controllers/StatisticalController.cs | 5
Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs | 4
Wms/Wms/Controllers/BllSoController.cs | 25
Wms/WMS.IBLL/IBllSoServer/ICompleteDetailServer.cs | 2
HTML/views/SOSetting/ExportNotice.html | 2
Wms/WMS.IBLL/IDataServer/IStockServer.cs | 4
22 files changed, 1,295 insertions(+), 356 deletions(-)
diff --git a/HTML/views/SOSetting/ComBoxInfo.html b/HTML/views/SOSetting/ComBoxInfo.html
index 5e5f425..3092ebe 100644
--- a/HTML/views/SOSetting/ComBoxInfo.html
+++ b/HTML/views/SOSetting/ComBoxInfo.html
@@ -58,6 +58,7 @@
layer = layui.layer;
var h1 = GetTableHeight();
var boxNo = getQueryString('BoxNo');
+ var SONo = getQueryString('SONo');
if (!boxNo)
{
boxNo = "";
@@ -70,6 +71,7 @@
refreshTable();
function refreshTable() {
var param={
+ SONo: getQueryString('SONo'),
BoxNo:getQueryString('BoxNo'),
BoxNo3:$("#BoxNo3").val()
}
@@ -113,6 +115,9 @@
{
field: 'PalletNo', title: '鎵樼洏鏉$爜', align: 'center', width: 110,
},
+ {
+ field: 'BoxNo2', title: '鐩掔爜', align: 'center', width: 220,
+ },
{
field: 'BoxNo3', title: '鏀爜', align: 'center', width: 220,
},
diff --git a/HTML/views/SOSetting/ExportAllot.html b/HTML/views/SOSetting/ExportAllot.html
index fa289d7..a9006ed 100644
--- a/HTML/views/SOSetting/ExportAllot.html
+++ b/HTML/views/SOSetting/ExportAllot.html
@@ -876,7 +876,7 @@
layer.open({
type: 2,
title: '绠辨敮璇︽儏淇℃伅',
- content: 'ComBoxInfo.html?BoxNo=' + BoxNo,
+ content: 'ComBoxInfo.html?BoxNo=' + BoxNo+'&SONo='+data.SONo,
maxmin: true,
area: ['80%', '85%'],
btn: ['鍏抽棴'],
diff --git a/HTML/views/SOSetting/ExportNotice.html b/HTML/views/SOSetting/ExportNotice.html
index 375d93b..6c0ee12 100644
--- a/HTML/views/SOSetting/ExportNotice.html
+++ b/HTML/views/SOSetting/ExportNotice.html
@@ -368,7 +368,7 @@
</a>`;
}
- if( d.Status == '2' || d.Status == '3'){
+ if( (d.Status == '2' || d.Status == '3') && d.Type=='0'){
html += `<a class="layui-btn layui-btn-normal layui-btn-xs outClass" lay-event="outKu">
<i class="layui-icon layui-icon-ok"></i>鍑哄簱
</a>`;
diff --git a/HTML/views/SOSetting/ExportNoticeAddFrom.html b/HTML/views/SOSetting/ExportNoticeAddFrom.html
index 08c9298..f8961d2 100644
--- a/HTML/views/SOSetting/ExportNoticeAddFrom.html
+++ b/HTML/views/SOSetting/ExportNoticeAddFrom.html
@@ -403,10 +403,10 @@
var item = {
SkuNo: infoOptions.data[i].SkuNo,
LotNo: infoOptions.data[i].LotNo,
- Qty: parseFloat(infoOptions.data[i].Qty), // 淇濈暀4浣嶅皬鏁扮簿搴�
+ Qty: parseFloat(formattedExQty),//parseFloat(infoOptions.data[i].Qty), // 淇濈暀4浣嶅皬鏁扮簿搴�
IsBale: infoOptions.data[i].IsBale,
IsBelt: infoOptions.data[i].IsBelt,
- ExQty: parseFloat(formattedExQty),
+ //ExQty: parseFloat(formattedExQty),
};
DataList.push(item);
diff --git a/HTML/views/SOSetting/PalletNoOut.html b/HTML/views/SOSetting/PalletNoOut.html
index 7d74145..39ce3db 100644
--- a/HTML/views/SOSetting/PalletNoOut.html
+++ b/HTML/views/SOSetting/PalletNoOut.html
@@ -88,13 +88,7 @@
<div class="layui-input-inline">
<select name="PickingArea" id="PickingArea" lay-search>
<option value=""></option>
- <option value="B020101">涓�妤�-1</option>
- <option value="B020102">涓�妤�-2</option>
- <option value="B020103">涓�妤�-3</option>
- <option value="B020104">涓�妤�-4</option>
- <option value="B050101">浜屾ゼ-1</option>
- <option value="B050102">浜屾ゼ-2</option>
- <option value="B050103">浜屾ゼ-3</option>
+
</select>
</div>
</div>
@@ -405,8 +399,17 @@
//鐩戝惉鏁版嵁鎿嶄綔
table.on('tool(LAY-app-content-list)', function(obj) {
var data = obj.data;
-
+
if(obj.event === 'outKu'){
+ $("#PickingArea").empty();
+ $("#PickingArea").append('<option value =""></option>');
+ if(data.WareHouseNo=='W02'){
+ $("#PickingArea").append('<option value ="B020101">涓�妤�-1</option><option value ="B020102">涓�妤�-2</option><option value ="B020103">涓�妤�-3</option><option value="B020104">涓�妤�-4</option><option value="B050101">浜屾ゼ-1</option><option value="B050102">浜屾ゼ-2</option><option value="B050103">浜屾ゼ-3</option>');
+ }else if(data.WareHouseNo=='W01'){
+ $("#PickingArea").append('<option value="17">17宸ヤ綅</option><option value="18">18宸ヤ綅</option>');
+ }
+ form.render('select');
+
layer.open({
type: 1,
title: '纭鍑哄簱鍙�',
diff --git a/HTML/views/StatisticalReport/InventoryStatistics.html b/HTML/views/StatisticalReport/InventoryStatistics.html
index 366acfa..304179f 100644
--- a/HTML/views/StatisticalReport/InventoryStatistics.html
+++ b/HTML/views/StatisticalReport/InventoryStatistics.html
@@ -149,6 +149,22 @@
placeholder="缁撴潫鏃堕棿">
</div>
</div> -->
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width: 60px;">鎵�灞炰粨搴�</label>
+ <div class="layui-input-inline">
+ <select name="WareHouseNo" id="WareHouseNo" lay-filter="getWareHouseNo" lay-search>
+ <option value=""></option>
+ </select>
+ </div>
+ </div>
+ <div class="layui-inline">
+ <label class="layui-form-label" style="width: 60px;">鎵�灞炲尯鍩�</label>
+ <div class="layui-input-inline">
+ <select name="AreaNo" id="AreaNo" lay-filter="getAreaNo" lay-search>
+ <option value=""></option>
+ </select>
+ </div>
+ </div>
<div class="layui-inline sousuo">
<button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit
lay-filter="LAY-app-contlist-search">
@@ -306,7 +322,7 @@
var TotalColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//灏嗚〃澶存暟鎹繘琛寀rl缂栫爜
//#endregion
//鑾峰彇鎬婚噺淇℃伅
- function refreshTable(SelectType, SkuNo, SkuName, OwnerNo, OwnerName, LotNo, Status, InspectStatus) {
+ function refreshTable(SelectType, SkuNo, SkuName, OwnerNo, OwnerName, LotNo, Status, InspectStatus, WareHouseNo, AreaNo) {
//#region 鑷畾涔夎〃澶�
var colsJson
var param1 = {
@@ -347,6 +363,8 @@
LotNo: LotNo, //鎵规鍙�
Status: Status, //搴撳瓨鐘舵�� = $("#Status").val();
InspectStatus: InspectStatus, //璐ㄦ鐘舵�� = $("#InspectStatus").val();
+ WareHouseNo:WareHouseNo, //鎵�灞炰粨搴�
+ AreaNo:AreaNo//鎵�灞炲尯鍩�
};
sendData(IP + "/Statistical/GetInventoryList", param, 'get', function (res) {
console.log(res)
@@ -381,7 +399,9 @@
var OwnerName = $("#OwnerName").val();
var Status = $("#Status").val();
var InspectStatus = $("#InspectStatus").val();
- refreshTable(SelectType, SkuNo, SkuName, OwnerNo, OwnerName, LotNo, Status, InspectStatus);
+ var WareHouseNo = $("#WareHouseNo").val();
+ var AreaNo = $("#AreaNo").val();
+ refreshTable(SelectType, SkuNo, SkuName, OwnerNo, OwnerName, LotNo, Status, InspectStatus, WareHouseNo, AreaNo);
});
@@ -414,6 +434,51 @@
});
+ //鑾峰彇浠撳簱涓嬫媺妗嗕俊鎭�
+ sendData(IP + "/Sys/GetWarehouseDic", {}, 'get', function (res) {
+ if (res.code == 0) { //鎴愬姛
+ for (var i = 0; i < res.data.length; i++) {
+ $("#WareHouseNo").append('<option value =' + res.data[i].WareHouseNo + '>' + res.data[i].WareHouseNo + '-' +
+ res.data[i].WareHouseName + '</option>');
+ }
+ form.render('select');
+ } else { //涓嶆垚鍔�
+ layer.msg(res.msg, {
+ icon: 2,
+ time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+ }, function () { });
+ }
+ });
+
+ getAR("");
+ form.on('select(getWareHouseNo)', function (data) {
+ console.log(data);
+ getAR(data.value);
+ });
+ function getAR(val) {
+ //鑾峰彇 鍖哄煙涓嬫媺妗�
+ sendData(IP + "/Sys/GetStorageAreaByHouseNo?wareHouseNo=" + val, {}, 'get', function (res) {
+ $("#AreaNo").empty();
+ $("#AreaNo").append('<option value =""></option>');
+ if (res.code == 0) { //鎴愬姛
+ for (var i = 0; i < res.data.length; i++) {
+ $("#AreaNo").append('<option value =' + res.data[i].AreaNo + '>' + res.data[i].AreaNo + '-' +
+ res.data[i].AreaName + '</option>');
+ }
+ form.render('select');
+ } else { //涓嶆垚鍔�
+ layer.msg('鑾峰彇鍖哄煙淇℃伅澶辫触', {
+ icon: 2,
+ time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級
+ }, function () {
+ //鍥炶皟
+ form.render('select');
+ });
+ }
+ });
+
+ };
+
//#region 鑷畾涔夎〃澶�
//鑷畾涔夎〃澶�
active = {
diff --git a/Pda/View/SoSetting/productOut.html b/Pda/View/SoSetting/productOut.html
index 0ffac4f..2b109a4 100644
--- a/Pda/View/SoSetting/productOut.html
+++ b/Pda/View/SoSetting/productOut.html
@@ -288,7 +288,7 @@
</div>
</td>
</tr> -->
- <tr>
+ <!-- <tr>
<td>
<div class="layui-form-item layout-input" style="margin-top: 6px;">
<label class="layui-form-label lableWidth">杩芥函鏉$爜锛�</label>
@@ -298,15 +298,14 @@
</div>
</div>
</td>
- </tr>
+ </tr> -->
<tr class="divPickQty1">
<td>
<div class="layui-form-item layout-input" style="margin-top: 6px;">
<label class="layui-form-label lableWidth">鎷h揣鏁伴噺锛�</label>
<div class="layui-input-block">
<input id="pickQty1" type="number" placeholder="璇疯緭鍏ユ嫞璐ф暟閲�"
- autocomplete="off" class="layui-input"
- oninput="value=value.replace(/^(0+)|[^\d]+/g,'')">
+ autocomplete="off" class="layui-input">
</div>
</div>
</td>
@@ -971,20 +970,20 @@
});
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;
- }
+ // 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())
@@ -1017,7 +1016,7 @@
"SoDetailId": $("#skuLotNo").val(),
"PalletNo": $('#palletNo').val(),
"BoxNo": $('#boxNo').val(),
- "BoxNo3": $('#boxNo3').val(),
+ //"BoxNo3": $('#boxNo3').val(),
"PickQty": $('#pickQty1').val()
}
sendData(IP + "/PdaSo/SoSetPick", param, 'post', function (res) {
diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
index 585aeea..8ff0456 100644
--- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -777,10 +777,10 @@
return "-1:鍏ュ簱鍗曠姸鎬佸凡鍙樻洿锛屼笉鍙垹闄�!";
}
- if (asnModel.Origin != "褰曞叆" && asnModel.Origin != "閲囪喘鍗�")
- {
- return "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲鍒犻櫎;";
- }
+ //if (asnModel.Origin != "褰曞叆" && asnModel.Origin != "閲囪喘鍗�")
+ //{
+ // return "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲鍒犻櫎;";
+ //}
// 鍒犻櫎鎬诲崟
var editDateTime = DateTime.Now;
diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
index a8f25c3..6296674 100644
--- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
+++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
@@ -534,8 +534,17 @@
{
throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏淇℃伅锛岃鏍稿疄");
}
+ var skuInfo = Db.Queryable<SysMaterials>().First(w => w.IsDel == "0" && w.SkuNo == asnDetail.SkuNo);
+ if (skuInfo == null)
+ {
+ throw new Exception("鏈煡璇㈠埌鐗╂枡淇℃伅锛岃鏍稿疄");
+ }
+ if (string.IsNullOrEmpty(skuInfo.PackagNo))
+ {
+ throw new Exception("鏈煡璇㈠埌鐗╂枡鐨勫寘瑁呬俊鎭紝璇锋牳瀹�");
+ }
- var packInfo = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == asnDetail.PackagNo);
+ var packInfo = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == skuInfo.PackagNo);
if (packInfo == null)
{
throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏涓殑鐗╂枡鍖呰淇℃伅");
@@ -781,7 +790,6 @@
maxBoxCode = maxBoxCode.Substring(0, maxBoxCode.Length-6) + (int.Parse(maxBoxCode.Substring(maxBoxCode.Length - 6, 6)) + 1).ToString().PadLeft(6, '0');
}
- DateTime? storeTime2 = null;
// 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛�
var labelModel = new BllBoxInfo()
{
@@ -801,14 +809,26 @@
BitBoxMark = bNum > boxQty ? "1" : "0",
InspectStatus = "0",
- ProductionTime = DateTime.Parse(productionTime),
- StoreTime = string.IsNullOrWhiteSpace(storeTime) ? storeTime2 : DateTime.Parse(storeTime ),
- ExpirationTime = DateTime.Parse(expirationTime),
+ ProductionTime = null,
+ StoreTime = null,
+ ExpirationTime = null,
Origin = "WMS鐢熸垚",
CreateUser = userId,
CreateTime = DateTime.Now,
};
+ if (!string.IsNullOrEmpty(productionTime))
+ {
+ labelModel.ProductionTime = DateTime.Parse(productionTime);
+ }
+ if (!string.IsNullOrEmpty(storeTime))
+ {
+ labelModel.StoreTime = DateTime.Parse(storeTime);
+ }
+ if (!string.IsNullOrEmpty(expirationTime))
+ {
+ labelModel.ExpirationTime = DateTime.Parse(expirationTime);
+ }
Db.Insertable(labelModel).ExecuteCommand();
modelList.Add(labelModel);
@@ -953,14 +973,26 @@
BitBoxMark = bNum > boxQty ? "1" : "0",
InspectStatus = "0",
- ProductionTime = DateTime.Parse(productionTime),
- StoreTime = DateTime.Parse(storeTime),
- ExpirationTime = DateTime.Parse(expirationTime),
+ ProductionTime = null,
+ StoreTime = null,
+ ExpirationTime = null,
Origin = "WMS鐢熸垚",
CreateUser = userId,
CreateTime = DateTime.Now,
};
+ if (!string.IsNullOrEmpty(productionTime))
+ {
+ labelModel.ProductionTime = DateTime.Parse(productionTime);
+ }
+ if (!string.IsNullOrEmpty(storeTime))
+ {
+ labelModel.StoreTime = DateTime.Parse(storeTime);
+ }
+ if (!string.IsNullOrEmpty(expirationTime))
+ {
+ labelModel.ExpirationTime = DateTime.Parse(expirationTime);
+ }
Db.Insertable(labelModel).ExecuteCommand();
modelList.Add(labelModel);
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
index 657aebb..f854f15 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -126,11 +126,11 @@
throw new Exception("褰撳墠鐗╂枡鍙婃壒娆′笌鍗曟嵁鏃犲叧鑱旓紝璇锋牳瀹�!");
}
//鍒ゆ柇鎵樼洏鏄惁鍦ㄥ簱澶�
- var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo);
- if (stockDetail != null && !string.IsNullOrEmpty(stockDetail.WareHouseNo))
- {
- throw new Exception("璇ユ墭鐩樺凡鏈夊偍浣嶄俊鎭紝涓嶅彲缁勬墭锛岃鏍稿疄锛�");
- }
+ //var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo);
+ //if (stockDetail != null && !string.IsNullOrEmpty(stockDetail.WareHouseNo))
+ //{
+ // throw new Exception("璇ユ墭鐩樺凡鏈夊偍浣嶄俊鎭紝涓嶅彲缁勬墭锛岃鏍稿疄锛�");
+ //}
#endregion
@@ -272,13 +272,13 @@
}
// 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭�
- var sd1 = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.ASNDetailNo == bind.ASNDetailNo && m.PalletNo == model.PalletNo);
+ var sd1 = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo && m.LotNo == detail.LotNo && m.SkuNo == detail.SkuNo);// && m.ASNDetailNo == bind.ASNDetailNo
var sdId1 = 0;
if (sd1 != null)
{
sdId1 = sd1.Id;
// 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁
- sd1.Qty = bind.Qty;
+ sd1.Qty += bind.Qty;
sd1.CompleteTime = comTime;
sd1.UpdateUser = userId;
sd1.UpdateTime = comTime;
@@ -286,7 +286,7 @@
Db.Updateable(sd1).ExecuteCommand();
}
else
- {
+ {
// 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁
sd1 = new DataStockDetail()
{
@@ -325,6 +325,14 @@
CreateUser = 0,
CreateTime = comTime
};
+ var palletData = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == sd1.PalletNo && !string.IsNullOrEmpty(w.LocatNo));
+ if (palletData != null)
+ {
+ sd1.WareHouseNo = palletData.WareHouseNo;
+ sd1.RoadwayNo = palletData.RoadwayNo;
+ sd1.AreaNo = palletData.AreaNo;
+ sd1.LocatNo = palletData.LocatNo;
+ }
//缁存姢搴撳瓨鏄庣粏璐т富/渚涘簲鍟嗕俊鎭� //0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱
if (notice.Type == "0" || notice.Type == "2" || notice.Type == "4" || notice.Type == "6" || notice.Type == "7")
@@ -484,6 +492,10 @@
}
detail.UpdateUser = userId;
detail.UpdateTime = comTime;
+ if (notice.Type == "4" || notice.Type == "8")
+ {
+ detail.InspectStatus = "1";//杞﹂棿閫�鏂欓粯璁ゆ楠屽悎鏍�
+ }
//鏇存柊鍏ュ簱鍗曟槑缁�
Db.Updateable(detail).ExecuteCommand();
@@ -504,7 +516,10 @@
#endregion
#region 搴撳瓨鏄庣粏
- sd1.Qty = bind.Qty;
+ if (sd1.Qty <= 0)
+ {
+ sd1.Qty = bind.Qty;
+ }
//鏇存敼搴撳瓨鏄庣粏鏁伴噺
Db.Updateable(sd1).Where(m => m.Id == sdId1).ExecuteCommand();
#endregion
@@ -1822,7 +1837,7 @@
}
}
- else if (notice.Type == "1" || notice.Type == "4") //閲囪喘鍏ュ簱
+ else if (notice.Type == "1" || notice.Type == "4" || notice.Type == "8") //閲囪喘鍏ュ簱
{
string sqlString = $@"SELECT
ASNNo,
@@ -2726,7 +2741,7 @@
ExpirationTime = boxInfoOne.ExpirationTime,
Status = "0",
InspectMark = boxInfoOne.InspectMark,
- InspectStatus = sku.IsInspect,
+ InspectStatus = "1",//sku.IsInspect,//浠庤溅闂村叆搴撶殑璐ㄦ鐘舵�侀粯璁ゅ悎鏍�
BitPalletMark = "1",
PackagNo = sku.PackagNo,
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
index 314ce04..2f0e325 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
@@ -1585,9 +1585,9 @@
}
//寮�鍚簨鍔�
Db.BeginTran();
-
+
//搴撳瓨绠辨敮鏄庣粏淇℃伅
- var boxList = Db.Queryable<DataBoxInfo>().Where(w => w.IsDel == "0" && w.BoxNo == boxNo).ToList();
+ var boxList = Db.Queryable<DataBoxInfo>().Where(w => w.IsDel == "0" && w.BoxNo == boxNo && w.Status == "2").ToList();
if (boxList.Count != 1)
{
throw new Exception("璇ョ鐮佷俊鎭敊璇紝瀛樺湪澶氫釜姝ょ鐮佷俊鎭�");
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index 9cfa5f7..d0ca543 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -92,7 +92,7 @@
}
//鍑哄簱鍒嗛厤淇℃伅
var allot = await Db.Queryable<BllExportAllot>().FirstAsync(m =>
- m.IsDel == "0" && (m.Status == "2" || m.Status == "3") && m.SONo == soNo &&
+ m.IsDel == "0" && (m.Status == "2" || m.Status == "3" || m.Status == "5") && m.SONo == soNo &&
m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo);
if (allot == null)
{
@@ -322,7 +322,7 @@
else
{
List<DataBoxInfo> boxInfos;
- var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo);
+ var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo && m.Status == "2");
if (await boxInfo.CountAsync() == 0)
{
throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佺殑淇℃伅");
@@ -1852,7 +1852,7 @@
return allotList;
}
//鑾峰彇鐘舵�佷负寰呮嫞璐ф垨鑰呴儴鍒嗘嫞璐х殑鍑哄簱鍗�
- var allotList2 = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.Status == "2" || m.Status == "3") && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToListAsync();
+ var allotList2 = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.Status == "2" || m.Status == "3" || m.Status == "5") && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToListAsync();
//var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToList();
//鑾峰彇鍑哄簱鍗曟嵁涓嶄负寰呮嫞璐� 鎵ц瀹屾瘯 璁㈠崟鍏抽棴 绛夊緟鎵ц鐨勫崟鎹�
@@ -1927,7 +1927,7 @@
throw Oops.Bah("鎵樼洏鐮佷负绌猴紝璇疯緭鍏ユ墭鐩樼爜");
}
//鑾峰彇鐘舵�佷负寰呮嫞璐ф垨鑰呴儴鍒嗘嫞璐х殑鍑哄簱鍗�
- var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.Status == "2" || m.Status == "3") && m.PalletNo == palletNo);
+ var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.Status == "2" || m.Status == "3" || m.Status == "5") && m.PalletNo == palletNo);
//var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.SONo == soNo && m.Status != "4" && m.Status != "5");
if (!string.IsNullOrWhiteSpace(soNo))
{
@@ -1949,7 +1949,7 @@
//鑾峰彇鍑哄簱鍙c�佽鏍笺�佸緟鎷e強宸叉嫞鏁伴噺锛堟牴鎹嚭搴撳崟鏄庣粏ID銆佹墭鐩樺彿锛�
public async Task<OutPdaInfo> GetOutlets(string soDetailId, string palletNo)
{
- var allotInfo = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo && (m.Status == "2" || m.Status == "3")).ToListAsync();
+ var allotInfo = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo && (m.Status == "2" || m.Status == "3" || m.Status == "5")).ToListAsync();
if (allotInfo.Count == 0)
{
throw Oops.Bah($"{palletNo}鎵樼洏涓婃湭鏌ヨ鍒板垎閰嶄俊鎭紝璇锋牳瀹�");
@@ -2033,7 +2033,7 @@
}
if (!string.IsNullOrWhiteSpace(soDetailId))
{
- var allotInfos = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo && (m.Status == "2" || m.Status == "3")).ToListAsync();
+ var allotInfos = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo && (m.Status == "2" || m.Status == "3" || m.Status == "5")).ToListAsync();
if (allotInfos.Count == 0)
{
throw Oops.Bah($"{palletNo}鎵樼洏涓婃湭鏌ヨ鍒板垎閰嶄俊鎭紝璇锋牳瀹�");
@@ -2603,6 +2603,510 @@
}
}
+ /// <summary>
+ /// 鍑哄簱pda鎷h揣-JC34
+ /// </summary>
+ /// <param name="soNo"></param>
+ /// <param name="soDetailId"></param>
+ /// <param name="palletNo"></param>
+ /// <param name="boxNo">绠辩爜/鐩掔爜/鏀爜</param>
+ /// <param name="pickQty1"></param>
+ /// <param name="userId"></param>
+ /// <returns></returns>
+ /// <exception cref="Exception"></exception>
+ public async Task SoSetPick34(string soNo, string soDetailId, string palletNo, string boxNo, string pickQty1, int userId)
+ {
+ Db.BeginTran();
+ try
+ {
+ #region 鍒ゆ柇
+
+ if (string.IsNullOrWhiteSpace(soNo))
+ {
+ throw Oops.Bah("鍑哄簱鍗曟嵁涓嶈兘涓虹┖");
+ }
+ if (string.IsNullOrWhiteSpace(soDetailId))
+ {
+ throw Oops.Bah("鍑哄簱鐗╂枡-鎵规涓嶈兘涓虹┖");
+ }
+ if (string.IsNullOrWhiteSpace(palletNo))
+ {
+ throw Oops.Bah("鎵樼洏鐮佷笉鑳戒负绌�");
+ }
+ //if (!string.IsNullOrEmpty(boxNo3) && !string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)
+ //{
+ // throw Oops.Bah("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�");
+ //}
+
+ //鍑哄簱鍗�
+ var notice = await Db.Queryable<BllExportNotice>().FirstAsync(m => m.IsDel == "0" && m.SONo == soNo);
+ if (notice == null)
+ {
+ throw Oops.Bah("鏈煡璇㈠埌璇ュ嚭搴撳崟鐨勪俊鎭�");
+ }
+ if (notice.Status != "3" && notice.Status != "4")
+ {
+ throw Oops.Bah("鍑哄簱鍗曠殑鐘舵�佷笉鏄鍦ㄦ墽琛岋紝涓嶈兘鎷h揣");
+ }
+ //鍑哄簱鍗曟槑缁�
+ var noticeDetail = await Db.Queryable<BllExportNoticeDetail>()
+ .FirstAsync(m => m.IsDel == "0" && m.Id == int.Parse(soDetailId));
+ if (noticeDetail == null)
+ {
+ throw Oops.Bah("鏈煡璇㈠埌璇ュ嚭搴撳崟鏄庣粏鐨勪俊鎭�");
+ }
+ //鍑哄簱鍒嗛厤淇℃伅
+ var allot = await Db.Queryable<BllExportAllot>().FirstAsync(m =>
+ m.IsDel == "0" && (m.Status == "2" || m.Status == "3" || m.Status == "5") && m.SONo == soNo &&
+ m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo);
+ if (allot == null)
+ {
+ throw Oops.Bah("鏈煡璇㈠埌璇ユ墭鐩樼殑鍒嗛厤淇℃伅");
+ }
+ //鍓╀綑鎷h揣鏁伴噺锛堝緟鎷e噺鍘诲凡鎷o級
+ var needQty = allot.Qty - allot.CompleteQty;
+
+ //搴撳瓨鏄庣粏
+ var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.Id == allot.StockId);
+ if (stockDetail == null)
+ {
+ 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
+
+ if (string.IsNullOrWhiteSpace(boxNo))//鏁存墭鎷h揣
+ {
+ List<DataBoxInfo> boxInfos;
+ var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo && m.SkuNo == stockDetail.SkuNo && m.LotNo == stockDetail.LotNo);//鎵惧埌鎵樼洏涓婃墍鏈夌鐮�
+ boxInfos = await boxInfo.ToListAsync();
+ if (boxInfo.Count() <= 0)
+ {
+ throw Oops.Bah("璇ユ墭鐩樹笂娌℃湁鍙嫞璐х殑绠卞瓙");
+ }
+ var boxQty = await boxInfo.GroupBy(m => m.PalletNo).Select(m => SqlFunc.AggregateSum(m.Qty)).ToListAsync();
+ if (boxQty[0] > needQty)
+ {
+ throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺");
+ }
+ decimal pickQty = 0;//鎷h揣鐨勬暟閲�
+ var comDetailList = await Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToListAsync();
+ var comList = new List<BllCompleteDetail>();
+ foreach (var item in boxInfos)
+ {
+ if (comDetailList.Any(m => m.BoxNo3 == item.BoxNo3) && item.BoxNo3 != null)
+ {
+ throw Oops.Bah($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣");
+ }
+ if (item.SkuNo != allot.SkuNo || item.LotNo != allot.LotNo)
+ {
+ throw Oops.Bah("褰撳墠鎵樼洏涓婃湁鍏朵粬涓嶅悓鐗╂枡鎵规锛屾嫞璐уけ璐�");
+ }
+ //娣诲姞鎷h揣鏄庣粏
+ var completeDetail = new BllCompleteDetail()
+ {
+ SONo = soNo,
+ SODetailNo = int.Parse(soDetailId),
+ ExportAllotId = allot.Id,
+ StockId = allot.StockId,
+ BoxNo = item.BoxNo,
+ BoxNo2 = item.BoxNo2,
+ BoxNo3 = item.BoxNo3,
+
+ LotNo = allot.LotNo,
+ LotText = allot.LotText,
+ SupplierLot = allot.SupplierLot,
+ SkuNo = allot.SkuNo,
+ SkuName = allot.SkuName,
+ Standard = allot.Standard,
+ PalletNo = palletNo,
+ CompleteQty = item.Qty,
+
+ CreateUser = userId
+ };
+ comList.Add(completeDetail);
+
+ //鍒犻櫎搴撳瓨绠辩爜鏄庣粏
+ await Db.Deleteable(item).ExecuteCommandAsync();
+ pickQty += item.Qty;
+ }
+ //娣诲姞鎷h揣鏄庣粏
+ await Db.Insertable(comList).ExecuteCommandAsync();
+ //淇敼鍑哄簱鍒嗛厤淇℃伅
+ allot.CompleteQty += pickQty;
+ allot.Status = allot.Qty <= allot.CompleteQty ? "5" : "3";
+ allot.UpdateTime = DateTime.Now;
+ await Db.Updateable(allot).ExecuteCommandAsync();
+ //鍒犻櫎搴撳瓨鏄庣粏
+ await Db.Deleteable(stockDetail).ExecuteCommandAsync();
+ //鍒犻櫎鎴栦慨鏀瑰簱瀛�
+ stock.Qty -= pickQty;
+ stock.LockQty -= pickQty;
+ if (stock.LockQty < 0)
+ {
+ stock.LockQty = 0;
+ }
+ if (stock.Qty <= 0)
+ {
+ await Db.Deleteable(stock).ExecuteCommandAsync();
+ }
+ else
+ {
+ await Db.Updateable(stock).ExecuteCommandAsync();
+ }
+ //鍒ゆ柇鎵樼洏涓婅繕鏈夋病鏈夊叾浠栫墿鏂�
+ var palletData = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo && w.Id != stockDetail.Id);
+ if (palletData == null)
+ {
+ //鏀瑰彉鎵樼洏鐘舵�佷负锛氭湭浣跨敤
+ var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0");
+ if (pallet == null)
+ {
+ throw Oops.Bah("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�");
+ }
+ pallet.Status = "0";
+ await Db.Updateable(pallet).ExecuteCommandAsync();
+ }
+
+ //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
+ noticeDetail.CompleteQty += pickQty;
+ await Db.Updateable(noticeDetail).ExecuteCommandAsync();
+
+ var num = await Db.Queryable<BllExportNoticeDetail>()
+ .CountAsync(m => m.IsDel == "0" && m.SONo == soNo && m.CompleteQty < m.Qty);
+ if (num <= 0)
+ {
+ notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴�
+ //淇敼鍑哄簱鍗曚俊鎭�
+ await Db.Updateable(notice).ExecuteCommandAsync();
+ if (notice.IsWave == "1")
+ {
+ var waveNum = await Db.Queryable<BllExportNotice>().CountAsync(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo && m.Status != "4");
+ if (waveNum == 0)
+ {
+ var wave = await Db.Queryable<BllWaveMage>().FirstAsync(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo);
+ if (wave != null)
+ {
+ wave.Status = "4";
+ wave.UpdateUser = userId;
+ wave.UpdateTime = DateTime.Now;
+ await Db.Updateable(wave).ExecuteCommandAsync();
+ }
+ }
+ }
+ }
+
+ }
+ else
+ {
+ var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暣鐩掓嫞璐с�� 2锛氭暎鏀嫞璐с��3锛氭暟閲忔嫞璐�
+ List<DataBoxInfo> boxInfos;
+ var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo);
+ if (await boxInfo.CountAsync() == 0)
+ {
+ biaoShi = "1";
+ boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo2 == boxNo);
+ if (await boxInfo.CountAsync() == 0)
+ {
+ biaoShi = "2";
+ boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo3 == boxNo);
+ if (await boxInfo.CountAsync() == 0)
+ {
+ throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅");
+ }
+ }
+ }
+ if (biaoShi == "0" && !string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0)
+ {
+ biaoShi = "3";
+ }
+ if (biaoShi == "2" && !string.IsNullOrEmpty(pickQty1) && decimal.Parse(pickQty1) > 0)
+ {
+ throw Oops.Bah("杩芥函鏉$爜鍜屾嫞璐ф暟閲忎笉鑳藉悓鏃惰緭鍏�");
+ }
+ boxInfos = await boxInfo.ToListAsync();
+
+ var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToList();
+ if (biaoShi == "2") //鏁f敮鎷h揣
+ {
+ boxInfos = boxInfos.Where(m => m.BoxNo3 == boxNo).ToList();
+
+ if (boxInfos.Count() == 0)
+ {
+ throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅");
+ }
+ if (boxInfos.Count() > 1)
+ {
+ throw Oops.Bah("璇ヨ拷婧敮鐮佺殑淇℃伅澶т簬1鏉★紝淇℃伅閿欒锛岃鏍稿疄锛�");
+ }
+
+ if (boxInfos.Any(m => m.PalletNo != palletNo))
+ {
+ throw Oops.Bah("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴");
+ }
+ var boxQty = boxInfos.First().Qty;
+ //if (boxQty > needQty)
+ //{
+ // throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
+ //}
+
+ foreach (var item in boxInfos)
+ {
+ if (comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
+ {
+ throw Oops.Bah($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣");
+ }
+ }
+ }
+ else if (biaoShi == "1")//鏁寸洅鎷h揣
+ {
+ if (boxInfo.Count() == 0)
+ {
+ throw Oops.Bah("鏈煡璇㈠埌璇ョ洅鐮佺殑淇℃伅");
+ }
+ if (boxInfo.Any(m => m.PalletNo != palletNo))
+ {
+ throw Oops.Bah("璇ユ墭鐩樹笌鐩掔爜娌℃湁缁戝畾鍏崇郴");
+ }
+ var boxQty = await boxInfo.GroupBy(m => m.BoxNo2).Select(m => SqlFunc.AggregateSum(m.Qty)).ToListAsync();
+ //if (boxQty[0] > needQty)
+ //{
+ // throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺");
+ //}
+
+ foreach (var item in boxInfos)
+ {
+ if (comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
+ {
+ throw Oops.Bah($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣");
+ }
+ }
+ }
+ else if (biaoShi == "3")//鏁伴噺鎷h揣
+ {
+ if (boxInfo.Count() > 1)
+ {
+ throw Oops.Bah("璇ョ鐮佸唴瀛樺湪鏀爜涓嶈兘杩涜鏁伴噺鎷h揣");
+ }
+ decimal boxQty = boxInfo.First().Qty;
+ if (Convert.ToDecimal(pickQty1) > boxQty)
+ {
+ throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺");
+ }
+ //if (Convert.ToInt32(pickQty1) > needQty)
+ //{
+ // throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
+ //}
+ }
+ else //鏁寸鎷h揣
+ {
+ if (boxInfo.Count() == 0)
+ {
+ throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佺殑淇℃伅");
+ }
+ if (boxInfo.Any(m => m.PalletNo != palletNo))
+ {
+ throw Oops.Bah("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴");
+ }
+ var boxQty = await boxInfo.GroupBy(m => m.BoxNo).Select(m => SqlFunc.AggregateSum(m.Qty)).ToListAsync();
+ //if (boxQty[0] > needQty)
+ //{
+ // throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺");
+ //}
+
+ foreach (var item in boxInfos)
+ {
+ if (comDetailList.Any(m => m.BoxNo == item.BoxNo))
+ {
+ throw Oops.Bah($"褰撳墠{item.BoxNo}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣");
+ }
+ }
+ }
+ decimal pickQty = 0;//鎷h揣鐨勬暟閲�
+
+ var comList = new List<BllCompleteDetail>();
+ foreach (var item in boxInfos)
+ {
+ //娣诲姞鎷h揣鏄庣粏
+ var completeDetail = new BllCompleteDetail()
+ {
+ SONo = soNo,
+ SODetailNo = int.Parse(soDetailId),
+ ExportAllotId = allot.Id,
+ StockId = allot.StockId,
+ BoxNo = item.BoxNo,
+ BoxNo2 = item.BoxNo2,
+ BoxNo3 = item.BoxNo3,
+
+ LotNo = allot.LotNo,
+ LotText = allot.LotText,
+ SupplierLot = allot.SupplierLot,
+ SkuNo = allot.SkuNo,
+ SkuName = allot.SkuName,
+ Standard = allot.Standard,
+ PalletNo = palletNo,
+ CompleteQty = biaoShi == "3" ? decimal.Parse(pickQty1) : item.Qty,
+
+ CreateUser = userId
+ };
+ comList.Add(completeDetail);
+
+ if (biaoShi != "3")
+ {
+ //鍒犻櫎搴撳瓨绠辩爜鏄庣粏
+ await Db.Deleteable(item).ExecuteCommandAsync();
+
+ pickQty += item.Qty;
+ }
+ else//鏁伴噺鎷h揣
+ {
+ if (decimal.Parse(pickQty1) == item.Qty)
+ {
+ //鍒犻櫎搴撳瓨绠辩爜鏄庣粏
+ await Db.Deleteable(item).ExecuteCommandAsync();
+ }
+ else
+ {
+ item.Qty -= decimal.Parse(pickQty1);
+ item.BitBoxMark = "1";//闆剁鏍囪瘑
+ await Db.Updateable(item).ExecuteCommandAsync();
+ }
+ pickQty += decimal.Parse(pickQty1);
+ }
+ }
+ //鏀瑰彉搴撳唴绠辩爜鏄惁闆剁淇℃伅
+ if (biaoShi == "1" || biaoShi == "2")
+ {
+ var boxSurplusList = new List<DataBoxInfo>();
+ if (biaoShi == "1")
+ {
+ boxSurplusList = boxInfo.Where(m => m.BoxNo2 != boxNo).ToList();
+ }
+ else
+ {
+ boxSurplusList = boxInfo.Where(m => m.BoxNo3 != boxNo).ToList();
+ }
+ foreach (var item in boxSurplusList)
+ {
+ item.BitBoxMark = "1";
+ await Db.Updateable(item).ExecuteCommandAsync();
+ }
+ }
+
+ await Db.Insertable(comList).ExecuteCommandAsync();
+ //淇敼鍑哄簱鍒嗛厤淇℃伅
+ allot.CompleteQty += pickQty;
+ allot.Status = allot.Qty <= allot.CompleteQty ? "5" : "3";
+ allot.UpdateTime = DateTime.Now;
+ if (allot.Status == "5")
+ {
+ //鍒ゆ柇璇ユ墭鐩樻槸鍚﹁繕瀛樺湪鐗╂枡 瀛樺湪鏀逛负寰呭洖搴� 寰呭洖搴撳畬鎴愬悗鏀逛负宸插畬鎴�
+ }
+ await Db.Updateable(allot).ExecuteCommandAsync();
+
+ //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
+ stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
+ stockDetail.Qty -= pickQty;
+ stockDetail.LockQty -= pickQty;
+ if (stockDetail.LockQty < 0)
+ {
+ stockDetail.LockQty = 0;
+ }
+ 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;
+ stock.LockQty -= pickQty;
+ if (stock.LockQty < 0)
+ {
+ stock.LockQty = 0;
+ }
+ 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 == palletNo);
+ if (num2 <= 0)
+ {
+ //鏀瑰彉鎵樼洏鐘舵��
+ var pallet = await Db.Queryable<SysPallets>().FirstAsync(m => m.PalletNo == palletNo && m.IsDel == "0");
+ if (pallet == null)
+ {
+ throw Oops.Bah("鏈湪鎵樼洏琛ㄤ腑鏌ヨ鍒版墭鐩樹俊鎭�");
+ }
+ pallet.Status = "0";
+ await Db.Updateable(pallet).ExecuteCommandAsync();
+ }
+ //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
+ noticeDetail.CompleteQty += pickQty;
+ await Db.Updateable(noticeDetail).ExecuteCommandAsync();
+
+ var num = await Db.Queryable<BllExportNoticeDetail>()
+ .CountAsync(m => m.IsDel == "0" && m.SONo == soNo && m.CompleteQty < m.Qty);
+ if (num <= 0)
+ {
+ notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴�
+ //淇敼鍑哄簱鍗曚俊鎭�
+ await Db.Updateable(notice).ExecuteCommandAsync();
+ if (notice.IsWave == "1")
+ {
+ var waveNum = await Db.Queryable<BllExportNotice>()
+ .CountAsync(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo && m.Status != "4");
+ if (waveNum == 0)
+ {
+ var wave = await Db.Queryable<BllWaveMage>().FirstAsync(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo);
+ if (wave != null)
+ {
+ wave.Status = "4";
+ wave.UpdateUser = userId;
+ wave.UpdateTime = DateTime.Now;
+ await Db.Updateable(wave).ExecuteCommandAsync();
+ }
+ }
+ }
+ }
+ }
+ //娣诲姞鎿嶄綔鏃ュ織璁板綍
+ var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "鎷h揣鍑哄簱", soNo, "鎷h揣", $"鍦≒DA涓婂鍑哄簱鍗曞彿涓猴細{soNo}鐨勬墭鐩樼爜涓猴細{palletNo}鐨勬嫞璐ф搷浣�", userId);
+ Db.CommitTran();
+ }
+ //catch (AppFriendlyException e)
+ //{
+ // Db.RollbackTran();
+ //}
+ catch (Exception e)
+ {
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+ }
//鍑哄簱pda鎷h揣
public async Task SoSetQtyPick(string soNo, string soDetailId, string palletNo, string PickQty, int userId)
{
diff --git a/Wms/WMS.BLL/BllSoServer/CompleteDetailServer.cs b/Wms/WMS.BLL/BllSoServer/CompleteDetailServer.cs
index a0520ce..1c5336f 100644
--- a/Wms/WMS.BLL/BllSoServer/CompleteDetailServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/CompleteDetailServer.cs
@@ -70,11 +70,12 @@
}
//鏌ヨ鎷h揣鏄庣粏鏀爜璇︾粏淇℃伅
- public List<CompleteDetailDto> GetCompBoxInfoList(string boxNo, string boxNo3)
+ public List<CompleteDetailDto> GetCompBoxInfoList(string sONo, string boxNo, string boxNo3)
{
try
{
Expression<Func<BllCompleteDetail, bool>> item = Expressionable.Create<BllCompleteDetail>()
+ .AndIF(!string.IsNullOrWhiteSpace(sONo), it => it.SONo == sONo.Trim())
.AndIF(!string.IsNullOrWhiteSpace(boxNo), it => it.BoxNo == boxNo.Trim())
.AndIF(!string.IsNullOrWhiteSpace(boxNo3), it => it.BoxNo3.Contains(boxNo3.Trim()))
.ToExpression();
@@ -90,6 +91,7 @@
ExportAllotId = a.ExportAllotId,
BoxNo = a.BoxNo,
+ BoxNo2 = a.BoxNo2,
BoxNo3 = a.BoxNo3,
LotNo = a.LotNo,
LotText = a.LotText,
diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index 84724b2..139e9d3 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -30,6 +30,7 @@
using System.Drawing.Drawing2D;
using Model.ModelDto.LogDto;
using AutoMapper.Internal;
+using System.Diagnostics.Contracts;
namespace WMS.BLL.BllSoServer
{
@@ -398,7 +399,7 @@
{
throw new Exception("鎵规涓嶅彲涓虹┖!");
}
- }
+ }
//搴撳瓨鏄庣粏
List<DataStockDetail> stockDetails;
//鎸囧畾鎵规
@@ -522,7 +523,7 @@
q2 = q3;
}
if (q2 > d.skuQty - q1)
- {
+ {
if (!dic.ContainsKey(stockInfo.Id))
{
dic.Add(stockInfo.Id, d.skuQty - q1);
@@ -535,7 +536,7 @@
q1 += d.skuQty - q1;
}
else
- {
+ {
if (!dic.ContainsKey(stockInfo.Id))
{
dic.Add(stockInfo.Id, (decimal)q2);
@@ -599,7 +600,7 @@
var notice = new BllExportNotice()
{
SONo = billNo,
- OrderCode=model.orderNo,
+ OrderCode = model.orderNo,
Type = model.orderType,
Status = "0",
Origin = "SAP",
@@ -609,7 +610,7 @@
IsWave = "0",
WaveNo = "",
IsDespatch = "0",
-
+
CreateUser = 0,
};
if (houseNo == "1000" || houseNo == "1001" || houseNo == "2000" || houseNo == "2002" || houseNo == "2003" || houseNo == "2004")
@@ -775,14 +776,14 @@
throw new Exception(e.Message);
}
}
-
+
//鐢熶骇鍙枡
public bool MESProductionCall(ProductionCallVm model)
{
try
{
//楠岃瘉鏄惁澶囨枡瀹屾垚
- var notice = Db.Queryable<BllExportNotice>().First(m=>m.IsDel == "0" && m.OrderCode == model.OrderCode);
+ var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.OrderCode == model.OrderCode);
if (notice == null)
{
throw new Exception("鏈煡璇㈠埌姝ゅ伐鍗曞彿");
@@ -803,7 +804,7 @@
throw new Exception("褰撳墠鍗曟嵁鐗╂枡鍦ㄦ鎶曟枡鍙e彨鏂欎俊鎭凡鏀跺埌锛屾棤闇�閲嶅涓嬪彂");
}
//鍒ゆ柇褰撳墠鎶曟枡鍙f槸鍚︽湁鍏跺畠宸ュ崟鎶曟枡
- var call2 = Db.Queryable<BllProductionCallTask>().First(m => m.IsDel == "0" && m.PutInLocation == model.PutInLocation && m.OrderCode != model.OrderCode );
+ var call2 = Db.Queryable<BllProductionCallTask>().First(m => m.IsDel == "0" && m.PutInLocation == model.PutInLocation && m.OrderCode != model.OrderCode);
if (call2 != null)
{
throw new Exception("姝ゆ姇鏂欏彛鏈夊叾瀹冨崟鎹墿鏂欏彨鏂欎俊鎭�");
@@ -834,7 +835,7 @@
foreach (var pro in proCallList)
{
foreach (var item in locateList)
- {
+ {
//鑾峰彇澶囧ソ鏂欑殑鎵樼洏淇℃伅
var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "2" && m.SONo == notice.SONo && m.SkuNo == pro.SkuNo && !list.Contains(m.Id)).Select(m => m.PalletNo).ToList();
@@ -862,7 +863,7 @@
};
Db.Insertable(exTask).ExecuteCommand();
//鏇存敼鍒嗛厤琛ㄧ殑浠诲姟鍙峰垪
- var allot = Db.Queryable<BllExportAllot>().First(m=>m.IsDel == "0" && m.Status =="2" && m.SONo == notice.SONo && m.StockId == stockDetail.Id);
+ var allot = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.Status == "2" && m.SONo == notice.SONo && m.StockId == stockDetail.Id);
allot.TaskNo = taskNo;
Db.Updateable(allot).ExecuteCommand();
list.Add(allot.Id);
@@ -871,14 +872,14 @@
item.PalletNo = stockDetail.PalletNo;
Db.Updateable(item).ExecuteCommand();
- var locate = Db.Queryable<SysStorageLocat>().First(m=>m.LocatNo == stockDetail.LocatNo);
+ var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == stockDetail.LocatNo);
locate.Status = "5";
Db.Updateable(locate).ExecuteCommand();
break;
}
}
-
+
Db.CommitTran();
}
@@ -887,7 +888,7 @@
Db.RollbackTran();
throw new Exception(e.Message);
}
-
+
return true;
}
catch (Exception e)
@@ -927,8 +928,8 @@
.LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id)
.LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id)
.LeftJoin<SysUserInfor>((a, b, c, d, e) => a.CheckUser == e.Id)
- .LeftJoin<SysWareHouse>((a, b, c, d, e,f) => a.WareHouseNo == f.WareHouseNo)
- .Select((a, b, c, d, e,f) => new ExportNoticeDto()
+ .LeftJoin<SysWareHouse>((a, b, c, d, e, f) => a.WareHouseNo == f.WareHouseNo)
+ .Select((a, b, c, d, e, f) => new ExportNoticeDto()
{
Id = a.Id,
SONo = a.SONo,
@@ -987,7 +988,7 @@
switch (type)//0锛氬師鏂� 1锛氬寘鏉� 2锛氭垚鍝� 3锛氳�楁潗 4锛氬崐鎴愬搧
{
case "0"://鎴愬搧鍑哄簱
- if (house !="W01")
+ if (house != "W01")
{
throw new Exception("鎴愬搧鍑哄簱鍙兘閫夋嫨鎴愬搧搴�");
}
@@ -1186,7 +1187,7 @@
switch (model.WareHouseNo)
{
case "W01"://鎴愬搧搴�
- if (skuList.Any(m=>m.Type !="2"))
+ if (skuList.Any(m => m.Type != "2"))
{
throw new Exception("浠撳簱涓庡嚭搴撶墿鏂欎笉绗�");
}
@@ -2079,7 +2080,7 @@
.AndIF(!string.IsNullOrWhiteSpace(model.BitPalletMark), m => m.BitPalletMark == model.BitPalletMark)
.And(m => !string.IsNullOrWhiteSpace(m.WareHouseNo))
.And(a => a.Status == "0")
- .And(a => a.WareHouseNo == "W02")
+ .And(a => a.WareHouseNo == "W01" || a.WareHouseNo == "W02")
.ToExpression();
var data = await Db.Queryable<DataStockDetail>().Where(item).OrderBy(m => m.LocatNo).ToPageListAsync(model.Page, model.Limit, count);
//data.Select(m => m.Status == "0" && m.IsDel == "0");
@@ -2329,6 +2330,264 @@
}
}
+ /// <summary>
+ /// 鎵樼洏鍑哄簱锛堝瘑闆嗗簱锛�
+ /// </summary>
+ /// <param name="palletNo"></param>
+ /// <param name="outMode"></param>
+ /// <param name="userId"></param>
+ /// <param name="url"></param>
+ /// <param name="str"></param>
+ /// <returns></returns>
+ /// <exception cref="Exception"></exception>
+ public List<OutCommandDto> IssuePalletNoOutMk(string palletNo, string outMode, int userId, string url, out string str)
+ {
+ try
+ {
+ //鍒ゆ柇鎵樼洏鍙锋槸鍚︿负绌�
+ if (string.IsNullOrWhiteSpace(palletNo))
+ {
+ throw new Exception($"鎵樼洏鍙蜂笉鑳戒负绌猴紝璇锋牳瀹�");
+ }
+
+ str = "";
+ var stockDetailList = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo && m.IsDel == "0").ToList();
+
+ if (stockDetailList.Count == 0)
+ {
+ throw new Exception($"鏈湪搴撳唴鏌ヨ鍒拌鎵樼洏淇℃伅");
+ }
+ var stocka = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.SkuNo == stockDetailList[0].SkuNo);
+
+
+ //楠岃瘉搴撳瓨鎵樼洏鐘舵��
+ if (stockDetailList[0].Status != "0")
+ {
+ throw new Exception($"褰撳墠鎵樼洏鏈浜庡緟鍒嗛厤鐘舵�侊紝璇锋牳瀹烇紒");
+ }
+ //鍒ゆ柇鎵樼洏搴撳瓨淇℃伅鍒嗙粍鍚庢槸鍚﹀ぇ浜�1鏉�
+ var detailGroup = stockDetailList.GroupBy(m => new { m.SkuNo, m.PalletNo, m.WareHouseNo, m.LocatNo }).ToList();
+ if (detailGroup.Count > 1)
+ {
+ throw new Exception($"鏈湪搴撳唴鏌ヨ鍒拌鎵樼洏淇℃伅");
+ }
+
+ var locatStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == stockDetailList[0].LocatNo && w.Status == "1");
+ if (locatStart == null)
+ {
+ throw new Exception($"璧峰鍌ㄤ綅涓嶅瓨鍦ㄦ垨闈炵┖闂诧紝璇锋鏌�");
+ }
+ #region 闆嗗悎
+
+ var outDto1 = new List<OutCommandDto>(); //鍏堝嚭搴撴暟鎹殑闆嗗悎锛堟繁搴︿负1鐨勫偍浣嶏級
+ var outDto2 = new List<OutCommandDto>(); //鍚庡嚭搴撴暟鎹殑闆嗗悎锛堟繁搴︿负2鐨勫偍浣嶏級
+ var moveDto = new List<OutCommandDto>(); //瑕佺Щ搴撴暟鎹殑闆嗗悎
+
+ #endregion
+ var com = new Common();
+ var allot = new AllotLocation();
+
+ #region 闆嗗悎
+
+ Db.BeginTran();
+ try
+ {
+ List<LogTask> logTaskList = new List<LogTask>();//姝ゆ鍑哄簱浠诲姟闆嗗悎锛屼负搴斿鍚屾墭鐩樹笉鍚岀墿鏂欏嚭搴�
+
+ var taskNoStr = "";
+
+ // 鍌ㄤ綅鍙�
+ var locateNo = locatStart.LocatNo;
+ List<string> locateListStrs = new List<string>();
+ locateListStrs.Add(locateNo);
+
+ var row1 = int.Parse(locatStart.LocatNo.Substring(2, 2));
+ var row2 = int.Parse(locatStart.AisleOne.Substring(2, 2));
+ //闇�瑕佺Щ搴撶殑淇℃伅
+ var NeedMoveInfo = IsNeedMoveLocate(locatStart, locateListStrs, out int isOut);
+ if (isOut == 1)
+ {
+ //宸烽亾缁勪腑鏈夊叆搴撴垨绉诲叆鐨勫偍浣嶏紝鎴栬�呮槸褰撳墠鍌ㄤ綅鍓嶆湁鍌ㄤ綅鏈笅鍙戞垚鍔熺殑浠诲姟
+ throw new Exception($"宸烽亾缁勪腑鏈夊叆搴撴垨绉诲叆鐨勫偍浣嶏紝璇风◢鍚庡啀璇�");
+ }
+ if (NeedMoveInfo.Count > 0)//闇�瑕佺Щ搴�
+ {
+ //鍒ゆ柇搴撳唴绌哄偍浣嶆槸鍚﹀
+ var okRoad = Db.Queryable<SysStorageRoadway>().Where(m => m.Status == "0" && m.IsDel == "0" && m.WareHouseNo == locatStart.WareHouseNo).Select(m => m.RoadwayNo).ToList();
+ var nullSlotNum = Db.Queryable<SysStorageLocat>().Count(m => m.RoadwayNo != locatStart.RoadwayNo && okRoad.Contains(m.RoadwayNo) && m.Status == "0");
+ //鍒ゆ柇绌哄偍浣嶇殑鏁伴噺鏄惁澶т簬闇�瑕佺Щ搴撶殑鏁伴噺
+ if (nullSlotNum >= NeedMoveInfo.Count)
+ {
+ foreach (var s in NeedMoveInfo)
+ {
+ //鍌ㄤ綅鍒�
+ var rows = int.Parse(s.Substring(2, 2));
+
+ //鑾峰彇绉诲簱鍌ㄤ綅
+ var moveAddress = GetMiJiMoveAddress(s, locatStart.AisleOne);
+ var tary = Db.Queryable<DataStockDetail>().First(m => m.LocatNo == s);
+ if (string.IsNullOrWhiteSpace(moveAddress)) // 鍒ゆ柇鏄惁鑾峰彇鍒扮Щ搴撶殑搴撲綅
+ {
+ throw new Exception($"鍑哄簱鍓嶆湁璐х墿锛岄渶绉诲簱浣嗘湭鏌ヨ鍒扮┖鍌ㄤ綅");
+ }
+ else
+ {
+ var ykTaskNo = new Common().GetMaxNo("TK");
+ var ykTask = new LogTask //鍑哄簱浠诲姟
+ {
+ TaskNo = ykTaskNo,
+ Sender = "WMS",
+ Receiver = "WCS",
+ IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+ StartLocat = s,//璧峰浣嶇疆
+ EndLocat = moveAddress,//outMode,//鐩爣浣嶇疆
+ PalletNo = tary.PalletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+ Msg = "浠�" + s + "鍒�" + moveAddress + "鐨勭Щ搴撲换鍔�", //鍏抽敭淇℃伅
+ };
+ Db.Insertable(ykTask).ExecuteCommand();
+ logTaskList.Add(ykTask);
+
+ outDto1.Add(new OutCommandDto()
+ {
+ PalletNo = ykTask.PalletNo,//鎵樼洏鍙�
+ StartLocate = ykTask.StartLocat, // 璧峰浣嶇疆
+ StartRoadway = locatStart.RoadwayNo,//鍏跺疄宸烽亾
+ EndLocate = moveAddress,//outMode, // 鐩爣浣嶇疆
+ TaskNo = ykTaskNo, // 浠诲姟鍙�
+ TaskType = "2",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉�
+ Order = Math.Abs(row2 - rows),
+ Type = PLCTypeEnum.ShuttleCar
+
+ });
+ var slotChange = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == s);
+ var slotChange2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == moveAddress);
+
+ slotChange.Status = "5"; //鏀瑰彉鐘舵�侊紙姝e湪鍑哄簱锛�
+ slotChange2.Status = "4"; // 鏀瑰彉鐘舵�侊紙姝e湪绉诲叆锛�
+ Db.Updateable(slotChange).ExecuteCommand();
+ Db.Updateable(slotChange2).ExecuteCommand();
+ }
+ }
+ }
+ else
+ {
+ throw new Exception($"鍑哄簱鍓嶆湁璐х墿锛岄渶绉诲簱浣嗙┖鍌ㄤ綅涓嶅绉诲簱");
+ }
+ }
+ #region 娣诲姞鍑哄簱浠诲姟
+
+ var taskNo = new Common().GetMaxNo("TK");
+ var exTask = new LogTask //鍑哄簱浠诲姟
+ {
+ TaskNo = taskNo,
+ Sender = "WMS",
+ Receiver = "WCS",
+ IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛
+
+ StartLocat = locatStart.LocatNo,//璧峰浣嶇疆
+ EndLocat = outMode,//outMode,//鐩爣浣嶇疆
+ PalletNo = palletNo,//鎵樼洏鐮�
+ IsSend = 1,//鏄惁鍙啀娆′笅鍙�
+ IsCancel = 1,//鏄惁鍙彇娑�
+ IsFinish = 1,//鏄惁鍙畬鎴�
+ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟
+ Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚
+ OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗�
+ Msg = "浠�" + locatStart.LocatNo + "鍒�" + outMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅
+ };
+ Db.Insertable(exTask).ExecuteCommand();
+ logTaskList.Add(exTask);
+ var endroad = allot.RoadwayToStationNum(locatStart.RoadwayNo, outMode);
+ outDto1.Add(new OutCommandDto()
+ {
+ PalletNo = palletNo,//鎵樼洏鍙�
+ StartLocate = locatStart.LocatNo, // 璧峰浣嶇疆
+ StartRoadway = locatStart.RoadwayNo,//璧峰宸烽亾
+ EndLocate = outMode,//, // 鐩爣浣嶇疆
+ EndRoadway = endroad,
+ TaskNo = exTask.TaskNo, // 浠诲姟鍙�
+ TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉�
+ OutMode = outMode, //鍑哄簱鍙�
+ Order = Math.Abs(row2 - row1),
+ Type = PLCTypeEnum.ShuttleCar
+
+ });
+ taskNoStr = exTask.TaskNo;
+
+ #endregion
+
+ #region 鏀瑰彉鏁版嵁
+
+ locatStart.Status = "3"; //瑕佸嚭搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍑哄簱
+ Db.Updateable(locatStart).ExecuteCommand();
+
+ #endregion
+
+
+ outDto1.AddRange(moveDto);
+ outDto1.AddRange(outDto2);
+ //娣诲姞鎿嶄綔鏃ュ織璁板綍
+ new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鎵樼洏鍑哄簱", palletNo, "鍑哄簱", $"鐐瑰嚮鍑哄簱鎸夐挳鍑哄簱鎵樼洏涓猴細{palletNo}", userId);
+ Db.CommitTran();
+
+ if (outDto1.Count > 0)
+ {
+ // 姝e紡杩愯绋嬪簭鏀惧紑
+ var list2 = outDto1.Select(m => m.TaskNo).ToList();
+ var jsonData = JsonConvert.SerializeObject(outDto1);
+ string response = "";
+
+ try
+ {
+ var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss")
+ response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS");
+ var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss")
+
+ ////瑙f瀽杩斿洖鏁版嵁
+ var wcsModel = JsonConvert.DeserializeObject<WcsModel2>(response);
+ if (wcsModel.code == 200)
+ {
+ //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
+ new TaskServer().EditTaskIssueOk(list2, time1, time2);
+ str += "涓嬪彂鎴愬姛";
+ }
+ else
+ {
+ new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.message);
+ throw new Exception(wcsModel.message);
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception(ex.Message);
+ }
+
+ }
+
+ return outDto1;
+ }
+ catch (Exception e)
+ {
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+
+
+ #endregion
+ }
+ catch (Exception e)
+ {
+ throw new Exception(e.Message);
+ }
+ }
+
#endregion
#region 鑷姩鍒嗛厤銆佸彇娑堝垎閰嶃�佽幏鍙栨墜鍔ㄥ垎閰嶇殑鏁版嵁婧愩�佹墜鍔ㄥ垎閰�
@@ -2516,7 +2775,7 @@
Dictionary<int, decimal> stockQtyDic = new Dictionary<int, decimal>();//鎵樺嚭搴撶墿鍝佹暟
var qty = 0m;
var house = "";
-
+
//鍒嗛厤璐х墿
qty += assign.AllotPallets(stockDetail, needQty, pNum, bNum, stockQtyDic, notice.WareHouseNo);
foreach (var sc in stockQtyDic)
@@ -3067,7 +3326,7 @@
{
try
{
- var notcie = Db.Queryable<BllExportNotice>().First(m=>m.IsDel == "0" && m.SONo == soNo);
+ var notcie = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == soNo);
if (notcie == null)
{
throw new Exception("鏈煡璇㈠埌鍑哄簱鍗曚俊鎭�");
@@ -3155,9 +3414,9 @@
{
throw new Exception("鍑哄簱鍙e伐浣嶅紓甯�");
}
-
+
var taskNoStr = "";
-
+
// 鍌ㄤ綅鍙�
var locateNo = outStockDetail.First(m => m.PalletNo == item.PalletNo).LocatNo;
@@ -3200,7 +3459,7 @@
}
flagList.Add(0);
continue;
-
+
}
var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo && m.IsDel == "0");//褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭�
@@ -3221,7 +3480,7 @@
if (locate.Status == "1") //鏈夌墿鍝�
{
#region 娣诲姞鍑哄簱浠诲姟
-
+
var taskNo = new Common().GetMaxNo("TK");
var exTask = new LogTask //鍑哄簱浠诲姟
{
@@ -3253,13 +3512,13 @@
StartLocate = locate.LocatNo, // 璧峰浣嶇疆
StartRoadway = locate.RoadwayNo,//鍏跺疄宸烽亾
EndLocate = outModeLocate, // 鐩爣浣嶇疆
-
+
Order = 999,
- Type = PLCTypeEnum.AGV
-
+ Type = PLCTypeEnum.AGV
+
});
taskNoStr = exTask.TaskNo;
-
+
#endregion
#region 鏀瑰彉鏁版嵁
@@ -3347,7 +3606,7 @@
flagList.Add(1);
}
}
-
+
//娣诲姞鎿嶄綔鏃ュ織璁板綍
var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鍗曟嵁", soNo, "鍑哄簱", $"鐐瑰嚮鍑哄簱鎸夐挳鍑哄簱鍗曞彿涓猴細{soNo}鐨勫嚭搴撳崟", userId);
Db.CommitTran();
@@ -3395,8 +3654,8 @@
//if (wcsModel.StatusCode == 0)
//{
// //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
- new TaskServer().EditTaskIssueOk(list2, time1, time2);
- str += "涓嬪彂鎴愬姛";
+ new TaskServer().EditTaskIssueOk(list2, time1, time2);
+ str += "涓嬪彂鎴愬姛";
//}
//if (wcsModel.StatusCode == -1)
//{
@@ -3462,7 +3721,7 @@
//瑕佸嚭搴撶殑鏄庣粏闆嗗悎
var outStockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToList();
//鎵�鏈夎鍑哄簱鐨勫偍浣嶉泦鍚�
- var locateListStrs = outStockDetail.Where(m=> !string.IsNullOrWhiteSpace(m.LocatNo)).Select(m => m.LocatNo).Distinct().ToList();
+ var locateListStrs = outStockDetail.Where(m => !string.IsNullOrWhiteSpace(m.LocatNo)).Select(m => m.LocatNo).Distinct().ToList();
//鐗╂枡缂栫爜琛�
var skuList = Db.Queryable<SysMaterials>().Where(w => w.IsDel == "0");
//鍖呰琛�
@@ -3471,13 +3730,13 @@
try
{
List<LogTask> logTaskList = new List<LogTask>();//姝ゆ鍑哄簱浠诲姟闆嗗悎锛屼负搴斿鍚屾墭鐩樹笉鍚岀墿鏂欏嚭搴�
-
-
+
+
//寰幆鍒嗛厤鐨勪俊鎭敓鎴愬嚭搴撲换鍔�
foreach (var item in list)
{
var taskNoStr = "";
-
+
// 鍌ㄤ綅鍙�
var locateNo = outStockDetail.First(m => m.PalletNo == item.PalletNo).LocatNo;
@@ -3528,7 +3787,7 @@
}
//鍒ゆ柇鍌ㄤ綅
- var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo && m.IsDel == "0");//褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭�
+ var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo && m.IsDel == "0" && m.WareHouseNo == "W01");//褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭�
if (locate == null)
{
flagList.Add(2);
@@ -3545,7 +3804,7 @@
if (locate.Status == "1") //鏈夌墿鍝�
{
- var row1 = int.Parse(locate.LocatNo.Substring(2,2));
+ var row1 = int.Parse(locate.LocatNo.Substring(2, 2));
var row2 = int.Parse(locate.AisleOne.Substring(2, 2));
//闇�瑕佺Щ搴撶殑淇℃伅
var NeedMoveInfo = IsNeedMoveLocate(locate, locateListStrs, out int isOut);
@@ -3567,7 +3826,7 @@
foreach (var s in NeedMoveInfo)
{
//鍌ㄤ綅鍒�
- var rows = int.Parse(s.Substring(2,2));
+ var rows = int.Parse(s.Substring(2, 2));
//鑾峰彇绉诲簱鍌ㄤ綅
var moveAddress = GetMiJiMoveAddress(s, locate.AisleOne);
@@ -3616,8 +3875,8 @@
outDto1.Add(new OutCommandDto()
{
- PalletNo = item.PalletNo,//鎵樼洏鍙�
- StartLocate = locate.LocatNo, // 璧峰浣嶇疆
+ PalletNo = ykTask.PalletNo,//鎵樼洏鍙�
+ StartLocate = ykTask.StartLocat, // 璧峰浣嶇疆
StartRoadway = locate.RoadwayNo,//鍏跺疄宸烽亾
EndLocate = moveAddress,//outMode, // 鐩爣浣嶇疆
TaskNo = ykTaskNo, // 浠诲姟鍙�
@@ -3625,7 +3884,7 @@
Order = Math.Abs(row2 - rows),
Type = PLCTypeEnum.ShuttleCar
- });
+ });
var slotChange = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == s);
var slotChange2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == moveAddress);
@@ -3647,7 +3906,7 @@
}
}
#region 娣诲姞鍑哄簱浠诲姟
-
+
var taskNo = new Common().GetMaxNo("TK");
var exTask = new LogTask //鍑哄簱浠诲姟
{
@@ -3685,7 +3944,7 @@
});
taskNoStr = exTask.TaskNo;
-
+
#endregion
#region 鏀瑰彉鏁版嵁
@@ -3859,26 +4118,26 @@
/// <param name="addressList">瑕佸嚭鍙g殑鍌ㄤ綅闆嗗悎</param>
/// <param name="isOut">鏄惁鍑哄簱 1:鏈夋湭涓嬪彂鐨勪换鍔″湪鍓嶉潰</param>
/// <returns>闇�瑕佺Щ搴撶殑闆嗗悎锛堝鏋滀负绌哄垯涓嶉渶绉诲簱锛�</returns>
- private List<string> IsNeedMoveLocate(SysStorageLocat lcoate,List<string> locateStrList, out int isOut)
+ private List<string> IsNeedMoveLocate(SysStorageLocat lcoate, List<string> locateStrList, out int isOut)
{
var nowAddress = new List<string>(); //闇�瑕佺Щ搴撶殑闆嗗悎
- // 010101 娲惧垪灞�
- //var bol = String.CompareOrdinal(lcoate.LocatNo, lcoate.AisleOne);
-
- var sArray = lcoate.LocatNo.Substring(4,2);
+ // 010101 娲惧垪灞�
+ //var bol = String.CompareOrdinal(lcoate.LocatNo, lcoate.AisleOne);
+
+ var sArray = lcoate.LocatNo.Substring(2, 2);
var row = int.Parse(sArray);//鍌ㄤ綅鍒�
- var sArray2 = lcoate.AisleOne.Substring(4, 2);
+ var sArray2 = lcoate.AisleOne.Substring(2, 2);
var row2 = int.Parse(sArray2); //閫氶亾鍙e垪
isOut = 0;
-
+
var bol = row2 - row > 0;
-
+
//鍚岀粍鐨勫偍浣嶉泦鍚�
var slotList = Db.Queryable<SysStorageLocat>().Where(m => m.RoadwayNo == lcoate.RoadwayNo).ToList();
List<string> list;
-
-
+
+
if (bol)
{
//鍌ㄤ綅灏忎簬閫氶亾鍙� 鍊掑簭
@@ -3931,7 +4190,7 @@
{
return nowAddress;
}
-
+
return nowAddress;
}
@@ -3954,7 +4213,7 @@
// 鑾峰彇绉诲簱鐩爣鍌ㄤ綅
//
- var sArray = oldAddress.Substring(4,2);
+ var sArray = oldAddress.Substring(4, 2);
var ceng = int.Parse(sArray);
//
var sArray2 = slotOut.Substring(2, 2);
@@ -3985,206 +4244,220 @@
//鏍规嵁鍗佸瓧鍙e樊鍊兼渶灏忕殑鎺掑簭
shiKou3 = shiKou3.OrderBy(m => m.distNum).ToList();
- /**
- //1 绉诲姩鍒版渶杩戠殑绌哄偍浣嶏紝蹇呴』鍥炵Щ銆�
- //鏍规嵁鍥涘悜杞︾Щ鍔ㄨ建杩硅绠楀嚭鏈�杩戠┖鍌ㄤ綅銆�
- //鍑哄簱瀹屾垚鍚庢牴鎹壒娆″彿 鐢熶骇鏃ユ湡 鍑哄彛璁$畻鍥炵Щ鍌ㄤ綅銆�
+ /**
+ //1 绉诲姩鍒版渶杩戠殑绌哄偍浣嶏紝蹇呴』鍥炵Щ銆�
+ //鏍规嵁鍥涘悜杞︾Щ鍔ㄨ建杩硅绠楀嚭鏈�杩戠┖鍌ㄤ綅銆�
+ //鍑哄簱瀹屾垚鍚庢牴鎹壒娆″彿 鐢熶骇鏃ユ湡 鍑哄彛璁$畻鍥炵Щ鍌ㄤ綅銆�
- //2 绉诲姩閫傚悎瀛樻斁鐨勭粍锛岀郴缁熻嚜鍔ㄨ绠楁槸鍚﹀洖绉汇��
- //鏍规嵁鎵规鍙� 鐢熶骇鏃ユ湡 鍑哄彛 鐗╂枡绛夎绠楀嚭绉诲簱鐩爣鍌ㄤ綅
- //鍑哄簱瀹屾垚鍚庯紝鍒ゆ柇鏄惁鏈夋瘮褰撳墠搴撲綅鏇村悎閫傜殑瀛樺偍鍌ㄤ綅锛屾湁绉诲姩锛屾棤涓嶇Щ鍔ㄣ��
- */
+ //2 绉诲姩閫傚悎瀛樻斁鐨勭粍锛岀郴缁熻嚜鍔ㄨ绠楁槸鍚﹀洖绉汇��
+ //鏍规嵁鎵规鍙� 鐢熶骇鏃ユ湡 鍑哄彛 鐗╂枡绛夎绠楀嚭绉诲簱鐩爣鍌ㄤ綅
+ //鍑哄簱瀹屾垚鍚庯紝鍒ゆ柇鏄惁鏈夋瘮褰撳墠搴撲綅鏇村悎閫傜殑瀛樺偍鍌ㄤ綅锛屾湁绉诲姩锛屾棤涓嶇Щ鍔ㄣ��
+ */
- var oldSlot = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == oldAddress);
- if (oldSlot == null)
+ var oldSlot = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == oldAddress);
+ if (oldSlot == null)
+ {
+ throw new Exception("鏈兘鎵惧埌鍌ㄤ綅淇℃伅");
+ }
+ #region 1涓嶉渶瑕佸洖绉荤殑
+
+ //鍚庢湡搴撳瓨鎵樼洏琛ㄦ敼浜嗗悗闇�瑕佸姞绛涢�夋潯浠舵墭鐩樼殑鐘舵�侊紙閫�璐�/棰勬嫞锛�
+ var tray1 = Db.Queryable<DataStockDetail>().Where(m => m.LocatNo == oldAddress).ToList();
+ //鏍规嵁鐗╂枡銆佹壒娆°�佹墭鐩樼姸鎬侊紙閫�璐�/棰勬嫞/鏆傚瓨绛夛級鍒嗙粍鍒ゆ柇
+ var d = tray1.GroupBy(m => new { m.SkuNo, m.LotNo, m.PalletTags });
+ var location = string.Empty;
+ if (d.Any())
+ {
+ //鏃у偍浣嶅悓缁勭殑鍌ㄤ綅闆嗗悎
+ var slotList = Db.Queryable<SysStorageLocat>().Where(m => m.RoadwayNo == oldSlot.RoadwayNo).Select(m => m.LocatNo).ToList();
+ foreach (var item in d)
{
- throw new Exception("鏈兘鎵惧埌鍌ㄤ綅淇℃伅");
- }
- #region 1涓嶉渶瑕佸洖绉荤殑
-
- //鍚庢湡搴撳瓨鎵樼洏琛ㄦ敼浜嗗悗闇�瑕佸姞绛涢�夋潯浠舵墭鐩樼殑鐘舵�侊紙閫�璐�/棰勬嫞锛�
- var tray1 = Db.Queryable<DataStockDetail>().Where(m => m.LocatNo == oldAddress).ToList();
- //鏍规嵁鐗╂枡銆佹壒娆°�佹墭鐩樼姸鎬侊紙閫�璐�/棰勬嫞/鏆傚瓨绛夛級鍒嗙粍鍒ゆ柇
- var d = tray1.GroupBy(m => new { m.SkuNo, m.LotNo, m.PalletTags });
- var location = string.Empty;
- if (d.Any())
- {
- //鏃у偍浣嶅悓缁勭殑鍌ㄤ綅闆嗗悎
- var slotList = Db.Queryable<SysStorageLocat>().Where(m => m.RoadwayNo == oldSlot.RoadwayNo).Select(m => m.LocatNo).ToList();
- foreach (var item in d)
+ foreach (var item2 in item)
{
- foreach (var item2 in item)
+ var okLan = Db.Queryable<SysStorageRoadway>().Where(m => m.Status == "0" && m.IsDel == "0" && m.WareHouseNo == item2.WareHouseNo).Select(m => m.RoadwayNo).ToList();
+ //褰撳墠鎵樼洏鎵�鍦ㄦゼ灞�
+ if (oldSlot.Layer == 1)
{
- var okLan = Db.Queryable<SysStorageRoadway>().Where(m => m.Status == "0" && m.IsDel == "0").Select(m => m.RoadwayNo).ToList();
- var tray2 = Db.Queryable<DataStockDetail>().Where(m => m.SkuNo == item2.SkuNo
+ okLan = okLan.Where(m => Convert.ToInt32(m.Replace("MR", "")) <= 56).ToList();
+ }
+ else if (oldSlot.Layer == 2)
+ {
+ okLan = okLan.Where(m => Convert.ToInt32(m.Replace("MR", "")) > 56).ToList();
+ }
+ else
+ {
+ throw new Exception("褰撳墠鎵樼洏鎵�鍦ㄦゼ灞傚紓甯�");
+ }
+
+ var tray2 = Db.Queryable<DataStockDetail>().Where(m => m.SkuNo == item2.SkuNo
&& m.LotNo == item2.LotNo && !slotList.Contains(m.LocatNo) && m.PalletTags == item2.PalletTags && okLan.Contains(m.RoadwayNo)).ToList();
- foreach (var s in tray2)
+ foreach (var s in tray2)
+ {
+ if (string.IsNullOrWhiteSpace(s.RoadwayNo))//鍒ゆ柇鏄惁鍦ㄥ簱澶栵紝濡傛槸璺宠繃
{
- if (string.IsNullOrWhiteSpace(s.RoadwayNo))//鍒ゆ柇鏄惁鍦ㄥ簱澶栵紝濡傛槸璺宠繃
+ continue;
+ }
+ var lan = Db.Queryable<SysStorageLocat>().Where(m => m.RoadwayNo == s.RoadwayNo).OrderBy(m => m.LocatNo).ToList();
+ //鍒ゆ柇鏄惁鏈夊叆搴撲腑銆佸嚭搴撲腑銆佺Щ鍏ヤ腑銆佺Щ鍑轰腑
+ if (lan.Count(m => m.Status == "2" || m.Status == "3" || m.Status == "4" || m.Status == "5") > 0)
+ {
+ continue;
+ }
+ if (lan.Count(m => m.Status == "0") > 0)
+ {
+
+ var bol = GetBecomingLocation(s.RoadwayNo, ref location);
+ if (bol && !string.IsNullOrWhiteSpace(location))
{
- continue;
- }
- var lan = Db.Queryable<SysStorageLocat>().Where(m => m.RoadwayNo == s.RoadwayNo).OrderBy(m => m.LocatNo).ToList();
- //鍒ゆ柇鏄惁鏈夊叆搴撲腑銆佸嚭搴撲腑銆佺Щ鍏ヤ腑銆佺Щ鍑轰腑
- if (lan.Count(m => m.Status == "2" || m.Status == "3" || m.Status == "4" || m.Status == "5") > 0)
- {
- continue;
- }
- if (lan.Count(m => m.Status == "0") > 0)
- {
-
- var bol = GetBecomingLocation(s.RoadwayNo, ref location);
- if (bol && !string.IsNullOrWhiteSpace(location))
- {
- newAddress = location;
- return newAddress;
-
- }
+ newAddress = location;
+ return newAddress;
}
+
}
}
}
-
}
- #endregion
+ }
- #region 2闇�瑕佸洖绉荤殑
+ #endregion
- ////濡傛灉娌℃湁鎵惧埌鍚堥�傜殑鍌ㄤ綅
- //if (string.IsNullOrWhiteSpace(newAddress))
- //{
- // foreach (var s in shiKou3)
- // {
-
- // var r = int.Parse(s.slotCode.Substring(0, 2));
- // var l = int.Parse(s.slotCode.Substring(2, 2));
- // var c = int.Parse(s.slotCode.Substring(4, 2));
- // //鏌ヨ绌哄偍浣�
- // var sqlString = $@"select LocatNo,Row,Column,Layer,(ABS(Row-{r}) + ABS(Column-{l}) ) as distNum
- // from SysStorageLocat where (AisleOneRow = {r} or AisleTwoRow = {r}) and Status in (0) and
- // RoadwayNo !='{oldSlot.RoadwayNo}' and RoadwayNo not in(select RoadwayNo from SysStorageRoadway where Status = 1) order by distNum,SlotCode";
+ #region 2闇�瑕佸洖绉荤殑
- // var addressModels = dataContext.ExecuteQuery<addreClass>(sqlString).ToList();
- // foreach (var item in addressModels)
- // { 銆�
-
-
- // newAddress = item.slotCode;
- // var dz = newAddress.Split(new char[] { '-' });
- // var l1 = dz[1];
- // var c1 = dz[0];
- // newLaneWayAddress = $"{c1}-{l1}-{a[2]}";
- // flags = newLaneWayAddress;
+ ////濡傛灉娌℃湁鎵惧埌鍚堥�傜殑鍌ㄤ綅
+ //if (string.IsNullOrWhiteSpace(newAddress))
+ //{
+ // foreach (var s in shiKou3)
+ // {
- // var slotModel = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == item.slotCode);
+ // var r = int.Parse(s.slotCode.Substring(0, 2));
+ // var l = int.Parse(s.slotCode.Substring(2, 2));
+ // var c = int.Parse(s.slotCode.Substring(4, 2));
+ // //鏌ヨ绌哄偍浣�
+ // var sqlString = $@"select LocatNo,Row,Column,Layer,(ABS(Row-{r}) + ABS(Column-{l}) ) as distNum
+ // from SysStorageLocat where (AisleOneRow = {r} or AisleTwoRow = {r}) and Status in (0) and
+ // RoadwayNo !='{oldSlot.RoadwayNo}' and RoadwayNo not in(select RoadwayNo from SysStorageRoadway where Status = 1) order by distNum,SlotCode";
- // var lan = dataContext.WmsBaseSlot.Where(m => m.SlotLanewayId == slotModel.SlotLanewayId).ToList();
- // if (slotModel.SlotRow > int.Parse(a[2]))
- // {
- // // 鍙栨渶涓婇潰涓�鎺�
- // lan = lan.OrderBy(m => m.SlotCode).ToList();
- // for (int i = 0; i < lan.Count; i++)
- // {
- // var slot = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == lan[i].SlotCode);
- // if (slot.SlotStatus == 0)
- // {
- // if (i == lan.Count - 1)
- // {
- // newAddress = lan[lan.Count - 1].SlotCode;
+ // var addressModels = dataContext.ExecuteQuery<addreClass>(sqlString).ToList();
+ // foreach (var item in addressModels)
+ // { 銆�
- // break;
- // }
- // else
- // {
- // continue;
- // }
- // }
- // else
- // {
- // newAddress = lan[i - 1].SlotCode;
- // break;
- // }
- // }
+ // newAddress = item.slotCode;
+ // var dz = newAddress.Split(new char[] { '-' });
+ // var l1 = dz[1];
+ // var c1 = dz[0];
+ // newLaneWayAddress = $"{c1}-{l1}-{a[2]}";
+ // flags = newLaneWayAddress;
- // }
- // else
- // {
- // // 鍙栨渶涓嬮潰涓�鎺�
- // lan = lan.OrderByDescending(m => m.SlotCode).ToList();
- // for (int i = 0; i < lan.Count; i++)
- // {
- // var slot = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == lan[i].SlotCode);
- // if (slot.SlotStatus == 0)
- // {
- // if (i == lan.Count - 1)
- // {
- // newAddress = lan[lan.Count - 1].SlotCode;
- // break;
- // }
- // else
- // {
- // continue;
- // }
+ // var slotModel = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == item.slotCode);
- // }
- // else
- // {
- // newAddress = lan[i - 1].SlotCode;
- // break;
- // }
- // }
- // }
- // //娣诲姞鍥炵Щ浠诲姟
- // AddHyTask(oldAddress, newAddress, newLaneWayAddress, oldSlot.SlotLanewayId, slotOut, billCode);
- // refLanWayId = slotModel.SlotLanewayId;
- // refLanOutCode = newLaneWayAddress;
- // //9锛氶攣瀹氬偍浣�
- // var updateSlot = dataContext.WmsBaseSlot.Where(m => m.SlotLanewayId == slotModel.SlotLanewayId).ToList();
- // var newAddressRow = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == newAddress);
- // if (newAddressRow.SlotRow > int.Parse(a[2]))
- // {
- // updateSlot = updateSlot.Where(m => m.SlotRow < newAddressRow.SlotRow && m.SlotRow > int.Parse(a[2])).OrderBy(m => m.SlotCode).ToList();
- // }
- // else
- // {
- // updateSlot = updateSlot.Where(m => m.SlotRow > newAddressRow.SlotRow && m.SlotRow < int.Parse(a[2])).OrderByDescending(m => m.SlotCode).ToList();
+ // var lan = dataContext.WmsBaseSlot.Where(m => m.SlotLanewayId == slotModel.SlotLanewayId).ToList();
+ // if (slotModel.SlotRow > int.Parse(a[2]))
+ // {
+ // // 鍙栨渶涓婇潰涓�鎺�
+ // lan = lan.OrderBy(m => m.SlotCode).ToList();
+ // for (int i = 0; i < lan.Count; i++)
+ // {
+ // var slot = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == lan[i].SlotCode);
+ // if (slot.SlotStatus == 0)
+ // {
+ // if (i == lan.Count - 1)
+ // {
+ // newAddress = lan[lan.Count - 1].SlotCode;
- // }
- // foreach (var source in updateSlot)
- // {
- // if (source.SlotCode == newAddress)
- // {
- // continue;
- // }
- // if (source.SlotStatus == 0)
- // {
- // source.SlotStatus = 8;
- // }
- // }
+ // break;
+ // }
+ // else
+ // {
+ // continue;
+ // }
- // if (updateSlot.Count <= 0)
- // {
- // refLanWayId = "";
- // refLanOutCode = "";
- // }
- // dataContext.SubmitChanges();
- // return newAddress;
-
+ // }
+ // else
+ // {
+ // newAddress = lan[i - 1].SlotCode;
+ // break;
+ // }
+ // }
-
- // }
+ // }
+ // else
+ // {
+ // // 鍙栨渶涓嬮潰涓�鎺�
+ // lan = lan.OrderByDescending(m => m.SlotCode).ToList();
+ // for (int i = 0; i < lan.Count; i++)
+ // {
+ // var slot = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == lan[i].SlotCode);
+ // if (slot.SlotStatus == 0)
+ // {
+ // if (i == lan.Count - 1)
+ // {
+ // newAddress = lan[lan.Count - 1].SlotCode;
+ // break;
+ // }
+ // else
+ // {
+ // continue;
+ // }
- // }
+ // }
+ // else
+ // {
+ // newAddress = lan[i - 1].SlotCode;
+ // break;
+ // }
+ // }
+ // }
+ // //娣诲姞鍥炵Щ浠诲姟
+ // AddHyTask(oldAddress, newAddress, newLaneWayAddress, oldSlot.SlotLanewayId, slotOut, billCode);
+ // refLanWayId = slotModel.SlotLanewayId;
+ // refLanOutCode = newLaneWayAddress;
+ // //9锛氶攣瀹氬偍浣�
+ // var updateSlot = dataContext.WmsBaseSlot.Where(m => m.SlotLanewayId == slotModel.SlotLanewayId).ToList();
+ // var newAddressRow = dataContext.WmsBaseSlot.FirstOrDefault(m => m.SlotCode == newAddress);
+ // if (newAddressRow.SlotRow > int.Parse(a[2]))
+ // {
+ // updateSlot = updateSlot.Where(m => m.SlotRow < newAddressRow.SlotRow && m.SlotRow > int.Parse(a[2])).OrderBy(m => m.SlotCode).ToList();
+ // }
+ // else
+ // {
+ // updateSlot = updateSlot.Where(m => m.SlotRow > newAddressRow.SlotRow && m.SlotRow < int.Parse(a[2])).OrderByDescending(m => m.SlotCode).ToList();
- //}
+ // }
+ // foreach (var source in updateSlot)
+ // {
+ // if (source.SlotCode == newAddress)
+ // {
+ // continue;
+ // }
+ // if (source.SlotStatus == 0)
+ // {
+ // source.SlotStatus = 8;
+ // }
+ // }
- return newAddress;
- #endregion
+ // if (updateSlot.Count <= 0)
+ // {
+ // refLanWayId = "";
+ // refLanOutCode = "";
+ // }
+ // dataContext.SubmitChanges();
+ // return newAddress;
-
+
+
+ // }
+
+ // }
+
+ //}
+
+ return newAddress;
+ #endregion
+
+
}
/// <summary>
@@ -4196,14 +4469,14 @@
private bool GetBecomingLocation(string laneWayId, ref string location)
{
bool bl = false;
-
+
// 寰幆鍒ゆ柇褰撳墠缁勬槸鍚︽湁鍓╀綑鍌ㄤ綅
string sqlString = string.Empty;
location = "";
-
+
// 鍒ゆ柇鍌ㄤ綅缁勬槸鍚︽湁绌哄偍浣� 鍏宠仈搴撳瓨鏄庣粏琛ㄥ彲闃叉鍌ㄤ綅鐘舵�佷笉鍑嗙‘閬垮厤閫犳垚婊″叆寮傚父//not in ('1','2','4','6','7','8')
- sqlString = $"select LocatNo,Column,AisleOne from SysStorageLocat where RoadwayNo = {laneWayId} and Status in ('0') and LocatNo not in (select LocatNo from DataStockDetail where RoadwayNo = { laneWayId}) order by Row;";
- var slotModel =Db.SqlQueryable<LocateInfo>(sqlString).ToList();
+ sqlString = $"select LocatNo,[Column],AisleOne from SysStorageLocat where IsDel=0 and WareHouseNo='W01' and RoadwayNo = '{laneWayId}' and Status in ('0') and LocatNo not in (select LocatNo from DataStockDetail where RoadwayNo = '{laneWayId}') order by Row;";
+ var slotModel = Db.SqlQueryable<LocateInfo>(sqlString).ToList();
if (slotModel.Count == 0)
{
bl = false;
@@ -4211,7 +4484,7 @@
else // 瀛樺湪绌哄偍浣�
{
// 鍒ゆ柇褰撳墠缁勫悎閫傜殑鍌ㄤ綅鍦板潃
- var numstr = slotModel[0].AisleOne.Substring(4,2);
+ var numstr = slotModel[0].AisleOne.Substring(4, 2);
int aisleRow = int.Parse(numstr);
if (slotModel[0].Column > aisleRow)
@@ -4226,11 +4499,11 @@
location = slotModel[slotModel.Count - 1].LocatNo;
}
-
+
bl = true;
}
-
+
return bl;
}
@@ -4245,7 +4518,7 @@
public string LocatNo { get; set; }
public int Column { get; set; }
public string AisleOne { get; set; }
-
+
}
/// <summary>
@@ -4324,12 +4597,12 @@
item.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
item.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
item.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級
-
+
}
//鍑哄簱娴佹按锛堟洿鏀圭姸鎬侊級
var allot = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.TaskNo == taskNo || (m.Status == "1" && m.PalletNo == task.PalletNo))).ToList();
var PalletType = "0"; //0锛氱墿鏂欐墭 1锛氱┖鎵樼洏鎵�
-
+
foreach (var item in allot)
{
if (item.SkuNo == "100099")
@@ -4345,9 +4618,9 @@
}
- var endLocateList = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && (m.AreaNo == "B02" || m.AreaNo == "B05")).Select(m=>m.LocatNo).ToList();
+ var endLocateList = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && (m.AreaNo == "B02" || m.AreaNo == "B05")).Select(m => m.LocatNo).ToList();
//鍒ゆ柇鏄惁鏄師杈呮枡鍑哄簱浠诲姟 璐ф灦鍌ㄤ綅=銆嬪钩搴撳偍浣�
- if ( endLocateList.Contains(task.EndLocat) && PalletType == "0")
+ if (endLocateList.Contains(task.EndLocat) && PalletType == "0")
{
//淇敼鐩爣鍦板潃鐘舵��
var endLocat = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == task.EndLocat);
@@ -4429,9 +4702,9 @@
////鍒ゆ柇璧峰鐩爣浣嶇疆閮芥槸骞冲簱
//if (pingKuList.Contains(task.StartLocat) && pingKuList.Contains(task.EndLocat))
//{
- task.Status = "2";
+ task.Status = "2";
//}
-
+
task.IsSend = 0;
task.IsCancel = 0;
task.IsFinish = 0;
@@ -4446,13 +4719,13 @@
locate.Status = "0";
Db.Updateable(locate).ExecuteCommand();
}
-
+
//鐩爣鍌ㄤ綅鏀逛负鏈夎揣鐗� 1
locate2.Status = "1";
Db.Updateable(locate2).ExecuteCommand();
//鍒ゆ柇璧峰鐩爣浣嶇疆閮芥槸骞冲簱
- if ( pingKuList.Contains(task.EndLocat))
+ if (pingKuList.Contains(task.EndLocat))
{
foreach (var item in stockDetail)
{
@@ -4463,7 +4736,7 @@
}
Db.Updateable(stockDetail).ExecuteCommand();
}
-
+
#endregion
@@ -4490,12 +4763,12 @@
try
{
Db.BeginTran();
- var task = Db.Queryable<LogTask>().First(m=>m.IsDel =="0" && m.TaskNo == taskNo);
+ var task = Db.Queryable<LogTask>().First(m => m.IsDel == "0" && m.TaskNo == taskNo);
if (task == null)
{
throw new Exception("娌℃湁鏌ヨ鍒颁换鍔′俊鎭�");
}
- if (task.Status!="1")
+ if (task.Status != "1")
{
throw new Exception("浠诲姟鐘舵�佷笉鏄鍦ㄦ墽琛岋紝璇锋牳瀹�");
}
@@ -4504,7 +4777,7 @@
{
throw new Exception("娌℃湁鏌ヨ鍒拌捣濮嬪偍浣嶄俊鎭�");
}
- if (locate.WareHouseNo!="W04")
+ if (locate.WareHouseNo != "W04")
{
throw new Exception("璧峰鍌ㄤ綅涓嶆槸骞冲簱鍌ㄤ綅锛岃鏍稿疄");
}
@@ -4529,7 +4802,7 @@
}
}
-
+
#endregion
#endregion
@@ -4551,7 +4824,7 @@
throw new Exception("鏈煡璇㈠埌鍑哄簱鍗曚俊鎭�");
}
var task = Db.Queryable<BllExportTimingTask>().Count(m => m.SoNo == soNo);
- if (task>0)
+ if (task > 0)
{
throw new Exception("褰撳墠鍑哄簱鍗曞凡鐢熸垚澶囨枡浠诲姟锛屾棤闇�閲嶅鐐瑰嚮");
}
@@ -4563,7 +4836,7 @@
};
Db.Insertable(exTask).ExecuteCommand();
notice.Status = "3";//淇敼鍗曟嵁鐘舵�佹湭姝e湪鎵ц
- notice.UpdateTime = DateTime.Now;
+ notice.UpdateTime = DateTime.Now;
notice.UpdateUser = userId;
Db.Updateable(notice).ExecuteCommand();
@@ -4575,7 +4848,7 @@
throw new Exception(e.Message);
}
}
-
+
// JC23 澶囨枡瀹氭椂浠诲姟寮�濮� 棰嗘枡鍗曞鏂欎笅鍙戝嚭搴擄紙璋冪敤wcs鎺ュ彛缁欎粬搴撲綅鍦板潃锛�
public List<OutCommandDto> BeiLiaoIssueOutHouse(string url)
{
@@ -4669,7 +4942,7 @@
if (notice.Status == "0" || notice.Status == "1" || notice.Status == "2")
{
var detailList = Db.Queryable<BllExportNoticeDetail>().Where(m => m.IsDel == "0" && m.SONo == item.SONo).ToList();
- if (detailList.Count(m => m.FactQty>0) > 0)
+ if (detailList.Count(m => m.FactQty > 0) > 0)
{
notice.Status = "3"; //鍙樻洿鐘舵�佷负姝e湪鎵ц
Db.Updateable(notice).ExecuteCommand();
@@ -4696,7 +4969,7 @@
if (notice.Status == "0" || notice.Status == "1" || notice.Status == "2")
{
var detailList = Db.Queryable<BllExportNoticeDetail>().Where(m => m.IsDel == "0" && m.SONo == item.SONo).ToList();
- if (detailList.Count(m => m.FactQty>0) > 0)
+ if (detailList.Count(m => m.FactQty > 0) > 0)
{
notice.Status = "3"; //鍙樻洿鐘舵�佷负姝e湪鎵ц
Db.Updateable(notice).ExecuteCommand();
@@ -5085,7 +5358,7 @@
{
//鍏堟煡璇换鍔¤〃涓鏈変换鍔$殑鎶曟枡鍙d俊鎭�
var proCallList = Db.Queryable<BllProductionCallTask>().Where(m => m.IsDel == "0").ToList();
- var proLocationList = proCallList.Select(m=>m.PutInLocation).ToList();
+ var proLocationList = proCallList.Select(m => m.PutInLocation).ToList();
if (proCallList.Count == 0)
{
return null;
@@ -5098,12 +5371,12 @@
{
//褰撳墠鎶曟枡鍙e寘鍚殑宸ヤ綅
var list = locate.Where(m => m.AreaNo == item).ToList();
- var listStr = locate.Where(m => m.AreaNo == item).Select(m=>m.LocatNo).ToList();
+ var listStr = locate.Where(m => m.AreaNo == item).Select(m => m.LocatNo).ToList();
//鍒ゆ柇鎶曟枡鍙g殑宸ヤ綅涓槸鍚︽湁鏈笅鍙戞垚鍔熺殑浠诲姟
- var task = Db.Queryable<LogTask>().Where(m => m.Type == "1" && m.IsSuccess == 0 && m.Status == "0" && listStr.Contains(m.EndLocat) ).OrderBy(m=>m.TaskNo).ToList();
- if(task.Count > 0)
+ var task = Db.Queryable<LogTask>().Where(m => m.Type == "1" && m.IsSuccess == 0 && m.Status == "0" && listStr.Contains(m.EndLocat)).OrderBy(m => m.TaskNo).ToList();
+ if (task.Count > 0)
{
-
+
foreach (var item2 in task)
{
//娣诲姞涓嬪彂浠诲姟鐨勪俊鎭�
@@ -5123,12 +5396,12 @@
//item2.Status = "1";
//Db.Updateable(item2).ExecuteCommand();
}
-
+
//return outlist;
}
}
- if (outlist.Count>0)
+ if (outlist.Count > 0)
{
//灏嗕换鍔″彂閫佽嚦AGV
// 姝e紡杩愯绋嬪簭鏀惧紑
@@ -5147,8 +5420,8 @@
//if (wcsModel.StatusCode == 0)
//{
// //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�//
- new TaskServer().EditTaskIssueOk(list2, time1, time2);
-
+ new TaskServer().EditTaskIssueOk(list2, time1, time2);
+
//}
//if (wcsModel.StatusCode == -1)
//{
@@ -5161,7 +5434,7 @@
throw new Exception(ex.Message);
}
}
-
+
return null;
}
catch (Exception e)
@@ -5186,7 +5459,7 @@
{
throw new Exception("褰撳墠浠诲姟宸插畬鎴�");
}
-
+
Db.BeginTran();
//搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅
var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList();
@@ -5224,11 +5497,11 @@
var exTime = Db.Queryable<BllProductionCallTask>().First(m => m.IsDel == "0" && m.PutInLocation == locate.AreaNo && m.SkuNo == locate.SkuNo);
if (exTime != null)
{
- var notice = Db.Queryable<BllExportNotice>().First(m=>m.IsDel =="0" && m.SONo == exTime.OrderCode);
+ var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == exTime.OrderCode);
//鑾峰彇澶囧ソ鏂欑殑鎵樼洏淇℃伅
var taskStr = Db.Queryable<LogTask>().Where(m => m.IsDel == "0" && (m.Status == "0" || m.Status == "1") && m.Receiver == "AGV").Select(m => m.TaskNo).ToList();
var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "2" && m.SONo == notice.SONo && m.SkuNo == locate.SkuNo && !taskStr.Contains(m.TaskNo)).Select(m => m.PalletNo).ToList();
- if (allotList.Count >0)
+ if (allotList.Count > 0)
{
var stockDetail2 = Db.Queryable<DataStockDetail>().Where(m => allotList.Contains(m.PalletNo)).OrderBy(m => m.LocatNo).First();
@@ -5266,7 +5539,7 @@
else
{
var listLocate = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.AreaNo == locate.AreaNo).ToList();
- if (listLocate.Count(m=>m.SkuNo == locate.SkuNo && m.Status != "0") == 0)
+ if (listLocate.Count(m => m.SkuNo == locate.SkuNo && m.Status != "0") == 0)
{
Db.Deleteable(exTime).ExecuteCommand();
}
@@ -5323,7 +5596,7 @@
//鍒犻櫎搴撳瓨绠辩爜鏄庣粏
Db.Deleteable(item2).ExecuteCommand();
}
- if (comList.Count>0)
+ if (comList.Count > 0)
{
Db.Insertable(comList).ExecuteCommand();
}
@@ -5352,9 +5625,9 @@
#endregion
#region 鍑哄簱娴佹按锛堟洿鏀圭姸鎬侊級
-
+
allot.Status = "5";
-
+
if (stockInfoList.Count == 0)
{
allot.CompleteQty += item.LockQty;
@@ -5368,7 +5641,7 @@
#region 鍑哄簱鍗曞強鏄庣粏
var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(m => m.Id == allot.SODetailNo && m.IsDel == "0");
-
+
if (stockInfoList.Count == 0)
{
noticeDetail.CompleteQty += item.LockQty;
@@ -5383,9 +5656,9 @@
{
var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == noticeDetail.SONo);
notice.Status = "4"; //鏇存敼涓烘墽琛屽畬鎴�//淇敼鍑哄簱鍗曚俊鎭�
-
+
Db.Updateable(notice).ExecuteCommand();
-
+
}
#endregion
@@ -5408,7 +5681,7 @@
}
}
}
-
+
item.LocatNo = locate2.LocatNo;//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛�
item.WareHouseNo = locate2.WareHouseNo;//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
item.RoadwayNo = locate2.RoadwayNo;//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
@@ -5782,7 +6055,7 @@
OutMode = toLocation, //鐩爣鍦板潃
Order = 1,
-
+
});
#endregion
@@ -5872,7 +6145,7 @@
item.TaskNo = taskNoStr; // 鍑哄簱鍒嗛厤淇℃伅涓洿鏂颁换鍔″彿
item.Status = "1"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛�
item.UnstackingMode = unstackingMode2;//鎷嗗灈鏂瑰紡
- item.OutMode = outMode ;//鍑哄簱鍙�
+ item.OutMode = outMode;//鍑哄簱鍙�
//item.LoadingAddre = unstackingMode2 == "0" ? loadingAddre : "";//瑁呰溅鍙�
Db.Updateable(item).ExecuteCommand();
@@ -5916,7 +6189,7 @@
item.TaskNo = taskNo.TaskNo;
item.Status = "1"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛�
item.OutMode = item.OutMode;//鍑哄簱鍙�
- item.UnstackingMode = unstackingMode2 ;//鎷嗗灈妯″紡
+ item.UnstackingMode = unstackingMode2;//鎷嗗灈妯″紡
Db.Updateable(item).ExecuteCommand();
flagList.Add(0);
#endregion
@@ -6007,7 +6280,7 @@
throw new Exception(e.Message);
}
}
-
+
//閲嶆柊涓嬪彂鍑哄簱浠诲姟
public OutCommandDto AgainSendSoTask(string taskNo, int userId, string url)
{
@@ -6330,7 +6603,7 @@
}
#endregion
-
+
/// <summary>
/// 鍒ゆ柇鍑哄簱鏄惁闇�瑕佹媶绠�
@@ -6449,7 +6722,7 @@
{
sqlPub += $"AND tb1.IsDespatch = '{isDespatch}' ";
}
- if (logisticsId != null)
+ if (logisticsId != null)
{
sqlPub += $"AND tb1.LogisticsId = '{logisticsId}' ";
}
diff --git a/Wms/WMS.BLL/DataServer/StockServer.cs b/Wms/WMS.BLL/DataServer/StockServer.cs
index 28c62a6..2ecb669 100644
--- a/Wms/WMS.BLL/DataServer/StockServer.cs
+++ b/Wms/WMS.BLL/DataServer/StockServer.cs
@@ -47,9 +47,11 @@
/// <param name="lotNo">鎵规</param>
/// <param name="status">搴撳瓨鐘舵��</param>
/// <param name="inspectStatus">璐ㄦ鐘舵��</param>
+ /// <param name="wareHouseNo">鎵�灞炰粨搴�</param>
+ /// <param name="areaNo">鎵�灞炲尯鍩�</param>
/// <returns></returns>
public async Task<List<MateDataStockDto>> GetDataStockList(string selectType, string skuNo, string skuName, string ownerNo,
- string ownerName, string lotNo, string status, string inspectStatus)
+ string ownerName, string lotNo, string status, string inspectStatus, string wareHouseNo, string areaNo)
{
Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>()
.AndIF(!string.IsNullOrEmpty(skuNo), a => a.SkuNo.Contains(skuNo))
@@ -59,6 +61,8 @@
.AndIF(!string.IsNullOrEmpty(lotNo), a => a.LotNo.Contains(lotNo))
.AndIF(!string.IsNullOrEmpty(status), a => a.Status == status)
.AndIF(!string.IsNullOrEmpty(inspectStatus), a => a.InspectStatus == inspectStatus)
+ .AndIF(!string.IsNullOrEmpty(wareHouseNo), a => a.WareHouseNo == wareHouseNo)
+ .AndIF(!string.IsNullOrEmpty(areaNo), a => a.AreaNo == areaNo)
.And(a => a.IsDel == "0")
.ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏�
diff --git a/Wms/WMS.IBLL/IBllSoServer/ICompleteDetailServer.cs b/Wms/WMS.IBLL/IBllSoServer/ICompleteDetailServer.cs
index 20c29d2..42a5036 100644
--- a/Wms/WMS.IBLL/IBllSoServer/ICompleteDetailServer.cs
+++ b/Wms/WMS.IBLL/IBllSoServer/ICompleteDetailServer.cs
@@ -26,7 +26,7 @@
/// <param name="boxNo">绠辩爜</param>
/// <param name="boxNo3">鏀爜</param>
/// <returns></returns>
- List<CompleteDetailDto> GetCompBoxInfoList(string boxNo,string boxNo3);
+ List<CompleteDetailDto> GetCompBoxInfoList(string sONo, string boxNo,string boxNo3);
#region 鏁版嵁褰掓。
/// <summary>
diff --git a/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs b/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs
index 80ac280..bae1ed5 100644
--- a/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs
+++ b/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs
@@ -123,6 +123,18 @@
/// <returns></returns>
List<OutCommandDto> IssuePalletNoOut(string palletNo, string outMode, int userId, string url, out string str);
+ /// <summary>
+ /// 鎵樼洏鍑哄簱锛堝瘑闆嗗簱锛�
+ /// </summary>
+ /// <param name="palletNo"></param>
+ /// <param name="outMode"></param>
+ /// <param name="userId"></param>
+ /// <param name="url"></param>
+ /// <param name="str"></param>
+ /// <returns></returns>
+ /// <exception cref="Exception"></exception>
+ List<OutCommandDto> IssuePalletNoOutMk(string palletNo, string outMode, int userId, string url, out string str);
+
//------------------------------------------------------------------------------------------
#region 澶囨枡
diff --git a/Wms/WMS.IBLL/IDataServer/IStockServer.cs b/Wms/WMS.IBLL/IDataServer/IStockServer.cs
index 0b7fb63..0d0a3b2 100644
--- a/Wms/WMS.IBLL/IDataServer/IStockServer.cs
+++ b/Wms/WMS.IBLL/IDataServer/IStockServer.cs
@@ -23,9 +23,11 @@
/// <param name="lotNo">鎵规</param>
/// <param name="status">搴撳瓨鐘舵��</param>
/// <param name="inspectStatus">璐ㄦ鐘舵��</param>
+ /// <param name="wareHouseNo">鎵�灞炰粨搴�</param>
+ /// <param name="areaNo">鎵�灞炲尯鍩�</param>
/// <returns></returns>
Task<List<MateDataStockDto>> GetDataStockList(string selectType, string skuNo, string skuName, string ownerNo, string ownerName, string lotNo,
- string status, string inspectStatus);
+ string status, string inspectStatus, string wareHouseNo, string areaNo);
/// <summary>
/// 鑾峰彇搴撳瓨鏄庣粏
diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs
index 486d8e6..0c97f1d 100644
--- a/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs
+++ b/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs
@@ -142,6 +142,18 @@
/// <param name="boxNo3">鏀�/琚嬬爜</param>
/// <param name="userId">鎿嶄綔浜�</param>
Task SoSetPick(string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string PickQty, int userId);
+ /// <summary>
+ /// 鍑哄簱pda鎷h揣-JC34
+ /// </summary>
+ /// <param name="soNo"></param>
+ /// <param name="soDetailId"></param>
+ /// <param name="palletNo"></param>
+ /// <param name="boxNo">绠辩爜/鐩掔爜/鏀爜</param>
+ /// <param name="pickQty1"></param>
+ /// <param name="userId"></param>
+ /// <returns></returns>
+ /// <exception cref="Exception"></exception>
+ Task SoSetPick34(string soNo, string soDetailId, string palletNo, string boxNo, string pickQty1, int userId);
/// <summary>
/// 鍑哄簱pda鎷h揣
diff --git a/Wms/Wms/Controllers/BllSoController.cs b/Wms/Wms/Controllers/BllSoController.cs
index 3e3ace5..66fcd5e 100644
--- a/Wms/Wms/Controllers/BllSoController.cs
+++ b/Wms/Wms/Controllers/BllSoController.cs
@@ -582,11 +582,11 @@
}
[HttpGet]
- public IActionResult GetCompBoxInfoList( string boxNo,string boxNo3)
+ public IActionResult GetCompBoxInfoList(string sONo, string boxNo,string boxNo3)
{
try
{
- var bolls = _comDetailSvc.GetCompBoxInfoList(boxNo, boxNo3);
+ var bolls = _comDetailSvc.GetCompBoxInfoList(sONo, boxNo, boxNo3);
return Ok(new { code = 0, count = bolls.Count, msg = "鎷h揣鏄庣粏淇℃伅", data = bolls });
}
@@ -638,12 +638,21 @@
return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" });
}
//楠岃瘉鍑哄簱鍙�
- //if (string.IsNullOrWhiteSpace(outMode))
- //{
- // return Ok(new { code = 1, msg = "璇烽�夋嫨鍑哄簱鍙�" });
- //}
-
- var list = _exNoticeSvc.IssuePalletNoOut(palletNo, outMode, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl, out string str);
+ if (string.IsNullOrWhiteSpace(outMode))
+ {
+ return Ok(new { code = 1, msg = "璇烽�夋嫨鍑哄簱鍙�" });
+ }
+ string str = string.Empty;
+ var list = new List<OutCommandDto>();
+ if (outMode == "17" || outMode == "18")
+ {
+ list = _exNoticeSvc.IssuePalletNoOutMk(palletNo, outMode, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl, out str);
+ }
+ else
+ {
+ list = _exNoticeSvc.IssuePalletNoOut(palletNo, outMode, int.Parse(userId), _config.WcsHost + _config.IssueComApiUrl, out str);
+ }
+
return Ok(new { code = 0, msg = str, data = list });
diff --git a/Wms/Wms/Controllers/PdaSoController.cs b/Wms/Wms/Controllers/PdaSoController.cs
index 77e01ba..037cc83 100644
--- a/Wms/Wms/Controllers/PdaSoController.cs
+++ b/Wms/Wms/Controllers/PdaSoController.cs
@@ -160,7 +160,8 @@
[HttpPost]
public async Task SoSetPick(PdaSoVm model)
{
- await _pdaSoSvc.SoSetPick(model.SoNo, model.SoDetailId, model.PalletNo, model.BoxNo, model.BoxNo3, model.PickQty, _userManager.UserId);
+ //await _pdaSoSvc.SoSetPick(model.SoNo, model.SoDetailId, model.PalletNo, model.BoxNo, model.BoxNo3, model.PickQty, _userManager.UserId);
+ await _pdaSoSvc.SoSetPick34(model.SoNo, model.SoDetailId, model.PalletNo, model.BoxNo, model.PickQty, _userManager.UserId);
}
/// <summary>
diff --git a/Wms/Wms/Controllers/StatisticalController.cs b/Wms/Wms/Controllers/StatisticalController.cs
index 83c294e..0d14d91 100644
--- a/Wms/Wms/Controllers/StatisticalController.cs
+++ b/Wms/Wms/Controllers/StatisticalController.cs
@@ -7,6 +7,7 @@
using WMS.IBLL.IDataServer;
using System.Security.Claims;
using System.Threading.Tasks;
+using Model.ModelDto.SysDto;
namespace Wms.Controllers
{
@@ -51,9 +52,9 @@
/// <param name="inspectStatus">璐ㄦ鐘舵��</param>
/// <returns></returns>
[HttpGet]
- public async Task<IActionResult> GetInventoryList(string selectType, string skuNo, string skuName, string ownerNo, string ownerName, string lotNo, string status, string inspectStatus)
+ public async Task<IActionResult> GetInventoryList(string selectType, string skuNo, string skuName, string ownerNo, string ownerName, string lotNo, string status, string inspectStatus, string wareHouseNo, string areaNo)
{
- List<MateDataStockDto> StockList = await _stock.GetDataStockList(selectType, skuNo, skuName, ownerNo, ownerName, lotNo, status, inspectStatus);
+ List<MateDataStockDto> StockList = await _stock.GetDataStockList(selectType, skuNo, skuName, ownerNo, ownerName, lotNo, status, inspectStatus, wareHouseNo, areaNo);
return Ok(new
{
data = StockList,
--
Gitblit v1.8.0