肖洋
2024-12-11 f4163300190b9eca182419543540e3c1f2a8ebb6
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -262,12 +262,12 @@
        try
        {
            // 更新货位和库存信息
            (DtStockInfo updateStock, DtLocationInfo locationInf) = UpdateStockLocation(stock, task.NextAddress);
            (DtStockInfo updateStock, DtLocationInfo locationInForm, DtLocationInfo locationInfoTo) = UpdateStockLocation(stock, task);
            var taskHty = CreateHistoricalTask(task);
            LogFactory.GetLog("任务完成").InfoFormat(true, "移库任务完成", $"货位地址:{task.TargetAddress},修改后库存数据:{JsonConvert.SerializeObject(updateStock)},原先货位数据:{locationInf}");
            LogFactory.GetLog("任务完成").InfoFormat(true, "移库任务完成", $"货位地址:{task.TargetAddress},修改后库存数据:{JsonConvert.SerializeObject(updateStock)},原先货位数据:{locationInForm}");
            // 执行数据库事务
            bool isResult = await ExecuteTransaction(updateStock, taskHty, locationInf, task.TaskId);
            bool isResult = await ExecuteTransaction(updateStock, taskHty, locationInForm, locationInfoTo, task.TaskId);
            if (isResult)
                content.OK("移库任务完成成功");
            else
@@ -522,6 +522,8 @@
                LogFactory.GetLog("任务完成").InfoFormat(true, "出库任务", "");
                return await CompleteStackTaskAsync(task, stock);
            case (int)TaskRelocationTypeEnum.Relocation:
                return await CompleteTransferTaskAsync(task, stock);
            default:
                return content.Error("任务类型不存在");
        }
@@ -1450,20 +1452,19 @@
    /// <param name="stock">库存对象</param>
    /// <param name="toLocation">目标位置</param>
    // 更新库存和位置信息
    private (DtStockInfo, DtLocationInfo) UpdateStockLocation(DtStockInfo stock, string toLocation)
    private (DtStockInfo, DtLocationInfo, DtLocationInfo) UpdateStockLocation(DtStockInfo stock, Dt_Task task)
    {
        // 获取库存信息
        var locationInfo = _locationRepository.QueryFirst(x => x.LocationCode == stock.LocationCode);
        // 将库存状态设置为在库
        locationInfo.LocationStatus = LocationEnum.InStock.ObjToInt();
        //修改来源库位和 目标库位状态
        var fromLocation = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway);
        fromLocation.LocationStatus = LocationEnum.Free.ObjToInt();
        var toLocation = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway);
        toLocation.LocationStatus = LocationEnum.InStock.ObjToInt();
        // 将库存位置设置为目标位置
        stock.LocationCode = toLocation;
        // 将库存状态设置为在库
        stock.LocationInfo.LocationStatus = LocationEnum.InStock.ObjToInt();
        stock.LocationCode = task.TargetAddress;
        // 返回更新后的库存和位置信息
        return (stock, locationInfo);
        return (stock, fromLocation, toLocation);
    }
    /// <summary>