Jelajahi Sumber

Merge branch '分拣二次码垛' of http://120.77.11.229:3000/zuolinhao/WcsFramework into 分拣二次码垛

林豪 左 1 tahun lalu
induk
melakukan
69274edd30

+ 61 - 73
业务工程/分拣库/WCS.WorkEngineering/Systems/AgvSystems.cs

@@ -157,56 +157,42 @@ namespace WCS.WorkEngineering.Systems
                                             {
                                                 case "1N":
                                                     positionList.AddRange(new List<string>() { "2501", "2505", "2509", "2513" });
-                                                    allPositionList.AddRange(new List<string>() { 
-                                                        "2701", "2705", "2709", "2713", 
-                                                        "2901", "2905", "2909", "2913","3101", "3105", "3109", "3113",
-                                                        "3301", "3305", "3309", "3313","3501", "3505", "3509", "3513"});
+                                                    allPositionList.AddRange(new List<string>() {                                                        
+                                                        "2901", "2905", "2909", "2913" });
                                                     break;
 
                                                 case "1S":
                                                     positionList.AddRange(new List<string>() { "2701", "2705", "2709", "2713"/*"2501", "2505", "2509", "2513"*/ });
-                                                    allPositionList.AddRange(new List<string>() { 
-                                                        "2501", "2505", "2509", "2513",
-                                                        "3101", "3105", "3109", "3113","2901", "2905", "2909", "2913",
-                                                        "3501", "3505", "3509", "3513","3301", "3305", "3309", "3313"});
+                                                    allPositionList.AddRange(new List<string>() {                                                       
+                                                        "3101", "3105", "3109", "3113"});
                                                     break;
 
                                                 case "2N":
                                                     positionList.AddRange(new List<string>() { "2901", "2905", "2909", "2913" });
                                                     allPositionList.AddRange(new List<string>() { 
-                                                        "3101", "3105", "3109", "3113",
-                                                        "2501", "2505", "2509", "2513","2701", "2705", "2709", "2713",
-                                                        "3301", "3305", "3309", "3313","3501", "3505", "3509", "3513"});
+                                                        "2501" , "2505" , "2509" , "2513" , "3301" , "3305" , "3309" , "3313"});
                                                     break;
 
                                                 case "2S":
                                                     positionList.AddRange(new List<string>() { "3101", "3105", "3109", "3113"/*"2501", "2505", "2509", "2513"*/ });
                                                     allPositionList.AddRange(new List<string>() { 
-                                                        "2901", "2905", "2909", "2913",
-                                                        "2701", "2705", "2709", "2713","2501", "2505", "2509", "2513",
-                                                        "3501", "3505", "3509", "3513","3301", "3305", "3309", "3313"});
+                                                        "2701" , "2705" , "2709" , "2713" , "3501" , "3505" , "3509" , "3513"});
                                                     break;
 
                                                 case "3N":
                                                     positionList.AddRange(new List<string>() { "3301", "3305", "3309", "3313" });
-                                                    allPositionList.AddRange(new List<string>() {
-                                                        "3501", "3505", "3509", "3513",
-                                                        "2901", "2905", "2909", "2913","3101", "3105", "3109", "3113",
-                                                        "2501", "2505", "2509", "2513","2701", "2705", "2709", "2713"});
+                                                    allPositionList.AddRange(new List<string>() { "2901", "2905", "2909", "2913" });
                                                     break;
 
                                                 case "3S":
                                                     positionList.AddRange(new List<string>() { "3501", "3505", "3509", "3513" });
-                                                    allPositionList.AddRange(new List<string>() {
-                                                        "3301", "3305", "3309", "3313",
-                                                        "3101", "3105", "3109", "3113","2901", "2905", "2909", "2913",
-                                                        "2701", "2705", "2709", "2713","2501", "2505", "2509", "2513"});
+                                                    allPositionList.AddRange(new List<string>() { "3101", "3105", "3109", "3113" });
                                                     break;
                                             }
 
                                             List<WCS_AgvTaskInfo> agvs = new List<WCS_AgvTaskInfo>();
                                             List<WCS_AgvTaskInfo> agvsAll = new List<WCS_AgvTaskInfo>();
-                                            if (task.LastInteractionPoint == "2")
+                                            //if (task.LastInteractionPoint == "2")
                                             {
                                                 //当前可用地址正在执行的任务
                                                 agvs = db.Default.Queryable<WCS_AgvTaskInfo>().Where(v => v.Status > AGVTaskStatus.Confirm && v.Status < AGVTaskStatus.MissionCompleted && v.TaskType == AGVTaskType.EnterDepot && positionList.Contains(v.Station))
@@ -219,6 +205,7 @@ namespace WCS.WorkEngineering.Systems
                                                 var endDev = positionList.Where(x => !agvPositionLists.Contains(x)).ToList();
                                                 var endAllDev = allPositionList.Where(x => !agvPositionListsAll.Contains(x)).ToList();
                                                 World.Log($"agv可用巷道信息:{JsonConvert.SerializeObject(endDev)}");
+                                                World.Log($"agv可用巷道信息(所有):{JsonConvert.SerializeObject(endAllDev)}");
 
                                                 if (!endDev.Any() && !endAllDev.Any())//没有可用放货站台
                                                 {
@@ -245,14 +232,14 @@ namespace WCS.WorkEngineering.Systems
                                                     devsAll = devsAll.Where(x =>
                                                         !x.Data3.Status.HasFlag(StationStatus.Run) &&
                                                         !x.Data3.Status.HasFlag(StationStatus.PH_Status) &&
-                                                        x.Data3.Status.HasFlag(StationStatus.Auto)).ToList();
+                                                        x.Data3.Status.HasFlag(StationStatus.Auto)).OrderBy(v=> allPositionList.Contains(v.Entity.Code)).ToList();
                                                     if (!devs.Any())
                                                     {
                                                         if (devsAll.Any())
                                                         {
                                                             foreach (var dev in devsAll)
                                                             {
-                                                                if (dev.Data3.Status.HasFlag(StationStatus.Run) && !dev.Data3.Status.HasFlag(StationStatus.PH_Status) &&
+                                                                if (!dev.Data3.Status.HasFlag(StationStatus.Run) && !dev.Data3.Status.HasFlag(StationStatus.PH_Status) &&
                                                                                                                   dev.Data3.Status.HasFlag(StationStatus.Auto))
                                                                 {
                                                                     World.Log($"任务执行过程:开始{agv.ID}-{JsonConvert.SerializeObject(devsAll.Select(x => x.Entity.Code).ToList())}");
@@ -291,57 +278,58 @@ namespace WCS.WorkEngineering.Systems
                                                     throw new Exception($"执行错误:{e.Message + e.StackTrace}");
                                                 }
                                             }
-                                            else
-                                            {
-                                                //当前可用地址正在执行的任务
-                                                agvs = db.Default.Queryable<WCS_AgvTaskInfo>().Where(v => v.Status > AGVTaskStatus.Confirm && v.Status < AGVTaskStatus.MissionCompleted && v.TaskType == AGVTaskType.EnterDepot && positionList.Contains(v.Station))
-                                                    .SplitTable(v => v.Take(2)).ToList();
-                                                var agvPositionList = agvs.Select(x => x.Station).Distinct();
-                                                //World.Log($"执行中的AGV任务目标地址:{JsonConvert.SerializeObject(agvPositionList)}");
-                                                var endDevs = positionList.Where(x => !agvPositionList.Contains(x)).ToList();
-                                                World.Log($"agv可用巷道信息:{JsonConvert.SerializeObject(endDevs)}");
+                                            #region ELSE
+                                            //else
+                                            //{
+                                            //    //当前可用地址正在执行的任务
+                                            //    agvs = db.Default.Queryable<WCS_AgvTaskInfo>().Where(v => v.Status > AGVTaskStatus.Confirm && v.Status < AGVTaskStatus.MissionCompleted && v.TaskType == AGVTaskType.EnterDepot && positionList.Contains(v.Station))
+                                            //        .SplitTable(v => v.Take(2)).ToList();
+                                            //    var agvPositionList = agvs.Select(x => x.Station).Distinct();
+                                            //    //World.Log($"执行中的AGV任务目标地址:{JsonConvert.SerializeObject(agvPositionList)}");
+                                            //    var endDevs = positionList.Where(x => !agvPositionList.Contains(x)).ToList();
+                                            //    World.Log($"agv可用巷道信息:{JsonConvert.SerializeObject(endDevs)}");
 
-                                                if (!endDevs.Any())//没有可用放货站台
-                                                {
-                                                    var msg = "已无可用放货站台,任务正在执行中:";
-                                                    foreach (var ag in agvs)
-                                                    {
-                                                        msg += $"[任务号:{ag.ID},目标地址:{ag.Station}]";
-                                                    }
-                                                    throw new Exception(msg);
-                                                }
+                                            //    if (!endDevs.Any())//没有可用放货站台
+                                            //    {
+                                            //        var msg = "已无可用放货站台,任务正在执行中:";
+                                            //        foreach (var ag in agvs)
+                                            //        {
+                                            //            msg += $"[任务号:{ag.ID},目标地址:{ag.Station}]";
+                                            //        }
+                                            //        throw new Exception(msg);
+                                            //    }
 
-                                                //获取没有光电信息的设备集合
-                                                try
-                                                {
-                                                    var devs = Device.All.Where(x => endDevs.Contains(x.Code)).Select(x =>
-                                                        new Device<IStation520, IStation521, IStation523>(x, World));
-                                                    devs = devs.Where(x =>
-                                                        !x.Data3.Status.HasFlag(StationStatus.Run) &&
-                                                        !x.Data3.Status.HasFlag(StationStatus.PH_Status) &&
-                                                        x.Data3.Status.HasFlag(StationStatus.Auto)).ToList();
-                                                    if (!devs.Any())
-                                                    {
-                                                        World.Log("可用站台均有货或有执行中任务");
-                                                        return;
-                                                    }
+                                            //    //获取没有光电信息的设备集合
+                                            //    try
+                                            //    {
+                                            //        var devs = Device.All.Where(x => endDevs.Contains(x.Code)).Select(x =>
+                                            //            new Device<IStation520, IStation521, IStation523>(x, World));
+                                            //        devs = devs.Where(x =>
+                                            //            !x.Data3.Status.HasFlag(StationStatus.Run) &&
+                                            //            !x.Data3.Status.HasFlag(StationStatus.PH_Status) &&
+                                            //            x.Data3.Status.HasFlag(StationStatus.Auto)).ToList();
+                                            //        if (!devs.Any())
+                                            //        {
+                                            //            World.Log("可用站台均有货或有执行中任务");
+                                            //            return;
+                                            //        }
 
-                                                    World.Log($"任务执行过程:开始{agv.ID}-{JsonConvert.SerializeObject(devs.Select(x => x.Entity.Code).ToList())}");
-                                                    agv.Status = AGVTaskStatus.Complete1;
-                                                    agv.Station = devs.MinBy(x => x.Entity.Code).Entity.Code;
-                                                    db.Default.UpdateableRowLock(agv).SplitTable(x => x.Take(2)).ExecuteCommand();
-                                                    World.Log($"任务执行过程:完成agv任务更新{agv.ID}--{agv.Station}");
-                                                    task.AddWCS_TASK_DTL(db.Default, "皮盘返库任务分配巷道", agv.Station, $"任务分配至:{agv.Station}");
-                                                    World.Log($"任务执行过程:完成任务明细添加{agv.Station}");
-                                                    AgvApi.ContinueTask(agv.AgvID, agv.Station);
-                                                    World.Log($"任务执行过程:任务成功下发AGV{agv.AgvID}--{agv.Station}");
-                                                }
-                                                catch (Exception e)
-                                                {
-                                                    throw new Exception($"执行错误:{e.Message + e.StackTrace}");
-                                                }
-                                            }
-                                            
+                                            //        World.Log($"任务执行过程:开始{agv.ID}-{JsonConvert.SerializeObject(devs.Select(x => x.Entity.Code).ToList())}");
+                                            //        agv.Status = AGVTaskStatus.Complete1;
+                                            //        agv.Station = devs.MinBy(x => x.Entity.Code).Entity.Code;
+                                            //        db.Default.UpdateableRowLock(agv).SplitTable(x => x.Take(2)).ExecuteCommand();
+                                            //        World.Log($"任务执行过程:完成agv任务更新{agv.ID}--{agv.Station}");
+                                            //        task.AddWCS_TASK_DTL(db.Default, "皮盘返库任务分配巷道", agv.Station, $"任务分配至:{agv.Station}");
+                                            //        World.Log($"任务执行过程:完成任务明细添加{agv.Station}");
+                                            //        AgvApi.ContinueTask(agv.AgvID, agv.Station);
+                                            //        World.Log($"任务执行过程:任务成功下发AGV{agv.AgvID}--{agv.Station}");
+                                            //    }
+                                            //    catch (Exception e)
+                                            //    {
+                                            //        throw new Exception($"执行错误:{e.Message + e.StackTrace}");
+                                            //    }
+                                            //}
+                                            #endregion
                                             break;
                                         }
                                     //取货站点安全交互

+ 1 - 1
业务工程/分拣库/WCS.WorkEngineering/Systems/NoInteractionSystems.cs

@@ -102,7 +102,7 @@ namespace WCS.WorkEngineering.Systems
                                     task.AgvTaskID = agv.ID;
                                     task.Status = Entity.TaskStatus.WaitingToExecute;
                                     db.Default.UpdateableRowLock(task).UpdateColumns(x => new { x.Status, x.AgvTaskID }).ExecuteCommand();
-                                    task.AddWCS_TASK_DTL(db.Default, task.Device, $"初始化单独皮盘任务");
+                                    task.AddWCS_TASK_DTL(db.Default, task.Device, $"初始化单独皮盘任务");
                                 }
                                 else
                                 {

+ 6 - 5
业务工程/分拣库/WCS.WorkEngineering/Systems/RGVSystems.cs

@@ -72,7 +72,7 @@ namespace WCS.WorkEngineering.Systems
                             World.Log($"任务处理:开始-取货完成-任务号[{obj.Data2.TaskNumber}]起始地址[{obj.Data2.StartPosition}]目标地址[{obj.Data2.DestPosition}]");
                             //开始申请读码信息
                             var bcrCode = obj.Data3.GetBCRCode();
-                            if (bcrCode.IsNullOrWhiteSpace())
+                            if (bcrCode.IsNullOrWhiteSpace() || bcrCode.Contains(":"))
                             {
                                 World.Log("扫码失败,内容为空", LogLevelEnum.Mid);
                                 return;
@@ -187,9 +187,9 @@ namespace WCS.WorkEngineering.Systems
                                     startPosition.Data.GoodsEnd = 0;
                                     World.Log($"任务处理:初始化取货点{startPosition.Entity.Code}任务及目标地址信息");
                                 }
-                                else {
-                                    return;
-                                }
+                                //else {
+                                //    return;
+                                //}
 
                                 //目标地址是码垛工位
                                 if (isPalletizing)
@@ -340,7 +340,8 @@ namespace WCS.WorkEngineering.Systems
                     .Where(x => !x.Data3.Status.HasFlag(StationStatus.PH_Status))
                     .Where(x => !x.Data3.Status.HasFlag(StationStatus.OT_Status))
                     .Select(x => x.Entity.Code.ToShort());
-                var devList = devs.OrderBy(x => x.Entity.Code).Where(x => putDev.Contains(x.Data.GoodsEnd));
+                //var devList = devs.OrderBy(x => x.Entity.Code).Where(x => putDev.Contains(x.Data.GoodsEnd));
+                var devList = devs.OrderBy(x => x.Data.TaskNumber).Where(x => putDev.Contains(x.Data.GoodsEnd));
 
                 if (!devList.Any())
                 {

+ 66 - 11
业务工程/分拣库/WCS.WorkEngineering/Systems/分拣支线/环形库分流点.cs

@@ -1,4 +1,5 @@
-using PlcSiemens.Core.Extension;
+using NetTaste;
+using PlcSiemens.Core.Extension;
 using ServiceCenter.Extensions;
 using ServiceCenter.Logs;
 using ServiceCenter.SqlSugars;
@@ -69,14 +70,27 @@ namespace WCS.WorkEngineering.Systems
             {
                 var db = _db.Default;
                 var taskInfo = db.Queryable<WCS_TaskInfo>().UpdLock().First(v => v.ID == obj.Data2.TaskNumber && v.Status < TaskStatus.FinishOfShunt && !v.BarCode.Contains("Error"));
-                if (obj.Data2.TaskNumber == 1)
+                if (obj.Data2.TaskNumber == 1 || obj.Data2.TaskNumber == 3 || obj.Data2.TaskNumber == 2)
                 {
                     var type = goodsType.ToString();
                     //找到一条起点是当前位置且状态小于2的任务
                     taskInfo = db.Queryable<WCS_TaskInfo>().UpdLock().OrderBy(x => x.AddTime).First(x => x.AddrFrom == obj.Entity.Code && x.BarCode.Contains("Error") && x.AddrNext == null && x.GoodsType == goodsType);
                     if (taskInfo == null)
                     {
-                        WmsApi.PalletizingCreateseErrorTasks(obj.Entity.Code, type);
+                        if (obj.Data2.TaskNumber == 1)
+                        {
+                            WmsApi.PalletizingCreateseErrorTasks(obj.Entity.Code, type);
+                        }
+                        //bc质量
+                        else if (obj.Data2.TaskNumber == 3)
+                        {
+                            WmsApi.PalletizingCreateseErrorTasks(obj.Entity.Code, type, 3);
+                        }
+                        //南北流错
+                        else if (obj.Data2.TaskNumber == 2)
+                        {
+                            WmsApi.PalletizingCreateseErrorTasks(obj.Entity.Code, type, 2);
+                        }
                         return;
                     }
                     if (taskInfo.Status == TaskStatus.NewBuild)
@@ -90,14 +104,23 @@ namespace WCS.WorkEngineering.Systems
                     World.Log($"未找到对应的WCS任务{obj.Data2.TaskNumber}", LogLevelEnum.Mid);
                     return;
                 }
-                else if (taskInfo.AddTime < DateTime.Now.AddHours(-12) && obj.Data2.TaskNumber == taskInfo.ID)
+                else if (taskInfo.AddTime < DateTime.Now.AddHours(-12)  && obj.Data2.TaskNumber == taskInfo.ID)
                 {
                     obj.Data.TaskNumber = 1;
                     obj.Data.GoodsEnd = obj.Entity.Code.ToShort();
                     obj.Data.VoucherNo++;
-                    World.Log($"执行记录:任务号[{taskInfo.ID}]-[{obj.Data.TaskNumber}]-[{obj.Data.VoucherNo}]");
+                    World.Log($"超时执行记录:任务号[{taskInfo.ID}]-[{obj.Data.TaskNumber}]-[{obj.Data.VoucherNo}]");
+                    return;
+                }
+                else if (taskInfo.Grade != null &&(taskInfo.Grade.ToUpper() == "B" || taskInfo.Grade.ToUpper() == "C")  && obj.Data2.TaskNumber == taskInfo.ID)
+                {
+                    obj.Data.TaskNumber = 3;
+                    obj.Data.GoodsEnd = obj.Entity.Code.ToShort();
+                    obj.Data.VoucherNo++;
+                    World.Log($"BC执行记录:任务号[{taskInfo.ID}]-[{obj.Data.TaskNumber}]-[{obj.Data.VoucherNo}]");
                     return;
                 }
+                
 
                 if (!taskInfo.BarCode.Contains("Error"))
                 {
@@ -125,27 +148,51 @@ namespace WCS.WorkEngineering.Systems
                 switch (obj.Entity.Code)
                 {
                     case "418":
-                        if (taskInfo.WarehouseCode != "1N") throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
+                        if (taskInfo.WarehouseCode != "1N") //throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
+                        {                            
+                            WriteInfo(obj,taskInfo);
+                            return;
+                        }                       
                         break;
 
                     case "618":
-                        if (taskInfo.WarehouseCode != "1S") throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
+                        if (taskInfo.WarehouseCode != "1S") //throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
+                        {
+                            WriteInfo(obj, taskInfo);
+                            return;
+                        }
                         break;
 
                     case "818":
-                        if (taskInfo.WarehouseCode != "2N") throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
+                        if (taskInfo.WarehouseCode != "2N") //throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
+                        {
+                            WriteInfo(obj, taskInfo);
+                            return;
+                        }
                         break;
 
                     case "1018":
-                        if (taskInfo.WarehouseCode != "2S") throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
+                        if (taskInfo.WarehouseCode != "2S") //throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
+                        {
+                            WriteInfo(obj, taskInfo);
+                            return;
+                        }
                         break;
 
                     case "1218":
-                        if (taskInfo.WarehouseCode != "3N") throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
+                        if (taskInfo.WarehouseCode != "3N") //throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
+                        {
+                            WriteInfo(obj, taskInfo);
+                            return;
+                        }
                         break;
 
                     case "1418":
-                        if (taskInfo.WarehouseCode != "3S") throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
+                        if (taskInfo.WarehouseCode != "3S") //throw new KnownException($"当前任务应该当前往{taskInfo.WarehouseCode}库", LogLevelEnum.Mid);
+                        {
+                            WriteInfo(obj, taskInfo);
+                            return;
+                        }
                         break;
                 };
 
@@ -202,6 +249,14 @@ namespace WCS.WorkEngineering.Systems
             World.Log($"执行记录:任务号[{taskId}]-[{obj.Data.VoucherNo}]");
         }
 
+        private void WriteInfo(Device<IStation520, IStation521, IStation523, IStation91> device, WCS_TaskInfo task)
+        {
+            device.Data.TaskNumber = 2;
+            device.Data.GoodsEnd = device.Entity.Code.ToShort();
+            device.Data.VoucherNo++;
+            World.Log($"南北流错执行记录:任务号[{task.ID}]-[{device.Data.TaskNumber}]-[{device.Data.VoucherNo}]");
+        }
+
         public override bool Select(Device dev)
         {
             return dev.Code is "418" or "618" or "818" or "1018" or "1218" or "1418";

+ 2 - 1
业务工程/分拣库/WCS.WorkEngineering/Systems/桁架码垛/桁架.cs

@@ -204,7 +204,8 @@ namespace WCS.WorkEngineering.Systems
                 var devCode = palletizingLsit.Select(x => x.PalletizingStation);
                 var taskCode = palletizingLsit.Select(x => x.Id);
                 var devList = Device.All.Where(x => devCode.Contains(x.Code)).Select(x => new Device<IStation521, IStation523, ITruss530, ITruss531>(x, World)).ToList();
-                devList = devList.Where(x => x.Data2.Status.HasFlag(StationStatus.PH_Status) && taskCode.Contains(x.Data.TaskNumber) && !x.Data4.CmdType.HasFlag(TrussCmdType.End1)).ToList();
+                devList = devList.Where(x => x.Data2.Status.HasFlag(StationStatus.PH_Status) && taskCode.Contains(x.Data.TaskNumber) && !x.Data4.CmdType.HasFlag(TrussCmdType.End1)
+                && !x.Data4.CmdType.HasFlag(TrussCmdType.End)).ToList();
                 devCode = devList.Select(x => x.Entity.Code);
                 if (!devCode.Any())
                 {

+ 3 - 3
业务工程/分拣库/WCS.WorkEngineering/WebApi/Controllers/WcsController.cs

@@ -251,7 +251,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                                                 TaskNo = item,
                                                                 Message = $"不能完成新建任务",
                                                             });
-                                                            break;
+                                                            continue;
 
                                                         case Entity.TaskStatus.WaitingToExecute:
                                                             response.ResDataList.Add(new HandleTaskResponse()
@@ -260,7 +260,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                                                 TaskNo = item,
                                                                 Message = $"不能完成待执行任务",
                                                             });
-                                                            break;
+                                                            continue;
 
                                                         case Entity.TaskStatus.StackerExecution:
                                                             response.ResDataList.Add(new HandleTaskResponse()
@@ -269,7 +269,7 @@ namespace WCS.WorkEngineering.WebApi.Controllers
                                                                 TaskNo = item,
                                                                 Message = $"不能完成堆垛机执行任务",
                                                             });
-                                                            break;
+                                                            continue;
                                                     };
                                                 }
                                                 break;

+ 6 - 5
业务工程/分拣库/WCS.WorkEngineering/WebApi/Controllers/WmsApi.cs

@@ -468,15 +468,16 @@ namespace WCS.WorkEngineering.WebApi.Controllers
         }
 
         /// <summary>
-        ///  码垛工资轮创建异常任务信息
+        /// 码垛工资轮创建异常任务信息
         /// </summary>
-        /// <param name="loc"></param>
-        /// <param name="type"></param>
+        /// <param name="loc">位置</param>
+        /// <param name="type">类型</param>
+        /// <param name="errType">异常类型</param>
         /// <returns></returns>
         /// <exception cref="KnownException"></exception>
-        public static SRes PalletizingCreateseErrorTasks(string loc, string type)
+        public static SRes PalletizingCreateseErrorTasks(string loc, string type, int errType = 0)
         {
-            var res = APICaller.CallApi2<SRes>(WmsUrl + "/api/FJ/PalletizingCreateseErrorTasks", new Models.WMS.Request.PalletizingCreateseErrorTasksRequest(loc, type, loc.GetWareCode()));
+            var res = APICaller.CallApi2<SRes>(WmsUrl + "/api/FJ/PalletizingCreateseErrorTasks", new Models.WMS.Request.PalletizingCreateseErrorTasksRequest(loc, type, loc.GetWareCode(),errType));
 
             if (res.ResCode != ResponseStatusCodeEnum.Sucess)
             {

+ 7 - 1
业务工程/分拣库/WCS.WorkEngineering/WebApi/Models/WMS/Request/PalletizingCreateseErrorTasksRequest.cs

@@ -11,10 +11,11 @@
         /// <param name="equCode"></param>
         /// <param name="type"></param>
         /// <param name="warehouseCode"></param>
-        public PalletizingCreateseErrorTasksRequest(string equCode, string type, string warehouseCode)
+        public PalletizingCreateseErrorTasksRequest(string equCode, string type, string warehouseCode,int err)
         {
             WarehouseCode = warehouseCode;
             EquNo = equCode;
+            errType = err;
             Type = type;
         }
 
@@ -32,5 +33,10 @@
         ///  仓库编号
         /// </summary>
         public string? WarehouseCode { get; set; }
+
+        /// <summary>
+        /// 异常类型
+        /// </summary>
+        public int errType { get; set; }
     }
 }