From be438dd071400936c44a1425ec8d886f63c83329 Mon Sep 17 00:00:00 2001 From: wankeda <Administrator@DESKTOP-HAU3ST3> Date: 星期五, 11 七月 2025 14:33:08 +0800 Subject: [PATCH] 1 --- WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs | 118 ++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 81 insertions(+), 37 deletions(-) diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs index 7e52a74..b855baa 100644 --- a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs +++ b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs @@ -157,45 +157,89 @@ WebResponseContent content = new(); try { - OutboundOrderAddDTO orderAddDTO1 = new OutboundOrderAddDTO(); - orderAddDTO1.OrderNo = orderAddDTO.No; - orderAddDTO1.UpperOrderNo = orderAddDTO.No; - orderAddDTO1.OutWareHouse = orderAddDTO.OutWareHouse; - orderAddDTO1.TransactionCode = orderAddDTO.TransactionCode; - orderAddDTO1.InoutType = orderAddDTO.OrderType; - orderAddDTO1.OrderType = orderAddDTO.InoutType.ObjToInt(); - IEnumerable<int> inOrderTypes = Enum.GetValues<OrderTypeEmun>().Cast<int>(); - //orderAddDTO1.OrderType = orderAddDTO.OrderType.ObjToInt(); - orderAddDTO1.Details = orderAddDTO.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>(); - #region 楠岃瘉鏁版嵁 - (bool, string, object?) result = CheckOutboundOrderAddData(orderAddDTO1); - if (!result.Item1) return content = WebResponseContent.Instance.Error(result.Item2); - #endregion - Dt_OutboundOrder inboundOrder = _mapper.Map<Dt_OutboundOrder>(orderAddDTO1); - inboundOrder.OrderStatus = InboundStatusEnum.鏈紑濮�.ObjToInt(); - inboundOrder.Creater = "WMS"; - inboundOrder.CreateDate = DateTime.Now; - - - Dt_OutboundOrder oldOutboundOrder = BaseDal.Db.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == orderAddDTO1.OrderNo).Includes(x => x.Details).First(); - Dt_OutboundOrderDetail outboundOrderDetail = _outboundService.OutboundOrderDetailService.Repository.QueryFirst(x => x.OrderId == oldOutboundOrder.Id); - List<StockSelectViewDTO> stockSelectViews = new List<StockSelectViewDTO>(); - StockSelectViewDTO stockSelectViewDTO = new() + Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseCode == orderAddDTO.OutWareHouse); + if (warehouse == null) { - OrderNo = orderAddDTO1.OrderNo, - MaterielCode = outboundOrderDetail.MaterielCode, - MaterielName = outboundOrderDetail.MaterielName, - UseableQuantity = outboundOrderDetail.OrderQuantity, - BatchNo = outboundOrderDetail.BatchNo, - LinId = outboundOrderDetail.LinId, - PalletCode = outboundOrderDetail.LPNNo, - }; - _unitOfWorkManage.BeginTran(); - bool a = BaseDal.Db.InsertNav(inboundOrder).Include(x => x.Details).ExecuteCommand(); - stockSelectViews.Add(stockSelectViewDTO); - GenerateOutboundTasks(oldOutboundOrder.Id, stockSelectViews); - _unitOfWorkManage.CommitTran(); + return WebResponseContent.Instance.Error($"鏈壘鍒拌浠撳簱淇℃伅"); + } + Dt_OutboundOrder oldOuboundOrder = BaseDal.Db.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == orderAddDTO.No).Includes(x => x.Details).First(); + if (oldOuboundOrder != null) + { + //if (oldOuboundOrder.Details.FirstOrDefault(x => x.LinId == Convert.ToInt32(orderAddDTO.LinId)) != null) + //{ + // return WebResponseContent.Instance.Error($"璇ユ槑缁嗚鍙峰凡瀛樺湪"); + //} + if (oldOuboundOrder.OutWareHouse != warehouse.WarehouseCode) + { + return WebResponseContent.Instance.Error($"浠撳簱涓嶄竴鑷�"); + } + else + { + OutboundOrderAddDTO orderAddDTO1 = new OutboundOrderAddDTO(); + orderAddDTO1.Details = orderAddDTO.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>(); + var details = orderAddDTO1.Details.FirstOrDefault(); + Dt_OutboundOrderDetail outboundOrderDetail = new Dt_OutboundOrderDetail() + { + LPNNo = details.LPNNo, + BatchNo = details.BatchNo, + MaterielCode = details.MaterielCode, + MaterielName = details.MaterielName, + MaterieSpec = details.MaterieSpec, + OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(), + OrderQuantity = details.OrderQuantity, + OrderId = oldOuboundOrder.Id, + Creater = "WMS", + CreateDate= DateTime.Now, + }; + _outboundOrderDetailRepository.AddData(outboundOrderDetail); + //_outboundOrderDetailRepository.AddData(outboundOrderDetail); + } + } + else + { + OutboundOrderAddDTO orderAddDTO1 = new OutboundOrderAddDTO(); + orderAddDTO1.OrderNo = orderAddDTO.No; + orderAddDTO1.UpperOrderNo = orderAddDTO.No; + orderAddDTO1.OutWareHouse = orderAddDTO.OutWareHouse; + orderAddDTO1.TransactionCode = orderAddDTO.TransactionCode; + orderAddDTO1.InoutType = orderAddDTO.OrderType; + orderAddDTO1.OrderType = orderAddDTO.InoutType.ObjToInt(); + IEnumerable<int> inOrderTypes = Enum.GetValues<OrderTypeEmun>().Cast<int>(); + //orderAddDTO1.OrderType = orderAddDTO.OrderType.ObjToInt(); + orderAddDTO1.Details = orderAddDTO.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>(); + #region 楠岃瘉鏁版嵁 + (bool, string, object?) result = CheckOutboundOrderAddData(orderAddDTO1); + if (!result.Item1) return content = WebResponseContent.Instance.Error(result.Item2); + #endregion + + Dt_OutboundOrder inboundOrder = _mapper.Map<Dt_OutboundOrder>(orderAddDTO1); + inboundOrder.OrderStatus = InboundStatusEnum.鏈紑濮�.ObjToInt(); + inboundOrder.Creater = "WMS"; + inboundOrder.CreateDate = DateTime.Now; + bool a = BaseDal.Db.InsertNav(inboundOrder).Include(x => x.Details).ExecuteCommand(); + + Dt_OutboundOrder oldOutboundOrder = BaseDal.Db.Queryable<Dt_OutboundOrder>().Where(x => x.UpperOrderNo == orderAddDTO1.OrderNo).Includes(x => x.Details).First(); + Dt_OutboundOrderDetail outboundOrderDetail = _outboundService.OutboundOrderDetailService.Repository.QueryFirst(x => x.OrderId == oldOutboundOrder.Id); + List<StockSelectViewDTO> stockSelectViews = new List<StockSelectViewDTO>(); + StockSelectViewDTO stockSelectViewDTO = new() + { + OrderNo = orderAddDTO1.OrderNo, + MaterielCode = outboundOrderDetail.MaterielCode, + MaterielName = outboundOrderDetail.MaterielName, + UseableQuantity = outboundOrderDetail.OrderQuantity, + BatchNo = outboundOrderDetail.BatchNo, + LinId = outboundOrderDetail.LinId, + PalletCode = outboundOrderDetail.LPNNo, + }; + _unitOfWorkManage.BeginTran(); + + stockSelectViews.Add(stockSelectViewDTO); + GenerateOutboundTasks(oldOutboundOrder.Id, stockSelectViews); + _unitOfWorkManage.CommitTran(); + } + + content = WebResponseContent.Instance.OK(); } catch (Exception ex) -- Gitblit v1.9.3