From e7dac9ecb16aa627f0603beec9930c75ee6aa3f7 Mon Sep 17 00:00:00 2001
From: 647556386 <647556386@qq.com>
Date: 星期四, 08 一月 2026 22:22:24 +0800
Subject: [PATCH] 盘点

---
 项目代码/WMS无仓储版/WIDESEA_WMSServer/WIDESEA_InboundService/TakeStockOrderService.cs |  301 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 277 insertions(+), 24 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/TakeStockOrderService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/TakeStockOrderService.cs"
index d98ba61..554d1c2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/TakeStockOrderService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS\346\227\240\344\273\223\345\202\250\347\211\210/WIDESEA_WMSServer/WIDESEA_InboundService/TakeStockOrderService.cs"
@@ -22,6 +22,11 @@
 using WIDESEA_Common.CommonEnum;
 using WIDESEA_Common.TaskEnum;
 using WIDESEA_IBasicService;
+using static HslCommunication.Profinet.Knx.KnxCode;
+using System.Collections;
+using WIDESEA_Common.AllocateEnum;
+using WIDESEA_Model.Models.Basic;
+using WIDESEA_IOutboundService;
 
 namespace WIDESEA_InboundService
 {
@@ -34,7 +39,12 @@
         private readonly IRepository<Dt_TakeStockOrderDetail> _takeStockOrderDetail;
         private readonly IRepository<Dt_Task> _taskRepository;
         private readonly ILocationInfoService _locationInfoService;
-        public TakeStockOrderService(IRepository<Dt_TakeStockOrder> BaseDal, IUnitOfWorkManage unitOfWorkManage,IRepository<Dt_TakeStockOrder> takeStockOrder,IRepository<Dt_StockInfo> stockInfoRepository,IRepository<Dt_TakeStockOrderDetail> takeStockOrderDetail,IRepository<Dt_Task> taskRepository,ILocationInfoService locationInfoService) : base(BaseDal)
+        private readonly IRepository<Dt_InboundOrder> _inboundOrderRepository;
+        private readonly IRepository<Dt_OutboundOrder> _outboundOrderRepository;
+        private readonly IRepository<Dt_InboundOrderDetail> _inboundOrderDetailRepository;
+        private readonly IRepository<Dt_OutboundOrderDetail> _outboundOrderDetailRepository;
+        private readonly IOutboundPickingService _outboundPickingService;
+        public TakeStockOrderService(IRepository<Dt_TakeStockOrder> BaseDal, IUnitOfWorkManage unitOfWorkManage,IRepository<Dt_TakeStockOrder> takeStockOrder,IRepository<Dt_StockInfo> stockInfoRepository,IRepository<Dt_TakeStockOrderDetail> takeStockOrderDetail,IRepository<Dt_Task> taskRepository,ILocationInfoService locationInfoService, IRepository<Dt_InboundOrder> inboundOrderRepository,IRepository<Dt_OutboundOrder> outboundOrderRepository,IRepository<Dt_InboundOrderDetail> inboundOrderDetailRepository, IRepository<Dt_OutboundOrderDetail> outboundOrderDetailRepository, IOutboundPickingService outboundPickingService) : base(BaseDal)
         {
             _unitOfWorkManage = unitOfWorkManage;
             _takeStockOrder = takeStockOrder;
@@ -42,6 +52,11 @@
             _takeStockOrderDetail = takeStockOrderDetail;
             _taskRepository = taskRepository;
             _locationInfoService = locationInfoService;
+            _inboundOrderRepository = inboundOrderRepository;
+            _outboundOrderRepository = outboundOrderRepository;
+            _inboundOrderDetailRepository = inboundOrderDetailRepository;
+            _outboundOrderDetailRepository = outboundOrderDetailRepository;
+            _outboundPickingService = outboundPickingService;
         }
 
         public WebResponseContent ValidateBoxNo(string orderNo, string boxNo)
@@ -52,7 +67,7 @@
                 if (stockInfo == null) {
                     return WebResponseContent.Instance.Error("鏈壘鍒拌鎵樼洏搴撳瓨");
                 }
-                if(stockInfo.StockStatus != StockStatusEmun.鐩樼偣鍑哄簱瀹屾垚.ObjToInt())
+                if(stockInfo.StockStatus != StockStatusEmun.鐩樼偣鍑哄簱瀹屾垚.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鐩樼偣搴撳瓨瀹屾垚.ObjToInt())
                 {
                     return WebResponseContent.Instance.Error("璇ユ墭鐩樺浜庨潪鐩樼偣鐘舵�侊紝璇锋鏌ョ洏鐐逛换鍔�");
                 }
@@ -76,15 +91,7 @@
                     bool isMatch = remarkValues.Any(val => val.Equals(boxNo, StringComparison.OrdinalIgnoreCase));
                     if (!isMatch)
                     {
-                        return WebResponseContent.Instance.Error($"绠卞彿銆恵boxNo}銆戞湭鍦ㄧ洏鐐瑰崟绠卞彿銆恵takeStockOrder.Remark}銆戜腑鎵惧埌鍖归厤椤�");
-                    }
-                }
-                else
-                {
-                    bool isMatch = takeStockOrder.Remark.Trim().Equals(boxNo, StringComparison.OrdinalIgnoreCase);
-                    if (!isMatch)
-                    {
-                        return WebResponseContent.Instance.Error($"绠卞彿銆恵boxNo}銆戜笌鐩樼偣鍗曠鍙枫�恵takeStockOrder.Remark}銆戜笉鍖归厤");
+                        return WebResponseContent.Instance.Error($"绠卞彿銆恵boxNo}銆戞湭鍦ㄧ洏鐐瑰崟绠卞彿銆恵takeStockOrder.AllPalletCode}銆戜腑鎵惧埌鍖归厤椤�");
                     }
                 }
 
@@ -132,6 +139,10 @@
         {
             try
             {
+                if(completeStockTakeDTO.actualQuantity == completeStockTakeDTO.stockQuantity)
+                {
+                    return WebResponseContent.Instance.OK("璇ユ潯鐮佷负骞宠处锛屾棤闇�璁板綍宸紓");
+                }
                 Dt_TakeStockOrder takeStockOrder = _takeStockOrder.QueryFirst(x=>x.OrderNo == completeStockTakeDTO.orderNo);
                 if (takeStockOrder == null)
                 {
@@ -147,38 +158,58 @@
                 {
                     return WebResponseContent.Instance.Error("鏉$爜搴撳瓨鏁版嵁鏈壘鍒板尮閰嶆暟鎹�");
                 }
+                List<Dt_AllocateMaterialInfo> allocateMaterialInfos = new List<Dt_AllocateMaterialInfo>();
                 Dt_TakeStockOrderDetail takeStockOrderDetail = new Dt_TakeStockOrderDetail()
                 {
                     TakeStockId = takeStockOrder.Id,
                     MaterielCode = stockInfoDetail.MaterielCode,
-                    MaterielName = stockInfoDetail.MaterielName??"",
+                    MaterielName = stockInfoDetail.MaterielName ?? "",
                     BatchNo = stockInfoDetail.BatchNo,
                     TakePalletCode = completeStockTakeDTO.boxNo,
-                    TakeDetalStatus = TakeStockDetailStatusEnum.鐩樼偣瀹屾垚.ObjToInt(),
+                    TakeDetalStatus = TakeStockDetailStatusEnum.鏈繘琛屽钩璐﹀鐞�.ObjToInt(),
                     Unit = stockInfoDetail.Unit,
                     SysQty = completeStockTakeDTO.stockQuantity,
-                    Qty =completeStockTakeDTO.actualQuantity,
-                    Remark = completeStockTakeDTO.stockQuantity-completeStockTakeDTO.actualQuantity>=0 ?"鐩樹簭":"鐩樼泩",
+                    Qty = completeStockTakeDTO.actualQuantity,
+                    Remark = completeStockTakeDTO.stockQuantity - completeStockTakeDTO.actualQuantity >= 0 ? "鐩樹簭" : "鐩樼泩",
                     barcode = completeStockTakeDTO.barcode,
-                    WarehouseCode = stockInfoDetail.WarehouseCode??"",
+                    WarehouseCode = stockInfoDetail.WarehouseCode ?? "",
                     FactoryArea = stockInfoDetail.FactoryArea,
-                    SupplyCode = stockInfoDetail.SupplyCode??"",
+                    SupplyCode = stockInfoDetail.SupplyCode ?? "",
                     TakeStockNo = takeStockOrder.OrderNo,
+                    DifferenceQty = completeStockTakeDTO.stockQuantity - completeStockTakeDTO.actualQuantity
 
                 };
+                foreach (var item in stockInfo.Details)
+                {
+                    Dt_AllocateMaterialInfo allocateMaterialInfo = new Dt_AllocateMaterialInfo()
+                    {
+                        Barcode = item.Barcode,
+                        BatchNo = item.BatchNo,
+                        FactoryArea = item.FactoryArea,
+                        MaterialCode = item.MaterielCode,
+                        MaterialName = item.MaterielName,
+                        OrderId = takeStockOrder.Id,
+                        OrderNo = takeStockOrder.OrderNo,
+                        Quantity = item.StockQuantity,
+                        SupplyCode = item.SupplyCode,
+                        Unit = item.Unit
+                    };
+                }
+                stockInfo.StockStatus = StockStatusEmun.鐩樼偣搴撳瓨瀹屾垚.ObjToInt();
                 _unitOfWorkManage.BeginTran();
                 _takeStockOrderDetail.AddData(takeStockOrderDetail);
+                _stockInfoRepository.UpdateData(stockInfo);
                 _unitOfWorkManage.CommitTran();
-                return WebResponseContent.Instance.OK();
-            } 
-            catch (Exception ex) 
+                return WebResponseContent.Instance.OK("鐩樼偣瀹屾垚锛岃鍙栬蛋璇ュ紓甯告枡绠辫繘琛屽钩璐﹀鐞嗭紒");
+            }
+            catch (Exception ex)
             {
                 _unitOfWorkManage.RollbackTran();
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
 
-        public WebResponseContent ReturnBox(string orderNo, string boxNo)
+        public WebResponseContent ReturnBox(string orderNo, string boxNo, string sourceAddress)
         {
             WebResponseContent content = new WebResponseContent();
             try
@@ -202,13 +233,33 @@
                 {
                     return content.Error($"鎵樼洏{boxNo}瀛樺湪浠诲姟鍥炲簱澶辫触!");
                 }
-                if(stock.StockStatus != StockStatusEmun.鐩樼偣鍑哄簱瀹屾垚.ObjToInt())
+                if(stock.StockStatus != StockStatusEmun.鐩樼偣鍑哄簱瀹屾垚.ObjToInt() && stock.StockStatus != StockStatusEmun.鐩樼偣搴撳瓨瀹屾垚.ObjToInt())
                 {
                     return content.Error("璇ユ墭鐩樼姸鎬佷笉瀵�,涓嶅厑璁哥洏鐐瑰叆搴�");
                 }
                 stock.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt();
 
-                takeStockOrder.TakeStockStatus = TakeStockStatusEnum.鐩樼偣瀹屾垚.ObjToInt();
+                var palletCodes = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
+                if (!string.IsNullOrEmpty(takeStockOrder.AllPalletCode))
+                {
+                    palletCodes = takeStockOrder.AllPalletCode
+                        .Split(new[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries)
+                        .Select(p => p.Trim())
+                        .ToHashSet(StringComparer.OrdinalIgnoreCase);
+                }
+                Dt_TakeStockOrderDetail isReturn = _takeStockOrderDetail.QueryFirst(x => x.TakePalletCode == boxNo && (x.TakeDetalStatus == TakeStockDetailStatusEnum.鏈繘琛屽钩璐﹀鐞�.ObjToInt() || x.TakeDetalStatus == TakeStockDetailStatusEnum.鏉傛敹鏉傚彂骞宠处澶勭悊涓�.ObjToInt()));
+                if(isReturn != null)
+                {
+                    return WebResponseContent.Instance.Error("璇ユ墭鐩樿繕鏈夋潯鐮佸緟骞宠处锛岃鍏堝鐞嗗啀鍥炲簱");
+                }
+                bool hasRelatedTasks = _taskRepository.QueryData(x => palletCodes.Contains(x.PalletCode)).Any();
+                bool hasRelatedDetails = _takeStockOrderDetail.QueryData(x => palletCodes.Contains(x.TakePalletCode)).Any();
+
+                if (!hasRelatedTasks && !hasRelatedDetails)
+                {
+                    takeStockOrder.TakeStockStatus = (int)TakeStockStatusEnum.鐩樼偣瀹屾垚;
+                }
+
                 // 鍒嗛厤鏂拌揣浣�
                 var newLocation = _locationInfoService.AssignLocation(stock.LocationType);
 
@@ -220,7 +271,7 @@
                     NextAddress = "",
                     OrderNo = takeStockOrder.OrderNo,
                     Roadway = newLocation.RoadwayNo,
-                    SourceAddress = takeStockOrder.Remark,
+                    SourceAddress = sourceAddress,
                     TargetAddress = newLocation.LocationCode,
                     TaskStatus = (int)TaskStatusEnum.New,
                     TaskType = TaskTypeEnum.InInventory.ObjToInt(),
@@ -247,6 +298,208 @@
                 return content.Error(ex.Message);
             }
         }
+
+        public WebResponseContent ManualReconciliation(int id)
+        {
+            try
+            {
+                Dt_TakeStockOrderDetail takeStockOrderDetail = _takeStockOrderDetail.QueryFirst(x=>x.Id == id);
+                if(takeStockOrderDetail == null)
+                {
+                    return WebResponseContent.Instance.Error("鏈壘鍒拌鐩樼偣宸紓璁板綍");
+                }
+                else
+                {
+                    if(takeStockOrderDetail.TakeDetalStatus != TakeStockDetailStatusEnum.鏈繘琛屽钩璐﹀鐞�.ObjToInt())
+                    {
+                        return WebResponseContent.Instance.Error("璇ヨ褰曞凡缁忚繘琛屼簡骞宠处鎿嶄綔");
+                    }
+                    takeStockOrderDetail.DifferenceQty = 0;
+                    takeStockOrderDetail.TakeDetalStatus = TakeStockDetailStatusEnum.宸茶繘琛屽钩璐﹀鐞�.ObjToInt();
+                }
+                _takeStockOrderDetail.UpdateData(takeStockOrderDetail);
+                return WebResponseContent.Instance.OK();
+            }
+            catch(Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        public WebResponseContent SelectOrder(string remark, int id)
+        {
+            try
+            {
+                Dt_TakeStockOrderDetail takeStockOrderDetail = _takeStockOrderDetail.QueryFirst(x => x.Id == id);
+                if (takeStockOrderDetail == null)
+                {
+                    return WebResponseContent.Instance.Error("鏈壘鍒拌鐩樼偣宸紓璁板綍");
+                }
+                else
+                {
+                    //鏌ユ潅鏀跺崟
+                    if (takeStockOrderDetail.Remark == "鐩樼泩")
+                    {
+                        List<Dt_InboundOrderDetail> inboundOrderDetails = new List<Dt_InboundOrderDetail>();
+                        List<Dt_InboundOrder> inboundOrders = _inboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x => x.BusinessType == "12" && x.OrderStatus != InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt()).Includes(x => x.Details).ToList();
+                        foreach (var inboundOrder in inboundOrders)
+                        {
+
+                            var matchedDetails = inboundOrder.Details
+
+                                .Where(detail => !string.IsNullOrEmpty(detail.MaterielCode)
+                                              && detail.MaterielCode == takeStockOrderDetail.MaterielCode && detail.OrderDetailStatus != OrderDetailStatusEnum.Over.ObjToInt())
+
+                                .WhereIF(!string.IsNullOrEmpty(takeStockOrderDetail.FactoryArea),
+                                         detail => !string.IsNullOrEmpty(inboundOrder.FactoryArea)
+                                              && inboundOrder.FactoryArea == takeStockOrderDetail.FactoryArea)
+                                .WhereIF(!string.IsNullOrEmpty(takeStockOrderDetail.WarehouseCode),
+                                         detail => !string.IsNullOrEmpty(detail.WarehouseCode)
+                                         && detail.WarehouseCode == takeStockOrderDetail.WarehouseCode)
+                                .ToList();
+
+                            // 灏嗗尮閰嶇殑鏄庣粏娣诲姞鍒版�诲垪琛�
+                            if (matchedDetails.Any())
+                            {
+                                inboundOrderDetails.AddRange(matchedDetails);
+                            }
+                        }
+                        return WebResponseContent.Instance.OK("鎴愬姛",data: inboundOrderDetails);
+                    }
+                    else
+                    {
+                        List<Dt_OutboundOrderDetail> outboundOrderDetails = new List<Dt_OutboundOrderDetail>();
+                        List<Dt_OutboundOrder> outboundOrders = _outboundOrderRepository.Db.Queryable<Dt_OutboundOrder>().Where(x => x.BusinessType == "23" && x.OrderStatus != OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt()).Includes(x => x.Details).ToList();
+                        foreach (var outboundOrder in outboundOrders)
+                        {
+                            var matchedDetails = outboundOrder.Details
+                                .Where(detail => !string.IsNullOrWhiteSpace(detail.MaterielCode)
+                                              && detail.MaterielCode == takeStockOrderDetail.MaterielCode)
+                                .WhereIF(!string.IsNullOrWhiteSpace(takeStockOrderDetail.FactoryArea),
+                                         detail => !string.IsNullOrWhiteSpace(outboundOrder.FactoryArea)
+                                              && outboundOrder.FactoryArea == takeStockOrderDetail.FactoryArea)
+                                .WhereIF(!string.IsNullOrWhiteSpace(takeStockOrderDetail.WarehouseCode),
+                                         detail => !string.IsNullOrWhiteSpace(detail.WarehouseCode)
+                                              && detail.WarehouseCode == takeStockOrderDetail.WarehouseCode)
+                                .Where(detail => string.IsNullOrWhiteSpace(detail.BatchNo)||
+                                         detail.BatchNo == takeStockOrderDetail.BatchNo)
+
+                                .Where(detail => string.IsNullOrWhiteSpace(detail.SupplyCode) ||
+                                         detail.SupplyCode == takeStockOrderDetail.SupplyCode)
+                                .ToList();
+
+                            if (matchedDetails.Any())
+                            {
+                                outboundOrderDetails.AddRange(matchedDetails);
+                            }
+                        }
+                        return WebResponseContent.Instance.OK("鎴愬姛", data: outboundOrderDetails);
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        public WebResponseContent DocumentReconciliation(int orderId, int id)
+        {
+            try
+            {
+                Dt_TakeStockOrderDetail takeStockOrderDetail = _takeStockOrderDetail.QueryFirst(x => x.Id == id);
+                if(takeStockOrderDetail== null)
+                {
+                    return WebResponseContent.Instance.Error("鏈壘鍒拌鐩樼偣宸紓鏁版嵁");
+                }
+                if(takeStockOrderDetail.Remark == "鐩樼泩")
+                {
+                    Dt_InboundOrderDetail inboundOrderDetail = _inboundOrderDetailRepository.QueryFirst(x => x.OrderId == orderId);
+                    if(inboundOrderDetail == null)
+                    {
+                        return WebResponseContent.Instance.Error("鏈壘鍒伴�夋嫨鐨勬潅鏀跺钩璐﹀崟鎹�");
+                    }
+                    Dt_InboundOrder inboundOrder = _inboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x=>x.Id == orderId).Includes(x=>x.Details).First();
+                    Dt_StockInfo  stockInfo = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x=>x.PalletCode == takeStockOrderDetail.TakePalletCode && x.StockStatus == StockStatusEmun.鐩樼偣搴撳瓨瀹屾垚.ObjToInt()).Includes(x=>x.Details).First();
+                    if(stockInfo== null)
+                    {
+                        return WebResponseContent.Instance.Error($"鐩樼偣鎵樼洏{takeStockOrderDetail.TakePalletCode}鐨勫簱瀛樹俊鎭湭鎵惧埌锛屾垨鎵樼洏鐘舵�佷笉姝g‘");
+                    }
+                    var datevaliDate = _inboundOrderRepository.Db.Queryable<Dt_MaterialExpirationDate>().Where(x => x.MaterialCode.Contains(inboundOrderDetail.MaterielCode.Substring(0, 6))).First();
+                    var newStockDetail = new Dt_StockInfoDetail
+                    {
+                        StockId = stockInfo == null ? 0 : stockInfo.Id,
+                        Barcode = inboundOrderDetail.Barcode,
+                        MaterielCode = inboundOrderDetail.MaterielCode,
+                        MaterielName = inboundOrderDetail.MaterielName,
+                        BatchNo = inboundOrderDetail.BatchNo,
+                        Unit = inboundOrderDetail.Unit,
+                        InboundOrderRowNo = inboundOrderDetail.lineNo,
+                        SupplyCode = inboundOrderDetail.SupplyCode,
+                        WarehouseCode = inboundOrderDetail.WarehouseCode,
+                        StockQuantity = inboundOrderDetail.OrderQuantity,
+                        BarcodeQty = inboundOrderDetail.BarcodeQty,
+                        BarcodeUnit = inboundOrderDetail.BarcodeUnit,
+                        FactoryArea = inboundOrder.FactoryArea,
+                        Status = 0,
+                        OrderNo = inboundOrder.InboundOrderNo,
+                        BusinessType = inboundOrder.BusinessType,
+                        ValidDate = inboundOrder.BusinessType == BusinessTypeEnum.澶栭儴浠撳簱璋冩櫤浠�.ToString() ? inboundOrderDetail.ValidDate : datevaliDate == null ? null : Convert.ToDateTime(DateTime.Now).AddDays(Convert.ToDouble(datevaliDate.ValidityDays)),
+                    };
+                    stockInfo.Details.Add(newStockDetail);
+
+                    inboundOrderDetail.ReceiptQuantity = inboundOrderDetail.OrderQuantity;
+                    inboundOrderDetail.OverInQuantity = inboundOrderDetail.OrderQuantity;
+                    inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt();
+                    int overCount = 1;
+                    int moreOverCount = inboundOrder.Details.Count(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt());
+                    if (inboundOrder.Details.Count() == overCount + moreOverCount)
+                    {
+                        inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt();
+                    }
+                    else
+                    {
+                        inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱涓�.ObjToInt();
+                    }
+                    takeStockOrderDetail.DifferenceQty += inboundOrderDetail.OrderQuantity;
+                    if(takeStockOrderDetail.DifferenceQty > 0)
+                    {
+                        return WebResponseContent.Instance.Error("璇ユ潅鏀跺崟鎹槑缁嗘潯鐮佹暟閲忓ぇ浜庡緟骞宠处鏁伴噺锛岃鍙﹂�夊叾浠栧崟鎹钩璐�");
+                    }
+                    else if (takeStockOrderDetail.DifferenceQty == 0)
+                    {
+                        takeStockOrderDetail.TakeDetalStatus = TakeStockDetailStatusEnum.鏉傛敹鏉傚彂骞宠处澶勭悊.ObjToInt();
+                    }
+                    else
+                    {
+                        takeStockOrderDetail.TakeDetalStatus = TakeStockDetailStatusEnum.鏉傛敹鏉傚彂骞宠处澶勭悊涓�.ObjToInt();
+                    }
+                    
+                    _unitOfWorkManage.BeginTran();
+                    _inboundOrderRepository.UpdateData(inboundOrder);
+                    _inboundOrderDetailRepository.UpdateData(inboundOrderDetail);
+                    _takeStockOrderDetail.UpdateData(takeStockOrderDetail);
+                    BaseDal.Db.Insertable(newStockDetail).ExecuteCommand();
+                    _unitOfWorkManage.CommitTran();
+                    List<string> barcodes = new List<string>();
+                    barcodes.Add(inboundOrderDetail.Barcode);
+                    _outboundPickingService.NoStockOutBatchInOrderFeedbackToMes(orderId, barcodes);
+
+
+                }
+                else
+                {
+
+                }
+                return WebResponseContent.Instance.OK();
+            }
+            catch(Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return WebResponseContent.Instance.Error(ex.Message);
+
+            }
+        }
     }
     
 }

--
Gitblit v1.9.3