雷神教育集团
2026-03-06 f2392d984123a1402d6c9bab9e5452c7becc8d22
ÏîÄ¿´úÂë/WMS/WMSServices/WIDESEA_TaskInfoService/MesTaskService.cs
@@ -228,6 +228,7 @@
                    //退料
                    List<Dt_StockInfo> stockInfos=new List<Dt_StockInfo>();
                    List<Dt_Task> tasksNew = new List<Dt_Task>();
                    List<Dt_AGVStationInfo> _AGVStationInfos = new List<Dt_AGVStationInfo>();
                    foreach (var item in returnIssueDTOs.Where(x => x.ReturnMaterial != null))
                    {
                        MESReturnMaterial? returnMaterial = item.ReturnMaterial;
@@ -243,13 +244,9 @@
                            return content.Error($"未找到条码{returnMaterial.BarCode}物料信息");
                        }
                        //判断
                        if (returnMaterial.Thickness <= 0 && materielInfo.WarehouseId==WarehouseEnum.LLDYL.ObjToInt())
                        if ((returnMaterial.Thickness <= 0 || returnMaterial.Wide <= 0)&& materielInfo.WarehouseId==WarehouseEnum.LLDYL.ObjToInt())
                        {
                            return content.Error($"物料{returnMaterial.MaterialCode}条码{returnMaterial.BarCode}直径不能小于0");
                        }
                        if (returnMaterial.Wide <= 0 && materielInfo.WarehouseId == WarehouseEnum.LLDYL.ObjToInt())
                        {
                            return content.Error($"物料{returnMaterial.MaterialCode}条码{returnMaterial.BarCode}直径不能小于0");
                            return content.Error($"物料{returnMaterial.MaterialCode}条码{returnMaterial.BarCode}直径或幅宽不能小于0");
                        }
                        Dt_StockInfo? stockInfoOld = stockInfosOld.FirstOrDefault(x => x.PalletCode == returnMaterial.BarCode);
                        if (stockInfoOld != null)
@@ -270,6 +267,7 @@
                            BatchNo = returnMaterial.MaterialLot,
                            Unit = materielInfo.MaterielUnit,
                            MaterielThickness = returnMaterial.Thickness,
                            CheckThickness= returnMaterial.Thickness,
                            MaterielWide = returnMaterial.Wide,
                            MaterielWeight = returnMaterial.Weight,
                            MaterielCode = materielInfo.MaterielCode,
@@ -280,7 +278,7 @@
                            IsPick = returnMaterial.Whether == 0 ? WhetherEnum.True.ObjToInt() : WhetherEnum.False.ObjToInt(),
                            Remark = StockStatusEmun.MES余料退库.ToString()
                        };
                        if (stockInfo.MaterielWide > 1200)
                        if (stockInfo.MaterielWide >= 1160)
                        {
                            stockInfo.PalletType = 2;
                        }
@@ -308,13 +306,27 @@
                        TaskTypeEnum taskTypeEnum = aGVStationInfo.StationArea switch
                        {
                            nameof(StationAreaEnum.一楼印刷) => TaskTypeEnum.PrintYLBackInbound,
                            nameof(StationAreaEnum.一楼纸张淋膜) => TaskTypeEnum.PaperLMYLBackInbound,
                            nameof(StationAreaEnum.一楼无纺淋膜) => TaskTypeEnum.WFBLMYLBackInbound,
                            nameof(StationAreaEnum.二楼无纺布袋) => TaskTypeEnum.WFBBackInbound,
                            nameof(StationAreaEnum.二楼纸袋) => TaskTypeEnum.PaperYLBackInbound,
                            _ => throw new Exception("未找到对应任务")
                        };
                        if (taskTypeEnum == TaskTypeEnum.WFBLMYLBackInbound || taskTypeEnum == TaskTypeEnum.WFBBackInbound)
                        {
                            Dt_AGVStationInfo? stationInfo = AssignWFBStation(_AGVStationInfos?.Select(x=>x.AGVStationCode).ToList()) ?? throw new Exception("未找到可用无纺布暂存架");
                            newTask.NextAddress = stationInfo.AGVStationCode;
                            newTask.TargetAddress = stationInfo.AGVStationCode;
                            newTask.Roadway = "AGV";
                            stationInfo.IsOccupied = 1;
                            _AGVStationInfos.Add(stationInfo);
                        }
                        newTask.TaskType = taskTypeEnum.ObjToInt();
                        tasksNew.Add(newTask);
                    }
                    _unitOfWorkManage.BeginTran();
                    BaseDal.AddData(tasksNew);
                    _basicRepository.AGVStationInfoRepository.UpdateData(_AGVStationInfos);
                    _stockRepository.StockInfoRepository.AddData(stockInfos);
                    _unitOfWorkManage.CommitTran();
                    //推送任务