From f147cfa91feec613eb304c78fecafdf43286034a Mon Sep 17 00:00:00 2001 From: Administrator <Administrator@DESKTOP-5BIMHQ3> Date: 星期六, 30 三月 2024 11:12:24 +0800 Subject: [PATCH] Merge branch 'wxw' --- Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 188 +++++++++++++++++++++++++++++++++++++++------- 1 files changed, 158 insertions(+), 30 deletions(-) diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs index 3cde474..9922b6d 100644 --- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs @@ -124,39 +124,87 @@ throw ex; } } + + //鑾峰彇鍏ュ簱鍗曟槑缁嗗墿浣欐墦鍗版暟閲� + public string GetAsnDetailQtyList(int id) + { + try + { + var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == id); + if (detail == null) + { + throw new Exception("鏈煡璇㈠埌鍏ュ簱鍗曟槑缁�"); + } + + var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty); + var qty = detail.Qty - labelQty; + + return qty.ToString(); + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + //鑾峰彇鐗╂枡淇℃伅锛堟坊鍔犲叆搴撳崟鏄庣粏浣跨敤锛� public List<MaterialsDto> GetMaterialsList(GetMaterialsVm model) { try { string skuType = string.Empty; - switch(model.Type)//0锛氬師鏂� 1锛氬寘鏉� 2锛氭垚鍝� 3锛氳�楁潗 4锛氬崐鎴愬搧 + int IsPack = 0; //0锛氫笉绠� 1锛氳创 2锛氫笉璐� + /** + * 鎴愬搧璐� 0 + * 閲囪喘鍙创鍙笉璐� 1 + * 涓棿鍝佷笉璐� 2 + * 閫�璐ц创 3 + * 浣欐枡閫�鍥炲彲璐村彲涓嶈创 4 + * 鍏跺畠鍙创鍙笉璐� 5 + * 浠e偍涓嶈创 6 + * 瀵勫瓨涓嶈创 7 + */ + switch (model.Type)//0锛氬師鏂� 1锛氬寘鏉� 2锛氭垚鍝� 3锛氳�楁潗 4锛氬崐鎴愬搧 { case "0"://鎴愬搧鍏ュ簱 skuType = "(2)"; + IsPack = 1; //璐� break; case "1"://閲囪喘鍏ュ簱 skuType = "(0,1,3)"; break; case "2"://涓棿鍝佸叆搴� skuType = "(4)"; + IsPack = 2; //涓嶈创 break; case "3"://閫�璐у叆搴� skuType = "(2)"; + IsPack = 1; //璐� break; case "4"://杞﹂棿浣欐枡閫�鍥炲叆搴� skuType = "(0,1,3)"; break; case "5"://鍏跺畠鍏ュ簱 - skuType = "(2)"; + skuType = "(0,1,3)"; break; case "6"://浠e偍鍏ュ簱 skuType = "(2)"; + IsPack = 2; //涓嶈创 + break; + case "7"://瀵勫瓨鍏ュ簱 + //skuType = "(3)"; + IsPack = 2; //涓嶈创 + break; + default: //鍏跺畠 + //skuType = "(0,1,2,3,4)"; break; } Expression<Func<SysMaterials, bool>> item = Expressionable.Create<SysMaterials>() - .AndIF(true, it => skuType.Contains(it.Type)) + .AndIF(model.Type != "7", it => skuType.Contains(it.Type)) + .AndIF(model.Type == "7", it => it.SkuNo == "100088") + .AndIF(IsPack == 1, it => it.PackagNo != "") + .AndIF(IsPack == 2, it => it.PackagNo == "") .AndIF(true, it => it.IsDel == "0") .And(it => it.SkuNo != "100099") .AndIF(!string.IsNullOrWhiteSpace(model.SkuNo), @@ -171,6 +219,8 @@ .Includes(x => x.UnitInfo) .Includes(x => x.PackagInfo) .ToList(); + + return data.Select(m => new MaterialsDto() { @@ -208,6 +258,9 @@ string strMessage = ""; string sqlString = string.Empty; string sqlDetailStr = string.Empty; + //0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欏叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴� + var TypeLot = "1, 2, 5, 6, 7"; //鎵规鍙负绌哄崟鎹被鍨� + try { if (model.Origin == "褰曞叆") @@ -223,6 +276,15 @@ if (string.IsNullOrEmpty(model.Type)) { throw new Exception("鍗曟嵁绫诲瀷涓嶅彲涓虹┖!"); + } + } + //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴� + // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴� + if (model.Type == "1" || model.Type == "4") + { + if (!string.IsNullOrWhiteSpace(model.LotNo)) + { + throw new Exception("閲囪喘鍏ュ簱鎴栦綑鏂欓��鍥炰笉鍙緭鍏ユ壒娆★紝涓嶅彲缂栬緫!"); } } @@ -251,8 +313,12 @@ } if (string.IsNullOrEmpty(detailModel.LotNo)) { - strMessage = "-1:鎵规鍙蜂笉鍙负绌�;"; - continue; + //鍒ゆ柇鏄惁涓轰笉闄愬埗鎵规鍗曟嵁 + if (!TypeLot.Contains(model.Type)) + { + strMessage = "-1:鎵规鍙蜂笉鍙负绌�;"; + continue; + } } // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁� string sqlCount = $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' "; @@ -314,6 +380,18 @@ string sqlDetailStr = string.Empty; try { + //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴� + // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴� + int isType = 0; + if (model.Type == "1" || model.Type == "4") + { + isType = 1; + if (!string.IsNullOrWhiteSpace(model.LotNo)) + { + strMessage = "-1:閲囪喘鍏ュ簱鎴栦綑鏂欓��鍥炰笉鍙緭鍏ユ壒娆★紝涓嶅彲缂栬緫;"; + return strMessage; + } + } if (model.Origin != "褰曞叆") { strMessage = "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲缂栬緫;"; @@ -330,7 +408,7 @@ sqlString = "UPDATE BllArrivalNotice SET "; sqlString += $"CustomerNo = '{model.CustomerNo}',CustomerName = '{model.CustomerName}',"; - sqlString += $"LotNo = '{model.LotNo}',LotText = '{model.LotText}',"; + sqlString += $"LotNo = '{model.LotNo}',LotText = '{model.LotText}',"; sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; sqlString += $"WHERE ASNNo = '{model.ASNNo}'"; @@ -368,7 +446,7 @@ strMessage = "-1:鏁伴噺蹇呴』澶т簬0;"; continue; } - if (string.IsNullOrEmpty(detailModel.LotNo)) + if (string.IsNullOrEmpty(detailModel.LotNo) && isType != 1) { strMessage = "-1:鎵规鍙蜂笉鍙负绌�;"; continue; @@ -473,6 +551,7 @@ } + // 鍒犻櫎鎬诲崟 sqlString = $"UPDATE BllArrivalNotice SET IsDel = '1',"; sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; @@ -482,10 +561,30 @@ sqlString += $"UPDATE BllArrivalNoticeDetail SET IsDel = '1',"; sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; sqlString += $"WHERE ASNNo = '{model.ASNNo}';"; + + //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴� + // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴� + int notdel = 0; + if (model.Type == "1" || model.Type == "4") + { + //鑾峰彇鍗曟嵁鐢熸垚瀵瑰簲鏍囩 + var list = Db.Queryable<BllBoxInfo>().Where(a => a.IsDel == "0" && a.Status == "0" && a.BindNo == null); + + //楠岃瘉瀵瑰簲绠辨敮淇℃伅鏄惁瀛樺湪 + if (list == null) + { + return "-1:宸叉湁绠辩爜宸茬粦瀹氭墭鐩樻垨宸插叆搴擄紝涓嶅彲鍒犻櫎!"; + } + + // 鍒犻櫎瀵瑰簲绠辨敮淇℃伅 + sqlString += $"UPDATE BllBoxInfo SET IsDel = '1',"; + sqlString += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; + sqlString += $"WHERE ASNNo = '{model.ASNNo}';"; + notdel = 1; + } Db.Ado.BeginTran(); int rowCount = Db.Ado.ExecuteCommand(sqlString); - - if (rowCount < 2) + if (rowCount < 2 + notdel) { Db.RollbackTran(); return "-1:鍒犻櫎澶辫触锛�"; @@ -496,6 +595,7 @@ } catch (Exception ex) { + Db.RollbackTran(); throw ex; } } @@ -572,6 +672,11 @@ //{ // throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︿负鎵ц瀹屾垚"); //} + var palletBind = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo && m.Status != "2").ToList(); + if (palletBind != null && palletBind.Count > 0) + { + throw new Exception("瀛樺湪鏈叆搴撳畬鎴愭墭鐩樹俊鎭紝涓嶅厑璁稿叧鍗�"); + } var sqlString = ""; @@ -603,7 +708,7 @@ } } //鍏ュ簱鍗曟挙閿�鐢宠 - public void CancelOrder(int id,string reason,int userId) + public void CancelOrder(int id, string reason, int userId) { try { @@ -612,29 +717,29 @@ { throw new Exception("鏈煡璇㈠埌鍏ュ簱鍗曟嵁淇℃伅"); } - if (notice.Status!="1" && notice.Status != "2") + if (notice.Status != "1" && notice.Status != "2") { throw new Exception("鍏ュ簱鍗曟嵁鐘舵�佷笉鏄鍦ㄦ墽琛屾垨鎵ц瀹屾垚锛屼笉鑳芥挙閿�"); } var bind = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo).ToList(); - if (bind.Count==0) + if (bind.Count == 0) { throw new Exception("鏈煡璇㈠埌鍏ュ簱鍗曟嵁鐨勬墭鐩樼粦瀹氫俊鎭�"); } - if (bind.Count(m=>m.Status== "1")>0) + if (bind.Count(m => m.Status == "1") > 0) { throw new Exception("褰撳墠鍏ュ簱鍗曟嵁鐨勬墭鐩樼粦瀹氫俊鎭湁姝e湪鎵ц鐨勶紝璇风◢鍚庡畬鎴愬悗鍐嶆挙閿�"); } var auditLog = Db.Queryable<BllAuditLog>().Where(m => m.IsDel == "0" && m.Status == "0"); var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == notice.ASNNo); - if (auditLog.Count(m=>m.OrderNo == notice.ASNNo)>0) + if (auditLog.Count(m => m.OrderNo == notice.ASNNo) > 0) { throw new Exception("褰撳墠鍏ュ簱鍗曟嵁宸叉湁鎾ら攢瀹℃牳锛岃绛夊緟瀹℃牳瀹屾垚"); } - + var startStatusName = ""; var endStatusName = ""; @@ -649,7 +754,7 @@ endStatusName = "姝e湪鎵ц"; break; default: - throw new Exception("鍗曟嵁鐘舵�侀敊璇�"); + throw new Exception("鍗曟嵁鐘舵�侀敊璇�"); } var palletStr = ""; @@ -657,27 +762,46 @@ var msgL = ""; foreach (var item in bind) { - if (auditLog.Count(m=>m.OrderNo ==item.ASNNo && m.PalletNo.Contains(item.PalletNo)) >0) + if (auditLog.Count(m => m.OrderNo == item.ASNNo && m.PalletNo.Contains(item.PalletNo)) > 0) { continue; } if (!palletStr.Contains(item.PalletNo)) { - palletStr += item.PalletNo+";"; + palletStr += item.PalletNo + ";"; } - + var info = boxInfo.First(m => m.BindNo == item.Id); - if (!msgS.Contains(info.SkuNo)) + //鑾峰彇鎵樼洏缁戝畾瀵瑰簲鍗曟嵁 + var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(a => a.IsDel == "0" && a.Id == item.ASNDetailNo); + if (info != null) { - msgS += info.SkuNo + ";"; + if (!msgS.Contains(info.SkuNo)) + { + msgS += info.SkuNo + ";"; + } + + if (!msgL.Contains(info.LotNo)) + { + msgL += info.LotNo + ";"; + + } + } + else + { + if (!msgS.Contains(noticeDetail.SkuNo)) + { + msgS += noticeDetail.SkuNo + ";"; + } + + if (!msgL.Contains(noticeDetail.LotNo)) + { + msgL += noticeDetail.LotNo + ";"; + + } } - if (!msgL.Contains(info.LotNo)) - { - msgL += info.LotNo + ";"; - - } } var time = DateTime.Now; var log = new BllAuditLog() @@ -695,7 +819,7 @@ IsDel = "0", CreateUser = userId, CreateTime = time - }; + }; Db.Insertable(log).ExecuteCommand(); new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", notice.ASNNo, "娣诲姞", $"娣诲姞浜嗗崟鎹彿涓簕notice.ASNNo}鐨勫崟鎹挙閿�鐢宠", userId); } @@ -729,7 +853,7 @@ { //娣诲姞鎿嶄綔鏃ュ織 new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", notice.ASNNo, "缂栬緫", $"缂栬緫浜嗗崟鎹彿涓簕notice.ASNNo}鐨勫娉ㄤ俊鎭�", userId); - } + } } catch (Exception ex) { @@ -785,7 +909,7 @@ { ASNNo = asnNo, Type = model.AsnType, - Origin = model.Origin, + Origin = string.IsNullOrEmpty(model.Origin) ? "ERP" : model.Origin, CustomerNo = model.Customer, CustomerName = CustomerModel.CustomerName, OrderCode = model.OrderCode, @@ -869,6 +993,10 @@ { throw new Exception("鏈煡璇㈠埌鍗曟嵁淇℃伅"); } + if (notice.Status != "3") + { + throw new Exception("澶嶆牳澶辫触锛屽崟鎹潪鍏抽棴鐘舵��"); + } var detail = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.ASNNo == notice.ASNNo && m.IsDel == "0").ToList(); if (detail.Count == 0) { @@ -926,5 +1054,5 @@ #endregion } - + } -- Gitblit v1.8.0