huangxiaoqiang
2025-03-04 64b22157cf84fcb6d3cecee4d864f1af9e298f4c
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -194,6 +194,7 @@
            (var loc, var tas) = UpdateStockAndTaskStatus(stock, task);
            var taskHty = task.Adapt<Dt_Task_Hty>();
            taskHty.FinishTime = DateTime.Now;
            taskHty.OperateType = (int)OperateTypeEnum.自动完成;
            DtStockInfo_Hty stockInfo_Hty = stock.Adapt<DtStockInfo_Hty>();
            stockInfo_Hty.ModifyDate = DateTime.Now;
@@ -895,7 +896,7 @@
                List<string> strings = stationManagers.Roadway.Split(',').ToList();
                Console.WriteLine(strings.ToJsonString() + "b-----------------------");
                //// 调用CreateNewTask方法,创建新任务
                content = await CreateNewTask(input, result.ProductionLine,result.ProcessCode, strings);
                content = await CreateNewTask(input, result.ProductionLine, result.ProcessCode, strings);
                if (content.Status)
                {
                    var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing);
@@ -1026,6 +1027,7 @@
                var boxing = CreateBoxingInfo(result, input.PalletCode);
                if (boxing == null) return content.Error("组盘失败");
                input.ProductionLine = result.ProductionLine;
                return await ProcessBasedOnProcessCode(boxing, area, input, result);
            }
        }
@@ -1126,7 +1128,7 @@
            }
            List<string> strings = stationManagers.Roadway.Split(',').ToList();
            return await CreateNewTask(input, result.ProductionLine, result.ProcessCode,strings, 1);
            return await CreateNewTask(input, result.ProductionLine, result.ProcessCode, strings, 1);
        }
        catch (Exception)
        {
@@ -1280,7 +1282,7 @@
        var devices = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>()
            .Where(x => x.DeviceStatus == "1")
            .Where(x => x.DeviceRemark == "1")
            .Where(x => x.DeviceCode.Contains("CWSC"))
            .ToList();
        var deviceCode = devices.Select(x => x.DeviceCode).ToList();
@@ -1732,7 +1734,7 @@
                        TaskNum = await BaseDal.GetTaskNo(),
                        Creater = "Systeam",
                        ProductionLine = result.ProductionLine,
                        ProcessCode=result.ProcessCode,
                        ProcessCode = result.ProcessCode,
                    };
                    // 创建WMS任务
@@ -2032,7 +2034,7 @@
    private Dt_Task_Hty CreateHistoricalTask(Dt_Task task, bool isHand = false)
    {
        // 更新任务状态
        task.TaskState = TaskOutStatusEnum.OutFinish.ObjToInt();
        task.TaskState = task.TaskType > 199 ? (int)TaskInStatusEnum.InFinish : (int)TaskOutStatusEnum.OutFinish;
        task.CurrentAddress = task.NextAddress;
        // 创建历史任务
@@ -2045,7 +2047,7 @@
        {
            taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System";
        }
        taskHty.TaskState = TaskOutStatusEnum.OutFinish.ObjToInt();
        taskHty.TaskState = task.TaskType > 199 ? (int)TaskInStatusEnum.InFinish : (int)TaskOutStatusEnum.OutFinish;
        return taskHty;
    }
@@ -2103,19 +2105,32 @@
            if (stock.IsFull)
            {
                // 查询符合条件的库存信息
                var stocks = _stockInfoRepository.QueryData(x => x.AreaCode == stock.AreaCode && x.ProductionLine == stock.ProductionLine && x.SpecialParameterDuration != stock.SpecialParameterDuration);
                // 查询任务信息
                var tasks = BaseDal.QueryData(x => x.PalletCode != stock.PalletCode && x.ProductionLine == stock.ProductionLine).Select(x => x.PalletCode).ToList();
                if (stocks != null && stocks.Count > 0)
                {
                    foreach (var item in stocks)
                    // 过滤出需要更新的库存信息
                    var stocksToUpdate = stocks.Where(item => !tasks.Contains(item.PalletCode)).ToList();
                    foreach (var item in stocksToUpdate)
                    {
                        // 更新库存信息的特定参数
                        item.SpecialParameterDuration = stock.SpecialParameterDuration;
                        item.ParameterInfos = stock.ParameterInfos;
                        item.OutboundTime = Convert.ToDateTime(item.LinedProcessFeedbackTime == null ? item.CreateDate : item.LinedProcessFeedbackTime).AddHours(Convert.ToDouble(stock.SpecialParameterDuration));
                    }
                    var isUpdates = await _stockInfoRepository.UpdateDataAsync(stocks);
                    if (stocksToUpdate.Count > 0)
                    {
                        // 异步更新库存信息
                        var isUpdates = await _stockInfoRepository.UpdateDataAsync(stocksToUpdate);
                    }
                }
            }
            // 添加历史任务
            var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0;