From 86e443e42c4bee972c5b795def4917e02f98ce40 Mon Sep 17 00:00:00 2001 From: wxw <Administrator@DESKTOP-5BIMHQ3> Date: 星期五, 11 七月 2025 16:45:08 +0800 Subject: [PATCH] 修改问题 --- Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 557 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 523 insertions(+), 34 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs index d2c75d7..bae79e7 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs @@ -25,6 +25,11 @@ using System.Security.Policy; using Newtonsoft.Json; using Utility.Tools; +using Model.ModelDto.SysDto; +using Model.ModelVm.SysVm; +using System.Security.Cryptography.X509Certificates; +using AutoMapper.Configuration.Annotations; +using Utility; namespace WMS.BLL.BllPdaServer { @@ -73,14 +78,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("鐗╂枡-鎵规涓嶅彲涓虹┖!"); } } @@ -527,7 +533,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) @@ -1043,7 +1049,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) @@ -1132,14 +1138,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("鐗╂枡鎵规涓嶅彲涓虹┖!"); } } @@ -1493,7 +1500,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) @@ -2222,15 +2229,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; } @@ -2444,7 +2453,7 @@ } } - + // 杞﹂棿缁戝畾鎵樼洏-璐存爣 public void ChejianIn(string palletNo,string boxNo,decimal qty,string areaNo,int userId) { try @@ -2635,6 +2644,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) { @@ -2643,7 +2668,6 @@ } //鏇存敼绠辨敮鍏崇郴琛ㄤ俊鎭� Db.Updateable(boxInfoList).ExecuteCommand(); - #region 搴撳瓨 var dataStock = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == boxInfoOne.LotNo); @@ -2673,11 +2697,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); //鎻愪氦浜嬪姟 @@ -2743,8 +2768,6 @@ new Common().GetPackQtyInfo(pack.PackagNo, ref pNum, ref bNum); #endregion - - #region 搴撳瓨鏄庣粏 @@ -2819,7 +2842,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) @@ -2848,6 +2870,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}';"; ////娣诲姞鎵樼洏璁板綍琛ㄦ暟鎹� @@ -2868,13 +2905,6 @@ } #endregion - - - - - - - // 鑾峰彇鍗曟嵁鍒楄〃 public List<ArrivalNoticeDto> GetArrivalNotices(ArrivalNoticeVm model) { @@ -2909,11 +2939,6 @@ throw ex; } } - - - - - // 鏍规嵁绠辩爜鎴栨墭鐩樺彿鑾峰彇绠辨敮淇℃伅 liudl public List<BoxInfoDto> GetBoxInfos(BoxInfoVm model) @@ -5970,7 +5995,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) @@ -6049,9 +6074,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; //鍥炴祦鍏ュ簱 @@ -6488,6 +6516,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鍙栨牱涓氬姟鎺ュ彛 //鑾峰彇鏈粍鎵樻垨宸茬粍鎵樼殑绠辩爜绾у埆 @@ -6812,5 +6947,359 @@ #endregion + #region 绾胯竟鏍囩 + /// <summary> + /// 鏍规嵁鐗╂枡缂栫爜銆佸悕绉拌幏鍙栫墿鏂欎俊鎭� + /// </summary> + /// <param name="model">缂栫爜 鍚嶇О</param> + /// <returns>鐗╂枡璇︾粏淇℃伅</returns> + public MaterialsDto GetSkuInfo(GetMaterialsVm model) + { + try + { + if (string.IsNullOrEmpty(model.SkuNo) && string.IsNullOrEmpty(model.SkuName)) + { + throw new Exception("璇疯緭鍏ョ墿鏂欑紪鐮佹垨鐗╂枡鍚嶇О!"); + } + + var skuModels = Db.Queryable<SysMaterials>().Where(m => (m.SkuNo == model.SkuNo || m.SkuName == model.SkuName) && m.IsDel == "0").Select< MaterialsDto>().ToList(); + if (skuModels.Count <= 0) + { + throw new Exception("鐗╂枡涓嶅瓨鍦紒"); + } + + return skuModels.First(); + } + catch (Exception ex) + { + throw ex; + } + } + + /// <summary> + /// 鐢熸垚鏉$爜鏍囩 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + public List<BllBoxInfo> AddLabels(LabelsVm model) + { + try + { + if (decimal.TryParse(model.SkuNum, out decimal skuQty)) + { + if (skuQty <= 0) + { + throw new Exception("绠卞唴鏁伴噺涓嶈兘灏忎簬绛変簬0"); + } + } + else + { + throw new Exception("绠卞唴鏁伴噺璇疯緭鍏ユ暟瀛楋紒"); + } + + // 楠岃瘉鐗╂枡淇℃伅鏄惁瀛樺湪 + var skuModels = Db.Queryable<SysMaterials>().Where(m => (m.SkuNo == model.SkuNo || m.SkuName == model.SkuName) && m.IsDel == "0").Select<MaterialsDto>().ToList(); + if (skuModels.Count <= 0) + { + throw new Exception("鐗╂枡涓嶅瓨鍦紒"); + } + + + #region + var skuModel = skuModels.First(); + var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == skuModel.PackagNo); + if (pack == null) + { + throw new Exception("鏈煡璇㈠埌褰撳墠鐗╂枡鐨勫寘瑁呬俊鎭�"); + } + + var packStr = ""; + if (!string.IsNullOrWhiteSpace(pack.L1Name)) + { + packStr += pack.L1Num + "/" + pack.L1Name; + } + if (!string.IsNullOrWhiteSpace(pack.L2Name)) + { + packStr += "-" + pack.L2Num + "/" + pack.L2Name; + } + if (!string.IsNullOrWhiteSpace(pack.L3Name)) + { + packStr += "-" + pack.L3Num + "/" + pack.L3Name; + } + if (!string.IsNullOrWhiteSpace(pack.L4Name)) + { + packStr += "-" + pack.L4Num + "/" + pack.L4Name; + } + if (!string.IsNullOrWhiteSpace(pack.L5Name)) + { + packStr += "-" + pack.L5Num + "/" + pack.L5Name; + } + #endregion + + #region 鍖呰鏌ヨ + + var bNum = 0;//绠辩墿鍝佹暟閲� + var zNum = 0;//鏀墿鍝佹暟閲� + var packLevel = 0; + + if (pack.L2Num.HasValue) + { + if (pack.L2Name != "鎵�") + { + packLevel = 1;//JC34椤圭洰鍙湁涓�绾ф爣绛� + bNum = Convert.ToInt32(pack.L2Num); + } + } + if (pack.L1Num.HasValue) + { + if (packLevel == 0) + { + packLevel = 1; + bNum = Convert.ToInt32(pack.L1Num); + } + zNum = Convert.ToInt32(pack.L1Num); + } + + if (packLevel < 1)//鍖呰绛夌骇灏忎簬1锛屾寜鐓�1绾ф爣绛炬墦鍗� + { + throw new Exception("鍖呰淇℃伅鏈夎锛屽皬浜庝竴绾�"); + } + + if (skuQty > bNum * 5) + { + throw new Exception("绠卞唴鏁伴噺澶т簬鍖呰5鍊嶏紝涓嶅彲鎵撳嵃"); + } + #endregion + var modelList = new List<BllBoxInfo>(); + var label = Db.Queryable<BllBoxInfo>().Where(m => m.LotNo == model.LotNo && m.SkuNo == model.SkuNo && m.IsDel == "0").ToList(); + + Db.BeginTran(); + if (packLevel == 1) + { + #region 涓�绾у寘瑁� + int labelNum = 1; + labelNum = int.Parse(Math.Ceiling(skuQty / bNum).ToString());//鏍囩鏁伴噺 + + + #region 鑾峰彇/鐢熸垚鎵规鍙� + string maxLotNoStr = ""; //鎵规鍙� + string maxBoxCode = ""; //绠辩爜鍙� + + maxLotNoStr = model.LotNo; + maxBoxCode = label.Where(m => m.LotNo == maxLotNoStr).Max(a => a.BoxNo); + #endregion + + for (int i = 1; i <= labelNum; i++) + { + decimal boxQty = 0; + if (i == labelNum) + { + // 鏈�鍚庝竴涓潯鐮� + var s = bNum * (i - 1); + if (bNum > skuQty - s) + { + boxQty = skuQty - s;// 鏁伴噺 + } + else + { + boxQty = bNum;// 鏁伴噺 + } + } + else + { + boxQty = bNum; // 鏁伴噺 + } + + //鑾峰彇绠辩爜 + if (string.IsNullOrWhiteSpace(maxBoxCode)) + { + var str = "B" + maxLotNoStr + "000001"; //鎵瑰彿+ 娴佹按 B 230201 0001 000001 + maxBoxCode = str; + } + else + { + maxBoxCode = maxBoxCode.Substring(0, maxBoxCode.Length - 6) + (int.Parse(maxBoxCode.Substring(maxBoxCode.Length - 6, 6)) + 1).ToString().PadLeft(6, '0'); + } + + // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛� + var labelModel = new BllBoxInfo() + { + BoxNo = maxBoxCode, + Qty = boxQty, + FullQty = bNum, + Status = "0", + SkuNo = model.SkuNo, + SkuName = model.SkuName, + LotNo = maxLotNoStr, + Standard = skuModel.Standard, + PackageStandard = packStr, + InspectMark = "0", + BitBoxMark = bNum > boxQty ? "1" : "0", + InspectStatus = "0", + + ProductionTime = DateTime.Parse(model.TimeFrom), + StoreTime = DateTime.Parse(model.TimeEnd), + ExpirationTime = DateTime.Parse(model.TimeEnd), + + Origin = "WMS鐢熸垚", + CreateUser = (int)model.userId, + CreateTime = DateTime.Now, + }; + + Db.Insertable(labelModel).ExecuteCommand(); + modelList.Add(labelModel); + } + + #endregion + } + else //(packLevel == 2) + { + #region 浜岀骇鍖呰 + + if (skuQty > bNum * 5) + { + throw new Exception("绠卞唴鏁伴噺澶т簬鍖呰5鍊嶏紝涓嶅彲鎵撳嵃"); + } + + var qty2 = skuQty; + int labelNum2 = 1; //鐢熶骇绠辨潯鐮佹暟閲� + + labelNum2 = int.Parse(Math.Ceiling(qty2 / bNum).ToString()); + + var ss = bNum / zNum; //姣忕鏀爣绛炬暟閲� + var labelNumZ2 = Math.Ceiling((decimal)ss); + + #region 鑾峰彇/鐢熸垚鎵规鍙� + + string maxCodestr2 = ""; //鎵规 + string maxboxcode2 = ""; //绠辩爜 + string maxboxcode3 = ""; //鏀爜 + + maxCodestr2 = model.LotNo; + maxboxcode2 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo); + maxboxcode3 = label.Where(m => m.LotNo == maxCodestr2).Max(a => a.BoxNo3);//鏀彿 + #endregion + + for (int i = 1; i <= labelNum2; i++)//绠辩爜鏍囩 + { + //绠卞唴鏁伴噺 + decimal boxQty = 0; + if (i == labelNum2) + { + // 鏈�鍚庝竴涓潯鐮� + var s = bNum * (i - 1); + if (bNum > qty2 - s) + { + boxQty = qty2 - s;// 鏁伴噺 + } + else + { + boxQty = bNum;// 鏁伴噺 + } + } + else + { + boxQty = bNum; // 鏁伴噺 + } + + //鑾峰彇绠辩爜 + if (string.IsNullOrWhiteSpace(maxboxcode2)) + { + maxboxcode2 = "B" + maxCodestr2 + "000001"; // 绠卞彿 鎵瑰彿+绗嚑绠� + } + else + { + maxboxcode2 = maxboxcode2.Substring(0, 11) + (int.Parse(maxboxcode2.Substring(11, 6)) + 1).ToString().PadLeft(6, '0'); + } + //鑾峰彇绠卞唴鏀爣绛炬暟閲� + if (i == labelNum2) + { + var isGo2 = false; + var sl = 0; + for (int j = 1; j <= labelNumZ2; j++) + { + if (isGo2) + { + break; + } + var s = bNum * (i - 1); + var s2 = zNum * (j - 1); + if (zNum >= qty2 - s - s2) + { + isGo2 = true; + } + sl++; + } + labelNumZ2 = sl; + } + + for (int j = 1; j <= labelNumZ2; j++)//鏈�灏忓崟浣嶆爣绛� + { + + decimal d = zNum; + if (i == labelNum2) + { + var s = bNum * (i - 1); + var s2 = zNum * (j - 1); + if (zNum >= qty2 - s - s2) + { + d = qty2 - s - s2; // 鏁伴噺 + } + } + + if (string.IsNullOrWhiteSpace(maxboxcode3)) + { + maxboxcode3 = "Z" + maxCodestr2 + "0001"; // 鏀彿 鎵瑰彿+绗嚑绠� + } + else + { + maxboxcode3 = maxboxcode3.Substring(0, 11) + (int.Parse(maxboxcode3.Substring(11, 4)) + 1).ToString().PadLeft(4, '0'); + } + + // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛� + var labelModel = new BllBoxInfo() + { + BoxNo = maxboxcode2, + BoxNo3 = maxboxcode3, + Qty = d, + FullQty = bNum, + Status = "0", + SkuNo = model.SkuNo, + SkuName = skuModel.SkuName, + LotNo = maxCodestr2, + Standard = skuModel.Standard, + PackageStandard = packStr, + InspectMark = "0", + BitBoxMark = bNum > boxQty ? "1" : "0", + InspectStatus = "0", + + ProductionTime = DateTime.Parse(model.TimeFrom), + StoreTime = DateTime.Parse(model.TimeEnd), + ExpirationTime = DateTime.Parse(model.TimeEnd), + + Origin = "WMS鐢熸垚", + CreateUser = (int)model.userId, + CreateTime = DateTime.Now, + }; + + Db.Insertable(labelModel).ExecuteCommand(); + modelList.Add(labelModel); + } + } + #endregion + } + Db.CommitTran(); + + return modelList; + } + catch (Exception ex) + { + Db.RollbackTran(); + throw new Exception(ex.Message); + } + } + #endregion + } } -- Gitblit v1.8.0