1
huanghongfeng
2025-02-28 3163fec4985ebc87ea859087cdedacad749096d9
´úÂë¹ÜÀí/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/PartialTaskService_Outbound.cs
@@ -489,6 +489,7 @@
                                    loca.Add(newLocation);
                                    loca.Add(locationInfos);
                                    _basicService.LocationInfoService.UpdateData(loca);
                                    BaseDal.AddData(dt_Task);
                                    _unitOfWorkManage.CommitTran();
                                    return content = WebResponseContent.Instance.OK(data: dt_Task);
                                }
@@ -1215,10 +1216,33 @@
                    {
                        Dt_StockInfoDetail stocktdetail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == stockt.Id);
                        Dt_LocationInfo locationinfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == stockt.LocationCode);
                        Dt_Task_Hty task_Hty = new Dt_Task_Hty()
                        {
                            TaskNum = 001,
                            PalletCode = stockt.PalletCode,
                            Roadway = locationinfo.RoadwayNo,
                            TaskType = (int)TaskTypeEnum.Outbound,
                            TaskStatus = (int)OutTaskStatusEnum.OutFinish,
                            SourceAddress = locationinfo.LocationCode,
                            TargetAddress = locationinfo.LocationCode,
                            CurrentAddress = locationinfo.LocationCode,
                            NextAddress = locationinfo.LocationCode,
                            Grade = 1,
                            Dispatchertime = DateTime.Now,
                            Creater = App.User.UserName,
                        CreateDate = DateTime.Now,
                            ModifyDate = DateTime.Now,
                            Modifier = App.User.UserName,
                            Remark = "人工出库",
                            PLCTo = 1,
                            PalletCodequantity = 1,
                            MaterialType = 1
                        };
                        _taskHtyService.AddData(task_Hty);
                        locationinfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
                        dtstockt.Add(stockt);
                        locations.Add(locationinfo);
                        if (stockt.MaterialType == (int)InventoryMaterialType.空托)
                        if (stockt.MaterialType != (int)InventoryMaterialType.空托)
                        {
                            dtstocktdetail.Add(stocktdetail);
                        }
@@ -1232,10 +1256,7 @@
                }
                _unitOfWorkManage.BeginTran();
                _stockService.StockInfoService.Repository.DeleteData(dtstockt);
                if(dtstocktdetail.Count==0)
                {
                    _stockService.StockInfoDetailService.Repository.DeleteData(dtstocktdetail);
                }
                _stockService.StockInfoDetailService.Repository.DeleteData(dtstocktdetail);
                _basicService.LocationInfoService.Repository.UpdateData(locations);
                _unitOfWorkManage.CommitTran();
                content = WebResponseContent.Instance.OK();
@@ -1285,6 +1306,7 @@
                    BaseDal.DeleteData(task);
                    BaseDal.DeleteAndMoveIntoHty(task, OperateType.人工删除);
                    WriteLog.GetLog("任务日志").Write($"出库任务取消成功,托盘条码:{task.PalletCode}", $"任务取消");
                    WebResponseContent webResponseContent = HttpHelper.Post<WebResponseContent>(ReceiveWCSTask, task.TaskNum, "任务删除");
                    return content = WebResponseContent.Instance.Error($"出库任务取消成功");
                }
@@ -1307,6 +1329,42 @@
                    BaseDal.DeleteData(task);
                    BaseDal.DeleteAndMoveIntoHty(task, OperateType.人工删除);
                    WriteLog.GetLog("任务日志").Write($"入库任务取消成功,托盘条码:{task.PalletCode}", $"任务取消");
                    WebResponseContent webResponseContent = HttpHelper.Post<WebResponseContent>(ReceiveWCSTask, task.TaskNum, "任务删除");
                    return content = WebResponseContent.Instance.Error($"入库任务取消成功");
                }
                else if (task.TaskType == (int)TaskTypeEnum.RelocationIn)    //库内移库
                {
                    //处理出库的逻辑
                    Dt_LocationInfo locationinfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
                    if (locationinfo.LocationStatus == LocationStatusEnum.Lock.ObjToInt() || locationinfo.LocationStatus == LocationStatusEnum.PalletLock.ObjToInt())
                    {
                        locationinfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
                    }
                    _basicService.LocationInfoService.Repository.UpdateData(locationinfo);
                    Dt_LocationInfo locationinfo2 = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
                    if (locationinfo2.LocationStatus == LocationStatusEnum.Lock.ObjToInt())
                    {
                        locationinfo2.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
                    }
                    if (locationinfo2.LocationStatus == LocationStatusEnum.PalletLock.ObjToInt())
                    {
                        locationinfo2.LocationStatus = LocationStatusEnum.Pallet.ObjToInt();
                    }
                    _basicService.LocationInfoService.Repository.UpdateData(locationinfo2);
                    Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.QueryFirst(x => x.PalletCode == task.PalletCode);
                    stockInfo.StockStatus = (int)StockStatusEmun.已入库;
                    _stockService.StockInfoService.Repository.UpdateData(stockInfo);
                    Dt_StockInfoDetail stocktdetail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == stockInfo.Id);
                    if (stocktdetail != null)
                    {
                        stocktdetail.Status = (int)StockStatusEmun.已入库;
                        _stockService.StockInfoDetailService.Repository.UpdateData(stocktdetail);
                    }
                    BaseDal.DeleteData(task);
                    BaseDal.DeleteAndMoveIntoHty(task, OperateType.人工删除);
                    WriteLog.GetLog("任务日志").Write($"入库任务取消成功,托盘条码:{task.PalletCode}", $"任务取消");
                    WebResponseContent webResponseContent = HttpHelper.Post<WebResponseContent>(ReceiveWCSTask, task.TaskNum, "任务删除");
                    return content = WebResponseContent.Instance.Error($"入库任务取消成功");
                }
                else