From c9cd6646fdd1296a7feeb4384ebfe06ab90a52d7 Mon Sep 17 00:00:00 2001 From: IPC-610 <IPC-610@DESKTOP-6LEOOS3> Date: 星期三, 27 十一月 2024 08:25:17 +0800 Subject: [PATCH] 修改批次长度判断 ,批次长度增加为11位和12位 --- Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 361 ++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 309 insertions(+), 52 deletions(-) diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs index 6fc3978..dfa78f2 100644 --- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs @@ -17,6 +17,11 @@ using WMS.Entity.Context; using WMS.Entity.SysEntity; using WMS.IBLL.IBllAsnServer; +using WMS.BLL.SysServer; +using System.Threading.Tasks; +using System.Security.Policy; +using WMS.Entity.DataEntity; +using WMS.Entity.BllQualityEntity; namespace WMS.BLL.BllAsnServer { @@ -112,7 +117,7 @@ sqlString += "LEFT JOIN SysMaterials AS tb5 on tb1.SkuNo = tb5.SkuNo "; sqlString += "LEFT JOIN SysUnit AS tb6 on tb5.UnitNo = tb6.UnitNo "; sqlString += "LEFT JOIN SysPackag AS tb7 on tb1.PackagNo = tb7.PackagNo "; - sqlString += $"WHERE tb1.ASNNo = '{model.ASNNo}' AND tb1.IsDel = '0' order by tb1.SkuNo desc "; + sqlString += $"WHERE tb1.ASNNo = '{model.ASNNo}' AND tb1.IsDel = '0' AND tb5.IsDel = '0' order by tb1.SkuNo desc "; sqlString += $"offset {((model.Page - 1) * model.Limit)} rows fetch next {rowCount} rows only;"; var modelList = Db.Ado.SqlQuery<ArrivalNoticeDetailDto>(sqlString); @@ -126,7 +131,7 @@ } //鑾峰彇鍏ュ簱鍗曟槑缁嗗墿浣欐墦鍗版暟閲� - public string GetAsnDetailQtyList(int id) + public LabelPrintInfoDto GetAsnDetailQtyList(int id) { try { @@ -135,11 +140,29 @@ { throw new Exception("鏈煡璇㈠埌鍏ュ簱鍗曟槑缁�"); } + var data = new LabelPrintInfoDto(); + + var notice = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && m.ASNNo == detail.ASNNo).First(); + if (notice != null && notice.Type == "4") //鍒ゆ柇鏄惁鏄綑鏂欓��鍥炲崟 + { + var noticeStr = Db.Queryable<BllArrivalNotice>().Where(m => m.Type == "1").Select(m => m.ASNNo).ToList(); + var detailOld = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && noticeStr.Contains(m.ASNNo) && m.SkuNo == detail.SkuNo && m.LotNo == detail.LotNo).OrderByDescending(m => m.CreateTime).First(); + if (detailOld != null) + { + var boxInfo = Db.Queryable<BllBoxInfo>().First(m => m.IsDel == "0" && m.ASNNo == detailOld.ASNNo); + if (boxInfo!= null) + { + data.ProductionTime = boxInfo.ProductionTime!= null ? ((DateTime)boxInfo.ProductionTime).ToString("yyyy-MM-dd"):""; + data.ExpirationTime = boxInfo.ExpirationTime != null ? ((DateTime)boxInfo.ExpirationTime).ToString("yyyy-MM-dd") : ""; + data.StoreTime = boxInfo.StoreTime != null ? ((DateTime)boxInfo.StoreTime).ToString("yyyy-MM-dd") : ""; + } + } + } 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(); + data.Qty = qty.ToString(); + return data; } catch (Exception e) { @@ -153,31 +176,58 @@ try { string skuType = string.Empty; + 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"://鎴愬搧鍏ュ簱 - case "3"://閫�璐у叆搴� - case "5"://鍏跺畠鍏ュ簱 - case "6"://浠e偍鍏ュ簱 skuType = "(2)"; + IsPack = 1; //璐� break; case "1"://閲囪喘鍏ュ簱 - case "4"://杞﹂棿浣欐枡閫�鍥炲叆搴� 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 = "(0,1,3)"; + break; + case "6"://浠e偍鍏ュ簱 + skuType = "(0,1,2,3,4)"; + IsPack = 2; //涓嶈创 break; case "7"://瀵勫瓨鍏ュ簱 - skuType = "(0,1,2,3,4)"; + //skuType = "(3)"; + IsPack = 2; //涓嶈创 break; default: //鍏跺畠 - skuType = "(0,1,2,3,4)"; + //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) && it.SkuNo != "100088") + .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), @@ -192,6 +242,8 @@ .Includes(x => x.UnitInfo) .Includes(x => x.PackagInfo) .ToList(); + + return data.Select(m => new MaterialsDto() { @@ -224,14 +276,15 @@ } //娣诲姞鍏ュ簱鍗曟嵁 - public string AddArrivalNotice(ArrivalNoticeVm model) + public string AddArrivalNotice(ArrivalNoticeVm model, string url) { 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"; + var TypeLot = "2, 5, 6, 7"; //鎵规鍙负绌哄崟鎹被鍨� + var addOder = new List<ResponseOrderTaskModel>(); try { if (model.Origin == "褰曞叆") @@ -251,13 +304,13 @@ } //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴� // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴� - if (model.Type == "1" || model.Type == "4") - { - if (!string.IsNullOrWhiteSpace(model.LotNo)) - { - throw new Exception("閲囪喘鍏ュ簱鎴栦綑鏂欓��鍥炰笉鍙緭鍏ユ壒娆★紝涓嶅彲缂栬緫!"); - } - } + //if (model.Type == "1" || model.Type == "4") + //{ + // if (!string.IsNullOrWhiteSpace(model.LotNo)) + // { + // throw new Exception("閲囪喘鍏ュ簱鎴栦綑鏂欓��鍥炰笉鍙緭鍏ユ壒娆★紝涓嶅彲缂栬緫!"); + // } + //} sqlString += "Insert into BllArrivalNotice (ASNNo,Type,Origin,CustomerNo,"; sqlString += "CustomerName,LotNo,LotText,SupplierLot,CreateUser) values ( "; @@ -287,17 +340,48 @@ //鍒ゆ柇鏄惁涓轰笉闄愬埗鎵规鍗曟嵁 if (!TypeLot.Contains(model.Type)) { - strMessage = "-1:鎵规鍙蜂笉鍙负绌�;"; + strMessage = "-1:杩涘巶缂栧彿涓嶅彲涓虹┖;"; continue; } } + if (model.Type != "7") + { + if (!TypeLot.Contains(model.Type)) + { + if (detailModel.LotNo.Length != 12 && detailModel.LotNo.Length != 11 && detailModel.LotNo.Length != 10) + { + strMessage = "-1:杩涘巶缂栧彿浣嶆暟闀垮害鏈夎;"; + continue; + } + } + + } + + if (model.Type == "1" && string.IsNullOrWhiteSpace(detailModel.SupplierLot)) //閲囪喘鍒拌揣鍗曞師鍘傛壒鍙凤紙渚涜揣鎵规锛変笉鑳戒负绌� + { + strMessage = "-1:鍘熷巶鎵瑰彿涓嶅彲涓虹┖;"; + continue; + } + if (model.Type == "2") // 2锛氫腑闂村搧鍏ュ簱 + { + if (string.IsNullOrWhiteSpace(detailModel.Lot1)) + { + throw new Exception("鐢熶骇鏃ユ湡涓嶅彲涓虹┖!"); + } + if (string.IsNullOrWhiteSpace(detailModel.Lot2)) + { + throw new Exception("杩囨湡鏃ユ湡涓嶅彲涓虹┖!"); + } + } + + // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁� string sqlCount = $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' "; sqlCount += $"and SkuNo ='{detailModel.SkuNo}' and LotNo = '{detailModel.LotNo}' and id != '{detailModel.Id}' and isdel = '0';"; var com = new Common().GetRowCount(sqlCount); if (com > 0) { - strMessage = "-1:鐗╂枡鍜屾壒娆″彿閲嶅;"; + strMessage = "-1:鐗╂枡鍜岃繘鍘傜紪鍙烽噸澶�;"; continue; } if (detailModel.Price == null) @@ -307,10 +391,25 @@ // 璁$畻鍑烘�婚噾棰� detailModel.Money = detailModel.Price * detailModel.Qty; sqlDetailStr += "Insert into BllArrivalNoticeDetail (ASNNo,SkuNo,SkuName,Standard,"; - sqlDetailStr += "LotNo,LotText,Qty,PackagNo,Price,Money,IsBale,IsBelt,SupplierLot,Status,UDF1,UDF2,UDF3,UDF4,UDF5,CreateUser) values ( "; + sqlDetailStr += "LotNo,LotText,Qty,PackagNo,Price,Money,IsBale,IsBelt,SupplierLot,Status,Lot1,Lot2,UDF1,UDF2,UDF3,UDF4,UDF5,CreateUser) values ( "; sqlDetailStr += $"'{model.ASNNo}','{detailModel.SkuNo}','{detailModel.SkuName}','{detailModel.Standard}', "; sqlDetailStr += $"'{detailModel.LotNo}','{detailModel.LotText}','{detailModel.Qty}','{detailModel.PackagNo}','{detailModel.Price}', "; - sqlDetailStr += $"{detailModel.Money},'{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');"; + sqlDetailStr += $"'{detailModel.Money}','{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.Lot1}','{detailModel.Lot2}', "; + sqlDetailStr += $"'{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');"; + + if (model.Type == "0")//鎴愬搧鍏ュ簱鍗曚笅鍙慦CS淇℃伅 + { + addOder.Add(new ResponseOrderTaskModel() + { + OrderNo = model.ASNNo, + LotNo = detailModel.LotNo, + SkuNo = detailModel.SkuNo, + SkuName = detailModel.SkuName, + BoxType = detailModel.Standard, + Qty = (int)detailModel.Qty, + TaskType = 0 + }); + } } if (sqlDetailStr == string.Empty) @@ -329,6 +428,35 @@ if (rowCount > 0 && rowDetailCount > 0) { new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", model.ASNNo, "娣诲姞", $"娣诲姞浜嗗崟鎹彿涓簕model.ASNNo}鐨勫崟鎹俊鎭�", Convert.ToInt32(model.CreateUser)); + + if (addOder.Count > 0) + { + // 姝e紡杩愯绋嬪簭鏀惧紑 + var jsonData = JsonConvert.SerializeObject(addOder); + string response = ""; + + try + { + var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss") + //缁橶CS涓嬪彂鍏ュ簱鍗曚俊鎭� + response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS"); + + //瑙f瀽杩斿洖鏁版嵁 + var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); + if (wcsModel.StatusCode == 0) + { + + } + if (wcsModel.StatusCode == -1) + { + throw new Exception($"涓嬪彂WCS澶辫触锛歿wcsModel.Msg}"); + } + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + } return strMessage; } else @@ -339,6 +467,7 @@ } catch (Exception ex) { + Db.Ado.RollbackTran(); throw new Exception(ex.Message); } } @@ -353,8 +482,10 @@ { //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴� // 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:閲囪喘鍏ュ簱鎴栦綑鏂欓��鍥炰笉鍙緭鍏ユ壒娆★紝涓嶅彲缂栬緫;"; @@ -415,11 +546,24 @@ strMessage = "-1:鏁伴噺蹇呴』澶т簬0;"; continue; } - if (string.IsNullOrEmpty(detailModel.LotNo)) + if (string.IsNullOrEmpty(detailModel.LotNo) && isType != 1) { strMessage = "-1:鎵规鍙蜂笉鍙负绌�;"; continue; } + + if (model.Type == "2") // 2锛氫腑闂村搧鍏ュ簱 + { + if (string.IsNullOrWhiteSpace(detailModel.Lot1)) + { + throw new Exception("鐢熶骇鏃ユ湡涓嶅彲涓虹┖!"); + } + if (string.IsNullOrWhiteSpace(detailModel.Lot2)) + { + throw new Exception("杩囨湡鏃ユ湡涓嶅彲涓虹┖!"); + } + } + // 鍒ゆ柇鏄惁宸插瓨鍦ㄥ綋鍓嶆槑缁� string sqlCount = $"SELECT COUNT(ID) FROM BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' "; sqlCount += $"and SkuNo ='{detailModel.SkuNo}' and LotNo = '{detailModel.LotNo}' and id != '{detailModel.Id}' and isdel = '0';"; @@ -439,10 +583,12 @@ // 璁$畻鍑烘�婚噾棰� detailModel.Money = detailModel.Price * detailModel.Qty; sqlDetailStr += "Insert into BllArrivalNoticeDetail (ASNNo,SkuNo,SkuName,Standard,"; - sqlDetailStr += "LotNo,LotText,Qty,PackagNo,Price,Money,IsBale,IsBelt,SupplierLot,Status,UDF1,UDF2,UDF3,UDF4,UDF5,CreateUser) values ( "; + sqlDetailStr += "LotNo,LotText,Qty,PackagNo,Price,Money,IsBale,IsBelt,SupplierLot,Status,Lot1,Lot2,UDF1,UDF2,UDF3,UDF4,UDF5,CreateUser) values ( "; sqlDetailStr += $"'{model.ASNNo}','{detailModel.SkuNo}','{detailModel.SkuName}','{detailModel.Standard}', "; sqlDetailStr += $"'{detailModel.LotNo}','{detailModel.LotText}','{detailModel.Qty}','{detailModel.PackagNo}','{detailModel.Price}', "; - sqlDetailStr += $"{detailModel.Money},'{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');"; + sqlDetailStr += $"'{detailModel.Money},'{detailModel.IsBale}','{detailModel.IsBelt}','{detailModel.SupplierLot}','0','{detailModel.Lot1}','{detailModel.Lot2}', "; + sqlDetailStr += $"'{detailModel.UDF1}','{detailModel.UDF2}','{detailModel.UDF3}','{detailModel.UDF4}','{detailModel.UDF5}','{model.CreateUser}');"; + } else { @@ -455,6 +601,8 @@ && it.SupplierLot == detailModel.SupplierLot && it.IsBale == detailModel.IsBale && it.IsBelt == detailModel.IsBelt + && it.Lot1 == detailModel.Lot1 // 鐢熶骇鏃ユ湡 + && it.Lot2 == detailModel.Lot2 // 杩囨湡鏃ユ湡 && it.UDF1 == detailModel.UDF1 && it.UDF2 == detailModel.UDF2 && it.UDF3 == detailModel.UDF3 @@ -470,6 +618,7 @@ sqlDetailStr += $"Qty = '{detailModel.Qty}',LotNo = '{detailModel.LotNo}',Money='{detailModel.Money}', "; sqlDetailStr += $"LotText = '{detailModel.LotText}',SupplierLot = '{detailModel.SupplierLot}', "; sqlDetailStr += $"IsBale = '{detailModel.IsBale}',IsBelt = '{detailModel.IsBelt}', "; + sqlDetailStr += $" Lot1= '{detailModel.Lot1}',Lot2 = '{detailModel.Lot2}', "; sqlDetailStr += $"UDF1 = '{detailModel.UDF1}',UDF2 = '{detailModel.UDF2}',UDF3 = '{detailModel.UDF3}',UDF4 = '{detailModel.UDF4}',UDF5 = '{detailModel.UDF5}',"; sqlDetailStr += $"UpdateTime = GETDATE(),UpdateUser = '{model.CreateUser}' "; sqlDetailStr += $"WHERE Id = {detailModel.Id};"; @@ -533,6 +682,7 @@ //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴� // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴� + int notdel = 0; if (model.Type == "1" || model.Type == "4") { //鑾峰彇鍗曟嵁鐢熸垚瀵瑰簲鏍囩 @@ -548,10 +698,11 @@ 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 < 3) + if (rowCount < 2 + notdel) { Db.RollbackTran(); return "-1:鍒犻櫎澶辫触锛�"; @@ -639,6 +790,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 = ""; @@ -735,16 +891,35 @@ } 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() @@ -812,11 +987,11 @@ /// </summary> /// <param name="model"></param> /// <returns></returns> - public ErpModel CreateAsn(AsnInfo model) + public HttpReturnModel HttpCreateAsn(AsnInfo model) { try { - var resultModel = new ErpModel() { Success = -1, Message = "" }; + var resultModel = new HttpReturnModel() { Success = "-1", Message = "" }; if (string.IsNullOrEmpty(model.AsnType)) { resultModel.Message = "鍗曟嵁绫诲瀷涓嶅彲涓虹┖!"; @@ -852,7 +1027,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, @@ -915,7 +1090,7 @@ Db.Insertable(detailModels).ExecuteCommand(); Db.CommitTran(); - resultModel.Success = 0; + resultModel.Success = "0"; resultModel.Message = "鎴愬姛"; return resultModel; } @@ -927,23 +1102,52 @@ } //璁㈠崟鍥炰紶涓婃父绯荤粺 - public bool FinishAsn(int id, string url, int userId) + public bool FinishAsn(int id, string erpUrl, string mesUrl,string mesTokenUrl,string userNo,string pwd, int userId) { try { + var loginPwd = Md5Tools.CalcMd5(pwd); + var date = Db.Queryable<SysUserInfor>().First(m =>m.IsDel=="0" && m.UserName == userNo && m.PassWord == loginPwd); + + if (date == null) //璐﹀彿瀵嗙爜鏄惁姝g‘ + { + throw new Exception("璐﹀彿瀵嗙爜涓嶆纭垨娌℃湁姝よ处鍙�"); + } + if (date.Status != "0") //褰撳墠璐﹀彿鏄惁姝e父鍚敤 + { + throw new Exception("褰撳墠璐﹀彿闈炲惎鐢ㄧ姸鎬�"); + } + var notice = Db.Queryable<BllArrivalNotice>().First(m => m.Id == id && m.IsDel == "0"); if (notice == null) { 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) { throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏淇℃伅"); } - if (userId == notice.UpdateUser) + if (date.Id == notice.UpdateUser) { throw new Exception("澶嶆牳澶辫触锛屽鏍镐汉鍛樺拰鍏抽棴璁㈠崟浜哄憳涓嶈兘鐩稿悓锛�"); + } + //鍗曟嵁绫诲瀷鏄� 鎴愬搧鍏ュ簱鎴栭噰璐叆搴� 鍒ゆ柇鍏ュ簱鐗╂枡鏄惁鍚堟牸 + if (notice.Type == "0" || notice.Type == "1") + { + foreach (var item in detail) + { + var instStatus = Db.Queryable<BllQualityInspect>().Count(m => m.IsDel == "0" && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.IsQualified == "1"); + if (instStatus == 0) + { + throw new Exception($"{item.SkuNo}銆亄item.LotNo}璐ㄩ噺鐘舵�佷笉鏄悎鏍肩殑锛屼笉鑳藉洖浼狅紒"); + } + } + } var list = new List<AsnDetail>(); foreach (var d in detail) @@ -958,31 +1162,61 @@ }; list.Add(item); } - var soInfo = new AsnInfo() + var asnInfo = new AsnInfo() { OrderCode = notice.OrderCode, AsnDetails = list }; - #region 閫氳繃鎺ュ彛鍙戦�佽嚦erp + #region 閫氳繃鎺ュ彛鍙戦�佽嚦erp 鎴� mes //绯荤粺瀵规帴鍚庢斁寮� - /*var jsonData = JsonConvert.SerializeObject(soInfo); + var jsonData = JsonConvert.SerializeObject(asnInfo); + var mesList = new List<string>() { "0", "4" }; //0 鎴愬搧鍏ュ簱 4浣欐枡閫�鍥炲叆搴� + var erpList = new List<string>() { "1", "2", "3" }; //1 閲囪喘鍏ュ簱 2涓棿鍝佸叆搴� 3 閫�璐у叆搴� - var response = HttpHelper.DoPost(url, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "ERP"); - - var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁 - if (obj.Success != 0) + if (mesList.Contains(notice.Type)) // mes { - throw new Exception("涓婁紶澶辫触" + obj.Message); - }*/ + //鑾峰彇浠ょ墝 + var token = new Token().GetMesToken(mesTokenUrl); + Dictionary<string, string> mesDic = new Dictionary<string, string>() + { + {"Authorization",token } + }; + var mesData = new FinishAsnModel() + { + no = asnInfo.OrderCode, + qty = asnInfo.AsnDetails.Sum(m=>m.Qty) + }; + jsonData = JsonConvert.SerializeObject(mesData); + //璋冪敤鎺ュ彛 + var response = HttpHelper.DoPost(mesUrl, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "MES", mesDic); + + var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁 + if (obj.status != "0") + { + throw new Exception("涓婁紶澶辫触" + obj.message); + } + } + else if (erpList.Contains(notice.Type)) //erp + { + var response = HttpHelper.DoPost(erpUrl, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "ERP"); + + var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁 + if (obj.Success != 0) + { + throw new Exception("涓婁紶澶辫触" + obj.Message); + } + } + + #endregion notice.Status = "4"; notice.CheckTime = DateTime.Now; - notice.CheckUser = userId; + notice.CheckUser = date.Id; Db.Updateable(notice).ExecuteCommand(); - new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", notice.ASNNo, "澶嶆牳", $"澶嶆牳浜嗗崟鎹彿涓簕notice.ASNNo}鐨勫崟鎹俊鎭�", userId); + new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鍗曟嵁", notice.ASNNo, "澶嶆牳", $"{date.RealName}澶嶆牳浜嗗崟鎹彿涓簕notice.ASNNo}鐨勫崟鎹俊鎭�", userId); return true; } catch (Exception e) @@ -991,6 +1225,29 @@ } } + public void UpLocate(string wareNo,string locatNo) + { + try + { + if (string.IsNullOrWhiteSpace(wareNo) || string.IsNullOrWhiteSpace(locatNo)) + { + throw new Exception("浠撳簱鎴栧偍浣嶄笉鑳戒负绌�"); + } + var locate = Db.Queryable<SysStorageLocat>().First(m=>m.IsDel == "0" && m.LocatNo == locatNo && m.WareHouseNo == wareNo); + if (locate == null) + { + throw new Exception("鏈煡璇㈠埌鍌ㄤ綅淇℃伅"); + } + locate.Status = "0";//鍌ㄤ綅鐘舵�佸彉鏇寸┖鍌ㄤ綅 + Db.Updateable(locate).ExecuteCommand(); + + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + #endregion } -- Gitblit v1.8.0