From 96f8501cc973232b340e36a61992ec1ad47e4a31 Mon Sep 17 00:00:00 2001
From: wankeda <Administrator@DESKTOP-HAU3ST3>
Date: 星期六, 12 七月 2025 11:10:34 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/JiAnLiKu

---
 WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs |  478 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 340 insertions(+), 138 deletions(-)

diff --git a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs
index 3c97516..eb22505 100644
--- a/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs
+++ b/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Inbound.cs
@@ -15,142 +15,371 @@
 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;
 
 namespace WIDESEA_TaskInfoService
 {
     public partial class TaskService
     {
+
+
         /// <summary>
-        /// PDA鐢宠鍏ュ簱--鍫嗗灈鏈虹珛搴撳叆搴�
+        /// 绔嬪簱鍏ュ簱鎸囦护涓婁紶
         /// </summary>
         /// <param name="stationCode">璧峰鍦板潃</param>
-        /// <param name="taskType">浠诲姟绫诲瀷--鍏ョ┖锛屽叆鏂�</param>
         /// <param name="palletCode">鎵樼洏缂栧彿</param>
         /// <returns>杩斿洖澶勭悊缁撴灉</returns>
-        public WebResponseContent GenerateInboundTask(string stationCode, int taskType, string palletCode)
+        public WebResponseContent InboundRequest(string stationCode, string roadwayNo, string palletCode)
         {
-            string? name = Enum.GetName(typeof(TaskTypeEnum), taskType);
-            MethodInfo? methodInfo = GetType().GetMethod(name + "Request");
-            if (methodInfo != null)
+            // 杈撳叆楠岃瘉
+            if (string.IsNullOrWhiteSpace(palletCode))
+                return WebResponseContent.Instance.Error("璇疯緭鍏ユ纭墭鐩樺彿");
+
+            try
             {
-                WebResponseContent? responseContent = (WebResponseContent?)methodInfo.Invoke(this, new object[] { stationCode, palletCode });
-                if (responseContent != null)
+                Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode);
+                if (task != null)
                 {
-                    return responseContent;
+                    PushTasksToWCS(new List<Dt_Task> { task });
+                    return WebResponseContent.Instance.OK($"璇ユ墭鐩樺凡鐢熸垚浠诲姟", _mapper.Map<WMSTaskDTO>(task));
                 }
+                // 鑾峰彇鍏ュ簱鍗曟槑缁�
+                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 stockInfo = GetOrCreateStockInfo(palletCode, inboundOrder, inboundOrderDet, 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 }
+                };
+
+                // 妫�鏌ュ叆搴撹姹�
+                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 = stationCode,
+                    Grade = 0,
+                    NextAddress = locationInfo.LocationCode,
+                    PalletCode = palletCode,
+                    Roadway = roadwayNo,
+                    SourceAddress = stationCode,
+                    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
             {
-                return WebResponseContent.Instance.Error("鏈壘鍒拌浠诲姟绫诲瀷涓氬姟");
+                if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt())
+                {
+                    return null;
+                }
+                beforeQuantity = stockInfo.Details.Sum(x => x.StockQuantity);
             }
-            return WebResponseContent.Instance.Error("閿欒");
+
+            return stockInfo;
         }
 
-        /// <summary>
-        /// 绌烘墭鐩樺叆搴�
-        /// </summary>
-        /// <param name="stationCode">璧峰鍦板潃</param>
-        /// <param name="palletCode">鎵樼洏缂栧彿</param>
-        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
-        public WebResponseContent PalletInboundRequest(string stationCode, string palletCode)
+        private Dt_StockInfo CreateNewStockInfo(string palletCode, Dt_InboundOrder inboundOrder, Dt_InboundOrderDetail inboundOrderDet, Dt_Warehouse warehouse)
         {
-            WebResponseContent content = new WebResponseContent();
-            try
+            var dt_StockInfoDetail = new Dt_StockInfoDetail
             {
-                (bool, string) result = CheckRequestInbound(stationCode, palletCode, false);
-                if (!result.Item1) return content = WebResponseContent.Instance.Error(result.Item2);
-                content = AssignLocUpdateData(stationCode, TaskTypeEnum.PalletInbound.ObjToInt(), palletCode, false);
-            }
-            catch (Exception ex)
+                //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
             {
-                content = WebResponseContent.Instance.Error(ex.Message);
-            }
-            return content;
+                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);
         }
 
-        /// <summary>
-        /// 鐗╂枡鍏ュ簱
-        /// </summary>
-        /// <param name="stationCode">璧峰鍦板潃</param>
-        /// <param name="palletCode">鎵樼洏缂栧彿</param>
-        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
-        public WebResponseContent InboundRequest(SaveModel saveModel)
+        private void CreateStockInfoDetail(Dt_StockInfo stockInfo, Dt_InboundOrder inboundOrder, Dt_InboundOrderDetail inboundOrderDet)
         {
-            string palletCode = saveModel.palletCode;
-            WebResponseContent content = new WebResponseContent();
-            try
+            var dt_StockInfoDetail = new Dt_StockInfoDetail
             {
-                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();
-                Dt_RoadwayInfo roadwayInfo = _basicService.RoadwayInfoService.Repository.QueryFirst(x => x.RoadwayNo == inboundOrder.OutWareHouse);
-                if (inboundOrder == null)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟淇℃伅");
-                }
-                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)
-                {
-                    return WebResponseContent.Instance.Error($"宸插瓨鍦ㄦ鎵樼洏搴撳瓨淇℃伅");
-                }
+                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(),
+            };
 
-                //Dt_InboundOrder dt_Int = _inboundService.InbounOrderService.Repository.QueryFirst(x => x.UpperOrderNo == palletCode);
-                //Dt_InboundOrderDetail dt_InboundOrderDetail = _inboundService.InboundOrderDetailService.Repository.QueryFirst(x => x.OrderId == dt_Int.Id);
-                if (inboundOrder != 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);
-                if (inboundOrderDet != null)
-                {
-                    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;
+            _stockService.StockInfoDetailService.Repository.AddData(dt_StockInfoDetail);
         }
+
+        //鏌ヨ浠撳簱鎵樼洏璐х墿绫诲瀷
+        public int GetPalletType(Dt_Warehouse warehouse, string palletCode)
+        {
+            if (warehouse.WarehouseCode == WarehouseEnum.SC01_BC.ToString())
+            {
+                if (palletCode.Substring(0, 1) == "6")
+                {
+                    return PalletTypeEnum.MediumPallet.ObjToInt();
+                }
+                else
+                {
+                    return PalletTypeEnum.LargestPallet.ObjToInt();
+                }
+            }
+            else if (warehouse.WarehouseCode == WarehouseEnum.SC01_BC.ObjToString())
+            {
+                Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 1));
+                if (palletTypeInfo == null)
+                {
+                    throw new Exception($"鎵樼洏鍙烽敊璇�");
+                }
+                return palletTypeInfo.PalletType;
+            }
+            //else if (warehouse.WarehouseCode == WarehouseEnum.HA152.ObjToString())
+            //{
+            //    Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 2));
+            //    if (palletTypeInfo == null)
+            //    {
+            //        throw new Exception($"鎵樼洏鍙烽敊璇�");
+            //    }
+            //    return palletTypeInfo.PalletType;
+            //}
+            //else if (warehouse.WarehouseCode == WarehouseEnum.HA57.ObjToString())
+            //{
+            //    Dt_PalletTypeInfo palletTypeInfo = _palletTypeInfoRepository.QueryFirst(x => x.CodeStartStr == palletCode.Substring(0, 3));
+            //    if (palletTypeInfo == null)
+            //    {
+            //        throw new Exception($"鎵樼洏鍙烽敊璇�");
+            //    }
+            //    return palletTypeInfo.PalletType;
+            //}
+            return -1;
+        }
+
+
+
+
+        #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)
@@ -160,7 +389,6 @@
             {
                 Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == name);
                 Dt_StockInfoDetail stockInfoDetail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == stockInfo.Id);
-                //Dt_OutboundOrder outboundOrder = _outboundService.OutboundOrderService.Repository.QueryFirst(x => x.OrderNo == stockInfoDetail.OrderNo);
                 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();
@@ -203,18 +431,6 @@
                     houseInboundPassBack.Context.Add("InvOrgId", InvOrgId);
                     var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSInventoryIn, houseInboundPassBack, "绔嬪簱鍏ュ簱鏁伴噺鍥炰紶WMS");
                 }
-
-                //          #region 楠岃瘉鏁版嵁
-                //(bool, string, object ?) result = CheckInboundOrderAddData(orderAddDTO1);
-                //          if (!result.Item1) return content = WebResponseContent.Instance.Error(result.Item2);
-                //          #endregion
-
-                //          Dt_OutboundOrder inboundOrder = _mapper.Map<Dt_OutboundOrder>(orderAddDTO1);
-                //          inboundOrder.OrderStatus = InboundStatusEnum.鏈紑濮�.ObjToInt();
-                //          inboundOrder.OrderType = OutOrderTypeEnum.OutInventory.ObjToInt();
-                //          inboundOrder.Creater = "WMS";
-                //          inboundOrder.CreateDate = DateTime.Now;
-                //          bool a = BaseDal.Db.InsertNav(inboundOrder).Include(x => x.Details).ExecuteCommand();
                 content = WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
@@ -290,7 +506,7 @@
                         _basicService.LocationInfoService.UpdateLocationLock(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false);
                     }
                     //涓嬪彂鍏ュ簱浠诲姟鑷砏CS
-                    var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTask, task, "涓嬪彂浠诲姟鍏ュ簱");
+                    //var responses = HttpHelper.Post<WebResponseContent>(ReceiveWMSTask, task, "涓嬪彂浠诲姟鍏ュ簱");
                     dt_Int.OrderStatus = InboundStatusEnum.鍏ュ簱涓�.ObjToInt();
                     _inboundService.InbounOrderService.Repository.UpdateData(dt_Int);
                     _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
@@ -320,10 +536,10 @@
             {
                 return (false, "璇ユ墭鐩樺彿宸叉湁浠诲姟");
             }
-            //if (BaseDal.QueryFirst(x => (x.SourceAddress == stationCode || x.CurrentAddress == stationCode) && x.TaskStatus == InTaskStatusEnum.InNew.ObjToInt()) != 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)
@@ -353,6 +569,7 @@
 
             return (true, "鎴愬姛");
         }
+
 
         /// <summary>
         /// 鏍规嵁鎵樼洏鏉$爜锛岃捣鐐逛綅缃紝鐢熸垚鍏ュ簱淇℃伅
@@ -866,20 +1083,5 @@
         //        throw;
         //    }
         //}
-
-        public WebResponseContent PalletQueryinventory()
-        {
-            WebResponseContent content = new WebResponseContent();
-            List<Dt_LocationInfo> locationinfoData = _basicService.LocationInfoService.Repository.QueryData(x => x.RoadwayNo == "2" && x.LocationStatus == LocationStatusEnum.Free.ObjToInt()
-            && x.LocationType == (int)LocationTypeEnum.EmptyCube && x.EnableStatus == (int)EnableStatusEnum.Normal);
-            if (locationinfoData.Count < 20)
-            {
-                return content = WebResponseContent.Instance.OK(data: 1);
-            }
-            else
-            {
-                return content = WebResponseContent.Instance.OK(data: 3);
-            }
-        }
     }
 }

--
Gitblit v1.9.3