From 1d7d162b102320c08ca09eab8401ec2203b83e12 Mon Sep 17 00:00:00 2001 From: hwh <332078369@qq.com> Date: 星期四, 01 八月 2024 08:28:19 +0800 Subject: [PATCH] 盘点 --- Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 642 ++++++++++++++++++++++++++------------------------------- 1 files changed, 296 insertions(+), 346 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index 6526b6b..a8d053b 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs @@ -20,6 +20,8 @@ using WMS.Entity.LogEntity; using WMS.Entity.BllQualityEntity; using WMS.Entity.BllAsnEntity; +using System.Threading.Tasks; +using Utility; namespace WMS.BLL.BllPdaServer { @@ -28,344 +30,292 @@ private static readonly SqlSugarScope Db = DataContext.Db; //楠岃瘉鎵樼洏鏄惁瀛樺湪骞舵槸鍚﹀彲鍑哄簱 - public string IsEnableOkPalletNo(string palletNo) + public async Task<string> IsEnableOkPalletNo(string palletNo) { - try - { - string sqlMsg = ""; - var models = Db.Queryable<SysPallets>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).ToList(); + string sqlMsg = ""; + var models = await Db.Queryable<SysPallets>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).ToListAsync(); - if (models.Count > 1) - { - sqlMsg = "-1:瀛樺湪閲嶅鎵樼洏鍙�,璇锋鏌�!"; - return sqlMsg; - } - if (models.Count > 0) - { - if (models[0].Status == "0") - { - sqlMsg = "-1:鎵樼洏鍙风姸鎬佷负鏈娇鐢�!"; - } - } - else - { - sqlMsg = "-1:鎵樼洏鍙蜂笉瀛樺湪!"; - } - - return sqlMsg; - } - catch (Exception ex) + if (models.Count > 1) { - throw new Exception(ex.Message); + throw Oops.Bah("-1:瀛樺湪閲嶅鎵樼洏鍙�,璇锋鏌�!"); } + if (models.Count > 0) + { + if (models[0].Status == "0") + { + throw Oops.Bah("-1:鎵樼洏鍙风姸鎬佷负鏈娇鐢�!"); + } + } + else + { + throw Oops.Bah("-1:鎵樼洏鍙蜂笉瀛樺湪!"); + } + + return sqlMsg; } //鑾峰彇鎵樼洏涓惈鏈夌殑鎵ц涓殑鍗曟嵁 - public List<string> GetRunSoNoticeList(string palletNo, string type) + public async Task<List<string>> GetRunSoNoticeList(string palletNo, string type) { - try + if (string.IsNullOrWhiteSpace(palletNo))//鍒ゆ柇鎵樼洏鏄惁涓虹┖ { - if (string.IsNullOrWhiteSpace(palletNo))//鍒ゆ柇鎵樼洏鏄惁涓虹┖ - { - throw new Exception("鎵樼洏鐮佷负绌猴紝璇疯緭鍏ユ墭鐩樼爜"); - } - var palletInfo = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo); - if (!string.IsNullOrEmpty(palletInfo.WareHouseNo) && type != "1") - { - throw new Exception("璇ユ墭鐩樿繕鏈嚭搴�"); - } - if (type == "1")//骞冲簱鍑哄簱鑾峰彇鍗曟嵁 - { - var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "1" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToList(); - return allotList; - } - //鑾峰彇鐘舵�佷负寰呮嫞璐ф垨鑰呴儴鍒嗘嫞璐х殑鍑哄簱鍗� - var allotList2 = 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)).ToList(); - - //var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToList(); - //鑾峰彇鍑哄簱鍗曟嵁涓嶄负寰呮嫞璐� 鎵ц瀹屾瘯 璁㈠崟鍏抽棴 绛夊緟鎵ц鐨勫崟鎹� - //var export = Db.Queryable<BllExportNotice>().Where(a => a.IsDel == "0" && a.Status == "1" || a.Status == "2" || a.Status == "3").Select(a => a.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToList(); - - return allotList2; + throw Oops.Bah("鎵樼洏鐮佷负绌猴紝璇疯緭鍏ユ墭鐩樼爜"); } - catch (Exception ex) + var palletInfo = await Db.Queryable<DataStockDetail>().FirstAsync(w => w.IsDel == "0" && w.PalletNo == palletNo); + if (!string.IsNullOrEmpty(palletInfo.WareHouseNo) && type != "1") { - throw new Exception(ex.Message); + throw Oops.Bah("璇ユ墭鐩樿繕鏈嚭搴�"); } + if (type == "1")//骞冲簱鍑哄簱鑾峰彇鍗曟嵁 + { + var allotList = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "1" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToListAsync(); + 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 allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToList(); + //鑾峰彇鍑哄簱鍗曟嵁涓嶄负寰呮嫞璐� 鎵ц瀹屾瘯 璁㈠崟鍏抽棴 绛夊緟鎵ц鐨勫崟鎹� + //var export = Db.Queryable<BllExportNotice>().Where(a => a.IsDel == "0" && a.Status == "1" || a.Status == "2" || a.Status == "3").Select(a => a.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToList(); + + return allotList2; } //鑾峰彇鍑哄簱鎵樼洏涓婄殑鐗╂枡鎵规(鏍规嵁鎵樼洏鐮�) - public List<DetailIdSkuLotNo> GetSoSkuLotNoListByPallet(string palletNo, string soNo) + public async Task<List<DetailIdSkuLotNo>> GetSoSkuLotNoListByPallet(string palletNo, string soNo) { - try + if (string.IsNullOrWhiteSpace(palletNo))//鍒ゆ柇鎵樼洏鏄惁涓虹┖ { - if (string.IsNullOrWhiteSpace(palletNo))//鍒ゆ柇鎵樼洏鏄惁涓虹┖ - { - throw new Exception("鎵樼洏鐮佷负绌猴紝璇疯緭鍏ユ墭鐩樼爜"); - } - //鑾峰彇鐘舵�佷负寰呮嫞璐ф垨鑰呴儴鍒嗘嫞璐х殑鍑哄簱鍗� - 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.SONo == soNo && m.Status != "4" && m.Status != "5"); - if (!string.IsNullOrWhiteSpace(soNo)) - { - allotList = allotList.Where(m => m.SONo == soNo); - } - - var list = allotList.GroupBy(m => new { m.SODetailNo, m.PalletNo, m.SkuNo, m.SkuName, m.LotNo }).Select(m => new DetailIdSkuLotNo() - { - SoDetailId = m.SODetailNo, - PalletNo = m.PalletNo, - SkuNo = m.SkuNo, - SkuName = m.SkuName, - LotNo = m.LotNo, - }).ToList(); - - return list; + throw Oops.Bah("鎵樼洏鐮佷负绌猴紝璇疯緭鍏ユ墭鐩樼爜"); } - catch (Exception ex) + //鑾峰彇鐘舵�佷负寰呮嫞璐ф垨鑰呴儴鍒嗘嫞璐х殑鍑哄簱鍗� + 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.SONo == soNo && m.Status != "4" && m.Status != "5"); + if (!string.IsNullOrWhiteSpace(soNo)) { - throw new Exception(ex.Message); + allotList = allotList.Where(m => m.SONo == soNo); } + + var list = await allotList.GroupBy(m => new { m.SODetailNo, m.PalletNo, m.SkuNo, m.SkuName, m.LotNo }).Select(m => new DetailIdSkuLotNo() + { + SoDetailId = m.SODetailNo, + PalletNo = m.PalletNo, + SkuNo = m.SkuNo, + SkuName = m.SkuName, + LotNo = m.LotNo, + }).ToListAsync(); + + return list; } //鑾峰彇鍑哄簱鍙c�佽鏍笺�佸緟鎷e強宸叉嫞鏁伴噺锛堟牴鎹嚭搴撳崟鏄庣粏ID銆佹墭鐩樺彿锛� - public OutPdaInfo GetOutlets(string soDetailId, string palletNo) + public async Task<OutPdaInfo> GetOutlets(string soDetailId, string palletNo) { - try + 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(); + if (allotInfo.Count == 0) { - - var allotInfo = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo && (m.Status == "2" || m.Status == "3")).ToList(); - if (allotInfo.Count == 0) - { - throw new Exception($"{palletNo}鎵樼洏涓婃湭鏌ヨ鍒板垎閰嶄俊鎭紝璇锋牳瀹�"); - } - if (allotInfo.Count > 1) - { - throw new Exception($"{palletNo}鎵樼洏涓婂瓨鍦ㄥ鏉$浉鍚岀殑鍒嗛厤淇℃伅锛岃鏍稿疄"); - } - var data = allotInfo.First(); - var data2 = new OutPdaInfo() - { - OutModel = data.OutMode, - Standard = data.Standard, - PickQty = data.Qty, - PickedQty = data.CompleteQty - }; - return data2; + throw Oops.Bah($"{palletNo}鎵樼洏涓婃湭鏌ヨ鍒板垎閰嶄俊鎭紝璇锋牳瀹�"); } - catch (Exception e) + if (allotInfo.Count > 1) { - throw new Exception(e.Message); + throw Oops.Bah($"{palletNo}鎵樼洏涓婂瓨鍦ㄥ鏉$浉鍚岀殑鍒嗛厤淇℃伅锛岃鏍稿疄"); } + var data = allotInfo.First(); + var data2 = new OutPdaInfo() + { + OutModel = data.OutMode, + Standard = data.Standard, + PickQty = data.Qty, + PickedQty = data.CompleteQty + }; + return data2; } //鑾峰彇鍑哄簱鍗曠殑璁″垝鏁伴噺鍜屽畬鎴� - public OutPdaInfo GetPlanAndFinishQty(string soDetailId) + public async Task<OutPdaInfo> GetPlanAndFinishQty(string soDetailId) { - try + var detail = await Db.Queryable<BllExportNoticeDetail>().FirstAsync(m => m.Id == int.Parse(soDetailId) && m.IsDel == "0"); + if (detail == null) { - var detail = Db.Queryable<BllExportNoticeDetail>().First(m => m.Id == int.Parse(soDetailId) && m.IsDel == "0"); - if (detail == null) - { - throw new Exception("鏈煡璇㈠埌鍑哄簱鍗曠殑鏄庣粏"); - } - var data = new OutPdaInfo() - { - PlanQty = detail.Qty, - FinishQty = detail.CompleteQty - }; - return data; + throw Oops.Bah("鏈煡璇㈠埌鍑哄簱鍗曠殑鏄庣粏"); } - catch (Exception e) + var data = new OutPdaInfo() { - throw new Exception(e.Message); - } + PlanQty = detail.Qty, + FinishQty = detail.CompleteQty + }; + return data; } //鑾峰彇绠辩爜淇℃伅锛堟牴鎹鐮佸湪搴撳瓨绠辩爜鏄庣粏涓煡璇㈠強鎷h揣鏄庣粏涓嫞璐ф暟閲忥級 - public List<Model.ModelDto.BoxInfo> GetDataComBoxInfo(string soDetailId, string palletNo, string boxNo, string boxNo3) + public async Task<List<BoxInfo>> GetDataComBoxInfo(string soDetailId, string palletNo, string boxNo, string boxNo3) { - try + if (string.IsNullOrWhiteSpace(palletNo)) { - if (string.IsNullOrWhiteSpace(palletNo)) + throw Oops.Bah("鎵樼洏鍙蜂笉鑳戒负绌�"); + } + Expression<Func<DataBoxInfo, bool>> item = Expressionable.Create<DataBoxInfo>() + .And(it => it.PalletNo == palletNo) + .AndIF(!string.IsNullOrWhiteSpace(boxNo), it => it.BoxNo == boxNo) + .AndIF(!string.IsNullOrWhiteSpace(boxNo3), it => it.BoxNo3 == boxNo3) + .And(m => m.IsDel == "0") + .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏� + var info = Db.Queryable<DataBoxInfo>().Where(item); + if (info.Count() == 0) + { + throw Oops.Bah("鏈湪搴撳瓨涓煡璇㈠埌淇℃伅"); + } + + var type = "0";//0锛氭煡绠辩爜鎴栨敮鐮佷笉鍒嗙粍 1锛氭煡鎵樼洏鍒嗙粍 鏄剧ず绠� + var list = new List<BoxInfo>(); + if (!string.IsNullOrWhiteSpace(boxNo3) || !string.IsNullOrWhiteSpace(boxNo))//鍒ゆ柇鏀爜鏄惁涓虹┖ + { + foreach (var demo in await info.ToListAsync()) { - throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�"); - } - Expression<Func<DataBoxInfo, bool>> item = Expressionable.Create<DataBoxInfo>() - .And(it => it.PalletNo == palletNo) - .AndIF(!string.IsNullOrWhiteSpace(boxNo), it => it.BoxNo == boxNo) - .AndIF(!string.IsNullOrWhiteSpace(boxNo3), it => it.BoxNo3 == boxNo3) - .And(m => m.IsDel == "0") - .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏� - var info = Db.Queryable<DataBoxInfo>().Where(item); - if (info.Count() == 0) - { - throw new Exception("鏈湪搴撳瓨涓煡璇㈠埌淇℃伅"); + var t = new BoxInfo() + { + BoxNo = demo.BoxNo3, + Qty = demo.Qty, + //SkuNo = demo.SkuNo, + //SkuName = demo.SkuName, + //LotNo = demo.LotNo, + }; + list.Add(t); } - var type = "0";//0锛氭煡绠辩爜鎴栨敮鐮佷笉鍒嗙粍 1锛氭煡鎵樼洏鍒嗙粍 鏄剧ず绠� - var list = new List<BoxInfo>(); - if (!string.IsNullOrWhiteSpace(boxNo3) || !string.IsNullOrWhiteSpace(boxNo))//鍒ゆ柇鏀爜鏄惁涓虹┖ + } + else if (!string.IsNullOrWhiteSpace(palletNo)) + { + list = await info.GroupBy(m => new { m.BoxNo }).Select(it => new BoxInfo { - foreach (var demo in info.ToList()) + BoxNo = it.BoxNo, + Qty = SqlFunc.AggregateSum(it.Qty) + }).ToListAsync(); + type = "1"; + } + 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(); + if (allotInfos.Count == 0) + { + throw Oops.Bah($"{palletNo}鎵樼洏涓婃湭鏌ヨ鍒板垎閰嶄俊鎭紝璇锋牳瀹�"); + } + if (allotInfos.Count > 1) + { + throw Oops.Bah($"{palletNo}鎵樼洏涓婂瓨鍦ㄥ鏉$浉鍚岀殑鍒嗛厤淇℃伅锛岃鏍稿疄"); + } + var allotInfo = allotInfos.First(); + var comInfo = await Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allotInfo.Id).ToListAsync(); + if (comInfo.Count != 0) + { + if (type == "0") { - var t = new BoxInfo() + foreach (var demo in list) { - BoxNo = demo.BoxNo3, - Qty = demo.Qty, - //SkuNo = demo.SkuNo, - //SkuName = demo.SkuName, - //LotNo = demo.LotNo, - }; - list.Add(t); - } + //if (!string.IsNullOrWhiteSpace(boxNo3)) + //{ + // var com = comInfo.FirstOrDefault(m => m.IsDel == "0" && m.BoxNo3 == demo.BoxNo); + //} + //else if (!string.IsNullOrWhiteSpace(boxNo)) + //{ + // if (expr) + // { - } - else if (!string.IsNullOrWhiteSpace(palletNo)) - { - list = info.GroupBy(m => new { m.BoxNo }).Select(it => new BoxInfo - { - BoxNo = it.BoxNo, - Qty = SqlFunc.AggregateSum(it.Qty) - }).ToList(); - type = "1"; - } - if (!string.IsNullOrWhiteSpace(soDetailId)) - { - var allotInfos = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo && (m.Status == "2" || m.Status == "3")).ToList(); - if (allotInfos.Count == 0) - { - throw new Exception($"{palletNo}鎵樼洏涓婃湭鏌ヨ鍒板垎閰嶄俊鎭紝璇锋牳瀹�"); - } - if (allotInfos.Count > 1) - { - throw new Exception($"{palletNo}鎵樼洏涓婂瓨鍦ㄥ鏉$浉鍚岀殑鍒嗛厤淇℃伅锛岃鏍稿疄"); - } - var allotInfo = allotInfos.First(); - var comInfo = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allotInfo.Id).ToList(); - if (comInfo.Count != 0) - { - if (type == "0") - { - foreach (var demo in list) + // } + + //} + var com = comInfo.FirstOrDefault(m => m.IsDel == "0" && m.BoxNo3 != null && m.BoxNo3 == demo.BoxNo); + if (com != null) { - //if (!string.IsNullOrWhiteSpace(boxNo3)) - //{ - // var com = comInfo.FirstOrDefault(m => m.IsDel == "0" && m.BoxNo3 == demo.BoxNo); - //} - //else if (!string.IsNullOrWhiteSpace(boxNo)) - //{ - // if (expr) - // { - - // } - - //} - var com = comInfo.FirstOrDefault(m => m.IsDel == "0" && m.BoxNo3 != null && m.BoxNo3 == demo.BoxNo); - if (com != null) - { - demo.PickedQty = com.CompleteQty; - } - } - } - if (type == "1") - { - var com = comInfo.Where(m => m.IsDel == "0").GroupBy(m => m.BoxNo).Select(it => new BoxInfo - { - BoxNo = it.Key, - PickedQty = it.Sum(a => a.CompleteQty) - }).ToList(); - foreach (var demo in list) - { - - var com2 = com.FirstOrDefault(m => m.BoxNo == demo.BoxNo); - if (com2 != null) - { - demo.PickedQty = com2.PickedQty; - } + demo.PickedQty = com.CompleteQty; } } } + if (type == "1") + { + var com = comInfo.Where(m => m.IsDel == "0").GroupBy(m => m.BoxNo).Select(it => new BoxInfo + { + BoxNo = it.Key, + PickedQty = it.Sum(a => a.CompleteQty) + }).ToList(); + foreach (var demo in list) + { + var com2 = com.FirstOrDefault(m => m.BoxNo == demo.BoxNo); + if (com2 != null) + { + demo.PickedQty = com2.PickedQty; + } + } + } } - return list; } - catch (Exception e) - { - throw new Exception(e.Message); - } + + return list; } //鑾峰彇搴撳唴鏃犵鐮佺殑鎵樼洏鍒嗛厤淇℃伅 - public List<Model.ModelDto.BoxInfo> GetAllotPlnInfo(string soDetailId, string palletNo) + public async Task<List<BoxInfo>> GetAllotPlnInfo(string soDetailId, string palletNo) { - try + #region 鍒ゆ柇 + + //鏍规嵁id鍙婃墭鐩樿幏鍙栧嚭搴撳崟鍜屾墭鐩樻嫞璐т俊鎭� + if (string.IsNullOrWhiteSpace(palletNo)) { - #region 鍒ゆ柇 - - //鏍规嵁id鍙婃墭鐩樿幏鍙栧嚭搴撳崟鍜屾墭鐩樻嫞璐т俊鎭� - if (string.IsNullOrWhiteSpace(palletNo)) - { - throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�"); - } - //鑾峰彇瀵瑰簲鎵樼洏涓嬫槸鍚﹀瓨鍦ㄧ鐮佷俊鎭� - var boxInfo = Db.Queryable<DataBoxInfo>().First(b => b.IsDel == "0" && b.PalletNo == palletNo); - if (boxInfo != null) - { - throw new Exception($"{palletNo}鎵樼洏涓婂瓨鍦ㄧ鐮佷俊鎭紝鏃犳硶鍦ㄦ暟閲忔嫞璐ц繘琛屾搷浣滐紒"); - } - - BllExportAllot allot = null; - if (!string.IsNullOrWhiteSpace(soDetailId)) - { - //鍑哄簱鍗曟槑缁� - var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(a => a.Id == int.Parse(soDetailId) && a.IsDel == "0"); - if (noticeDetail == null) - { - throw new Exception($"鏈煡璇㈠埌瀵瑰簲鍑哄簱鍗曟槑缁嗕俊鎭紝璇锋牳瀹烇紒"); - } - //鍑哄簱鍗曟�诲崟 - var notice = Db.Queryable<BllExportNotice>().First(a => a.IsDel == "0" && a.SONo == noticeDetail.SONo); - if (notice == null) - { - throw new Exception($"鏈煡璇㈠埌瀵瑰簲鍑哄簱鍗曟�诲崟淇℃伅锛岃鏍稿疄锛�"); - } - //鍒嗛厤淇℃伅 - allot = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.SONo == notice.SONo && a.SODetailNo == noticeDetail.Id && a.PalletNo == palletNo && (a.Status == "2" || a.Status == "3")); - if (allot == null) - { - throw new Exception($"鏈煡璇㈠埌瀵瑰簲鍒嗛厤淇℃伅锛岃鏍稿疄锛�"); - } - } - - //搴撳瓨鏄庣粏 - var detail = Db.Queryable<DataStockDetail>().First(a => a.IsDel == "0" && a.PalletNo == palletNo); - if (detail == null) - { - throw new Exception($"鏈煡璇㈠埌搴撳瓨鏄庣粏淇℃伅锛岃鏍稿疄锛�"); - } - - #endregion - - List<BoxInfo> pdaInfo = new List<BoxInfo>(); - - BoxInfo info = new BoxInfo() - { - SkuNo = detail.SkuNo, - BoxNo = detail.SkuNo, - Qty = allot == null ? (int)(detail.Qty - detail.LockQty) : (int)allot.Qty, - PickedQty = allot == null ? 0 : (int)allot.CompleteQty, - }; - - pdaInfo.Add(info); - return pdaInfo; - + throw Oops.Bah("鎵樼洏鍙蜂笉鑳戒负绌�"); } - catch (Exception e) + //鑾峰彇瀵瑰簲鎵樼洏涓嬫槸鍚﹀瓨鍦ㄧ鐮佷俊鎭� + var boxInfo = await Db.Queryable<DataBoxInfo>().FirstAsync(b => b.IsDel == "0" && b.PalletNo == palletNo); + if (boxInfo != null) { - throw new Exception(e.Message); + throw Oops.Bah($"{palletNo}鎵樼洏涓婂瓨鍦ㄧ鐮佷俊鎭紝鏃犳硶鍦ㄦ暟閲忔嫞璐ц繘琛屾搷浣滐紒"); } + + BllExportAllot allot = null; + if (!string.IsNullOrWhiteSpace(soDetailId)) + { + //鍑哄簱鍗曟槑缁� + var noticeDetail = await Db.Queryable<BllExportNoticeDetail>().FirstAsync(a => a.Id == int.Parse(soDetailId) && a.IsDel == "0"); + if (noticeDetail == null) + { + throw Oops.Bah($"鏈煡璇㈠埌瀵瑰簲鍑哄簱鍗曟槑缁嗕俊鎭紝璇锋牳瀹烇紒"); + } + //鍑哄簱鍗曟�诲崟 + var notice = await Db.Queryable<BllExportNotice>().FirstAsync(a => a.IsDel == "0" && a.SONo == noticeDetail.SONo); + if (notice == null) + { + throw Oops.Bah($"鏈煡璇㈠埌瀵瑰簲鍑哄簱鍗曟�诲崟淇℃伅锛岃鏍稿疄锛�"); + } + //鍒嗛厤淇℃伅 + allot = await Db.Queryable<BllExportAllot>().FirstAsync(a => a.IsDel == "0" && a.SONo == notice.SONo && a.SODetailNo == noticeDetail.Id && a.PalletNo == palletNo && (a.Status == "2" || a.Status == "3")); + if (allot == null) + { + throw Oops.Bah($"鏈煡璇㈠埌瀵瑰簲鍒嗛厤淇℃伅锛岃鏍稿疄锛�"); + } + } + + //搴撳瓨鏄庣粏 + var detail = await Db.Queryable<DataStockDetail>().FirstAsync(a => a.IsDel == "0" && a.PalletNo == palletNo); + if (detail == null) + { + throw Oops.Bah($"鏈煡璇㈠埌搴撳瓨鏄庣粏淇℃伅锛岃鏍稿疄锛�"); + } + + #endregion + + List<BoxInfo> pdaInfo = new List<BoxInfo>(); + + BoxInfo info = new BoxInfo() + { + SkuNo = detail.SkuNo, + BoxNo = detail.SkuNo, + Qty = allot == null ? (int)(detail.Qty - detail.LockQty) : (int)allot.Qty, + PickedQty = allot == null ? 0 : (int)allot.CompleteQty, + }; + + pdaInfo.Add(info); + return pdaInfo; } //鍑哄簱pda鎷h揣 @@ -545,7 +495,7 @@ } } } - + } else { @@ -767,11 +717,11 @@ if (notice.IsWave == "1") { var waveNum = Db.Queryable<BllExportNotice>() - .Count(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo && m.Status !="4"); + .Count(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo && m.Status != "4"); if (waveNum == 0) { var wave = Db.Queryable<BllWaveMage>().First(m => m.IsDel == "0" && m.WaveNo == notice.WaveNo); - if (wave!= null) + if (wave != null) { wave.Status = "4"; wave.UpdateUser = userId; @@ -997,7 +947,7 @@ } } } - + //娣诲姞鎿嶄綔鏃ュ織璁板綍 var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "鎷h揣鍑哄簱", soNo, "鎷h揣", $"鍦≒DA涓婂鍑哄簱鍗曞彿涓猴細{soNo}鐨勬墭鐩樼爜涓猴細{palletNo}鐨勬嫞璐ф搷浣�", userId); @@ -1285,7 +1235,7 @@ #region 楠岃瘉鍌ㄤ綅鐘舵�佹槸鍚︽甯� - var locat = Db.Queryable<SysStorageLocat>().First(a=>a.IsDel == "0" && a.LocatNo == result.LocatNo); + var locat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.LocatNo == result.LocatNo); if (locat == null) { throw new Exception("鏈幏鍙栧埌瀵瑰簲鍌ㄤ綅淇℃伅锛岃妫�鏌�!"); @@ -2798,7 +2748,7 @@ CreateUser = userId }; comList.Add(completeDetail); - + if (palletNo != palletNoNew) { item.StockDetailId = sdId; @@ -2838,7 +2788,7 @@ stockDetail.SONo = soNo; Db.Updateable(stockDetail).ExecuteCommand(); } - + //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; Db.Updateable(noticeDetail).ExecuteCommand(); @@ -3100,7 +3050,7 @@ Db.Updateable(pinStockDetail).ExecuteCommand(); } } - + //娣诲姞鎿嶄綔鏃ュ織璁板綍 var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "鎷h揣鎷兼墭", soNo, "鎷h揣", $"鍦≒DA涓婂鍑哄簱鍗曞彿涓猴細{soNo}鐨勫師鎵樼洏鐮佷负锛歿palletNo}锛屾柊鎵樼洏鐮佷负锛歿palletNoNew}鐨勬嫞璐ф嫾鎵樻搷浣�", userId); Db.CommitTran(); @@ -3441,7 +3391,7 @@ throw new Exception("褰撳墠鎵樼洏鏈湪搴撳瓨涓�"); } - var boxInfo = Db.Queryable<DataBoxInfo>().Count(m=>m.IsDel == "0" && m.StockDetailId == detail.Id); + var boxInfo = Db.Queryable<DataBoxInfo>().Count(m => m.IsDel == "0" && m.StockDetailId == detail.Id); //鍒ゆ柇鎵樼洏涓婃槸鍚︽湁绠辩爜淇℃伅 if (boxInfo > 0) @@ -3465,7 +3415,7 @@ { try { - var data = Db.Queryable<BllQualityInspectionRequest>().Where(m => m.IsDel == "0" && (m.Status == "1" || m.Status == "2")).OrderByDescending(m => m.QcNo).Select(m=>m.QcNo).ToList(); + var data = Db.Queryable<BllQualityInspectionRequest>().Where(m => m.IsDel == "0" && (m.Status == "1" || m.Status == "2")).OrderByDescending(m => m.QcNo).Select(m => m.QcNo).ToList(); return data; } catch (Exception e) @@ -3480,14 +3430,14 @@ try { var data = new InspectionRequestDto(); - var inspectionRequest = Db.Queryable<BllQualityInspectionRequest>().First(m=>m.IsDel == "0" && m.QcNo == qcNo); - var samplingQty = Db.Queryable<BllSamplingDetails>().Where(m => m.IsDel == "0" && m.QcNo == qcNo).Sum(m=>m.CompleteQty); + var inspectionRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.QcNo == qcNo); + var samplingQty = Db.Queryable<BllSamplingDetails>().Where(m => m.IsDel == "0" && m.QcNo == qcNo).Sum(m => m.CompleteQty); data.QcNo = qcNo; data.Sku = inspectionRequest.SkuNo; data.LotNo = inspectionRequest.LotNo; data.Qty = inspectionRequest.SamplingQty.ToString(); - data.SamplingQty = samplingQty == null? "0": samplingQty.ToString(); + data.SamplingQty = samplingQty == null ? "0" : samplingQty.ToString(); return data; } @@ -3700,24 +3650,24 @@ //if (isAddSampld) //娣诲姞鍙栨牱鏄庣粏 //{ - var sampleDetail = new BllSamplingDetails() - { - QcNo = qcNo, - ASNNo = inspecd.ASNNo, - PalletNo = palletNo, - BoxNo = boxInfo.BoxNo, - BoxNo2 = boxInfo.BoxNo2, - BoxNo3 = boxInfo.BoxNo3, - SkuNo = boxInfo.SkuNo, - SkuName = boxInfo.SkuName, - Standard = boxInfo.Standard, - LotNo = boxInfo.LotNo, - SupplierLot = boxInfo.SupplierLot, - CompleteQty = decimal.Parse(pickQty), - CreateTime = DateTime.Now, - CreateUser = userId - }; - Db.Insertable(sampleDetail).ExecuteCommand(); + var sampleDetail = new BllSamplingDetails() + { + QcNo = qcNo, + ASNNo = inspecd.ASNNo, + PalletNo = palletNo, + BoxNo = boxInfo.BoxNo, + BoxNo2 = boxInfo.BoxNo2, + BoxNo3 = boxInfo.BoxNo3, + SkuNo = boxInfo.SkuNo, + SkuName = boxInfo.SkuName, + Standard = boxInfo.Standard, + LotNo = boxInfo.LotNo, + SupplierLot = boxInfo.SupplierLot, + CompleteQty = decimal.Parse(pickQty), + CreateTime = DateTime.Now, + CreateUser = userId + }; + Db.Insertable(sampleDetail).ExecuteCommand(); //} //else //{ @@ -3742,7 +3692,7 @@ { item.BitBoxMark = "1"; item.InspectMark = "1"; - + if (unpackWarranty > 0 && boxInfoList.Count(m => m.ProductionTime != null) > 0) { if (item.ProductionTime != null) @@ -3757,7 +3707,7 @@ } Db.Updateable(boxInfoList).ExecuteCommand(); - + //搴撳瓨绠辩爜 boxInfo.Qty -= decimal.Parse(pickQty); if (boxInfo.Qty == 0) @@ -3830,24 +3780,24 @@ //if (isAddSampld) //娣诲姞鍙栨牱鏄庣粏 //{ - var sampleDetail = new BllSamplingDetails() - { - QcNo = qcNo, - ASNNo = inspecd.ASNNo, - PalletNo = palletNo, - BoxNo = boxInfo.BoxNo, - BoxNo2 = boxInfo.BoxNo2, - BoxNo3 = boxInfo.BoxNo3, - SkuNo = boxInfo.SkuNo, - SkuName = boxInfo.SkuName, - Standard = boxInfo.Standard, - LotNo = boxInfo.LotNo, - SupplierLot = boxInfo.SupplierLot, - CompleteQty = boxInfo.Qty, - CreateTime = DateTime.Now, - CreateUser = userId - }; - Db.Insertable(sampleDetail).ExecuteCommand(); + var sampleDetail = new BllSamplingDetails() + { + QcNo = qcNo, + ASNNo = inspecd.ASNNo, + PalletNo = palletNo, + BoxNo = boxInfo.BoxNo, + BoxNo2 = boxInfo.BoxNo2, + BoxNo3 = boxInfo.BoxNo3, + SkuNo = boxInfo.SkuNo, + SkuName = boxInfo.SkuName, + Standard = boxInfo.Standard, + LotNo = boxInfo.LotNo, + SupplierLot = boxInfo.SupplierLot, + CompleteQty = boxInfo.Qty, + CreateTime = DateTime.Now, + CreateUser = userId + }; + Db.Insertable(sampleDetail).ExecuteCommand(); //} //else //{ @@ -3867,7 +3817,7 @@ //鎷嗗寘鏈夋晥鏈熸洿鏀� var unpackWarranty = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == inspecd.SkuNo).UnpackWarranty; - + foreach (var item in boxInfoList) { item.BitBoxMark = "1"; @@ -4025,10 +3975,10 @@ #endregion //鍙栨牱鏄庣粏璁板綍琛� - var sampld = Db.Queryable<BllSamplingDetails>().Where(m => m.IsDel == "0" && m.QcNo == qcNo ).ToList(); + var sampld = Db.Queryable<BllSamplingDetails>().Where(m => m.IsDel == "0" && m.QcNo == qcNo).ToList(); var qty = decimal.Parse(pickQty); //var isAddSampld = sampld.Count(m => m.PalletNo == palletNo) == 0; - + #region 鍒ゆ柇鏁伴噺 @@ -4047,25 +3997,25 @@ #region 娣诲姞鎴栦慨鏀瑰彇鏍锋槑缁� - Db.BeginTran(); + Db.BeginTran(); //if (isAddSampld) //娣诲姞鍙栨牱鏄庣粏 //{ - var sampleDetail = new BllSamplingDetails() - { - QcNo = qcNo, - ASNNo = inspecd.ASNNo, - PalletNo = palletNo, - SkuNo = stockDetail.SkuNo, - SkuName = stockDetail.SkuName, - Standard = stockDetail.Standard, - LotNo = stockDetail.LotNo, - SupplierLot = stockDetail.SupplierLot, - CompleteQty = qty, - CreateTime = DateTime.Now, - CreateUser = userId - }; - Db.Insertable(sampleDetail).ExecuteCommand(); + var sampleDetail = new BllSamplingDetails() + { + QcNo = qcNo, + ASNNo = inspecd.ASNNo, + PalletNo = palletNo, + SkuNo = stockDetail.SkuNo, + SkuName = stockDetail.SkuName, + Standard = stockDetail.Standard, + LotNo = stockDetail.LotNo, + SupplierLot = stockDetail.SupplierLot, + CompleteQty = qty, + CreateTime = DateTime.Now, + CreateUser = userId + }; + Db.Insertable(sampleDetail).ExecuteCommand(); //} //else //{ @@ -4133,7 +4083,7 @@ } Db.Updateable(inspecd).ExecuteCommand(); #endregion - + //娣诲姞鎿嶄綔鏃ュ織璁板綍 -- Gitblit v1.8.0