肖洋
2025-01-15 ef7ff6f2da6051b0a0db3babd61a29ed69e3e228
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
@@ -100,7 +100,7 @@
                WMSTaskDTO taskDTO = new WMSTaskDTO()
                {
                    TaskNum = task.TaskNum.Value,
                    Grade = 1,
                    Grade = task.Grade.Value,
                    PalletCode = task.PalletCode,
                    RoadWay = task.Roadway,
                    SourceAddress = task.SourceAddress,
@@ -186,6 +186,29 @@
            // 组盘信息
            // 将content.Data转换为ResultTrayCellsStatus对象
            var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString());
            if (!result.Success)
            {
                var taskNG = new Dt_Task
                {
                    CurrentAddress = input.Position,
                    Grade = 1,
                    Roadway = input.Roadways,
                    TargetAddress = stationManager.stationNGLocation,
                    Dispatchertime = DateTime.Now,
                    MaterialNo = "",
                    NextAddress = stationManager.stationNGChildCode,
                    OrderNo = null,
                    PalletCode = input.PalletCode,
                    SourceAddress = stationManager.stationLocation,
                    TaskState = (int)TaskInStatusEnum.Line_InFinish,
                    TaskType = (int)TaskOutboundTypeEnum.InToOut,
                    TaskNum = await BaseDal.GetTaskNo(),
                    Creater = "Systeam"
                };
                return taskNG;
            }
            if (result.SerialNos.Count <= 0)
            {
                ConsoleHelper.WriteErrorLine(result.MOMMessage);
@@ -218,7 +241,7 @@
            }
            // 处理异常电芯情况
            var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1).ToList();
            var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1 && x.SerialNoStatus != 4).ToList();
            if (serialNosError.Count > 0)
            {
                if (stationManager.stationType != 3)
@@ -303,6 +326,7 @@
        if (stationManager.stationType == 1)
        {
            #region
            // 创建一个TrayCellsStatusDto对象,并赋值
            TrayCellsStatusDto trayCells = new TrayCellsStatusDto()
            {
@@ -368,6 +392,7 @@
            ////// 调用GetProcessResponseAsync方法,获取工艺响应
            ////var processResponse = await GetProcessResponseAsync(process, input.Position);
            var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing);
            #endregion
        }
        var task = new Dt_Task
@@ -387,10 +412,13 @@
            TaskNum = await BaseDal.GetTaskNo(),
            Creater = "Systeam"
        };
        ConsoleHelper.WriteSuccessLine($"修改前:" + locationInfo.LocationStatus.ToString());
        int lastStatus = locationInfo.LocationStatus;
        ConsoleHelper.WriteSuccessLine($"修改前:" + lastStatus.ToString());
        locationInfo.LocationStatus = (int)LocationEnum.FreeDisable;
        ConsoleHelper.WriteSuccessLine($"修改后:" + locationInfo.LocationStatus.ToString());
        await UpdateLocationAsync(locationInfo);
        _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum);
        return task;
    }
@@ -504,7 +532,7 @@
            var task = new Dt_Task
            {
                CurrentAddress = input.Position,
                Grade = 1,
                Grade = 2,
                Roadway = input.Roadways,
                TargetAddress = stationManager.stationLocation,
                Dispatchertime = DateTime.Now,
@@ -672,10 +700,15 @@
            var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing);
            ConsoleHelper.WriteSuccessLine($"修改前:" + locationInfo.LocationStatus.ToString());
            int lastStatus = locationInfo.LocationStatus;
            ConsoleHelper.WriteSuccessLine($"修改前:" + lastStatus.ToString());
            locationInfo.LocationStatus = (int)LocationEnum.FreeDisable;
            ConsoleHelper.WriteSuccessLine($"修改后:" + locationInfo.LocationStatus.ToString());
            await UpdateLocationAsync(locationInfo);
            _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum);
            return task;
        }
        catch (Exception ex)
@@ -784,10 +817,13 @@
                            var content = JsonConvert.DeserializeObject<WebResponseContent>(result);
                            if (content.Status)
                            {
                                int lastStatus = item.LocationInfo.LocationStatus;
                                await BaseDal.AddDataAsync(task);
                                // 更新库存位置状态为不可用
                                item.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
                                await _locationRepository.UpdateDataAsync(item.LocationInfo);
                                _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(item.LocationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
                            }
                        }
                    }
@@ -823,7 +859,7 @@
                var location = locations.OrderBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).FirstOrDefault();
                var stockInfo = await QueryStockInfoForEmptyTrayAsync("CWSC1");
                var stockInfo = await QueryStockInfoForEmptyTrayAsync("CWSC1","10086");
                if (stockInfo != null)
                {
@@ -833,6 +869,7 @@
                    WMSTaskDTO wmsTask = CreateTaskDTO(task);
                    // 更新库存位置状态为不可用
                    int lastStatus = location.LocationStatus;
                    stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
                    location.LocationStatus = (int)LocationEnum.Distribute;
                    await _unitOfWorkManage.UseTranAsync(async () =>
@@ -841,6 +878,8 @@
                        await _locationRepository.UpdateDataAsync(stockInfo.LocationInfo);
                        await _locationRepository.UpdateDataAsync(location);
                    });
                    _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
                    // 返回成功响应
                    return content.OK(data: wmsTask);
@@ -867,7 +906,6 @@
            var stockInfo = _stockInfoRepository.Db.Queryable<DtStockInfo>()
                    .Includes(x => x.LocationInfo) // 预加载LocationInfo
                    .Includes(x => x.StockInfoDetails) // 预加载StockInfoDetails
                    .Where(x => x.AreaCode == "CWSC3" && x.IsFull == true) // 过滤条件
                    .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock) // 过滤条件
                    .OrderBy(x => x.OutboundTime) // 排序
@@ -901,10 +939,14 @@
            WMSTaskDTO taskDTO = CreateTaskDTO(task);
            int lastStatus = locationInfo.LocationStatus;
            BaseDal.AddData(task);
            stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
            _locationRepository.UpdateData(stockInfo.LocationInfo);
            _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(stockInfo.LocationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum);
            return content.OK(data: taskDTO);
        }
        catch (Exception ex)