From 1f2bb6d2f47f3e94322ec437d85ec6ed1fbcfb75 Mon Sep 17 00:00:00 2001 From: chengsc <11752@DESKTOP-DS49RCP> Date: 星期三, 11 六月 2025 17:03:39 +0800 Subject: [PATCH] 修改申请空托入库接口信息 --- Wms/WMS.BLL/HttpServer.cs | 303 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 303 insertions(+), 0 deletions(-) diff --git a/Wms/WMS.BLL/HttpServer.cs b/Wms/WMS.BLL/HttpServer.cs index e426f1e..6999955 100644 --- a/Wms/WMS.BLL/HttpServer.cs +++ b/Wms/WMS.BLL/HttpServer.cs @@ -26,6 +26,309 @@ private static readonly SqlSugarScope Db = DataContext.Db; public HttpServer() { } + + public OutCommandDto RequestPalletIn(string palletNo, string houseNo, int palletNum, string Strlocate) + { + //return null; + try + { + #region 鍒ゆ柇 + if (string.IsNullOrEmpty(palletNo)) + { + throw new Exception("鎵樼洏鍙蜂笉鑳戒负绌�"); + } + if (string.IsNullOrEmpty(houseNo)) + { + throw new Exception("浠撳簱鍙蜂笉鑳戒负绌�"); + } + if (palletNum <= 0) + { + throw new Exception("鎵樼洏鏁伴噺涓嶈兘灏忕瓑0"); + } + if (string.IsNullOrEmpty(Strlocate)) + { + throw new Exception("璧峰浣嶇疆涓嶈兘涓虹┖"); + } + //鑾峰彇鍌ㄤ綅淇℃伅 + var locateInfo = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.WareHouseNo == houseNo && m.LocatNo == Strlocate); + if (locateInfo == null) + { + throw new Exception("鏈煡璇㈠埌绌哄偍浣�"); + } + if (locateInfo.Flag != "0") + { + throw new Exception("褰撳墠浣嶇疆鏍囪瘑鐘舵�佹槸闈炴甯哥殑"); + } + + #endregion + + #region MyRegion + + var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).ToList(); + if (stockDetail.Count > 0) + { + throw new Exception("褰撳墠鎵樼洏鍦ㄥ簱鍐呭凡鏈夊簱瀛樹俊鎭紝璇锋牳瀹�"); + } + + //鑾峰彇鎵樼洏淇℃伅 + var pallet = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNo); + if (pallet == null) + { + throw new Exception("鏈煡璇㈠埌鎵樼洏淇℃伅"); + } + if (pallet.Status != "0") + { + throw new Exception("鎵樼洏鐘舵�佷笉鑳芥湭浣跨敤鐘舵��"); + } + //鑾峰彇鎵樼洏淇℃伅 + var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == "100099"); + if (sku == null) + { + throw new Exception("鐗╂枡淇℃伅涓湭鏌ヨ鍒扮┖鎵樼洏鐨勭墿鏂欎俊鎭紝涓嶅彲鍏ュ簱"); + } + var pNum = 0; + var bNum = 0; + + new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum); + + var datetime = Db.GetDate(); + Db.BeginTran(); + + // 鎻掑叆鎵樼洏缁戝畾琛� + var modelpb = new BllPalletBind + { + ASNNo = "", + ASNDetailNo = 0, + TaskNo = "", //浠诲姟鍙� + PalletNo = palletNo, + Qty = palletNum, + FullQty = pNum, + Status = "3", //涓婃灦瀹屾垚 + Type = "1", //0 鐗╂枡鎵� 1 绌烘墭 + LotNo = "", + LotText = "", + SupplierLot = "", + InspectMark = "0", //0 鍚� 1 鏄� + BitPalletMark = pNum == palletNum ? "0" : "1", + IsBale = "0", + IsBelt = "0", + CreateUser = 0, + CreateTime = Db.GetDate() + }; + var id = Db.Insertable(modelpb).ExecuteReturnIdentity(); + + #region 鐢宠鍌ㄤ綅 + + SysStorageLocat locate = null; + + + //鍒ゆ柇鐗╂枡鏄惁鍚湁绫诲埆淇℃伅 + if (string.IsNullOrWhiteSpace(sku.CategoryNo)) + { + throw new Exception($"鐗╂枡锛歿sku.SkuNo}鏈煡璇㈠埌绫诲埆淇℃伅"); + } + + var skuCategory = Db.Queryable<SysMaterialCategory>().First(m => m.IsDel == "0" && m.CategoryNo == sku.CategoryNo); + if (skuCategory == null) + { + throw new Exception($"鏈湪绫诲埆淇℃伅涓煡璇㈠埌鐗╂枡锛歿sku.SkuNo}鍖呭惈鐨勭被鍒�"); + } + + var areaStr = skuCategory.AreaNo.Split(","); + var areaList = new List<string>(); + foreach (var item in areaStr) + { + areaList.Add(item); + } + var allotLocate = new AllotLocation(); + for (int i = 1; i <= 2; i++) + { + var iStr = i.ToString(); + locate = allotLocate.GetSuiTableLocate(houseNo, areaList, "", iStr); + if (locate != null) + { + break; + } + } + + + + #endregion + + #region 搴撳瓨鏄庣粏 + var sd1 = new DataStockDetail() + { + LotNo = modelpb.LotNo, + LotText = modelpb.LotText, + SupplierLot = modelpb.SupplierLot, + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + Standard = sku.Standard, + Qty = modelpb.Qty, + LockQty = 0, + FrozenQty = 0, + InspectQty = 0, + ASNNo = modelpb.ASNNo, + ASNDetailNo = modelpb.ASNDetailNo, + WareHouseNo = locate.WareHouseNo, + RoadwayNo = locate.RoadwayNo, + AreaNo = locate.AreaNo, + LocatNo = locate.LocatNo, + PalletNo = modelpb.PalletNo, + PalletNo2 = modelpb.PalletNo2, + PalletNo3 = modelpb.PalletNo3, + PalletTags = "0", + CompleteTime = datetime, + ProductionTime = modelpb.ProductionTime, + ExpirationTime = modelpb.ExpirationTime, + Status = "0", + InspectMark = modelpb.InspectMark, + InspectStatus = sku.IsInspect, + BitPalletMark = modelpb.BitPalletMark, + PackagNo = sku.PackagNo, + IsBale = modelpb.IsBale, + IsBelt = modelpb.IsBelt, + + + IsDel = "0", + CreateUser = 0, + CreateTime = datetime + }; + var sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity(); + #endregion + + #region 搴撳瓨 + var dataStock1 = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo); + if (dataStock1 != null) + { + dataStock1.Qty += modelpb.Qty; + if (modelpb.InspectMark == "1") + { + dataStock1.IsSampling = "0"; + } + Db.Updateable(dataStock1).ExecuteCommand(); + } + else + { + var stock = new DataStock() + { + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + Standard = sku.Standard, + LotNo = "", + LotText = "", + Qty = modelpb.Qty, + LockQty = 0, + FrozenQty = 0, + IsSampling = "0", + IsDel = "0", + CreateUser = 0, + CreateTime = datetime + }; + Db.Insertable(stock).ExecuteCommand(); + } + #endregion + + // 鏇存敼鎵樼洏浣跨敤鐘舵�� + string sqlStr = string.Empty; + sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{palletNo}';"; + Db.Ado.ExecuteCommand(sqlStr); + + #region 娣诲姞浠诲姟 + + //娣诲姞宸烽亾浣跨敤璁板綍 + var log = new SysRoadwayUseLog + { + RoadwayNo = locate.RoadwayNo, + WareHouseNo = houseNo, + Row = 0, + Column = 0, + Layer = 0, + }; + Db.Insertable(log).ExecuteCommand(); + var taskNo = new Common().GetMaxNo("TK"); + var inTask = new LogTask //鍏ュ簱浠诲姟 + { + TaskNo = taskNo, + Sender = "WMS", + Receiver = "WCS", + IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + SendDate = DateTime.Now, //鍙戦�佹椂闂� + BackDate = DateTime.Now, //杩斿洖鏃堕棿 + StartRoadway = "", // 璧峰宸烽亾 + StartLocat = Strlocate,//璧峰浣嶇疆 + EndLocat = locateInfo.LocatNo,//鐩爣浣嶇疆 + EndRoadway = locateInfo.RoadwayNo, // 鐩爣宸烽亾 + PalletNo = palletNo,//鎵樼洏鐮� + IsSend = 1,//鏄惁鍙啀娆′笅鍙� + IsCancel = 1,//鏄惁鍙彇娑� + IsFinish = 1,//鏄惁鍙畬鎴� + Type = "0",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + OrderType = "0",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + Msg = $"{locateInfo.LocatNo}鍒�=>>" + locate.LocatNo + "鐨勫叆搴撲换鍔�", //鍏抽敭淇℃伅 + + }; + Db.Insertable(inTask).ExecuteCommand(); + var asnNo = ""; + + //娣诲姞鎵樼洏涓婃灦璁板綍 + var upShelf = new BllPalletUpShelf() + { + TaskNo = inTask.TaskNo, + TraceNo = asnNo, + PalletNo = palletNo, + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + LotNo = "", + Status = "1", + + WareHouseNo = houseNo, + RoadwayNo = locate.RoadwayNo, + AreaNo = locate.AreaNo, + LocatNo = locate.LocatNo, + + CreateUser = 0, + }; + Db.Insertable(upShelf).ExecuteCommand(); + + + + locate.Status = "2"; + Db.Updateable(locate).ExecuteCommand(); + + var comDto = new OutCommandDto() + { + TaskNo = taskNo, // 浠诲姟鍙� + TaskType = "0",// 浠诲姟绫诲瀷 + PalletNo = palletNo,//鎵樼洏鍙� + + StartRoadway = inTask.StartRoadway, + StartLocate = inTask.StartLocat, // 璧峰浣嶇疆 + EndLocate = inTask.EndLocat, // 鐩爣浣嶇疆 + EndRoadway = inTask.EndRoadway, // 鐩爣宸烽亾 + Qty = int.Parse(modelpb.Qty.ToString()), + + Order = 999, + Type = PLCTypeEnum.AGV + }; + + #endregion + + + Db.CommitTran(); + + #endregion + + return null; + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + + /// <summary> /// 鐢宠鍌ㄤ綅 锛堢珛浣撳簱锛� /// </summary> -- Gitblit v1.8.0