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