huangxiaoqiang
2025-11-28 dfb67ae65d678da26d0fa880efa185591d6ff970
ÏîÄ¿´úÂë/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -105,6 +105,13 @@
        WebResponseContent content = new WebResponseContent();
        try
        {
            if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
            {
                var result1 = UpdateLocationStatus(task.SourceAddress, LocationEnum.Free, task.TaskNum.Value, StatusChangeTypeEnum.AutomaticOutbound);
                await _locationStatusChangeRecordRepository.AddDataAsync(result1.Item1);
                await _locationRepository.UpdateDataAsync(result1.Item2);
            }
            task.TaskState = (int)TaskOutStatusEnum.OutFinish;
            var taskHty = task.Adapt<Dt_Task_Hty>();
            taskHty.FinishTime = DateTime.Now;
@@ -113,6 +120,7 @@
            stock.ModifyDate = DateTime.Now;
            stock.LocationCode = task.TargetAddress;
            var result2 = UpdateLocationStatus(task.TargetAddress, LocationEnum.InStock, task.TaskNum.Value, StatusChangeTypeEnum.AutomaticOutbound);
            DtStockInfo_Hty stockInfo_Hty = stock.Adapt<DtStockInfo_Hty>();
            var orderDetails = _orderOutDetailsRepository.QueryData(x => x.PalletCode == task.PalletCode);
            List<Dt_OrderOutDetails_Hty> orderdetailshtys = new List<Dt_OrderOutDetails_Hty>();
@@ -172,8 +180,9 @@
                boxingInfo.BoxingInfoDetails = mergedDetails;
            }
            await _unitOfWorkManage.UseTranAsync(async () =>
            {
            //await _unitOfWorkManage.UseTranAsync(async () =>
            //{
            _unitOfWorkManage.BeginTran();
                await DeleteStockInfoAsync(stock.Id);
                _boxingInfoRepository.UpdateDataNav(boxingInfo);
                await DeleteStockInfoDetailsAsync(stock.StockInfoDetails);
@@ -185,12 +194,14 @@
                await DeleteTaskAsync(task.TaskId);
                await AddTaskHtyAsync(taskHty);
            });
            _unitOfWorkManage.CommitTran();
            //});
            content.OK("出库完成");
        }
        catch (Exception ex)
        {
            _unitOfWorkManage.RollbackTran();
            task.ErrorMessage = ex.Message;
            await BaseDal.UpdateDataAsync(task);
            return content.Error(ex.Message);
@@ -268,7 +279,15 @@
            {
                return content.Error("未找到组盘数据");
            }
            await ERPAllocate(boxinfo);
            if (task.TaskState.GetTaskStateGroup() == TaskStateGroup.CarryGroup)
            {
                var result1 = UpdateLocationStatus(task.SourceAddress, LocationEnum.Free, task.TaskNum.Value, StatusChangeTypeEnum.AutomaticInbound);
                await _locationStatusChangeRecordRepository.AddDataAsync(result1.Item1);
                await _locationRepository.UpdateDataAsync(result1.Item2);
            }
            var stock = CreateStock(boxinfo, task);
@@ -280,18 +299,22 @@
            var result2 = UpdateLocationStatus(task.TargetAddress, LocationEnum.InStock, task.TaskNum.Value, StatusChangeTypeEnum.AutomaticInbound);
            await _unitOfWorkManage.UseTranAsync(async () =>
            {
            //await _unitOfWorkManage.UseTranAsync(async () =>
            //{
            _unitOfWorkManage.BeginTran();
                await _stockInfoRepository.AddDataNavAsync(stock);
                await DeleteTaskAsync(task.TaskId);
                await AddTaskHtyAsync(taskHty);
                await _locationStatusChangeRecordRepository.AddDataAsync(result2.Item1);
                await _locationRepository.UpdateDataAsync(result2.Item2);
            });
            _unitOfWorkManage.CommitTran();
            //});
            await ERPAllocate(boxinfo);
            content.OK("入库完成");
        }
        catch (Exception ex)
        {
            _unitOfWorkManage.RollbackTran();
            task.ErrorMessage = ex.Message;
            await BaseDal.UpdateDataAsync(task);
            return content.Error(ex.Message);