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 | 488 ++++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 422 insertions(+), 66 deletions(-)
diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
index 8779332..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;
}
@@ -2448,7 +2650,7 @@
}
}
-
+ // 杞﹂棿缁戝畾鎵樼洏-璐存爣
public void ChejianIn(string palletNo,string boxNo,decimal qty,string areaNo,int userId)
{
try
@@ -2490,8 +2692,8 @@
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 = 0;//鎵樼洏鐗╁搧鏁伴噺
- var bNum = 0;//绠辩爜鐗╁搧鏁伴噺
+ var pNum = 0m;//鎵樼洏鐗╁搧鏁伴噺
+ var bNum = 0m;//绠辩爜鐗╁搧鏁伴噺
//鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
new Common().GetPackQtyInfo(pack.PackagNo, ref pNum, ref bNum);
@@ -2564,7 +2766,7 @@
ExpirationTime = boxInfoOne.ExpirationTime,
Status = "0",
InspectMark = boxInfoOne.InspectMark,
- InspectStatus = sku.IsInspect,
+ InspectStatus = "1",//sku.IsInspect,//浠庤溅闂村叆搴撶殑璐ㄦ鐘舵�侀粯璁ゅ悎鏍�
BitPalletMark = "1",
PackagNo = sku.PackagNo,
@@ -2639,6 +2841,22 @@
//娣诲姞搴撳瓨绠辩爜鏄庣粏
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)
{
@@ -2647,7 +2865,6 @@
}
//鏇存敼绠辨敮鍏崇郴琛ㄤ俊鎭�
Db.Updateable(boxInfoList).ExecuteCommand();
-
#region 搴撳瓨
var dataStock = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == boxInfoOne.LotNo);
@@ -2677,11 +2894,12 @@
}
#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);
+ Db.Ado.ExecuteCommand(sqlStr);
new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "杞﹂棿鍏ュ簱", boxNo, "娣诲姞", $"娣诲姞浜嗘墭鐩樼爜涓猴細{palletNo}銆亄msgStr}鐨勫叆搴撲俊鎭�", userId);
//鎻愪氦浜嬪姟
@@ -2740,15 +2958,13 @@
var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == skuInfo.PackagNo);
- var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺
- var bNum = 0;//绠辩爜鐗╁搧鏁伴噺
+ var pNum = 0m;//鎵樼洏鐗╁搧鏁伴噺
+ var bNum = 0m;//绠辩爜鐗╁搧鏁伴噺
//鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
new Common().GetPackQtyInfo(pack.PackagNo, ref pNum, ref bNum);
#endregion
-
-
#region 搴撳瓨鏄庣粏
@@ -2823,7 +3039,6 @@
// 鏇存敼绠辨敮鍏崇郴琛�
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)
@@ -2852,6 +3067,21 @@
}
#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}';";
////娣诲姞鎵樼洏璁板綍琛ㄦ暟鎹�
@@ -3075,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);
@@ -4254,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;
@@ -5962,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)
@@ -6041,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; //鍥炴祦鍏ュ簱
@@ -6051,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
@@ -6480,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