helongyang
2025-06-05 fe77f3c9d11e3087c1efa56fd6205ffc10e39991
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Reloaction.cs
@@ -32,6 +32,7 @@
                {
                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑璐т綅淇℃伅");
                }
                Dt_Task task = Repository.QueryFirst(x => x.TaskNum == taskNum);
                if (task == null)
                {
@@ -57,10 +58,24 @@
                    Dt_Task taskTemp = Repository.QueryFirst(x => x.PalletCode == stockInfo.PalletCode);
                    if (taskTemp != null)
                    {
                        return WebResponseContent.Instance.OK(data: taskTemp);
                        return WebResponseContent.Instance.OK(data: _mapper.Map<WMSTaskDTO>(taskTemp));
                    }
                    Dt_LocationInfo? newLocation = _basicService.LocationInfoService.AssignLocation(needRelocationItem.RoadwayNo, (PalletTypeEnum)task.PalletType, task.WarehouseId);
                    int heightType = 0;
                    if(needRelocationItem.Layer == 5)
                    {
                        heightType = 3;
                    }
                    else if(needRelocationItem.Layer == 4)
                    {
                        heightType = 2;
                    }
                    else if(needRelocationItem.Layer <= 3 && needRelocationItem.Layer >= 1)
                    {
                        heightType = 1;
                    }
                    Dt_LocationInfo? newLocation = _basicService.LocationInfoService.AssignLocation(needRelocationItem.RoadwayNo, task.PalletType, task.WarehouseId, needRelocationItem.LocationCode, heightType);
                    if (newLocation != null)
                    {
                        Dt_Task newTask = new Dt_Task()
@@ -77,20 +92,20 @@
                            TargetAddress = newLocation.LocationCode,
                            TaskNum = Repository.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
                            TaskStatus = 0,
                            TaskType = 0
                            TaskType = TaskTypeEnum.Relocation.ObjToInt()
                        };
                        _unitOfWorkManage.BeginTran();
                        Repository.AddData(newTask);
                        {
                            LocationStatusEnum lastStatus = (LocationStatusEnum)newLocation.LocationStatus;
                            _basicService.LocationInfoService.UpdateLocationStatus(newLocation, (PalletTypeEnum)task.PalletType, LocationStatusEnum.Lock, stockInfo.WarehouseId);
                            _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(newLocation, lastStatus, LocationChangeType.RelocationAssignLocation, taskNum: newTask.TaskNum);
                            _basicService.LocationInfoService.UpdateLocationStatus(newLocation, task.PalletType, LocationStatusEnum.Lock, stockInfo.WarehouseId);
                            _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(newLocation, lastStatus, LocationStatusEnum.Lock, LocationChangeType.RelocationAssignLocation, taskNum: newTask.TaskNum);
                        }
                        {
                            LocationStatusEnum lastStatus = (LocationStatusEnum)needRelocationItem.LocationStatus;
                            _basicService.LocationInfoService.UpdateLocationStatus(needRelocationItem, (PalletTypeEnum)task.PalletType, LocationStatusEnum.Lock, stockInfo.WarehouseId);
                            _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(needRelocationItem, lastStatus, LocationChangeType.RelocationAssignLocation, taskNum: newTask.TaskNum);
                            _basicService.LocationInfoService.UpdateLocationStatus(needRelocationItem, task.PalletType, LocationStatusEnum.Lock, stockInfo.WarehouseId);
                            _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(needRelocationItem, lastStatus, LocationStatusEnum.Lock, LocationChangeType.RelocationAssignLocation, taskNum: newTask.TaskNum);
                        }
                        stockInfo.StockStatus = StockStatusEmun.绉诲簱閿佸畾.ObjToInt();
                        _stockRepository.StockInfoRepository.UpdateData(stockInfo);
@@ -133,12 +148,14 @@
                {
                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑缁堢偣璐т綅淇℃伅");
                }
                task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
                FeedBackWCSTaskCompleted(task.TaskNum);
                _unitOfWorkManage.BeginTran();
                stockInfo.LocationCode = locationInfoEnd.LocationCode;
                stockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
                _stockService.StockInfoService.Repository.UpdateData(stockInfo);
                _basicService.LocationInfoService.UpdateLocationStatus(locationInfoStart, (PalletTypeEnum)stockInfo.PalletType, LocationStatusEnum.Free, stockInfo.WarehouseId);
                _basicService.LocationInfoService.UpdateLocationStatus(locationInfoEnd, (PalletTypeEnum)stockInfo.PalletType, LocationStatusEnum.InStock, stockInfo.WarehouseId);
                _basicService.LocationInfoService.UpdateLocationStatus(locationInfoStart, stockInfo.PalletType, LocationStatusEnum.Free, stockInfo.WarehouseId);
                _basicService.LocationInfoService.UpdateLocationStatus(locationInfoEnd, stockInfo.PalletType, LocationStatusEnum.InStock, stockInfo.WarehouseId);
                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.浜哄伐瀹屾垚 : WIDESEA_Core.Enums.OperateTypeEnum.鑷姩瀹屾垚);
                _unitOfWorkManage.CommitTran();
                return WebResponseContent.Instance.OK();