From d5538af4a0bbc5511990aceb3431fb1caa9bbc65 Mon Sep 17 00:00:00 2001
From: wankeda <Administrator@DESKTOP-HAU3ST3>
Date: 星期一, 16 三月 2026 14:27:22 +0800
Subject: [PATCH] 1

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs | 1424 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,424 insertions(+), 0 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
index abc38f6..766fb14 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs"
@@ -12,15 +12,1439 @@
 using MailKit.Search;
 using System.Reflection.Metadata;
 using static WIDESEA_ITaskInfoService.ITaskService;
+using static WIDESEA_Common.HouseInventoryIn;
 using WIDESEA_Common;
+using Parameter = WIDESEA_Common.Parameter;
 using WIDESEA_Core.LogHelper;
 using WIDESEA_DTO.Task;
 using WIDESEA_Core.TaskEnum;
+using WIDESEA_Model.Models.Inbound;
+using WIDESEA_Common.OrderEnum;
 
 namespace WIDESEA_TaskInfoService
 {
     public partial class TaskService
     {
 
+
+        /// <summary>
+        /// 浠呯敵璇蜂换鍔★紝璁¦CS鏍规嵁璺敱纭畾涓嬩竴鍦板潃
+        /// </summary>
+        /// <param name="stationCode"></param>
+        /// <param name="palletCode"></param>
+        /// <returns></returns>
+        public WebResponseContent DeviceRequestInboundTaskSimple(string stationCode, string palletCode, int heightType)
+        {
+            try
+            {
+                Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode);
+                if (task != null)
+                {
+                    //PushTasksToWCS(new List<Dt_Task> { task });
+                    return WebResponseContent.Instance.Error($"璇ユ墭鐩榹palletCode}宸茬敓鎴愪换鍔�");
+                }
+                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
+
+                if (stockInfo == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒扮粍鐩樹俊鎭�");
+                }
+                if (stockInfo.StockStatus == StockStatusEmun.鍚堟墭鍑哄簱瀹屾垚.ObjToInt())
+                {
+
+                }
+                ///鍒ゆ柇鏄惁瀛樺湪鍥炲簱鍗�,杩涜鍥炲師搴撲綅閫昏緫
+                string returnOrderNo = stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.OrderNo;
+                Dt_ReturnOrder returnOrder = _returnOrderRepository.QueryFirst(x => x.OrderNo == returnOrderNo && x.OrderStatus == InOrderStatusEnum.鏈紑濮�.ObjToInt());
+                Dt_RoadwayInfo returnRoadwayInfo = new Dt_RoadwayInfo();
+                if (returnOrder != null && !string.IsNullOrEmpty(returnOrder.LocationCode))
+                {
+                    Dt_LocationInfo locationInfo1 = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == returnOrder.LocationCode);
+                    if (locationInfo1 == null)
+                    {
+                        return WebResponseContent.Instance.Error($"鍥炲簱鍗曚腑璇ュ簱浣峽returnOrder.LocationCode}鏈壘鍒�");
+                    }
+                    returnRoadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.RoadwayNo == locationInfo1.RoadwayNo);
+                }
+
+                if (Repository.QueryFirst(x => x.SourceAddress == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode) && x.TaskStatus == TaskStatusEnum.New.ObjToInt()) != null)
+                {
+                    return WebResponseContent.Instance.Error($"璇ョ珯鐐瑰凡鏈夋湭鎵ц鐨勪换鍔�");
+                }
+
+                var details = stockInfo.Details.FirstOrDefault();
+                if (!string.IsNullOrEmpty(stockInfo.LocationCode))
+                {
+                    return WebResponseContent.Instance.Error($"璇ユ墭鐩樺凡缁戝畾璐т綅");
+                }
+                Dt_RoadwayInfo roadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.InStationCode == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode));
+                if (roadwayInfo == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒拌鍏ュ簱绔欏彴鍦板潃");
+                }
+                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == roadwayInfo.RoadwayNo);
+                if (warehouse == null)
+                {
+                    return WebResponseContent.Instance.Error("鏈壘鍒拌浠撳簱");
+                }
+                Dt_LocationInfo? locationInfo = new Dt_LocationInfo();
+                if (returnOrder != null && !string.IsNullOrEmpty(returnOrder.LocationCode))
+                {
+                    locationInfo = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == returnOrder.LocationCode);
+                    if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Disable.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt())
+                    {
+                        return WebResponseContent.Instance.Error($"璇ュ洖搴撳崟璐т綅{locationInfo.LocationCode}闈為攣瀹氱姸鎬佹垨璐т綅鍚敤鐘舵�佷笉姝g‘锛岃妫�鏌�");
+                    }
+                }
+                else
+                {
+                    locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayInfo.RoadwayNo, stockInfo.PalletType, warehouse.WarehouseId, "", heightType);//, stockInfo.WarehouseId
+                    if (locationInfo == null)
+                    {
+                        return WebResponseContent.Instance.Error($"璐т綅鍒嗛厤澶辫触,鏈壘鍒板彲鍒嗛厤璐т綅");
+                    }
+                }
+
+                Dt_Task newTask = new Dt_Task()
+                {
+                    CurrentAddress = "",
+                    Grade = 0,
+                    NextAddress = returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode,
+                    PalletCode = palletCode,
+                    OrderNo = details.OrderNo,
+                    Roadway = roadwayInfo.RoadwayNo,
+                    SourceAddress = "",
+                    TargetAddress = locationInfo.LocationCode,
+                    TaskType = TaskTypeEnum.Inbound.ObjToInt(),
+                    TaskStatus = TaskStatusEnum.New.ObjToInt(),
+                    WarehouseId = stockInfo.WarehouseId,
+                    PalletType = GetPalletType(warehouse, palletCode),//GetPalletType(warehouse, palletCode)
+                    Creater = "WCS",
+                    CreateDate = DateTime.Now
+                };
+                string MaterielCode = stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode;
+                float Quantity = (float)stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).Sum(x => x.StockQuantity);
+                if (MaterielCode != null && Quantity != null)
+                {
+                    newTask.MaterielCode = MaterielCode;
+                    newTask.Quantity = (float)Quantity;
+                }
+                if (stockInfo.StockStatus == StockStatusEmun.浣欐枡閫�搴�.ObjToInt())
+                {
+                    newTask.TaskType = TaskTypeEnum.SurplusReturn.ObjToInt();
+                }
+                if (stockInfo.StockStatus == StockStatusEmun.鍙嶆嫞鍏ュ簱.ObjToInt())
+                {
+                    newTask.TaskType = TaskTypeEnum.ReverseIn.ObjToInt();
+                }
+                if (stockInfo.StockStatus == StockStatusEmun.鐩樼偣搴撳瓨瀹屾垚.ObjToInt())
+                {
+                    newTask.TaskType = TaskTypeEnum.InInventory.ObjToInt();
+                }
+                //if (stockInfo.StockStatus == StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt())
+                //{
+                //    stockInfo.StockStatus = StockStatusEmun.鎵嬪姩缁勭洏鍏ュ簱纭.ObjToInt();
+                //}
+                //else if (stockInfo.StockStatus == StockStatusEmun.MES閫�搴�.ObjToInt())
+                //{
+                //    newTask.TaskType = TaskTypeEnum.MesMatReturn.ObjToInt();
+                //}
+                //else if (stockInfo.StockStatus == StockStatusEmun.MES绌烘墭閫�搴�.ObjToInt())
+                //{
+                //    Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.WarehouseId == stockInfo.WarehouseId && x.PalletType == stockInfo.PalletType);
+                //    //todo 灏忔墭鐩樻殏鏃舵湭鍚敤
+                //    if (palletTypeInfo.LocaitonCount == 2)
+                //    {
+                //        newTask.TaskType = TaskTypeEnum.MesPalletLargeReturn.ObjToInt();
+                //    }
+                //    else
+                //    {
+                //        newTask.TaskType = TaskTypeEnum.MesPalletSmallReturn.ObjToInt();
+                //    }
+                //}
+                //else
+                //{
+                stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt();
+                locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
+                //}
+
+                _unitOfWorkManage.BeginTran();
+                int taskId = BaseDal.AddData(newTask);
+                newTask.TaskId = taskId;
+                if (returnOrder != null)
+                {
+                    returnOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱涓�.ObjToInt();
+                    _returnOrderRepository.UpdateData(returnOrder);
+                }
+                _stockRepository.StockInfoRepository.UpdateData(stockInfo);
+                _locationInfoService.UpdateData(locationInfo);
+
+                _unitOfWorkManage.CommitTran();
+                WMSTaskDTO wMSTaskDTO = _mapper.Map<WMSTaskDTO>(newTask);
+                if (warehouse.WarehouseCode.Contains("CP"))
+                {
+                    PushTasksWCS(new List<Dt_Task> { newTask });
+                }
+                else
+                {
+                    PushTasksToWCS(new List<Dt_Task> { newTask });
+                }
+                return WebResponseContent.Instance.OK(data: wMSTaskDTO);
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        public WebResponseContent CPDeviceRequestInboundTaskSimple(string stationCode, string palletCode, int heightType, string courceAddress)
+        {
+            try
+            {
+                Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode);
+                if (task != null)
+                {
+                    return WebResponseContent.Instance.Error($"璇ユ墭鐩榹palletCode}宸茬敓鎴愪换鍔�");
+                }
+                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
+
+                if (stockInfo == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒扮粍鐩樹俊鎭�");
+                }
+
+                Dt_RoadwayInfo returnRoadwayInfo = new Dt_RoadwayInfo();
+                if (stockInfo.StockStatus == StockStatusEmun.鍚堟墭鍑哄簱瀹屾垚.ObjToInt())
+                {
+                    Dt_LocationInfo locationInfo1 = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == stockInfo.LocationCode);
+                    if (locationInfo1 == null)
+                    {
+                        return WebResponseContent.Instance.Error($"鍥炲簱鍗曚腑璇ュ簱浣峽stockInfo.LocationCode}鏈壘鍒�");
+                    }
+                    returnRoadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.RoadwayNo == locationInfo1.RoadwayNo && x.InStationCode == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode));
+                }
+                ///鍒ゆ柇鏄惁瀛樺湪鍥炲簱鍗�,杩涜鍥炲師搴撲綅閫昏緫
+                string returnOrderNo = stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.OrderNo;
+                Dt_ReturnOrder returnOrder = _returnOrderRepository.QueryFirst(x => (x.OrderNo == returnOrderNo || x.LPNNo == palletCode) && x.OrderStatus == InOrderStatusEnum.鏈紑濮�.ObjToInt());
+                if (returnOrder != null && !string.IsNullOrEmpty(returnOrder.LocationCode))
+                {
+                    Dt_LocationInfo locationInfo1 = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == returnOrder.LocationCode);
+                    if (locationInfo1 == null)
+                    {
+                        return WebResponseContent.Instance.Error($"鍥炲簱鍗曚腑璇ュ簱浣峽returnOrder.LocationCode}鏈壘鍒�");
+                    }
+                    returnRoadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.RoadwayNo == locationInfo1.RoadwayNo && x.InStationCode == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode));
+                }
+
+                if (Repository.QueryFirst(x => x.SourceAddress == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode) && x.TaskStatus == TaskStatusEnum.New.ObjToInt()) != null)
+                {
+                    return WebResponseContent.Instance.Error($"璇ョ珯鐐瑰凡鏈夋湭鎵ц鐨勪换鍔�");
+                }
+
+                var details = stockInfo.Details.FirstOrDefault();
+                if (!string.IsNullOrEmpty(stockInfo.LocationCode))
+                {
+                    return WebResponseContent.Instance.Error($"璇ユ墭鐩樺凡缁戝畾璐т綅");
+                }
+                Dt_RoadwayInfo roadwayInfo = _basicRepository.RoadwayInfoRepository.QueryFirst(x => x.InStationCode == (returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode));
+                if (roadwayInfo == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒拌鍏ュ簱绔欏彴鍦板潃");
+                }
+
+                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == roadwayInfo.RoadwayNo);
+                if (warehouse == null)
+                {
+                    return WebResponseContent.Instance.Error("鏈壘鍒拌浠撳簱");
+                }
+
+                Dt_LocationInfo? locationInfo = new Dt_LocationInfo();
+                if (returnOrder != null && !string.IsNullOrEmpty(returnOrder.LocationCode))
+                {
+                    locationInfo = _locationInfoService.Repository.QueryFirst(x => x.LocationCode == returnOrder.LocationCode);
+                    if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.Disable.ObjToInt() || locationInfo.EnableStatus == EnableStatusEnum.OnlyOut.ObjToInt())
+                    {
+                        return WebResponseContent.Instance.Error($"璇ュ洖搴撳崟璐т綅{locationInfo.LocationCode}闈為攣瀹氱姸鎬佹垨璐т綅鍚敤鐘舵�佷笉姝g‘锛岃妫�鏌�");
+                    }
+                }
+                else
+                {
+                    locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayInfo.RoadwayNo, stockInfo.PalletType, warehouse.WarehouseId, "", heightType);//, stockInfo.WarehouseId
+                    if (locationInfo == null)
+                    {
+                        return WebResponseContent.Instance.Error($"璐т綅鍒嗛厤澶辫触,鏈壘鍒板彲鍒嗛厤璐т綅");
+                    }
+                }
+                Dt_Task newTask = new Dt_Task()
+                {
+                    CurrentAddress = courceAddress,
+                    Grade = 0,
+                    NextAddress = returnRoadwayInfo.InStationCode != null ? returnRoadwayInfo.InStationCode : stationCode,
+                    PalletCode = palletCode,
+                    OrderNo = details.OrderNo,
+                    Roadway = roadwayInfo.RoadwayNo,
+                    SourceAddress = courceAddress,
+                    TargetAddress = locationInfo.LocationCode,
+                    TaskType = TaskTypeEnum.Inbound.ObjToInt(),
+                    TaskStatus = TaskStatusEnum.New.ObjToInt(),
+                    WarehouseId = stockInfo.WarehouseId,
+                    PalletType = GetPalletType(warehouse, palletCode),//GetPalletType(warehouse, palletCode)
+                    Creater = "WCS",
+                    CreateDate = DateTime.Now
+                };
+                string MaterielCode = stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).FirstOrDefault()?.MaterielCode;
+                float Quantity = (float)stockInfo.Details?.Where(x => x.StockId == stockInfo.Id).Sum(x => x.StockQuantity);
+                if (MaterielCode != null && Quantity != null)
+                {
+                    newTask.MaterielCode = MaterielCode;
+                    newTask.Quantity = (float)Quantity;
+                }
+                if (stockInfo.StockStatus == StockStatusEmun.浣欐枡閫�搴�.ObjToInt())
+                {
+                    newTask.TaskType = TaskTypeEnum.SurplusReturn.ObjToInt();
+                }
+                if (stockInfo.StockStatus == StockStatusEmun.鍙嶆嫞鍏ュ簱.ObjToInt())
+                {
+                    newTask.TaskType = TaskTypeEnum.ReverseIn.ObjToInt();
+                }
+                if (stockInfo.StockStatus == StockStatusEmun.鐩樼偣搴撳瓨瀹屾垚.ObjToInt())
+                {
+                    newTask.TaskType = TaskTypeEnum.InInventory.ObjToInt();
+                }
+                if (stockInfo.StockStatus == StockStatusEmun.鍚堟墭鍑哄簱瀹屾垚.ObjToInt())
+                {
+                    newTask.TaskType = TaskTypeEnum.InSyncretism.ObjToInt();
+                }
+                //if (stockInfo.StockStatus == StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt())
+                //{
+                //    stockInfo.StockStatus = StockStatusEmun.鎵嬪姩缁勭洏鍏ュ簱纭.ObjToInt();
+                //}
+                //else if (stockInfo.StockStatus == StockStatusEmun.MES閫�搴�.ObjToInt())
+                //{
+                //    newTask.TaskType = TaskTypeEnum.MesMatReturn.ObjToInt();
+                //}
+                //else if (stockInfo.StockStatus == StockStatusEmun.MES绌烘墭閫�搴�.ObjToInt())
+                //{
+                //    Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.WarehouseId == stockInfo.WarehouseId && x.PalletType == stockInfo.PalletType);
+                //    //todo 灏忔墭鐩樻殏鏃舵湭鍚敤
+                //    if (palletTypeInfo.LocaitonCount == 2)
+                //    {
+                //        newTask.TaskType = TaskTypeEnum.MesPalletLargeReturn.ObjToInt();
+                //    }
+                //    else
+                //    {
+                //        newTask.TaskType = TaskTypeEnum.MesPalletSmallReturn.ObjToInt();
+                //    }
+                //}
+                //else
+                //{
+                else
+                {
+                    stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt();
+                }
+                locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
+                //}
+
+                _unitOfWorkManage.BeginTran();
+                int taskId = BaseDal.AddData(newTask);
+                newTask.TaskId = taskId;
+                if (returnOrder != null)
+                {
+                    returnOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱涓�.ObjToInt();
+                    _returnOrderRepository.UpdateData(returnOrder);
+                }
+                _stockRepository.StockInfoRepository.UpdateData(stockInfo);
+                _locationInfoService.UpdateData(locationInfo);
+
+                _unitOfWorkManage.CommitTran();
+                WMSTaskDTO wMSTaskDTO = _mapper.Map<WMSTaskDTO>(newTask);
+
+                PushTasksWCS(new List<Dt_Task> { newTask });
+
+                return WebResponseContent.Instance.OK(data: wMSTaskDTO);
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        /// <summary>
+        /// 杩斿洖鍏ュ簱浠撳簱
+        /// </summary>
+        /// <returns></returns>
+        public WebResponseContent ApplyLocation(string palletCode)
+        {
+            try
+            {
+                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
+
+                if (stockInfo == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒扮粍鐩樹俊鎭�");
+                }
+                return WebResponseContent.Instance.OK(data: stockInfo.WarehouseId);
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+        /// <summary>
+        /// 鍏ュ簱浠诲姟鐢宠鍒嗛厤璐т綅
+        /// </summary>
+        /// <param name="taskNum">浠诲姟鍙�</param>
+        /// <param name="roadwayNo">宸烽亾鍙�</param>
+        /// <returns></returns>
+        public WebResponseContent AssignInboundTaskLocation(int taskNum, string roadwayNo)
+        {
+            try
+            {
+                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+                if (task == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒拌鍏ュ簱浠诲姟");
+                }
+
+                if (_basicRepository.LocationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress) != null)
+                {
+                    return WebResponseContent.Instance.OK(data: task.TargetAddress);
+                }
+
+                Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayNo, task.PalletType);//, task.WarehouseId
+                if (locationInfo == null)
+                {
+                    return WebResponseContent.Instance.Error($"璐т綅鍒嗛厤澶辫触,鏈壘鍒板彲鍒嗛厤璐т綅");
+                }
+
+                task.Roadway = roadwayNo;
+                task.TargetAddress = locationInfo.LocationCode;
+
+                task.TaskStatus = TaskStatusEnum.SC_Execute.ObjToInt();
+
+
+
+                LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus;
+
+                _unitOfWorkManage.BeginTran();
+                //_recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, lastStatus, LocationStatusEnum.Lock, LocationChangeType.InboundAssignLocation);
+                //_basicService.LocationInfoService.UpdateLocationStatus(locationInfo, task.PalletType, LocationStatusEnum.Lock, task.WarehouseId);
+                BaseDal.UpdateData(task);
+                _unitOfWorkManage.CommitTran();
+                return WebResponseContent.Instance.OK(data: locationInfo.LocationCode);
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        /// <summary>
+        /// 绔嬪簱鍏ュ簱鎸囦护涓婁紶
+        /// </summary>
+        /// <param name="stationCode">璧峰鍦板潃</param>
+        /// <param name="palletCode">鎵樼洏缂栧彿</param>
+        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
+        public WebResponseContent InboundRequest(string stationCode, string roadwayNo, string palletCode)
+        {
+            // 杈撳叆楠岃瘉
+            if (string.IsNullOrWhiteSpace(palletCode))
+                return WebResponseContent.Instance.Error("璇疯緭鍏ユ纭墭鐩樺彿");
+
+            try
+            {
+                Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode);
+                if (task != null)
+                {
+                    return WebResponseContent.Instance.Error($"璇ユ墭鐩榹palletCode}宸茬敓鎴愪换鍔�");
+                }
+                // 鑾峰彇鍏ュ簱鍗曟槑缁�
+                var inboundOrderDet = GetInboundOrderDetail(palletCode);
+                if (inboundOrderDet == null)
+                    return WebResponseContent.Instance.Error($"鏈壘鍒版墭鐩樺彿 {palletCode} 瀵瑰簲鐨勫叆搴撳崟鏄庣粏");
+
+                // 鑾峰彇鍏ュ簱鍗�
+                var inboundOrder = GetInboundOrder(inboundOrderDet.OrderId);
+                if (inboundOrder == null)
+                    return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟淇℃伅");
+
+                // 楠岃瘉鍏ュ簱鍗曟槑缁�
+                if (inboundOrder.Details == null || inboundOrder.Details.Count == 0)
+                    return WebResponseContent.Instance.Error($"鍏ュ簱鍗� {inboundOrder.OrderNo} 娌℃湁鏄庣粏淇℃伅");
+
+                // 鑾峰彇浠撳簱鍜屽贩閬撲俊鎭�
+                var warehouse = GetWarehouse(inboundOrder.WarehouseId);
+                var roadwayInfo = GetRoadwayInfo(warehouse.WarehouseCode);
+
+                var dt_Stock = _stockRepository.StockInfoRepository.QueryFirst(x => x.PalletCode == palletCode);
+                // 妫�鏌ュ叆搴撹姹�
+                var checkResult = CheckRequestInbound(roadwayInfo.InSCStationCode, palletCode, true, dt_Stock);
+                if (!checkResult.Item1)
+                    return WebResponseContent.Instance.Error(checkResult.Item2);
+
+                // 鍒嗛厤搴撲綅骞舵洿鏂版暟鎹�
+                Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayNo, dt_Stock.PalletType, dt_Stock.WarehouseId);//
+                //Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(stationCode, TaskTypeEnum.Inbound.ObjToInt());
+                if (locationInfo == null)
+                {
+                    return WebResponseContent.Instance.Error($"璐т綅鍒嗛厤澶辫触,鏈壘鍒板彲鍒嗛厤璐т綅");
+                }
+
+                Dt_Task newTask = new Dt_Task()
+                {
+                    CurrentAddress = "",
+                    Grade = 0,
+                    NextAddress = stationCode,
+                    PalletCode = palletCode,
+                    Roadway = roadwayNo,
+                    SourceAddress = "",
+                    TargetAddress = locationInfo.LocationCode,
+                    TaskType = TaskTypeEnum.Inbound.ObjToInt(),
+                    TaskStatus = TaskStatusEnum.New.ObjToInt(),
+                    WarehouseId = dt_Stock.WarehouseId,
+                    PalletType = dt_Stock.PalletType,
+                    Creater = "WMS",
+                    CreateDate = DateTime.Now,
+                };
+
+                LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus;
+                _unitOfWorkManage.BeginTran();
+                Db.InsertNav(dt_Stock).Include(x => x.Details).ExecuteCommand();
+                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, lastStatus.ObjToInt(), LocationStatusEnum.Lock.ObjToInt(), LocationChangeType.InboundAssignLocation.ObjToInt());
+                //_basicService.LocationInfoService.UpdateLocationStatus(locationInfo, newTask.PalletType, LocationStatusEnum.Lock, newTask.WarehouseId);
+                int taskId = BaseDal.AddData(newTask);
+                newTask.TaskId = taskId;
+                _stockRepository.StockInfoRepository.UpdateData(dt_Stock);
+                _unitOfWorkManage.CommitTran();
+                WMSTaskDTO wMSTaskDTO = _mapper.Map<WMSTaskDTO>(newTask);
+
+                PushTasksToWCS(new List<Dt_Task> { newTask });
+                if (newTask.WarehouseId == 5) PutFinish(stationCode);
+                return WebResponseContent.Instance.OK(data: wMSTaskDTO);
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        private Dt_InboundOrderDetail GetInboundOrderDetail(string palletCode)
+        {
+            return BaseDal.Db.Queryable<Dt_InboundOrderDetail>()
+                .Where(x => x.LPNNo == palletCode)
+                .First();
+        }
+
+        private Dt_InboundOrder GetInboundOrder(int orderId)
+        {
+            return BaseDal.Db.Queryable<Dt_InboundOrder>()
+                .Where(x => x.Id == orderId)
+                .Includes(x => x.Details)
+                .First();
+        }
+
+        private Dt_Warehouse GetWarehouse(int warehouseId)
+        {
+            return _basicService.WarehouseService.Repository
+                .QueryFirst(x => x.WarehouseId == warehouseId);
+        }
+
+        private Dt_RoadwayInfo GetRoadwayInfo(string warehouseCode)
+        {
+            return _basicService.RoadwayInfoService.Repository
+                .QueryFirst(x => x.RoadwayNo == warehouseCode);
+        }
+
+        private Dt_StockInfo GetOrCreateStockInfo(string palletCode, Dt_InboundOrder inboundOrder, Dt_InboundOrderDetail inboundOrderDet, Dt_Warehouse warehouse)
+        {
+            var stockInfo = BaseDal.Db.Queryable<Dt_StockInfo>()
+                .Where(x => x.PalletCode == palletCode)
+                .Includes(x => x.Details)
+                .First();
+            decimal beforeQuantity = 0;
+            if (stockInfo == null)
+            {
+                stockInfo = CreateNewStockInfo(palletCode, inboundOrder, inboundOrderDet, warehouse);
+                //CreateStockInfoDetail(stockInfo, inboundOrder, inboundOrderDet);
+            }
+            else
+            {
+                if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt())
+                {
+                    return null;
+                }
+                beforeQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
+            }
+
+            return stockInfo;
+        }
+
+        private Dt_StockInfo CreateNewStockInfo(string palletCode, Dt_InboundOrder inboundOrder, Dt_InboundOrderDetail inboundOrderDet, Dt_Warehouse warehouse)
+        {
+            var dt_StockInfoDetail = new Dt_StockInfoDetail
+            {
+                //StockId = stockInfo.Id,
+                MaterielCode = inboundOrderDet.MaterielCode,
+                MaterielName = inboundOrderDet.MaterielName,
+                OrderNo = inboundOrder.OrderNo,
+                BatchNo = inboundOrderDet.BatchNo,
+                LinId = inboundOrderDet.LinId,
+                StockQuantity = inboundOrderDet.OrderQuantity,
+                Status = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+                Creater = "WMS",
+                CreateDate = DateTime.Now,
+                Id = inboundOrderDet.LinId.ObjToInt(),
+            };
+
+            var dt_Stock = new Dt_StockInfo
+            {
+                BatchNo = inboundOrderDet.BatchNo,
+                PalletCode = palletCode,
+                PalletType = GetPalletType(warehouse, palletCode),
+                IsFull = true,
+                StockStatus = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+                Creater = "WMS",
+                CreateDate = DateTime.Now,
+                MaterialType = (int)InventoryMaterialType.鎴愬搧,
+                Materialweight = 0,
+                Wlstatus = (int)InventoryMaterialStatus.鍚堟牸,
+                Mgeneratetime = DateTime.Now,
+                WarehouseId = warehouse.WarehouseId,
+                Details = new List<Dt_StockInfoDetail> { dt_StockInfoDetail }
+            };
+
+            //_stockService.StockInfoService.Repository.AddData(dt_Stock);
+            Db.InsertNav(dt_Stock).Include(x => x.Details).ExecuteCommand();
+            return _stockService.StockInfoService.Repository.GetStockInfo(palletCode);
+        }
+
+        private void CreateStockInfoDetail(Dt_StockInfo stockInfo, Dt_InboundOrder inboundOrder, Dt_InboundOrderDetail inboundOrderDet)
+        {
+            var dt_StockInfoDetail = new Dt_StockInfoDetail
+            {
+                StockId = stockInfo.Id,
+                MaterielCode = inboundOrderDet.MaterielCode,
+                MaterielName = inboundOrderDet.MaterielName,
+                OrderNo = inboundOrder.OrderNo,
+                BatchNo = inboundOrderDet.BatchNo,
+                LinId = inboundOrderDet.LinId,
+                StockQuantity = inboundOrderDet.OrderQuantity,
+                Status = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+                Creater = "WMS",
+                CreateDate = DateTime.Now,
+                Id = inboundOrderDet.LinId.ObjToInt(),
+            };
+
+            _stockService.StockInfoDetailService.Repository.AddData(dt_StockInfoDetail);
+        }
+
+        //鏌ヨ浠撳簱鎵樼洏璐х墿绫诲瀷
+        public int GetPalletType(Dt_Warehouse warehouse, string palletCode)
+        {
+            if (warehouse.WarehouseCode.Contains("BC"))
+            {
+                Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 3));
+                if (palletTypeInfo == null)
+                {
+                    throw new Exception($"鎵樼洏鍙烽敊璇�");
+                }
+                return palletTypeInfo.PalletType;
+            }
+            else 
+            {
+                Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 2));
+                if (palletTypeInfo == null)
+                {
+                    throw new Exception($"鎵樼洏鍙烽敊璇�");
+                }
+                return palletTypeInfo.PalletType;
+            }
+            return 0;
+        }
+
+
+
+
+        #region
+        //public WebResponseContent InboundRequest(SaveModel saveModel)
+        //{
+        //    string palletCode = saveModel.palletCode;
+        //    if (saveModel.palletCode == null) return WebResponseContent.Instance.Error($"璇疯緭鍏ユ纭墭鐩樺彿");
+        //    WebResponseContent content = new WebResponseContent();
+        //    try
+        //    {
+        //        Dt_InboundOrderDetail inboundOrderDet = BaseDal.Db.Queryable<Dt_InboundOrderDetail>().Where(x => x.LPNNo == palletCode).First();
+        //        Dt_InboundOrder inboundOrder = BaseDal.Db.Queryable<Dt_InboundOrder>().Where(x => x.Id == inboundOrderDet.OrderId).Includes(x => x.Details).First();
+        //        if (inboundOrder == null)
+        //        {
+        //            return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟淇℃伅");
+        //        }
+        //        Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseId == inboundOrder.WarehouseId);
+        //        Dt_RoadwayInfo roadwayInfo = _basicService.RoadwayInfoService.Repository.QueryFirst(x => x.RoadwayNo == warehouse.WarehouseCode);
+        //        if (roadwayInfo != null) { }
+
+        //        if (inboundOrder.Details == null || inboundOrder.Details.Count <= 0)
+        //        {
+        //            return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅");
+        //        }
+        //        Dt_StockInfo stockInfo1 = BaseDal.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
+        //        if (stockInfo1 == null)
+        //        {
+        //            Dt_StockInfo dt_Stock = new()
+        //            {
+        //                BatchNo = inboundOrderDet.BatchNo,
+        //                PalletCode = palletCode,
+        //                IsFull = true,
+        //                StockStatus = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+        //                Creater = "WMS",
+        //                CreateDate = DateTime.Now,
+        //                MaterialType = (int)InventoryMaterialType.鎴愬搧,
+        //                Materialweight = 0,
+        //                Wlstatus = (int)InventoryMaterialStatus.鍚堟牸,
+        //                Mgeneratetime = DateTime.Now,
+        //            };
+        //            _stockService.StockInfoService.Repository.AddData(dt_Stock);
+
+        //            Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.GetStockInfo(palletCode);
+        //            Dt_StockInfoDetail dt_StockInfoDetail = new()
+        //            {
+        //                StockId = dt_StockInfo.Id,
+        //                MaterielCode = inboundOrderDet.MaterielCode,    //鐗╂枡鍙�
+        //                MaterielName = inboundOrderDet.MaterielName,    //鐗╂枡鍚嶇О
+        //                OrderNo = inboundOrder.OrderNo,        //鐗╂枡璇︽儏
+        //                BatchNo = inboundOrderDet.BatchNo,         //鐗╂枡鎵规
+        //                LinId = inboundOrderDet.LinId,                    //SerialNumber = targetCodes[2].ToString(),    //鍖呭彿
+        //                                                                  //BatchNoName = dt_Int.OrderNo,
+        //                StockQuantity = inboundOrderDet.OrderQuantity,    //閲嶉噺
+        //                                                                  //OutboundQuantity = 1,    //搴忓垪鍙�
+        //                Status = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+        //                Creater = "WMS",
+        //                CreateDate = DateTime.Now,
+        //                Id = inboundOrderDet.LinId.ObjToInt(),
+        //            };
+        //            _stockService.StockInfoDetailService.Repository.AddData(dt_StockInfoDetail);
+        //        }
+        //        Dt_StockInfo stockInfo = BaseDal.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == palletCode).Includes(x => x.Details).First();
+        //        (bool, string) result = CheckRequestInbound(roadwayInfo.InSCStationCode, palletCode, true, stockInfo);
+        //        if (!result.Item1) return content = WebResponseContent.Instance.Error(result.Item2);
+        //        content = AssignLocUpdateData(roadwayInfo.InSCStationCode, TaskTypeEnum.Inbound.ObjToInt(), palletCode, true, stockInfo, inboundOrder.OrderNo);
+        //    }
+        //    catch (Exception ex)
+        //    {
+        //        content = WebResponseContent.Instance.Error(ex.Message);
+        //    }
+        //    return content;
+        //}
+        #endregion
+        public string ReceiveWMSInventoryIn = WIDESEA_Core.Helper.AppSettings.Configuration["ReceiveWMSInventoryIn"];
+        /// <summary>
+        /// 鐩樼偣宸紓鏁伴噺鍥炰紶
+        /// </summary>
+        /// <returns></returns>
+        public WebResponseContent InventoryIn(string name, int qty)
+        {
+            WebResponseContent content = new();
+            try
+            {
+                Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == name);
+                Dt_StockInfoDetail stockInfoDetail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == stockInfo.Id);
+                Dt_OutboundOrderDetail outboundOrderDetail = _outboundService.OutboundOrderDetailService.Repository.QueryFirst(x => x.LPNNo == stockInfo.PalletCode);
+                Dt_OutboundOrder outboundOrder = _outboundService.OutboundOrderService.Repository.QueryFirst(x => x.Id == outboundOrderDetail.OrderId);
+                HouseInventoryIn houseInboundPassBack = new HouseInventoryIn();
+                houseInboundPassBack.ApiType = "StockCountController";
+                houseInboundPassBack.Method = "AsrsFinishedStockCount";
+
+                data data = new data();
+                data.InventoryIn data1 = new data.InventoryIn();
+                data1.No = outboundOrder.OrderNo;
+                data.InventoryIn.Inbound inbound = new data.InventoryIn.Inbound();
+                inbound.LinId = outboundOrderDetail.LinId;
+                inbound.LPN_No = outboundOrderDetail.LPNNo;
+                inbound.MaterielCode = outboundOrderDetail.MaterielCode;
+                inbound.OrderQuantity = outboundOrderDetail.OrderQuantity;
+                inbound.BatchNo = outboundOrderDetail.BatchNo;
+                inbound.FinishQty = qty;
+                inbound.WarehouseCode = outboundOrderDetail.WarehouseCode;
+                inbound.StorageAreaCode = outboundOrderDetail.StorageAreaCode;
+                inbound.StorageLocationCode = outboundOrderDetail.StorageLocationCode;
+                data1.DetailList.Add(inbound);
+                data.Value.Add(data1);
+                houseInboundPassBack.Parameters.Add(data);
+                Authentication authentication = new Authentication()
+                {
+                    ApiType = "AuthenticationController",
+                    Parameters = new List<Parameter>
+                {
+                     new Parameter { Value = "LKAdmin"},
+                     new Parameter { Value = "LKAdmin"},
+                },
+                    Method = "Login",
+                };
+                var responses1 = HttpHelper.Post<WebResponseContent>(ReceiveWMSTaskAUT, authentication, "鐧诲綍WMS璐﹀彿");
+                var Ticket = responses1.Context["Ticket"].ToString();
+                var InvOrgId = responses1.Context["InvOrgId"].ToString();
+                if (Ticket != null)
+                {
+                    houseInboundPassBack.Context = new Dictionary<string, string>();
+                    houseInboundPassBack.Context.Add("Ticket", Ticket);
+                    houseInboundPassBack.Context.Add("InvOrgId", InvOrgId);
+                    var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSInventoryIn, houseInboundPassBack, "绔嬪簱鍏ュ簱鏁伴噺鍥炰紶WMS");
+                }
+                content = WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                content = WebResponseContent.Instance.Error(ex.Message);
+            }
+            finally
+            {
+
+            }
+            return content;
+        }
+
+        /// <summary>
+        /// 鍏ュ簱鍒嗛厤璐т綅鍙婂鐞嗘暟鎹�
+        /// </summary>
+        /// <param name="stationCode">璧峰鍦板潃</param>
+        /// <param name="taskType">浠诲姟绫诲瀷</param>
+        /// <param name="palletCode">鎵樼洏缂栧彿</param>
+        /// <param name="isUpdateStock">鏄惁鏇存柊缁勭洏淇℃伅--鍖哄垎鐗╂枡鍏ュ簱鍜岀┖鎵樺叆搴�</param>
+        /// <param name="stockInfo">缁勭洏淇℃伅--鍙┖</param>
+        /// <param name="orderNo">璁㈠崟鍙�--鍙┖</param>
+        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
+        private WebResponseContent AssignLocUpdateData(string stationCode, int taskType, string palletCode, bool isUpdateStock = true, Dt_StockInfo? stockInfo = null,
+            string orderNo = "")
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                Dt_InboundOrder dt_Int = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.OrderNo == orderNo);
+                Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(stationCode, taskType);
+                //Dt_LocationInfo dt_LocationInfo = null;
+                if (locationInfo != null)
+                {
+                    Dt_Task task = new()
+                    {
+                        CurrentAddress = "0",
+                        Grade = 0,
+                        PalletCode = palletCode,
+                        NextAddress = "0",
+                        Roadway = locationInfo.RoadwayNo,
+                        SourceAddress = stationCode,
+                        TargetAddress = locationInfo.LocationCode,
+                        TaskStatus = InTaskStatusEnum.InNew.ObjToInt(),
+                        TaskType = taskType,
+                        OrderNo = orderNo,
+                        CreateDate = DateTime.Now,
+                        Creater = "WMS"
+                    };
+                    BaseDal.AddData(task);
+                    int beforeStatus = locationInfo.LocationStatus;
+                    if (isUpdateStock)
+                    {
+                        locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
+                        _basicService.LocationInfoService.UpdateLocationLock(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false);
+
+                        if (stockInfo != null && stockInfo.Details != null && stockInfo.Details.Count > 0)
+                        {
+                            orderNo = stockInfo.Details.FirstOrDefault()?.OrderNo ?? "";
+
+                            stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt();
+                            //stockInfo.LocationCode = task.TargetAddress;
+                            _stockService.StockInfoService.Repository.UpdateData(stockInfo);
+                        }
+                        else
+                        {
+                            return content = WebResponseContent.Instance.Error("鏈壘鍒板簱瀛樹俊鎭�");
+                        }
+                    }
+                    else
+                    {
+                        locationInfo.LocationStatus = LocationStatusEnum.Lock.ObjToInt();
+                        _basicService.LocationInfoService.UpdateLocationLock(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false);
+                    }
+                    //涓嬪彂鍏ュ簱浠诲姟鑷砏CS
+                    //var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTask, task, "涓嬪彂浠诲姟鍏ュ簱");
+                    dt_Int.OrderStatus = InboundStatusEnum.鍏ュ簱涓�.ObjToInt();
+                    _inboundService.InbounOrderService.Repository.UpdateData(dt_Int);
+                    _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
+                    _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), orderNo, task.TaskNum);
+                    return content = WebResponseContent.Instance.OK(data: task);
+                }
+                return content = WebResponseContent.Instance.Error("鏈壘鍒板彲鍒嗛厤璐т綅");
+            }
+            catch (Exception ex)
+            {
+                content = WebResponseContent.Instance.Error(ex.Message);
+            }
+            return content;
+        }
+
+        /// <summary>
+        /// 楠岃瘉鏁版嵁
+        /// </summary>
+        /// <param name="stationCode">璧峰鍦板潃</param>
+        /// <param name="palletCode">鎵樼洏缂栧彿</param>
+        /// <param name="isCheckStock">鏄惁妫�鏌ョ粍鐩樹俊鎭�--鍖哄垎鐗╂枡鍏ュ簱鍜岀┖鎵樺叆搴�</param>
+        /// <param name="stockInfo">缁勭洏淇℃伅--鍙┖</param>
+        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
+        private (bool, string) CheckRequestInbound(string stationCode, string palletCode, bool isCheckStock = true, Dt_StockInfo? stockInfo = null)
+        {
+            if (BaseDal.QueryFirst(x => x.PalletCode == palletCode) != null)
+            {
+                return (false, "璇ユ墭鐩樺彿宸叉湁浠诲姟");
+            }
+            if (BaseDal.QueryFirst(x => (x.SourceAddress == stationCode || x.CurrentAddress == stationCode) && x.TaskStatus == InTaskStatusEnum.InNew.ObjToInt()) != null)
+            {
+                return (false, "褰撳墠鍏ュ簱绔欏彴宸叉湁涓�鏉℃柊寤轰换鍔�");
+            }
+            if (isCheckStock)
+            {
+                if (stockInfo == null)
+                {
+                    return (false, "鏈壘鍒扮粍鐩樹俊鎭�");
+                }
+                if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt())
+                {
+                    return (false, "璇ョ粍鐩樼姸鎬佷笉鍙叆搴�");
+                }
+                if (!string.IsNullOrEmpty(stockInfo.LocationCode))
+                {
+                    return (false, "璇ユ墭鐩樺凡缁戝畾璐т綅");
+                }
+                if (stockInfo.Details == null || stockInfo.Details.Count == 0)
+                {
+                    return (false, "娌℃湁搴撳瓨鏄庣粏淇℃伅");
+                }
+            }
+            else
+            {
+                if (_stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == palletCode) != null)
+                {
+                    return (false, "璇ユ墭鐩樺凡瀛樺湪搴撳唴");
+                }
+            }
+
+            return (true, "鎴愬姛");
+        }
+
+
+        /// <summary>
+        /// 鏍规嵁鎵樼洏鏉$爜锛岃捣鐐逛綅缃紝鐢熸垚鍏ュ簱淇℃伅
+        /// </summary>
+        /// <param name="PalletCode"></param>
+        /// <returns></returns>
+        //public WebResponseContent GenerateInventoryInformation(GenerateInv generate)
+        //{
+
+        //    WebResponseContent content = new WebResponseContent();
+        //    try
+        //    {
+        //        Dt_Task task = BaseDal.QueryFirst(x => x.PalletCode == generate.PalletCode);
+        //        if (task != null)
+        //        {
+        //            return content = WebResponseContent.Instance.Error($"宸叉湁璇ユ墭鐩樼殑鍏ュ簱浠诲姟锛屾墭鐩樺彿锛歿task.PalletCode}");
+        //        }
+        //        else
+        //        {
+
+        //            //if ((generate.SourceAddress == "R01-003-041-011-01" || generate.SourceAddress == "R01-002-043-001-01" || generate.SourceAddress == "R02-003-027-011-01"))
+        //            //{
+        //            Dt_StockInfo dt_StockInfo2 = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode);
+        //            if (dt_StockInfo2 == null)
+        //            {
+        //                Dt_StockInfo dt_Stock = new()
+        //                {
+        //                    PalletCode = generate.PalletCode,
+        //                    IsFull = true,
+        //                    StockStatus = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+        //                    Creater = "WMS",
+        //                    CreateDate = DateTime.Now,
+        //                    MaterialType = (int)InventoryMaterialType.绌烘墭,
+        //                    Materialweight = 0,
+        //                    Wlstatus = (int)InventoryMaterialStatus.绌烘墭,
+        //                    Mgeneratetime = DateTime.Now,
+        //                };
+        //                _stockService.StockInfoService.Repository.AddData(dt_Stock);
+        //            }
+        //            //}
+        //            Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode && x.StockStatus == (int)StockStatusEmun.缁勭洏鏆傚瓨);
+        //            if (dt_StockInfo != null)
+        //            {
+        //                Dt_LocationInfo newLocation;
+        //                Dt_LocationInfo newSourceAddress;
+        //                newSourceAddress = _basicService.LocationInfoService.GetLocationplatform(generate.SourceAddress);
+        //                int Locationtype = 1;   //榛樿涓�9
+        //                if (dt_StockInfo.MaterialType == (int)InventoryMaterialType.鎴愬搧 || (generate.SourceAddress == "R01-003-041-001-01" && dt_StockInfo.MaterialType == (int)InventoryMaterialType.鍘熸潗鏂�))
+        //                {
+        //                    Locationtype = 11;
+
+        //                }
+        //                else if (dt_StockInfo.MaterialType == (int)InventoryMaterialType.鍘熸潗鏂�)
+        //                {
+        //                    Locationtype = 10;
+        //                }
+
+        //                if (dt_StockInfo.MaterialType == (int)InventoryMaterialType.鎴愬搧)
+        //                {
+        //                    string[] targetCodes = dt_StockInfo.PalletCode.Split("*");
+        //                    Dt_InboundOrder dt_Inbound = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.OrderName == targetCodes[0]);
+        //                    if (dt_Inbound.Startingcolumn != 0 || dt_Inbound.Terminationcolumn != 0)
+        //                    {
+        //                        newLocation = _basicService.LocationInfoService.GetLocation2(newSourceAddress.RoadwayNo, Locationtype, dt_Inbound.Startingcolumn, dt_Inbound.Terminationcolumn);
+        //                    }
+        //                    else
+        //                    {
+        //                        newLocation = _basicService.LocationInfoService.GetLocation(newSourceAddress.RoadwayNo, Locationtype);
+        //                    }
+
+        //                }
+        //                else
+        //                {
+        //                    newLocation = _basicService.LocationInfoService.GetLocation(newSourceAddress.RoadwayNo, Locationtype);
+        //                }
+
+
+        //                //string[] Pallet = PalletCode.Split("-");
+        //                if (newLocation != null && newSourceAddress != null)
+        //                {
+        //                    //鐢熸垚鍏ュ簱浠诲姟
+        //                    Dt_Task dt_Task = new()
+        //                    {
+        //                        PalletCode = generate.PalletCode,
+        //                        TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
+        //                        Roadway = newLocation.RoadwayNo,
+        //                        TaskType = TaskTypeEnum.Inbound.ObjToInt(),
+        //                        TaskStatus = InTaskStatusEnum.InNew.ObjToInt(),
+        //                        SourceAddress = newSourceAddress.LocationCode,
+        //                        TargetAddress = newLocation.LocationCode,
+        //                        CurrentAddress = newSourceAddress.LocationCode,
+        //                        NextAddress = newLocation.LocationCode,
+        //                        Grade = 1,
+        //                        Creater = "WMS",
+        //                        Depth = newLocation.Depth,
+        //                        CreateDate = DateTime.Now,
+        //                        MaterialType = dt_StockInfo.MaterialType
+        //                    };
+        //                    _unitOfWorkManage.BeginTran();
+        //                    if (newLocation.LocationStatus == LocationStatusEnum.Free.ObjToInt())
+        //                    {
+        //                        newLocation.LocationStatus = newSourceAddress.LocationType == (int)LocationTypeEnum.EmptyOut ? LocationStatusEnum.PalletLock.ObjToInt() : LocationStatusEnum.Lock.ObjToInt();
+        //                    }
+        //                    BaseDal.AddData(dt_Task);
+        //                    _basicService.LocationInfoService.UpdateData(newLocation);
+
+        //                    _unitOfWorkManage.CommitTran();
+
+        //                    return content = WebResponseContent.Instance.OK(data: dt_Task);
+        //                }
+        //                else
+        //                {
+        //                    return content = WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑璧风偣:{generate.SourceAddress},鎴栫粓鐐箋newSourceAddress.RoadwayNo}锛屼俊鎭�");
+        //                }
+
+        //            }
+        //            else
+        //            {
+        //                //Queryinventory(generate.PalletCode);
+        //                return content = WebResponseContent.Instance.Error($"缁勭洏锛岃鏍稿鎵樼洏鍙�:{generate.PalletCode}");
+        //            }
+
+        //        }
+
+        //    }
+        //    catch (Exception ex)
+        //    {
+        //        return content = WebResponseContent.Instance.Error($"鐢熸垚鍏ュ簱浠诲姟鍑洪敊锛屽嚭閿欎俊鎭�:{ex.Message}");
+        //        throw;
+        //    }
+        //}
+
+        ///// <summary>
+        ///// 鏌ヨ1宸烽亾搴撳瓨锛屾槸鍚﹁繍琛岃繘琛屽叆搴�  //甯﹀悗缁噸鏂版嫾鎺�
+        ///// </summary>
+        ///// <returns></returns>
+        //public WebResponseContent Queryinventory3(GenerateInv generate)
+        //{
+        //    try
+        //    {
+        //        WebResponseContent content = new WebResponseContent();
+        //        string result = generate.PalletCode.Substring(0, 2);
+        //        Dt_InboundOrder dt_Inbound = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.UpperOrderNo == result);
+        //        Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode);
+        //        if (dt_Inbound != null)
+        //        {
+        //            if (dt_StockInfo == null)
+        //            {
+        //                Dt_StockInfo dt_Stock = new()
+        //                {
+        //                    PalletCode = generate.PalletCode,
+        //                    IsFull = true,
+        //                    StockStatus = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+        //                    Creater = "WMS",
+        //                    CreateDate = DateTime.Now,
+        //                    MaterialType = (int)InventoryMaterialType.鍘熸潗鏂�,
+        //                    Materialweight = 0,
+        //                };
+        //                _unitOfWorkManage.BeginTran();
+        //                _stockService.StockInfoService.Repository.AddData(dt_Stock);
+
+        //                string part2 = generate.PalletCode.Substring(2, 8);
+
+        //                string part3 = generate.PalletCode.Split('#')[1];
+        //                Dt_StockInfo dt_StockInfo2 = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode);
+        //                Dt_StockInfoDetail dt_StockInfoDetail = new()
+        //                {
+        //                    StockId = dt_StockInfo2.Id,
+        //                    MaterielCode = result,    //鐗╂枡缂栧彿
+        //                    MaterielName = dt_Inbound.OrderNo,    //鏉愯川
+        //                    OrderNo = generate.PalletCode,        //鍗曟嵁锛堟墭鐩樻潯鐮侊級
+        //                    BatchNo = part2,         //鎵规鍙�
+        //                    SerialNumber = part3,    //搴忓垪鍙�
+        //                    StockQuantity = 1,    //搴忓垪鍙�
+        //                    OutboundQuantity = 1,    //搴忓垪鍙�
+        //                    Status = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+        //                    Creater = "WMS",
+        //                    CreateDate = DateTime.Now,
+        //                };
+        //                _stockService.StockInfoDetailService.AddData(dt_StockInfoDetail);
+
+        //                _unitOfWorkManage.CommitTran();
+        //                return content = WebResponseContent.Instance.OK();
+        //            }
+        //            else
+        //            {
+        //                return content = WebResponseContent.Instance.OK();
+        //            }
+
+        //        }
+        //        else
+        //        {
+        //            return content = WebResponseContent.Instance.Error("鏈壘鍒拌绫诲瀷鐨勮В鏋�");
+        //        }
+
+        //    }
+        //    catch (Exception ex)
+        //    {
+
+        //        throw;
+        //    }
+        //}
+
+        ///// <summary>
+        ///// 瑙f瀽搴撳瓨
+        ///// </summary>
+        ///// <returns></returns>
+        //public WebResponseContent Queryinventory(GenerateInv generate)
+        //{
+        //    WebResponseContent content = new WebResponseContent();
+        //    try
+        //    {
+
+        //        string[] targetCodes = generate.PalletCode.Split("*");
+        //        if (targetCodes.Length == 4)
+        //        {
+        //            Dt_InboundOrder dt_Inbound = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.OrderName == targetCodes[0]);
+
+        //            if (dt_Inbound != null)
+        //            {
+        //                Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode);
+        //                if (dt_Inbound.OrderType == (int)InventoryMaterialType.鍘熸潗鏂�)   //0涓哄師鏉愭枡缂栫爜
+        //                {
+        //                    List<Dt_LocationInfo> locationInfos = _basicService.LocationInfoService.Repository.QueryData(x => x.RoadwayNo == "2" && x.LocationStatus == (int)LocationStatusEnum.Free && x.Depth == 1 && x.EnableStatus == (int)EnableStatusEnum.Normal && x.LocationType == (int)LocationTypeEnum.MaterialsCube);
+
+        //                    if (dt_StockInfo == null)
+        //                    {
+        //                        Dt_StockInfo dt_Stock = new()
+        //                        {
+        //                            PalletCode = generate.PalletCode,
+        //                            IsFull = true,
+        //                            StockStatus = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+        //                            Creater = "WMS",
+        //                            CreateDate = DateTime.Now,
+        //                            MaterialType = (int)InventoryMaterialType.鍘熸潗鏂�,
+        //                            Materialweight = decimal.Parse(targetCodes[3]),
+        //                            Wlstatus = (int)InventoryMaterialStatus.寰呮,
+        //                            Mgeneratetime = DateTime.Now,
+        //                        };
+        //                        _unitOfWorkManage.BeginTran();
+        //                        _stockService.StockInfoService.Repository.AddData(dt_Stock);
+        //                        Dt_StockInfo dt_StockInfo2 = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode);
+        //                        string part2 = targetCodes[1].Substring(0, 2);  //瑙f瀽鐗╂枡鎵规鎵捐鎯�
+        //                        Dt_InboundOrder dt_Int = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.UpperOrderNo == part2);
+
+        //                        Dt_StockInfoDetail dt_StockInfoDetail = new()
+        //                        {
+        //                            StockId = dt_StockInfo2.Id,
+        //                            MaterielCode = dt_Inbound.OrderName,    //鐗╂枡鍙�
+        //                            MaterielName = dt_Inbound.UpperOrderNo,    //鐗╂枡鍚嶇О
+        //                            OrderNo = dt_Inbound.OrderNo,        //鐗╂枡璇︽儏
+        //                            BatchNo = targetCodes[1].ToString(),         //鐗╂枡鎵规
+        //                            SerialNumber = targetCodes[2].ToString(),    //鍖呭彿
+        //                            BatchNoName = dt_Int.OrderNo,
+        //                            //StockQuantity = decimal.Parse(targetCodes[3].ToString()),    //閲嶉噺
+        //                            OutboundQuantity = 1,    //搴忓垪鍙�
+        //                            Status = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+        //                            Creater = "WMS",
+        //                            CreateDate = DateTime.Now,
+
+        //                        };
+        //                        _stockService.StockInfoDetailService.AddData(dt_StockInfoDetail);
+        //                        _unitOfWorkManage.CommitTran();
+        //                        if (locationInfos.Count < 50)
+        //                        {
+        //                            return content = WebResponseContent.Instance.OK(data: 1);
+        //                        }
+        //                        else
+        //                        {
+        //                            return content = WebResponseContent.Instance.OK(data: 3);
+        //                        }
+        //                    }
+        //                    else
+        //                    {
+        //                        if (dt_StockInfo.StockStatus == (int)StockStatusEmun.缁勭洏鏆傚瓨)
+        //                        {
+        //                            if (locationInfos.Count < 50)
+        //                            {
+        //                                return content = WebResponseContent.Instance.OK(data: 1);
+        //                            }
+        //                            else
+        //                            {
+        //                                return content = WebResponseContent.Instance.OK(data: 3);
+        //                            }
+        //                        }
+        //                        else
+        //                        {
+        //                            return content = WebResponseContent.Instance.Error($"搴撳瓨宸叉湁璇ユ潯鐮侊紝鏉$爜淇℃伅锛歿generate.PalletCode}");
+        //                        }
+
+        //                    }
+        //                }
+        //                else if (dt_Inbound.OrderType == (int)InventoryMaterialType.鎴愬搧)
+        //                {
+        //                    if (dt_StockInfo == null)
+        //                    {
+        //                        Dt_StockInfo dt_Stock = new()
+        //                        {
+        //                            PalletCode = generate.PalletCode,
+        //                            IsFull = true,
+        //                            StockStatus = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+        //                            Creater = "WMS",
+        //                            CreateDate = DateTime.Now,
+        //                            MaterialType = (int)InventoryMaterialType.鎴愬搧,
+        //                            Materialweight = decimal.Parse(targetCodes[3]),
+        //                            Wlstatus = (int)InventoryMaterialStatus.寰呮,
+        //                            Mgeneratetime = DateTime.Now,
+        //                        };
+        //                        _unitOfWorkManage.BeginTran();
+        //                        _stockService.StockInfoService.Repository.AddData(dt_Stock);
+        //                        Dt_StockInfo dt_StockInfo2 = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode);
+        //                        Dt_StockInfoDetail dt_StockInfoDetail = new()
+        //                        {
+        //                            StockId = dt_StockInfo2.Id,
+        //                            MaterielCode = dt_Inbound.OrderName,    //鐗╂枡鍙�
+        //                            MaterielName = dt_Inbound.UpperOrderNo,    //鐗╂枡鍚嶇О
+        //                            OrderNo = dt_Inbound.OrderNo,        //鐗╂枡璇︽儏
+        //                            BatchNo = targetCodes[1].ToString(),         //鐗╂枡鎵规
+        //                            BatchNoName = "",
+        //                            SerialNumber = targetCodes[2],    //鍖呭彿
+        //                            //StockQuantity = decimal.Parse(targetCodes[3]),    //閲嶉噺
+        //                            OutboundQuantity = 1,    //搴忓垪鍙�
+        //                            Status = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+        //                            Creater = "WMS",
+        //                            CreateDate = DateTime.Now,
+        //                        };
+        //                        _stockService.StockInfoDetailService.AddData(dt_StockInfoDetail);
+        //                        _unitOfWorkManage.CommitTran();
+        //                        return content = WebResponseContent.Instance.OK(data: 1);
+        //                    }
+        //                    else
+        //                    {
+        //                        if (dt_StockInfo.StockStatus == (int)StockStatusEmun.缁勭洏鏆傚瓨)
+        //                        {
+        //                            return content = WebResponseContent.Instance.OK(data: 1);
+        //                        }
+        //                        else
+        //                        {
+        //                            return content = WebResponseContent.Instance.Error($"搴撳瓨宸叉湁璇ユ潯鐮侊紝鏉$爜淇℃伅锛歿generate.PalletCode}");
+        //                        }
+        //                    }
+        //                }
+        //                else
+        //                {
+        //                    return content = WebResponseContent.Instance.Error($"鏈壘鍒版潯鐮佽В鏋愶紝鏉$爜淇℃伅锛歿generate.PalletCode}");
+        //                }
+        //            }
+        //            else
+        //            {
+        //                return content = WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟锛屾潯鐮佷俊鎭細{generate.PalletCode}");
+        //            }
+
+        //        }
+        //        else
+        //        {
+        //            return content = WebResponseContent.Instance.Error($"瑙f瀽鐨勬墭鐩樻潯鐮侀暱搴︿笉瓒�4,鏉$爜淇℃伅锛歿generate.PalletCode}");
+        //        }
+        //    }
+        //    catch (Exception ex)
+        //    {
+        //        return content = WebResponseContent.Instance.Error($"绯荤粺宸烽亾鍏ュ簱鎺ュ彛瑙f瀽閿欒锛氶敊璇細{ex.Message}");
+        //        throw;
+        //    }
+        //}
+
+        //public WebResponseContent Queryinventory2(GenerateInv generate)
+        //{
+        //    try
+        //    {
+        //        WebResponseContent content = new WebResponseContent();
+        //        string result = generate.PalletCode.Substring(0, 2);
+        //        if (result == "B-")
+        //        {
+        //            Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode);
+        //            if (dt_StockInfo == null)
+        //            {
+        //                Dt_StockInfo dt_Stock = new()
+        //                {
+        //                    PalletCode = generate.PalletCode,
+        //                    IsFull = true,
+        //                    StockStatus = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+        //                    Creater = "WMS",
+        //                    CreateDate = DateTime.Now,
+        //                    MaterialType = (int)InventoryMaterialType.鎴愬搧,
+        //                    Materialweight = 0,
+        //                };
+        //                _unitOfWorkManage.BeginTran();
+        //                _stockService.StockInfoService.Repository.AddData(dt_Stock);
+
+        //                //string part2 = generate.PalletCode.Substring(2, 8);
+
+        //                //string part3 = generate.PalletCode.Split('#')[1];
+        //                Dt_StockInfo dt_StockInfo2 = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode);
+        //                Dt_StockInfoDetail dt_StockInfoDetail = new()
+        //                {
+        //                    StockId = dt_StockInfo2.Id,
+        //                    MaterielCode = dt_StockInfo2.PalletCode,    //鐗╂枡缂栧彿
+        //                    MaterielName = dt_StockInfo2.PalletCode,    //鏉愯川
+        //                    OrderNo = dt_StockInfo2.PalletCode,        //鍗曟嵁锛堟墭鐩樻潯鐮侊級
+        //                    BatchNo = dt_StockInfo2.PalletCode,         //鎵规鍙�
+        //                    SerialNumber = dt_StockInfo2.PalletCode,    //搴忓垪鍙�
+        //                    StockQuantity = 1,    //搴忓垪鍙�
+        //                    OutboundQuantity = 1,    //搴忓垪鍙�
+        //                    Status = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+        //                    Creater = "WMS",
+        //                    CreateDate = DateTime.Now,
+        //                };
+        //                _stockService.StockInfoDetailService.AddData(dt_StockInfoDetail);
+
+        //                _unitOfWorkManage.CommitTran();
+        //                return content = WebResponseContent.Instance.OK(data: 1);
+        //            }
+        //            else
+        //            {
+        //                if (dt_StockInfo.StockStatus == (int)StockStatusEmun.缁勭洏鏆傚瓨)
+        //                {
+        //                    return content = WebResponseContent.Instance.OK(data: 1);
+        //                }
+        //                else
+        //                {
+        //                    return content = WebResponseContent.Instance.Error($"搴撳瓨宸叉湁璇ユ潯鐮侊紝鏉$爜淇℃伅锛歿generate.PalletCode}");
+        //                }
+        //            }
+        //        }
+        //        else
+        //        {
+        //            Dt_InboundOrder dt_Inbound = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.UpperOrderNo == result);
+        //            Dt_StockInfo dt_StockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode);
+        //            List<Dt_LocationInfo> locationinfoData = _basicService.LocationInfoService.Repository.QueryData(x => x.RoadwayNo == "2" && x.LocationStatus == LocationStatusEnum.Free.ObjToInt()
+        //                    && x.LocationType == (int)LocationTypeEnum.MaterialsCube);
+        //            if (dt_Inbound != null)
+        //            {
+        //                if (dt_StockInfo == null)
+        //                {
+        //                    Dt_StockInfo dt_Stock = new()
+        //                    {
+        //                        PalletCode = generate.PalletCode,
+        //                        IsFull = true,
+        //                        StockStatus = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+        //                        Creater = "WMS",
+        //                        CreateDate = DateTime.Now,
+        //                        MaterialType = (int)InventoryMaterialType.鍘熸潗鏂�,
+        //                        Materialweight = 0,
+        //                    };
+        //                    _unitOfWorkManage.BeginTran();
+        //                    _stockService.StockInfoService.Repository.AddData(dt_Stock);
+
+        //                    string part2 = generate.PalletCode.Substring(2, 8);
+
+        //                    string part3 = generate.PalletCode.Split('#')[1];
+        //                    Dt_StockInfo dt_StockInfo2 = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == generate.PalletCode);
+        //                    Dt_StockInfoDetail dt_StockInfoDetail = new()
+        //                    {
+        //                        StockId = dt_StockInfo2.Id,
+        //                        MaterielCode = result,    //鐗╂枡缂栧彿
+        //                        MaterielName = dt_Inbound.OrderNo,    //鏉愯川
+        //                        OrderNo = generate.PalletCode,        //鍗曟嵁锛堟墭鐩樻潯鐮侊級
+        //                        BatchNo = part2,         //鎵规鍙�
+        //                        SerialNumber = part3,    //搴忓垪鍙�
+        //                        StockQuantity = 1,    //搴忓垪鍙�
+        //                        OutboundQuantity = 1,    //搴忓垪鍙�
+        //                        Status = (int)StockStatusEmun.缁勭洏鏆傚瓨,
+        //                        Creater = "WMS",
+        //                        CreateDate = DateTime.Now,
+        //                    };
+        //                    _stockService.StockInfoDetailService.AddData(dt_StockInfoDetail);
+
+        //                    _unitOfWorkManage.CommitTran();
+
+
+        //                    if (locationinfoData.Count > 40)
+        //                    {
+        //                        return content = WebResponseContent.Instance.OK(data: 3);
+        //                    }
+        //                    else
+        //                    {
+        //                        return content = WebResponseContent.Instance.OK(data: 1);
+        //                    }
+
+        //                }
+        //                else
+        //                {
+        //                    if (dt_StockInfo.StockStatus == (int)StockStatusEmun.缁勭洏鏆傚瓨)
+        //                    {
+        //                        if (locationinfoData.Count > 40)
+        //                        {
+        //                            return content = WebResponseContent.Instance.OK(data: 3);
+        //                        }
+        //                        else
+        //                        {
+        //                            return content = WebResponseContent.Instance.OK(data: 1);
+        //                        }
+        //                    }
+        //                    else
+        //                    {
+        //                        return content = WebResponseContent.Instance.Error($"搴撳瓨宸叉湁璇ユ潯鐮侊紝鏉$爜淇℃伅锛歿generate.PalletCode}");
+        //                    }
+        //                }
+
+        //            }
+        //            else
+        //            {
+        //                return content = WebResponseContent.Instance.Error("鏈壘鍒拌绫诲瀷鐨勮В鏋�");
+        //            }
+
+        //        }
+        //    }
+        //    catch (Exception ex)
+        //    {
+
+        //        throw;
+        //    }
+        //}
     }
 }

--
Gitblit v1.9.3