wangxinhui
2026-02-03 261ec6b250b3aea2d26e629203c7d699747c27ea
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_TaskInfoService/TaskService_Inbound.cs
@@ -982,6 +982,19 @@
                    {
                        agvstation.IsOccupied = WhetherEnum.False.ObjToInt();
                    }
                    //叠盘任务单独完成
                    if (task.TaskType==TaskTypeEnum.EmptyStackPlate.ObjToInt())
                    {
                        task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
                        _unitOfWorkManage.BeginTran();
                        if (agvstation != null)
                        {
                            _basicRepository.AGVStationInfoRepository.UpdateData(agvstation);
                        }
                        BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? WIDESEA_Core.Enums.OperateTypeEnum.人工完成 : WIDESEA_Core.Enums.OperateTypeEnum.自动完成);
                        _unitOfWorkManage.CommitTran();
                        return content.OK();
                    }
                    Dt_ProStockInfo proStockInfo = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo>().Where(x => x.PalletCode == task.PalletCode).Includes(x=>x.proStockInfoDetails).First();
                    if (proStockInfo != null && proStockInfo.StockStatus == StockStatusEmun.MES空托退库.ObjToInt())
                    {
@@ -1226,7 +1239,7 @@
        /// <summary>
        /// æˆå“ç©ºæ‰˜å›žåº“
        /// </summary>
        public WebResponseContent EmptyBackTask(string barCode, string startPoint)
        public WebResponseContent EmptyBackTask(string barCode, string startPoint,int target)
        {
            WebResponseContent content = new WebResponseContent();
            try
@@ -1253,41 +1266,64 @@
                {
                    return content.Error($"托盘{barCode}任务已存在");
                }
                Dt_ProStockInfo proStockInfoOld = _stockRepository.ProStockInfoRepository.QueryFirst(x => x.PalletCode == barCode);
                if (proStockInfoOld!=null)
                Dt_Task newTask = null;
                Dt_ProStockInfo proStockInfo = null;
                if (target==WhetherEnum.False.ObjToInt())//叠盘空托任务
                {
                    return content.Error($"托盘{barCode}已存在");
                    newTask = new Dt_Task()
                    {
                        CurrentAddress = startPoint,
                        Grade = 0,
                        NextAddress = "",
                        PalletCode = barCode,
                        Roadway = agvstation.AGVStationCode.StartsWith("PNT_1") ? "StackPlate1": "StackPlate2",
                        SourceAddress = startPoint,
                        TargetAddress = "",
                        TaskType = TaskTypeEnum.EmptyStackPlate.ObjToInt(),
                        TaskStatus = TaskStatusEnum.New.ObjToInt(),
                        WarehouseId = WarehouseEnum.LLDFL.ObjToInt(),
                        PalletType = 1
                    };
                }
                //分配巷道
                string roadWay=AssignCPRoadwayNo();
                Dt_ProStockInfo proStockInfo = new Dt_ProStockInfo()
                else //立库空托任务
                {
                    PalletCode=barCode,
                    ProStockAttribute=ProStockAttributeEnum.空托.ObjToInt(),
                    PalletType=1,
                    LocationCode="",
                    WarehouseId= WarehouseEnum.LLDFL.ObjToInt(),
                    StockStatus=StockStatusEmun.MES空托退库.ObjToInt()
                };
                Dt_Task newTask = new Dt_Task()
                {
                    CurrentAddress = startPoint,
                    Grade = 0,
                    NextAddress = "",
                    PalletCode = barCode,
                    Roadway = roadWay,
                    SourceAddress = startPoint,
                    TargetAddress = "",
                    TaskType = TaskTypeEnum.EmptyProductBack.ObjToInt(),
                    TaskStatus = TaskStatusEnum.New.ObjToInt(),
                    WarehouseId = WarehouseEnum.LLDFL.ObjToInt(),
                    PalletType = 1
                };
                    Dt_ProStockInfo proStockInfoOld = _stockRepository.ProStockInfoRepository.QueryFirst(x => x.PalletCode == barCode);
                    if (proStockInfoOld != null)
                    {
                        return content.Error($"托盘{barCode}已存在");
                    }
                    //分配巷道
                    string roadWay = AssignCPRoadwayNo();
                    proStockInfo = new Dt_ProStockInfo()
                    {
                        PalletCode = barCode,
                        ProStockAttribute = ProStockAttributeEnum.空托.ObjToInt(),
                        PalletType = 1,
                        LocationCode = "",
                        WarehouseId = WarehouseEnum.LLDFL.ObjToInt(),
                        StockStatus = StockStatusEmun.MES空托退库.ObjToInt()
                    };
                    newTask = new Dt_Task()
                    {
                        CurrentAddress = startPoint,
                        Grade = 0,
                        NextAddress = "",
                        PalletCode = barCode,
                        Roadway = roadWay,
                        SourceAddress = startPoint,
                        TargetAddress = "",
                        TaskType = TaskTypeEnum.EmptyProductBack.ObjToInt(),
                        TaskStatus = TaskStatusEnum.New.ObjToInt(),
                        WarehouseId = WarehouseEnum.LLDFL.ObjToInt(),
                        PalletType = 1
                    };
                }
                _unitOfWorkManage.BeginTran();
                int taskId = BaseDal.AddData(newTask);
                _stockRepository.ProStockInfoRepository.AddData(proStockInfo);
                if (proStockInfo!=null)
                {
                    _stockRepository.ProStockInfoRepository.AddData(proStockInfo);
                }
                newTask.TaskId = taskId;
                _unitOfWorkManage.CommitTran();
                //推送任务