From e4a391c581aaca1fa7b0239bc96375d0c0cb8de6 Mon Sep 17 00:00:00 2001
From: yangpeixing <yangpeixing@hnkhzn.com>
Date: 星期三, 04 二月 2026 08:55:49 +0800
Subject: [PATCH] 1

---
 WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs |  144 +++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 124 insertions(+), 20 deletions(-)

diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs b/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs
index 4d77cb4..1fa3a06 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/Base/OutboundOrderService.cs
@@ -187,6 +187,7 @@
                         return WebResponseContent.Instance.Error("姝ゅ崟鎹凡寮�濮嬫墽琛岋紝涓嶅厑璁稿彇娑�");
                     }
                     oldOutboundOrder.OrderStatus = OutboundStatusEnum.鍙栨秷.ObjToInt();
+                    _unitOfWorkManage.BeginTran();
                     BaseDal.UpdateData(oldOutboundOrder);
 
                     Dt_OutboundOrder_Hty inboundOrder_Hty = new Dt_OutboundOrder_Hty
@@ -223,31 +224,134 @@
                     }
                     BaseDal.DeleteData(oldOutboundOrder);
                 }
-                Dt_NewOutboundOrder dt_NewOutboundOrder = BaseDal.Db.Queryable<Dt_NewOutboundOrder>().Where(x => x.OrderNo == orderAddDTO1.OrderNo).Includes(x => x.Details).First();
-                if (dt_NewOutboundOrder == null)
-                {
-                    return WebResponseContent.Instance.Error("鏈壘鍒版鍑哄簱鍗曟嵁");
-                }
-                if (dt_NewOutboundOrder != null)
-                {
+                _unitOfWorkManage.CommitTran();
+                //Dt_NewOutboundOrder dt_NewOutboundOrder = BaseDal.Db.Queryable<Dt_NewOutboundOrder>().Where(x => x.OrderNo == orderAddDTO1.OrderNo).Includes(x => x.Details).First();
+                //if (dt_NewOutboundOrder == null)
+                //{
+                //    return WebResponseContent.Instance.Error("鏈壘鍒版鍑哄簱鍗曟嵁");
+                //}
+                //if (dt_NewOutboundOrder != null)
+                //{
 
-                    if (dt_NewOutboundOrder.OrderStatus > OutOrderStatusEnum.鏈紑濮�.ObjToInt())
-                    {
-                        return WebResponseContent.Instance.Error("姝ゅ崟鎹凡寮�濮嬫墽琛岋紝涓嶅厑璁稿彇娑�");
-                    }
-                    List<Dt_NewOutboundOrderDetail> newOutboundOrderDetail = BaseDal.Db.Queryable<Dt_NewOutboundOrderDetail>().Where(x => x.OrderId == dt_NewOutboundOrder.Id).ToList();
-                    dt_NewOutboundOrder.OrderStatus = OutboundStatusEnum.鍙栨秷.ObjToInt();
-                    foreach (var item in newOutboundOrderDetail)
-                    {
-                        item.OrderDetailStatus = OutboundStatusEnum.鍙栨秷.ObjToInt();
-                    }
-                    _newOutboundOrderService.UpdateData(dt_NewOutboundOrder);
-                    _newOutboundOrderDetailService.UpdateData(newOutboundOrderDetail);
-                }
+                //    if (dt_NewOutboundOrder.OrderStatus > OutOrderStatusEnum.鏈紑濮�.ObjToInt())
+                //    {
+                //        return WebResponseContent.Instance.Error("姝ゅ崟鎹凡寮�濮嬫墽琛岋紝涓嶅厑璁稿彇娑�");
+                //    }
+                //    List<Dt_NewOutboundOrderDetail> newOutboundOrderDetail = BaseDal.Db.Queryable<Dt_NewOutboundOrderDetail>().Where(x => x.OrderId == dt_NewOutboundOrder.Id).ToList();
+                //    dt_NewOutboundOrder.OrderStatus = OutboundStatusEnum.鍙栨秷.ObjToInt();
+                //    foreach (var item in newOutboundOrderDetail)
+                //    {
+                //        item.OrderDetailStatus = OutboundStatusEnum.鍙栨秷.ObjToInt();
+                //    }
+                //    _newOutboundOrderService.UpdateData(dt_NewOutboundOrder);
+                //    _newOutboundOrderDetailService.UpdateData(newOutboundOrderDetail);
+                //}
                 content = WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
             {
+                _unitOfWorkManage.RollbackTran();
+                content = WebResponseContent.Instance.Error(ex.Message);
+            }
+            finally
+            {
+
+            }
+            return content;
+        }
+
+
+        /// <summary>
+        /// 鎴愬搧鍑哄簱鍗曟嵁鍙栨秷
+        /// </summary>
+        /// <param name="houseCancelOut"></param>
+        /// <returns></returns>
+        public WebResponseContent NewCancelOut(HouseCancelOut houseCancelOut)
+        {
+            WebResponseContent content = new();
+            try
+            {
+                OutboundOrderAddDTO orderAddDTO1 = new OutboundOrderAddDTO();
+                orderAddDTO1.OrderNo = houseCancelOut.No;
+                orderAddDTO1.Details = houseCancelOut.DetailList.DicToIEnumerable<OutboundOrderDetailAddDTO>();
+                Dt_NewOutboundOrder? oldOutboundOrder = BaseDal.Db.Queryable<Dt_NewOutboundOrder>().Where(x => x.OrderNo == orderAddDTO1.OrderNo).Includes(x => x.Details).First();
+                if (oldOutboundOrder == null)
+                {
+                    return WebResponseContent.Instance.Error("鏈壘鍒版鍑哄簱鍗曟嵁");
+                }
+                if (oldOutboundOrder != null)
+                {
+                    Dt_NewOutboundOrderDetail OutboundOrderDetail = BaseDal.Db.Queryable<Dt_NewOutboundOrderDetail>().Where(x => x.OrderId == oldOutboundOrder.Id).First();
+
+                    if (oldOutboundOrder.OrderStatus > OutOrderStatusEnum.鏈紑濮�.ObjToInt())
+                    {
+                        return WebResponseContent.Instance.Error("姝ゅ崟鎹凡寮�濮嬫墽琛岋紝涓嶅厑璁稿彇娑�");
+                    }
+                    oldOutboundOrder.OrderStatus = OutboundStatusEnum.鍙栨秷.ObjToInt();
+                    _unitOfWorkManage.BeginTran();
+                    _newOutboundOrderService.UpdateData(oldOutboundOrder);
+
+                    Dt_OutboundOrder_Hty inboundOrder_Hty = new Dt_OutboundOrder_Hty
+                    {
+                        OrderStatus = oldOutboundOrder.OrderStatus,
+                        CreateType = oldOutboundOrder.CreateType,
+                        //SourceId = oldOutboundOrder.SourceId,
+                        UpperOrderNo = oldOutboundOrder.UpperOrderNo,
+                        OrderNo = oldOutboundOrder.OrderNo,
+                        OutWareHouse = oldOutboundOrder.OutWareHouse,
+                        TransactionCode = oldOutboundOrder.TransactionCode,
+                        InoutType = oldOutboundOrder.InoutType,
+                        OrderType = oldOutboundOrder.OrderType,
+                        Creater = "WMS",
+                        CreateDate = DateTime.Now,
+                    };
+                    _outboundOrder_HtyService.AddData(inboundOrder_Hty);
+
+                    foreach (var item in oldOutboundOrder.Details)
+                    {
+                        Dt_OutboundOrderDetail_Hty dt_InboundOrderDetail_Hty = new Dt_OutboundOrderDetail_Hty
+                        {
+                            OrderId = OutboundOrderDetail.OrderId,
+                            MaterielCode = OutboundOrderDetail.MaterielCode,
+                            MaterielName = OutboundOrderDetail.MaterielName,
+                            BatchNo = OutboundOrderDetail.BatchNo,
+                            OrderQuantity = OutboundOrderDetail.OrderQuantity,
+                            OrderDetailStatus = OutboundOrderDetail.OrderDetailStatus,
+                            Creater = "WMS",
+                            CreateDate = DateTime.Now,
+                        };
+                        _outboundOrderDetail_HtyService.AddData(dt_InboundOrderDetail_Hty);
+                        _newOutboundOrderDetailService.DeleteData(item);
+                    }
+                    _newOutboundOrderService.DeleteData(oldOutboundOrder);
+                }
+                _unitOfWorkManage.CommitTran();
+                //Dt_NewOutboundOrder dt_NewOutboundOrder = BaseDal.Db.Queryable<Dt_NewOutboundOrder>().Where(x => x.OrderNo == orderAddDTO1.OrderNo).Includes(x => x.Details).First();
+                //if (dt_NewOutboundOrder == null)
+                //{
+                //    return WebResponseContent.Instance.Error("鏈壘鍒版鍑哄簱鍗曟嵁");
+                //}
+                //if (dt_NewOutboundOrder != null)
+                //{
+
+                //    if (dt_NewOutboundOrder.OrderStatus > OutOrderStatusEnum.鏈紑濮�.ObjToInt())
+                //    {
+                //        return WebResponseContent.Instance.Error("姝ゅ崟鎹凡寮�濮嬫墽琛岋紝涓嶅厑璁稿彇娑�");
+                //    }
+                //    List<Dt_NewOutboundOrderDetail> newOutboundOrderDetail = BaseDal.Db.Queryable<Dt_NewOutboundOrderDetail>().Where(x => x.OrderId == dt_NewOutboundOrder.Id).ToList();
+                //    dt_NewOutboundOrder.OrderStatus = OutboundStatusEnum.鍙栨秷.ObjToInt();
+                //    foreach (var item in newOutboundOrderDetail)
+                //    {
+                //        item.OrderDetailStatus = OutboundStatusEnum.鍙栨秷.ObjToInt();
+                //    }
+                //    _newOutboundOrderService.UpdateData(dt_NewOutboundOrder);
+                //    _newOutboundOrderDetailService.UpdateData(newOutboundOrderDetail);
+                //}
+                content = WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
                 content = WebResponseContent.Instance.Error(ex.Message);
             }
             finally

--
Gitblit v1.9.3