林豪 左 3 years ago
parent
commit
eb00977ff1

+ 2 - 1
Projects/永冠OPP/WCS.Entity.Protocol/Station/WCS_Station521.cs

@@ -1,4 +1,5 @@
-using System.Runtime.Serialization;
+using System.ComponentModel;
+using System.Runtime.Serialization;
 
 namespace WCS.Entity.Protocol.Station
 {

+ 9 - 1
Projects/永冠OPP/WCS.Service/Works/SRM/SRMWork.cs

@@ -304,7 +304,15 @@ namespace WCS.Service.Works.SRM
                         //同时对结果进行排序,分组
                         var maxnum = ProtocolProxy.YGWMS150Redis.Get("SaleTaskGroupCount").ToInt();
                         //所有 有优先级任务的出货口
-                        var priorityADDRTO = db.Default.Set<WCS_TASK>().Where(v => v.Priority > 0 && v.STATUS == TaskStatus.新建 && v.DEVICE != obj.Entity.CODE).GroupBy(v => v.ADDRTO).Select(v => v.Key).ToList();
+                        var priorityADDRTO = db.Default.Set<WCS_TASK>().Where(v => v.Priority > 0 && v.STATUS == TaskStatus.新建 && v.DEVICE != obj.Entity.CODE).ToList()
+                                                                       .GroupBy(v => v.ADDRTO).Select(v => new { v.Key, List = v.Select(p => p.DEVICE).Distinct().ToList() })
+                                                                       .Where(v => v.List.Where(p =>
+                                                                        {
+                                                                            var dev = Device.Find(p).Create<SRMDevice>();
+                                                                            return dev.Data2.SRMMode == SCMode.远程 && dev.Data2.SRMStatus == SCRunStatus.空闲;
+                                                                        }).Any())
+                                                                       .Select(v => v.Key)
+                                                                       .ToList();
                         var outDepotList = waitTask.Where(v =>
                                                     {
                                                         var max = v.ADDRTO == "G1340" ? 4 : maxnum;

+ 0 - 1
Projects/永冠OPP/WCS.Service/Works/Station/一楼入库.cs

@@ -42,7 +42,6 @@ namespace WCS.Service.Works.Station
                         var devs = obj.GetBcrValid();
                         devs.Valid();
                         var infos = devs.GetWMSInTask();
-                        //InfoLog.INFO_CREATETASKIN($"[{obj.Entity.CODE}]--请求条码{JsonConvert.SerializeObject(devs)}");
                         foreach (var item in devs)
                         {
                             var dev = item.Station;

+ 1 - 0
Projects/永冠OPP/WCS.Service/Works/Station/一楼出库.cs

@@ -120,6 +120,7 @@ namespace WCS.Service.Works.Station
                         };
                         devs.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
                     }
+
                     foreach (var dev in devs)
                     {
                         var task = db.Default.Set<WCS_TASK>().Where(v => v.ID == dev.Station.Data2.Tasknum).FirstOrDefault();

+ 1 - 2
Projects/永冠OPP/WCS.Service/Works/Station/涂布入库.cs

@@ -52,7 +52,6 @@ namespace WCS.Service.Works.Station
                                 InfoLog.INFO_INFO($"{station}手动状态");
                                 continue;
                             };
-                            //TODO:暂时不管控产线任务数
                             var qty = db.Default.Set<WCS_AGVTask>().Where(v => v.TaskType == AGVTaskType.入库 && v.Status > AGVTaskStatus.新建 && v.Status < AGVTaskStatus.完成);
                             //同时最多只能有10个任务被确认
                             if (qty.Count() >= 10)
@@ -108,7 +107,7 @@ namespace WCS.Service.Works.Station
                                 }
                                 if (obj.Items.Any(v => v.Data2.Status.HasFlag(IstationStatus.AGV放货完成信号)))
                                 {
-                                    InfoLog.INFO_WarnDb("AGV放货完成信号未清", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                                    InfoLog.INFO_WarnDb("AGV放货完成信号未清", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                                     continue;
                                 }
                                 if (obj.Items.Any(v => v.Data2.Tasknum > 0))

+ 1 - 1
Projects/永冠OPP/WCS.Service/Works/Station/涂布出库.cs

@@ -505,7 +505,7 @@ namespace WCS.Service.Works.Station
                          if (!obj.Items.Any(v => v.Data3.Status.HasFlag(StationStatus.高位))) throw new WarnException("不在高位");
                          var flag = db.Default.Set<WCS_AGVTask>().Where(v => v.TaskType == AGVTaskType.叫料)
                          .Where(v => v.Status > AGVTaskStatus.确认 && v.Status < AGVTaskStatus.取放完成).Count();
-                         if (flag > 2) throw new Exception("有2未完成的AGV出库任务");
+                         if (flag >= 2) throw new Exception("有2未完成的AGV出库任务");
 
                          taskList.ToList().ForEach(task =>
                                  {

+ 2 - 2
WCS.Core/LogicHandler.cs

@@ -305,7 +305,7 @@ namespace WCS.Core
                 var msg = Description + "--" + wi.Title + "--";
                 if (p is IProtocol)
                 {
-                    msg += (p as IProtocol).PROTOCOL().DEVICE.NAME;
+                    msg += (p as IProtocol).PROTOCOL().DEVICE.CODE;
                 }
                 var con = ex.GetBaseException().Message.Split("|");
 
@@ -454,7 +454,7 @@ namespace WCS.Core
                 var msg = Description + "--" + wi.Title + "--";
                 if (p is IProtocol)
                 {
-                    msg += (p as IProtocol).PROTOCOL().DEVICE.NAME;
+                    msg += (p as IProtocol).PROTOCOL().DEVICE.CODE;
                 }
                 var con = ex.GetBaseException().Message.Split("|");
                 msg = msg + ":" + con[0];