From b7796f5e4d6594976ea948905af769eca863f27c Mon Sep 17 00:00:00 2001 From: helongyang <647556386@qq.com> Date: 星期一, 07 七月 2025 15:28:15 +0800 Subject: [PATCH] 代码更新 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs | 61 ++++++++++++++++++++++++++++-- 1 files changed, 56 insertions(+), 5 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs" index 26a6b2b..42aba4b 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/MesOutboundOrderService.cs" @@ -21,6 +21,7 @@ using WIDESEA_Common.LocationEnum; using WIDESEA_IRecordService; using WIDESEA_Common.StockEnum; +using WIDESEA_Common.TaskEnum; namespace WIDESEA_OutboundService { @@ -59,18 +60,19 @@ float originalNeedQuantity = mesOutboundOrder.OrderQuantity; float needQuantity = originalNeedQuantity; - + //鑾峰彇搴撳瓨 List<Dt_StockInfo> stockInfos = _stockService.StockInfoService.GetUseableStocks(mesOutboundOrder.MaterialCode, "", mesOutboundOrder.WarehouseId); if (!stockInfos.Any()) { throw new Exception($"鏈壘鍒板彲鍒嗛厤搴撳瓨"); } List<Dt_StockInfo> autoAssignStocks = _stockService.StockInfoService.GetOutboundStocks(stockInfos, mesOutboundOrder.MaterialCode, needQuantity, out float residueQuantity); - mesOutboundOrder.LockQuantity += needQuantity - residueQuantity; + if (residueQuantity>0) + { + throw new Exception($"搴撳瓨涓嶈冻"); + } + autoAssignStocks.OrderBy(x => x.Details.FirstOrDefault()?.StockQuantity).ToList(); outStocks.AddRange(autoAssignStocks); - float assignQuantity = needQuantity - residueQuantity; - - float orderQuantity = mesOutboundOrder.OrderQuantity; for (int j = 0; j < autoAssignStocks.Count; j++) { float detailAssignQuantity = outStockLockInfos.Where(x => x.MaterielCode == mesOutboundOrder.MaterialCode).Sum(x => x.AssignQuantity);//鍑哄簱璁㈠崟鏄庣粏宸插垎閰嶆暟閲� @@ -144,5 +146,54 @@ return WebResponseContent.Instance.Error(ex.Message); } } + + public WebResponseContent AddMesOrder(SubstrateOutModel substrateOutModel) + { + try + { + Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA57.ToString()); + if (warehouse == null) + { + return WebResponseContent.Instance.Error($"浠撳簱鍩虹淇℃伅鏈厤缃�"); + } + + Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == substrateOutModel.MaterialCode); + if (materielInfo == null) + { + return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡淇℃伅"); + } + int orderType = 0; + if(substrateOutModel.Line == "1011") + { + orderType = MesOutboundOrderTypeEnum.HandSubstrateOutPick.ObjToInt(); + } + else + { + orderType = MesOutboundOrderTypeEnum.HandSubstrateOut.ObjToInt(); + } + + Dt_MesOutboundOrder mesOutboundOrder = new Dt_MesOutboundOrder() + { + CreateType = OrderCreateTypeEnum.CreateInSystem.ObjToInt(), + Line = substrateOutModel.Line, + MaterialCode = substrateOutModel.MaterialCode, + MaterialName = materielInfo.MaterielName, + OrderQuantity = substrateOutModel.RequiredQuantity, + TaskNo = DateTime.Now.ToString("yyyyMMddHHmmss"), + Unit = substrateOutModel.Unit, + OrderType = orderType, + OrderStatus = OutOrderStatusEnum.鏈紑濮�.ObjToInt(), + WarehouseId = warehouse.WarehouseId + }; + + AddData(mesOutboundOrder); + + return WebResponseContent.Instance.OK(); + } + catch (Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } + } } } -- Gitblit v1.9.3