From b88cbdbc97735732fe6406fbe5aa3228eaa1b551 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期一, 20 十月 2025 13:13:44 +0800
Subject: [PATCH] 修改包装管理,包装可输入小数
---
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 924 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 869 insertions(+), 55 deletions(-)
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
index d4719d4..0a3894e 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -29,6 +29,8 @@
using Model.ModelVm.SysVm;
using System.Security.Cryptography.X509Certificates;
using AutoMapper.Configuration.Annotations;
+using Utility;
+using System.Diagnostics.Metrics;
namespace WMS.BLL.BllPdaServer
{
@@ -77,14 +79,15 @@
else
{
//浠庣墿鏂欏悕绉�-鎵规涓彇鍑烘壒娆�
- int indexOfDash = model.LotNo.IndexOf("-");
+ int indexOfDash = model.LotNo.IndexOf("=>");
if (indexOfDash != -1)
{
- model.LotNo = model.LotNo.Substring(indexOfDash + 1);
+ model.LotNo = model.LotNo.Substring(indexOfDash + 2);
}
else
{
- throw new Exception("鐗╂枡-鎵规涓嶅彲涓虹┖!");
+ model.LotNo = "";
+ //throw new Exception("鐗╂枡-鎵规涓嶅彲涓虹┖!");
}
}
@@ -109,17 +112,25 @@
throw new Exception("鏈煡璇㈠埌鎵樼洏淇℃伅锛岃鏍稿疄锛�");
}
//楠岃瘉鍏ュ簱鍗曟槑缁嗘槸鍚﹀瓨鍦�
- var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && m.LotNo.Contains(model.LotNo));
+ var detail = new BllArrivalNoticeDetail();
+ if (string.IsNullOrEmpty(model.LotNo))
+ {
+ detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo);
+ }
+ else
+ {
+ detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && m.LotNo.Contains(model.LotNo));
+ }
if (detail == null)
{
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
@@ -131,13 +142,20 @@
#region 鍖呰
var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == detail.SkuNo);
- var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == detail.PackagNo);
-
- var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺
- var bNum = 0;//绠辩爜鐗╁搧鏁伴噺
+ if (sku == null)
+ {
+ throw new Exception("褰撳墠鐗╂枡淇℃伅涓嶅瓨鍦紝璇锋牳瀹�!");
+ }
+ var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == sku.PackagNo);
+ if (pack == null)
+ {
+ throw new Exception("褰撳墠鐗╂枡鍖呰淇℃伅涓嶅瓨鍦紝璇锋牳瀹�!");
+ }
+ var pNum = 0m;//鎵樼洏鐗╁搧鏁伴噺
+ var bNum = 0m;//绠辩爜鐗╁搧鏁伴噺
//鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
- new Common().GetPackQtyInfo(detail.PackagNo, ref pNum, ref bNum);
+ new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
#endregion
@@ -186,9 +204,9 @@
//缁戝畾绠辨�绘暟閲�
//model.SkuQty = boxInfoList.Sum(s => s.Qty);
//鍜岄�夋嫨鐨勬壒娆″悓鎵规鐨勭鐮佷俊鎭�
- var sameBoxInfoList = boxInfoList.Where(w => w.LotNo == model.LotNo && w.Status == "0").ToList();
+ var sameBoxInfoList = boxInfoList.Where(w => (w.LotNo ?? "") == model.LotNo && w.Status == "0").ToList();
//鍜岄�夋嫨鐨勬壒娆′笉鍚屾壒娆$殑绠辩爜淇℃伅锛堟嫾绠辨壒娆★級
- var notBoxInfoList = boxInfoList.Where(w => w.LotNo != model.LotNo).ToList();
+ var notBoxInfoList = boxInfoList.Where(w => (w.LotNo ?? "") != model.LotNo).ToList();
#endregion
if (sameBoxInfoList.Count <= 0)
@@ -254,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;
@@ -268,7 +286,7 @@
Db.Updateable(sd1).ExecuteCommand();
}
else
- {
+ {
// 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁
sd1 = new DataStockDetail()
{
@@ -299,7 +317,7 @@
InspectMark = bind.InspectMark,
InspectStatus = sku.IsInspect,
BitPalletMark = bind.BitPalletMark,
- PackagNo = detail.PackagNo, //liudl 鐢眘ku鐨勫寘瑁呯紪鍙峰彉涓哄叆搴撳崟鏄庣粏鐨勫寘瑁呯紪鐮�
+ PackagNo = sku.PackagNo,
IsBale = bind.IsBale,
IsBelt = bind.IsBelt,
@@ -307,6 +325,22 @@
CreateUser = 0,
CreateTime = comTime
};
+ if (!string.IsNullOrEmpty(detail.Lot1))
+ {
+ sd1.ProductionTime = Convert.ToDateTime(detail.Lot1);//鐢熶骇鏃ユ湡
+ }
+ if (!string.IsNullOrEmpty(detail.Lot2))
+ {
+ sd1.ExpirationTime = Convert.ToDateTime(detail.Lot2);//鍒版湡鏃ユ湡
+ }
+ 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")
@@ -358,7 +392,7 @@
continue;
}
//绠卞唴鐗╂枡鎵规涓庡崟鎹槑缁嗕笉绗﹀悎
- if (box.SkuNo != detail.SkuNo || box.LotNo != model.LotNo)
+ if (box.SkuNo != detail.SkuNo || (box.LotNo ?? "") != model.LotNo)
{
throw new Exception($"-1:{box.BoxNo}绠卞唴鐗╂枡鍙婃壒娆′笌鍗曟嵁涓嶄竴鑷达紝璇锋牳瀹�!");
}
@@ -466,6 +500,10 @@
}
detail.UpdateUser = userId;
detail.UpdateTime = comTime;
+ if (notice.Type == "4" || notice.Type == "8")
+ {
+ detail.InspectStatus = "1";//杞﹂棿閫�鏂欓粯璁ゆ楠屽悎鏍�
+ }
//鏇存柊鍏ュ簱鍗曟槑缁�
Db.Updateable(detail).ExecuteCommand();
@@ -486,7 +524,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
@@ -531,7 +572,7 @@
#endregion
#region 璐ㄦ璇烽獙
- if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1")
+ if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1" && sku.IsControlled != "1")
{
var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo && m.SupplierLot == bind.SupplierLot);
if (qualityRequest == null)
@@ -1047,7 +1088,7 @@
#endregion
#region 璐ㄦ璇烽獙
- if ((arrNotice.Type == "1" || arrNotice.Type == "4" || arrNotice.Type == "5") && sku.IsInspect != "1")
+ if ((arrNotice.Type == "1" || arrNotice.Type == "4" || arrNotice.Type == "5") && sku.IsInspect != "1" && sku.IsControlled != "1")
{
var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo && m.SupplierLot == bind.SupplierLot);
if (qualityRequest == null)
@@ -1136,14 +1177,15 @@
else
{
//浠庣墿鏂欏悕绉�-鎵规涓彇鍑烘壒娆�
- int indexOfDash = model.LotNo.IndexOf("-");
+ int indexOfDash = model.LotNo.IndexOf("=>");
if (indexOfDash != -1)
{
- model.LotNo = model.LotNo.Substring(indexOfDash + 1);
+ model.LotNo = model.LotNo.Substring(indexOfDash + 2);
}
else
{
- throw new Exception("鐗╂枡鎵规涓嶅彲涓虹┖!");
+ model.LotNo = "";
+ //throw new Exception("鐗╂枡鎵规涓嶅彲涓虹┖!");
}
}
@@ -1154,14 +1196,22 @@
throw new Exception("鏈煡璇㈠埌鎵樼洏淇℃伅锛岃鏍稿疄锛�");
}
// 楠岃瘉鍏ュ簱鍗曟槑缁嗘槸鍚﹀瓨鍦�
- var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && m.LotNo.Contains(model.LotNo));
+ var detail = new BllArrivalNoticeDetail();
+ if (string.IsNullOrEmpty(model.LotNo))
+ {
+ detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo);
+ }
+ else
+ {
+ detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && m.LotNo.Contains(model.LotNo));
+ }
if (detail == null)
{
throw new Exception("褰撳墠鐗╂枡鍙婃壒娆′笌鍗曟嵁鏃犲叧鑱旓紝璇锋牳瀹�!");
}
//鍒ゆ柇鎵樼洏鏄惁鍦ㄥ簱澶�
var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo);
- if (stockDetail != null && !string.IsNullOrEmpty(stockDetail.WareHouseNo))
+ if (stockDetail != null && !string.IsNullOrEmpty(stockDetail.WareHouseNo) && stockDetail.WareHouseNo != "W04")
{
throw new Exception("璇ユ墭鐩樺凡鏈夊偍浣嶄俊鎭紝璇锋牳瀹烇紒");
}
@@ -1175,12 +1225,20 @@
#region 鍖呰
var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == detail.SkuNo);
- //var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == detail.PackagNo); // liudl 鐢盨ku鍖呰缂栧彿鍙樻洿涓哄叆搴撳崟鏄庣粏鍖呰缂栧彿
+ if (sku == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ョ墿鏂欎俊鎭紝璇锋牳瀹烇紒");
+ }
+ var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == sku.PackagNo);
+ if (pack == null)
+ {
+ throw new Exception("鏈煡璇㈠埌璇ョ墿鏂欏寘瑁呬俊鎭紝璇锋牳瀹烇紒");
+ }
- var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺
- var bNum = 0;//绠辩爜鐗╁搧鏁伴噺
+ var pNum = 0m;//鎵樼洏鐗╁搧鏁伴噺
+ var bNum = 0m;//绠辩爜鐗╁搧鏁伴噺
//鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
- new Common().GetPackQtyInfo(detail.PackagNo, ref pNum, ref bNum);
+ new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
#endregion
@@ -1285,14 +1343,23 @@
throw new Exception("褰撳墠鎵樼洏鍚湁璐存爣鐗╂枡淇℃伅锛屼笉鑳界粍鎵�");
}
// 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭�
- var sd1 = Db.Queryable<DataStockDetail>()
- .First(m => m.IsDel == "0" && m.ASNDetailNo == bind.ASNDetailNo && m.PalletNo == model.PalletNo && m.SkuNo == detail.SkuNo && m.LotNo == bind.LotNo);
+ var sd1 = new DataStockDetail();
+ if (!string.IsNullOrEmpty(bind.LotNo))
+ {
+ sd1 = Db.Queryable<DataStockDetail>()
+ .First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo && m.SkuNo == detail.SkuNo && m.LotNo == bind.LotNo);//&& m.ASNDetailNo == bind.ASNDetailNo
+ }
+ else
+ {
+ sd1 = Db.Queryable<DataStockDetail>()
+ .First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo && 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;
@@ -1337,7 +1404,7 @@
InspectMark = bind.InspectMark,
InspectStatus = inspectStatusStr,
BitPalletMark = bind.BitPalletMark,
- PackagNo = detail.PackagNo, //liudl 鐢眘ku鐨勫寘瑁呯紪鍙峰彉涓哄叆搴撳崟鏄庣粏鐨勫寘瑁呯紪鐮�
+ PackagNo = sku.PackagNo, //liudl 鐢眘ku鐨勫寘瑁呯紪鍙峰彉涓哄叆搴撳崟鏄庣粏鐨勫寘瑁呯紪鐮�
IsBale = bind.IsBale,
IsBelt = bind.IsBelt,
@@ -1345,6 +1412,13 @@
CreateUser = 0,
CreateTime = comTime
};
+ if (stockDetail != null)
+ {
+ sd1.WareHouseNo = stockDetail.WareHouseNo;
+ sd1.AreaNo = stockDetail.AreaNo;
+ sd1.RoadwayNo = stockDetail.RoadwayNo;
+ sd1.LocatNo = stockDetail.LocatNo;
+ }
//缁存姢搴撳瓨鏄庣粏璐т富/渚涘簲鍟嗕俊鎭� //0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱
if (notice.Type == "0" || notice.Type == "2" || notice.Type == "4" || notice.Type == "6" || notice.Type == "7")
@@ -1497,7 +1571,7 @@
#endregion
#region 璐ㄦ璇烽獙
- if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1")
+ if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1" && sku.IsControlled != "1")
{
var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo && m.SupplierLot == bind.SupplierLot);
if (qualityRequest == null)
@@ -1788,7 +1862,7 @@
}
}
- else if (notice.Type == "1" || notice.Type == "4") //閲囪喘鍏ュ簱
+ else if (notice.Type == "1" || notice.Type == "4" || notice.Type == "8") //閲囪喘鍏ュ簱
{
string sqlString = $@"SELECT
ASNNo,
@@ -1912,8 +1986,8 @@
var addComBox = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allotId).ToList();
var addComList = addComBox.GroupBy(m => m.BoxNo).ToList();
var sku = Db.Queryable<SysMaterials>().First(m => m.SkuNo == addComBox.First().SkuNo);
- var pNum = 0;
- var bNum = 0;
+ var pNum = 0m;
+ var bNum = 0m;
new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
var boxList = new List<BllBoxInfo>();
foreach (var com in addComList)
@@ -2048,7 +2122,7 @@
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
- public List<BoxInfoDto> GetFMBindBoxInfos(string boxno,string url)
+ /*public List<BoxInfoDto> GetFMBindBoxInfos(string boxno,string url)
{
try
{
@@ -2151,6 +2225,132 @@
{
throw ex;
}
+ }*/
+
+ public List<BoxInfoDto> GetFMBindBoxInfos(string boxno, string url)
+ {
+ try
+ {
+ #region 绠辩爜璇锋眰鎺ュ彛锛屾寮忕郴缁熸斁寮�
+ var data = new
+ {
+ BoxNo = boxno
+ };
+ var jsonData = JsonConvert.SerializeObject(data);
+
+ var response = HttpHelper.DoPost(url, jsonData, "绠辩爜淇℃伅璇锋眰", "FM");
+
+ var obj = JsonConvert.DeserializeObject<FuMaPostModel>(response);//瑙f瀽杩斿洖鏁版嵁
+ if (obj.Success != true)
+ {
+ throw new Exception("璇锋眰澶辫触" + obj.Message);
+ }
+ #endregion
+
+ if (string.IsNullOrEmpty(obj.Data.SkuNo))
+ {
+ //娴嬭瘯鐢紝鍙戝竷姝e紡鍓嶅垹闄ゆ娈典唬鐮�
+ //obj.Data.SkuNo = "50004632";
+ throw new Exception($"鐗╂枡缂栫爜涓嶈兘涓虹┖");
+ }
+
+ //鏌ユ壘鐗╂枡淇℃伅
+ var sku = Db.Queryable<SysMaterials>().First(m => m.SkuNo == obj.Data.SkuNo);
+ if (sku == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌鐗╂枡{obj.Data.SkuNo}淇℃伅");
+ }
+
+ var pNum = 0m;//鎵樼洏鐗╁搧鏁伴噺
+ var bNum = 0m;//绠辩爜鐗╁搧鏁伴噺
+ //鑾峰彇鍖呰淇℃伅
+ new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
+ if (pNum == 0 || bNum == 0)
+ {
+ throw new Exception($"{sku.SkuNo}鐗╁搧鍖呰鏈壘鍒帮紒");
+ }
+
+ var boxList = new List<BllBoxInfo>();
+ var comTime = DateTime.Now;
+ //娣诲姞绠辩爜淇℃伅
+ foreach (var box in obj.Data.DetailList)
+ {
+ foreach (var box2 in box.DetailList2)
+ {
+ var boxInfo = new BllBoxInfo()
+ {
+ BoxNo = obj.Data.BoxNo,
+ BoxNo2 = box.BoxNo2,
+ BoxNo3 = box2.BoxNo3,
+ Qty = obj.Data.Qty,
+ BitBoxMark = obj.Data.BitBoxMark,
+
+ ASNNo = "",
+ //ASNDetailNo = noticeDetail.Id,
+ OrderCode = "",//notice.OrderCode
+ //BindNo = bindId,
+ //PalletNo = model.PallNo,
+ FullQty = bNum,
+ Status = "0",
+ SkuNo = sku.SkuNo,
+ SkuName = sku.SkuName,
+ LotNo = box2.LotNo,
+ LotText = obj.Data.LotNoBoxNum,
+ ProductionTime = DateTime.Parse(box2.ProductionTime),
+ ExpirationTime = DateTime.Parse(box2.ExpirationTime),
+ //CompleteTime = "",
+ InspectMark = "0",
+ InspectStatus = "0",
+ Origin = "璧嬬爜",
+ CreateTime = comTime,
+ CreateUser = 0
+ };
+ boxList.Add(boxInfo);
+ };
+ }
+ try
+ {
+ //寮�鍚簨鍔�
+ Db.BeginTran();
+
+ Db.Fastest<BllBoxInfo>().BulkCopy(boxList);
+
+ //鎻愪氦浜嬪姟
+ Db.CommitTran();
+ }
+ catch (Exception ex)
+ {
+ //鍥炴粴浜嬪姟
+ Db.RollbackTran();
+ throw new Exception("鎻掑叆绠辩爜澶辫触锛�" + ex.Message);
+ }
+
+ string sqlString = $@"SELECT
+ ASNNo,
+ BoxNo,
+ SkuNo,
+ SkuName,
+ LotNo,
+ BitBoxMark,
+ SUM(Qty) as Qty
+ FROM BllBoxInfo
+ WHERE IsDel = '0'
+ AND Status='0'
+ AND BoxNo = '{boxno}'
+ GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
+
+ var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
+
+ if (models.Count == 0)
+ {
+ throw new Exception("绠辩爜淇℃伅涓嶅瓨鍦�!");
+ }
+ return models;
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
}
/// <summary>
@@ -2226,15 +2426,17 @@
};
//鑾峰彇鐘舵�佹槸鏈粍鎵樼殑鏍囩淇℃伅
- var models = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo && m.ASNDetailNo == asnDetailId ).GroupBy(m=> new { m.ProductionTime,m.ExpirationTime }).Select(m=>new { m.ProductionTime ,m.ExpirationTime}).OrderBy(m=>m.ProductionTime).ToList();//&& m.Status == "0"
+ var models = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo && m.ASNDetailNo == asnDetailId && m.Status == "0")
+ .GroupBy(m=> new { m.ProductionTime,m.ExpirationTime })
+ .Select(m=>new { m.ProductionTime ,m.ExpirationTime}).OrderBy(m=>m.ProductionTime).ToList();//&& m.Status == "0"
foreach (var item in models)
{
- var boxNoList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo && m.ASNDetailNo == asnDetailId && m.ProductionTime == item.ProductionTime).Select(m => m.BoxNo).ToList();
+ var boxNoList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.Status == "0" && m.ASNNo == asnNo && m.ASNDetailNo == asnDetailId && m.ProductionTime == item.ProductionTime).Select(m => m.BoxNo).ToList();
if (boxNoList.Count > 0)
{
data.BoxNoList = boxNoList;
- data.Date1 = item.ProductionTime.ToString();
- data.Date2 = item.ExpirationTime.ToString();
+ data.Date1 = item.ProductionTime == null ? "" : Convert.ToDateTime(item.ProductionTime).ToString("yyyy-MM-dd");
+ data.Date2 = item.ExpirationTime == null ? "" : Convert.ToDateTime(item.ExpirationTime).ToString("yyyy-MM-dd");
break;
}
@@ -2411,6 +2613,492 @@
{
throw new Exception(e.Message);
}
+ }
+
+ /// <summary>
+ /// 鏍规嵁绠辩爜鑾峰彇鏍囩绠辩爜淇℃伅锛堣溅闂村叆搴�-鑾峰彇WMS鐢熸垚鐨勭淇℃伅锛�
+ /// </summary>
+ /// <param name="model"></param>
+ /// <returns></returns>
+ public List<BoxInfoDto> GetWmsBoxInfos(string boxNo)
+ {
+ try
+ {
+ if (string.IsNullOrEmpty(boxNo))
+ {
+ throw new Exception("璇锋壂鎻忓绠辨潯鐮�!");
+ }
+
+ string sqlString = $@"SELECT BoxNo, SkuNo, SkuName, LotNo, BitBoxMark, SUM(Qty) as Qty FROM BllBoxInfo
+ WHERE IsDel = '0' and Status='0' and BoxNo = '{boxNo}'
+ GROUP BY BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; ";
+ var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString);
+
+ if (models.Count != 0)
+ {
+ return models;
+ }
+ else
+ {
+ throw new Exception("娌℃湁鏌ヨ鍒扮鐮佷俊鎭�");
+ }
+
+ }
+ catch (Exception ex)
+ {
+ throw ex;
+ }
+ }
+
+ // 杞﹂棿缁戝畾鎵樼洏-璐存爣
+ public void ChejianIn(string palletNo,string boxNo,decimal qty,string areaNo,int userId)
+ {
+ try
+ {
+ #region MyRegion
+
+ if (string.IsNullOrWhiteSpace(palletNo))
+ {
+ throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�");
+ }
+ if (string.IsNullOrWhiteSpace(boxNo))
+ {
+ throw new Exception("绠卞彿涓嶈兘涓虹┖");
+ }
+ if (qty<=0)
+ {
+ throw new Exception("鏁伴噺涓嶈兘灏忕瓑0");
+ }
+ var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo).ToList();
+ if (boxInfo.Count == 0)
+ {
+ throw new Exception("鏈煡璇㈠埌褰撳墠绠卞彿淇℃伅");
+ }
+ var boxInfoOne = boxInfo.First();
+ var pall = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNo);
+ if (pall == null)
+ {
+ throw new Exception("鏈煡璇㈠埌褰撳墠鎵樼洏淇℃伅");
+ }
+ #endregion
+
+ //寮�鍚簨鍔�
+ Db.BeginTran();
+ //褰撳墠鏃堕棿
+ var comTime = DateTime.Now;
+
+ #region 鍖呰
+
+ var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == boxInfoOne.SkuNo);
+ var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == sku.PackagNo);
+
+ var pNum = 0m;//鎵樼洏鐗╁搧鏁伴噺
+ var bNum = 0m;//绠辩爜鐗╁搧鏁伴噺
+
+ //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
+ new Common().GetPackQtyInfo(pack.PackagNo, ref pNum, ref bNum);
+
+ #endregion
+
+ var msgStr = $"绠卞彿涓簕boxNo}";
+ var boxInfoList = new List<BllBoxInfo>();
+
+
+ boxInfoList.AddRange(boxInfo);
+
+ #region 搴撳瓨鏄庣粏
+
+ var area = Db.Queryable<SysStorageArea>().First(m => m.IsDel == "0" && m.AreaNo == areaNo);
+ if (area == null)
+ {
+ throw new Exception("鍏ュ簱鍖哄煙涓嶈兘涓虹┖");
+ }
+
+ var tags = "0";
+
+ // 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭�
+ var sd1 = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.SkuNo== boxInfoOne.SkuNo && m.LotNo == boxInfoOne.LotNo && m.PalletNo == palletNo);
+ var sdId1 = 0;
+ if (sd1 != null)
+ {
+ if (sd1.AreaNo!= areaNo)
+ {
+ throw new Exception("閫夋嫨鐨勫尯鍩熶笌搴撳瓨涓嶅悓");
+ }
+ sdId1 = sd1.Id;
+ // 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁
+ sd1.Qty += qty;
+ sd1.CompleteTime = comTime;
+ sd1.UpdateUser = userId;
+ sd1.UpdateTime = comTime;
+
+ Db.Updateable(sd1).ExecuteCommand();
+ }
+ else
+ {
+ var sd2 = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo && m.IsDel == "0" && !string.IsNullOrWhiteSpace(m.AreaNo));
+ if (sd2.Count(m=>m.AreaNo!= areaNo) > 0)
+ {
+ throw new Exception("褰撳墠鎵樼洏浣嶇疆涓庨�夋嫨鐨勪笉鍚岋紝璇锋牳瀹�");
+ }
+ // 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁
+ sd1 = new DataStockDetail()
+ {
+ ASNNo = "",
+ LotNo = boxInfoOne.LotNo,
+ LotText = boxInfoOne.LotText,
+ SupplierLot = boxInfoOne.SupplierLot,
+ SkuNo = sku.SkuNo,
+ SkuName = sku.SkuName,
+ Standard = sku.Standard,
+ Qty = qty,
+ LockQty = 0,
+ FrozenQty = 0,
+ InspectQty = 0,
+ WareHouseNo = area.WareHouseNo,//鎵�灞炰粨搴�
+ RoadwayNo = "",//鎵�灞炲贩閬�
+ AreaNo = area.AreaNo,//鎵�灞炲尯鍩�
+ LocatNo = "",//鍌ㄤ綅鍦板潃
+ PalletNo = palletNo,
+ PalletTags = tags,
+ CompleteTime = comTime,
+ ProductionTime = boxInfoOne.ProductionTime,
+ ExpirationTime = boxInfoOne.ExpirationTime,
+ Status = "0",
+ InspectMark = boxInfoOne.InspectMark,
+ InspectStatus = "1",//sku.IsInspect,//浠庤溅闂村叆搴撶殑璐ㄦ鐘舵�侀粯璁ゅ悎鏍�
+ BitPalletMark = "1",
+ PackagNo = sku.PackagNo,
+
+ IsDel = "0",
+ CreateUser = 0,
+ CreateTime = comTime
+ };
+
+ //娣诲姞搴撳瓨鏄庣粏
+ sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity();
+ }
+ #endregion
+
+ // 鏇存敼绠辨敮鍏崇郴琛�
+ decimal factQty = 0.00m;//鎵樼洏鎬绘暟閲�
+
+
+ //鏍囩缁勬墭
+ var boxGroup = boxInfo.GroupBy(m => m.BoxNo).ToList();
+ foreach (var g in boxGroup)
+ {
+ decimal boxFullQty = 0;//绠卞唴鎬绘暟閲�
+ foreach (var box in g)
+ {
+ if (box.BindNo != null && box.BindNo != 0)
+ {
+ continue;
+ }
+
+
+ box.PalletNo = palletNo;
+ box.Status = "2";
+
+ box.CompleteTime = comTime;
+ box.UpdateTime = comTime;
+ box.UpdateUser = userId;
+
+ //box.Qty = box.Qty;
+ //box.BitBoxMark = box.Qty == box.FullQty ? "0" : "1";
+
+ factQty += box.Qty;
+ boxFullQty += box.Qty;
+
+ #region 搴撳瓨绠辩爜鏄庣粏
+ var box2 = new DataBoxInfo()
+ {
+ StockDetailId = sdId1,
+ BoxNo = box.BoxNo,
+ BoxNo2 = box.BoxNo2,
+ BoxNo3 = box.BoxNo3,
+ PalletNo = box.PalletNo,
+ PalletNo2 = box.PalletNo2,
+ PalletNo3 = box.PalletNo3,
+ Qty = box.Qty,
+ FullQty = box.FullQty,
+ Status = "2",//0锛氭湭缁勬墭 1锛氬凡缁勬墭 2锛氬凡鍏ュ簱 3锛氬凡鍑哄簱 4:宸插垎閰� 5锛氬凡鎷h揣
+ LotNo = box.LotNo,
+ LotText = box.LotText,
+ SkuNo = box.SkuNo,
+ SkuName = box.SkuName,
+ Standard = sku.Standard,
+ ProductionTime = box.ProductionTime,
+ SupplierLot = box.SupplierLot,
+ InspectStatus = sku.IsInspect,
+ InspectMark = box.InspectMark,
+ BitBoxMark = box.BitBoxMark,
+ ExpirationTime = box.ExpirationTime,
+
+ CreateUser = 0,
+ CreateTime = comTime
+ };
+ //娣诲姞搴撳瓨绠辩爜鏄庣粏
+ Db.Insertable(box2).ExecuteCommand();
+ #endregion
+
+ #region 鎻掑叆杞﹂棿鍑哄叆搴撹褰曡〃
+ //鎻掑叆鍏ュ簱鏃ュ織
+ var _log = new LogWorkShop
+ {
+ Type = "0",//绫诲瀷锛�0锛氬叆搴� 1锛氬嚭搴�
+ PalletNo = palletNo,
+ BoxNo=box.BoxNo,
+ LotNo=box.LotNo,
+ SkuNo=box.SkuNo,
+ SkuName=box.SkuName,
+ Qty=box.Qty
+ };
+ //娣诲姞搴撳瓨绠辩爜鏄庣粏
+ Db.Insertable(_log).ExecuteCommand();
+ #endregion
+ }
+ if (boxFullQty > bNum)
+ {
+ throw new Exception($"缁戝畾澶辫触锛寋g.Key}绠辩爜缁戝畾鏁伴噺澶т簬璇ョ墿鍝佸寘瑁呮暟閲忥紒");
+ }
+ }
+ //鏇存敼绠辨敮鍏崇郴琛ㄤ俊鎭�
+ Db.Updateable(boxInfoList).ExecuteCommand();
+
+ #region 搴撳瓨
+ var dataStock = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == boxInfoOne.LotNo);
+ if (dataStock != null)
+ {
+ dataStock.Qty += factQty;
+ Db.Updateable(dataStock).ExecuteCommand();
+ }
+ else
+ {
+ var stock = new DataStock()
+ {
+ SkuNo = sku.SkuNo,
+ SkuName = sku.SkuName,
+ Standard = sku.Standard,
+ LotNo = boxInfoOne.LotNo,
+ LotText = boxInfoOne.LotText,
+ Qty = qty,
+ LockQty = 0,
+ FrozenQty = 0,
+ IsSampling = "0",
+ IsDel = "0",
+ CreateUser = userId,
+ CreateTime = comTime
+ };
+ Db.Insertable(stock).ExecuteCommand();
+ }
+ #endregion
+
+
+ // 鏇存敼鎵樼洏浣跨敤鐘舵��
+ var sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{palletNo}';";
+ ////娣诲姞鎵樼洏璁板綍琛ㄦ暟鎹�
+ //sqlStr += $"insert into LogPalletTrack values('{palletNo}','{boxNo}','缁勭洏','0',getDate(),{userId},NULL,NULL);";
+ Db.Ado.ExecuteCommand(sqlStr);
+ new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "杞﹂棿鍏ュ簱", boxNo, "娣诲姞", $"娣诲姞浜嗘墭鐩樼爜涓猴細{palletNo}銆亄msgStr}鐨勫叆搴撲俊鎭�", userId);
+
+ //鎻愪氦浜嬪姟
+ Db.CommitTran();
+
+ }
+ catch (Exception e)
+ {
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+ }
+
+ /// <summary>
+ /// 杞﹂棿缁戝畾鎵樼洏 涓嶈创鏍囩墿鏂�
+ /// </summary>
+ /// <param name="model"></param>
+ /// <param name="userId"></param>
+ /// <exception cref="Exception"></exception>
+ public void ChejianQtyIn(string palletNo, string skuNo, string lotNo, decimal qty, string areaNo, int userId)
+ {
+ try
+ {
+ #region MyRegion
+
+ if (string.IsNullOrWhiteSpace(palletNo))
+ {
+ throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�");
+ }
+ if (string.IsNullOrWhiteSpace(skuNo))
+ {
+ throw new Exception("鐗╂枡涓嶈兘涓虹┖");
+ }
+ if (qty <= 0)
+ {
+ throw new Exception("鏁伴噺涓嶈兘灏忕瓑0");
+ }
+ var skuInfo = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == skuNo);
+ if (skuInfo == null)
+ {
+ throw new Exception("鏈煡璇㈠埌鐗╂枡淇℃伅");
+ }
+ var pall = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNo);
+ if (pall == null)
+ {
+ throw new Exception("鏈煡璇㈠埌褰撳墠鎵樼洏淇℃伅");
+ }
+ #endregion
+
+ //寮�鍚簨鍔�
+ Db.BeginTran();
+ //褰撳墠鏃堕棿
+ var comTime = DateTime.Now;
+
+ #region 鍖呰
+
+ var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == skuInfo.PackagNo);
+
+ var pNum = 0m;//鎵樼洏鐗╁搧鏁伴噺
+ var bNum = 0m;//绠辩爜鐗╁搧鏁伴噺
+
+ //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
+ new Common().GetPackQtyInfo(pack.PackagNo, ref pNum, ref bNum);
+
+ #endregion
+
+ #region 搴撳瓨鏄庣粏
+
+ var area = Db.Queryable<SysStorageArea>().First(m => m.IsDel == "0" && m.AreaNo == areaNo);
+ if (area == null)
+ {
+ throw new Exception("鍏ュ簱鍖哄煙涓嶈兘涓虹┖");
+ }
+
+ var tags = "0";
+
+ // 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭�
+ var sd1 = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.SkuNo == skuNo && m.LotNo == lotNo && m.PalletNo == palletNo);
+ var sdId1 = 0;
+ if (sd1 != null)
+ {
+ if (sd1.AreaNo != areaNo)
+ {
+ throw new Exception("閫夋嫨鐨勫尯鍩熶笌搴撳瓨涓嶅悓");
+ }
+ sdId1 = sd1.Id;
+ // 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁
+ sd1.Qty += qty;
+ sd1.CompleteTime = comTime;
+ sd1.UpdateUser = userId;
+ sd1.UpdateTime = comTime;
+ if (sd1.Qty >= pNum)
+ {
+ sd1.BitPalletMark = "0";
+ }
+ Db.Updateable(sd1).ExecuteCommand();
+ }
+ else
+ {
+ // 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁
+ sd1 = new DataStockDetail()
+ {
+ LotNo = lotNo,
+ SupplierLot = "",
+ SkuNo = skuInfo.SkuNo,
+ SkuName = skuInfo.SkuName,
+ Standard = skuInfo.Standard,
+ Qty = qty,
+ LockQty = 0,
+ FrozenQty = 0,
+ InspectQty = 0,
+ WareHouseNo = area.WareHouseNo,//鎵�灞炰粨搴�
+ RoadwayNo = "",//鎵�灞炲贩閬�
+ AreaNo = area.AreaNo,//鎵�灞炲尯鍩�
+ LocatNo = "",//鍌ㄤ綅鍦板潃
+ PalletNo = palletNo,
+ PalletTags = tags,
+ CompleteTime = comTime,
+ //ProductionTime = boxInfoOne.ProductionTime,
+ //ExpirationTime = boxInfoOne.ExpirationTime,
+ Status = "0",
+ InspectMark = "0",
+ InspectStatus = "1",
+ BitPalletMark = qty >= pNum ?"0" :"1",
+ PackagNo = skuInfo.PackagNo,
+
+ IsDel = "0",
+ CreateUser = 0,
+ CreateTime = comTime
+ };
+
+ //娣诲姞搴撳瓨鏄庣粏
+ sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity();
+ }
+ #endregion
+
+ // 鏇存敼绠辨敮鍏崇郴琛�
+ decimal factQty = 0.00m;//鎵樼洏鎬绘暟閲�
+
+ #region 搴撳瓨
+ var dataStock = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == skuInfo.SkuNo && m.LotNo == lotNo);
+ if (dataStock != null)
+ {
+ dataStock.Qty += factQty;
+ Db.Updateable(dataStock).ExecuteCommand();
+ }
+ else
+ {
+ var stock = new DataStock()
+ {
+ SkuNo = skuInfo.SkuNo,
+ SkuName = skuInfo.SkuName,
+ Standard = skuInfo.Standard,
+ LotNo = lotNo,
+ LotText = "",
+ Qty = qty,
+ LockQty = 0,
+ FrozenQty = 0,
+ IsSampling = "0",
+ IsDel = "0",
+ CreateUser = userId,
+ CreateTime = comTime
+ };
+ Db.Insertable(stock).ExecuteCommand();
+ }
+ #endregion
+
+ #region
+ //鎻掑叆鍏ュ簱鏃ュ織
+ var _log = new LogWorkShop
+ {
+ Type = "0",//绫诲瀷锛�0锛氬叆搴� 1锛氬嚭搴�
+ PalletNo = palletNo,
+ BoxNo = "",
+ LotNo = lotNo,
+ SkuNo = sd1.SkuNo,
+ SkuName = sd1.SkuName,
+ Qty = qty
+ };
+ //娣诲姞搴撳瓨绠辩爜鏄庣粏
+ Db.Insertable(_log).ExecuteCommand();
+ #endregion
+ // 鏇存敼鎵樼洏浣跨敤鐘舵��
+ var sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{palletNo}';";
+ ////娣诲姞鎵樼洏璁板綍琛ㄦ暟鎹�
+ //sqlStr += $"insert into LogPalletTrack values('{palletNo}','{boxNo}','缁勭洏','0',getDate(),{userId},NULL,NULL);";
+ Db.Ado.ExecuteCommand(sqlStr);
+ new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "杞﹂棿鍏ュ簱", skuNo, "娣诲姞", $"娣诲姞浜嗘墭鐩樼爜涓猴細{palletNo}鐨勫叆搴撲俊鎭�", userId);
+
+ //鎻愪氦浜嬪姟
+ Db.CommitTran();
+
+ }
+ catch (Exception e)
+ {
+ Db.RollbackTran();
+ throw new Exception(e.Message);
+ }
+
}
#endregion
@@ -2617,8 +3305,8 @@
}
//鑾峰彇鎵樼洏淇℃伅
var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == "100099");
- var pNum = 0;
- var bNum = 0;
+ var pNum = 0m;
+ var bNum = 0m;
new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
@@ -3796,10 +4484,18 @@
try
{
string strMsg = "";
- var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == locatNo && w.Status == "0" && w.WareHouseNo == "W04");
+ var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == locatNo && w.WareHouseNo == "W04");
if (storageLocat == null)
{
- throw new Exception("-1:鍦扮爜(鍌ㄤ綅淇℃伅)涓嶅瓨鍦ㄦ垨闈炵┖闂茬姸鎬侊紝璇锋牳鏌�!");
+ throw new Exception("-1:鍦扮爜(鍌ㄤ綅淇℃伅)涓嶅瓨鍦紝璇锋牳鏌�!");
+ }
+ if (storageLocat.Status != "0")
+ {
+ var detailInfo = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.LocatNo == storageLocat.LocatNo);
+ if (detailInfo != null)
+ {
+ throw new Exception("-1:鍦扮爜(鍌ㄤ綅淇℃伅)闈炵┖闂诧紝璇锋牳鏌�!");
+ }
}
return strMsg;
@@ -5504,7 +6200,7 @@
#endregion
#region 璐ㄦ璇烽獙
- if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1")
+ if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1" && sku.IsControlled != "1")
{
var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo && m.SupplierLot == bind.SupplierLot);
if (qualityRequest == null)
@@ -5583,9 +6279,12 @@
{
foreach (var item in stockDetail)
{
- if (!string.IsNullOrEmpty(item.WareHouseNo))
+ if (!string.IsNullOrEmpty(item.WareHouseNo) && !string.IsNullOrEmpty(item.AreaNo))
{
- throw new Exception("璇ユ墭鐩樻湭鍦ㄥ簱澶栵紝璇锋牳鏌�!");
+ if (item.AreaNo != "B06" && item.AreaNo != "B07" && item.AreaNo != "B09")
+ {
+ throw new Exception("璇ユ墭鐩樻湭鍦ㄥ簱澶栵紝璇锋牳鏌�!");
+ }
}
}
iscount = 1; //鍥炴祦鍏ュ簱
@@ -5593,10 +6292,18 @@
#endregion
#region 鍦扮爜淇℃伅(鍌ㄤ綅淇℃伅)
- var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == model.LocatNo && w.Status == "0");
+ var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == model.LocatNo);
if (storageLocat == null)
{
- throw new Exception("鍌ㄤ綅淇℃伅涓嶅瓨鍦ㄦ垨闈炵┖闂茬姸鎬侊紝璇锋牳鏌�!");
+ throw new Exception("鍌ㄤ綅淇℃伅涓嶅瓨锛岃鏍告煡!");
+ }
+ if (storageLocat.Status != "0")
+ {
+ var detailInfo=Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.LocatNo == storageLocat.LocatNo);
+ if (detailInfo != null)
+ {
+ throw new Exception("鍌ㄤ綅涓嶆槸绌洪棽鐘舵�侊紝璇锋牳鏌�!");
+ }
}
#endregion
@@ -6022,6 +6729,113 @@
}
#endregion
+ #region 浠撳簱鏀惰揣
+ /// <summary>
+ /// 浠撳簱纭鏀惰揣
+ /// </summary>
+ /// <param name="model"></param>
+ public void ConfirmTakeOf(string palletNo,int userId)
+ {
+ try
+ {
+ #region 楠岃瘉淇℃伅
+ if (string.IsNullOrEmpty(palletNo))
+ {
+ throw new Exception("鎵樼洏鏉$爜涓嶈兘涓虹┖!");
+ }
+
+ //鑾峰彇鎵樼洏淇℃伅
+ var pallet = Db.Queryable<SysPallets>().First(w => w.IsDel == "0" && w.PalletNo == palletNo);
+ //楠岃瘉鎵樼洏淇℃伅鏄惁涓虹┖
+ if (pallet == null)
+ {
+ throw new Exception("鎵樼洏淇℃伅涓嶅瓨鍦紝璇锋鏌�!");
+ }
+ if (pallet.Status == "0")
+ {
+ throw new Exception("鎵樼洏鏈娇鐢紝璇锋鏌�!");
+ }
+ #endregion
+
+ //鑾峰彇搴撳瓨鏄庣粏淇℃伅
+ var stockDetailList = Db.Queryable<DataStockDetail>().Where(s => s.IsDel == "0" && s.PalletNo == palletNo).ToList();
+ //楠岃瘉搴撳瓨鏄庣粏淇℃伅鏄惁瀛樺湪
+ if (stockDetailList.Count<=0)
+ {
+ throw new Exception("搴撳瓨鏄庣粏涓嶅瓨鍦紝璇锋鏌ュ簱瀛樹俊鎭�!");
+ }
+ //寮�鍚簨鍔�
+ Db.BeginTran();
+
+ foreach (var item in stockDetailList)
+ {
+ //if (item.AreaNo != "B06" && item.AreaNo != "B07" && item.AreaNo != "B09")
+ //{
+ // throw new Exception("璇ユ墭鐩橀潪绾胯竟鍥炲簱鎵樼洏!");
+ //}
+ //搴撳瓨鎬昏〃
+ var stock = Db.Queryable<DataStock>().First(w => w.IsDel == "0" && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo);
+ if (stock == null)
+ {
+ throw new Exception($"鏈煡璇㈠埌璇ユ墭鐩樹笂鐗╂枡缂栫爜涓�:{item.SkuNo}鐨勫簱瀛樹俊鎭�!");
+ }
+
+ var boxInfoList = Db.Queryable<DataBoxInfo>().Where(w => w.IsDel == "0" && w.PalletNo == palletNo && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo).ToList();
+ if (boxInfoList.Count > 0)
+ {
+ foreach (var box in boxInfoList)
+ {
+ var bllBox = Db.Queryable<BllBoxInfo>().First(w => w.IsDel == "0" && w.Status != "0" && w.BoxNo == box.BoxNo);
+ if (bllBox != null)
+ {
+ bllBox.Status = "0";
+ bllBox.ASNDetailNo = null;
+ bllBox.BindNo = null;
+ bllBox.PalletNo = "";
+ //鏇存柊绠辨敮鏄庣粏琛�
+ Db.Updateable(bllBox).ExecuteCommand();
+ }
+ }
+ //鍒犻櫎搴撳瓨绠辩爜淇℃伅
+ Db.Deleteable(boxInfoList).ExecuteCommand();
+ }
+
+ //鍒犻櫎鎴栦慨鏀瑰簱瀛�
+ stock.Qty -= (decimal)item.Qty;
+ if (stock.Qty <= 0)
+ {
+ Db.Deleteable(stock).ExecuteCommand();
+ }
+ else
+ {
+ Db.Updateable(stock).ExecuteCommand();
+ }
+ //鍒犻櫎搴撳瓨鏄庣粏
+ Db.Deleteable(item).ExecuteCommand();
+
+ //鍒ゆ柇鎵樼洏涓婅繕鏈夋病鏈夊叾浠栫墿鏂�
+ var palletData = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo && w.Id != item.Id);
+ if (palletData == null)
+ {
+ pallet.Status = "0";
+ Db.Updateable(pallet).ExecuteCommand();
+ }
+ }
+
+ new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "浠撳簱鏀惰揣", palletNo, "瀹屾垚", $"鍦≒DA涓婂畬鎴愭墭鐩樼爜涓猴細{palletNo}鐨勪粨搴撴敹璐ф搷浣�", userId);
+
+ //鎻愪氦浜嬪姟
+ Db.CommitTran();
+ }
+ catch (Exception ex)
+ {
+ //鍥炴粴浜嬪姟
+ Db.RollbackTran();
+ throw ex;
+ }
+ }
+ #endregion
+
#region JC23鍙栨牱涓氬姟鎺ュ彛
//鑾峰彇鏈粍鎵樻垨宸茬粍鎵樼殑绠辩爜绾у埆
--
Gitblit v1.8.0