林豪 左 3 年之前
父节点
当前提交
54033e472e

+ 7 - 8
Projects/永冠OPP/WCS.Service/Extensions/DeviceExtension.cs

@@ -7,7 +7,6 @@ using WCS.Entity;
 using WCS.Entity.Protocol;
 using WCS.Entity.Protocol.RGV;
 using WCS.Service.Helpers;
-using WCS.Service.Log;
 
 namespace WCS.Service.Extensions
 {
@@ -153,12 +152,12 @@ namespace WCS.Service.Extensions
                 }
                 if (dev.Data2.Request != IstationRequest.扫码入库)
                 {
-                    InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电没有扫码入库请求--1", Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                    //InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电没有扫码入库请求--1", Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                     continue;
                 };
                 if (dev.Data2.Tasknum > 10000)
                 {
-                    InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电有请求,但已有任务号", Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                    //InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电有请求,但已有任务号", Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                     continue;
                 }
 
@@ -166,7 +165,7 @@ namespace WCS.Service.Extensions
                 var barcode = bcr.Content.Trim('\r');
                 if (barcode == "")
                 {
-                    InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--扫码失败,内容为空", Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                    //InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--扫码失败,内容为空", Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                     continue;
                 };
 
@@ -193,12 +192,12 @@ namespace WCS.Service.Extensions
                 }
                 if (dev.Data2.Request != IstationRequest.请求分配目标地址)
                 {
-                    InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电没有分配目标地址请求--2", Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                    //InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电没有分配目标地址请求--2", Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                     continue;
                 };
                 if (dev.Data2.Tasknum < 10000)
                 {
-                    InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电有请求没有任务号", Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                    //InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电有请求没有任务号", Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                     continue;
                 }
 
@@ -680,7 +679,7 @@ namespace WCS.Service.Extensions
                     task = db.Default.Set<WCS_TASK>().Single(v => taskIds[i] == v.ID);
                     if (task.STATUS != TaskStatus.堆垛机执行 && task.STATUS != TaskStatus.堆垛机完成)
                     {
-                        InfoLog.INFO_WarnDb($"任务{task.ID},状态位{task.STATUS}", Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                        //InfoLog.INFO_WarnDb($"任务{task.ID},状态位{task.STATUS}", Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                         continue;
                     };
 
@@ -939,7 +938,7 @@ namespace WCS.Service.Extensions
                 }
                 catch (Exception e)
                 {
-                    InfoLog.INFO_WarnDb(e.Message, Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                    //InfoLog.INFO_WarnDb(e.Message, Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                 }
             });
         }

+ 1 - 0
Projects/永冠OPP/WCS.Service/Handlers/ProductHandler.cs

@@ -1,5 +1,6 @@
 using System.ComponentModel;
 using WCS.Core;
+using WCS.Service.Handlers;
 
 namespace WCS.Service
 {

+ 5 - 12
Projects/永冠OPP/WCS.Service/Handlers/UploadHandler.cs

@@ -1,32 +1,25 @@
 using DBHelper;
 using System;
-using System.Collections.Generic;
 using System.ComponentModel;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
 using WCS.Core;
 
-namespace WCS.Service
+namespace WCS.Service.Handlers
 {
     [Description("任务上传")]
-    class UploadHandler : LogicHandler
+    internal class UploadHandler : LogicHandler
     {
         public override void Start()
         {
-            
         }
 
-        DateTime last = DateTime.MinValue;
+        private DateTime last = DateTime.MinValue;
+
         public override void Update(double milliseconds)
         {
             if ((DateTime.Now - last).TotalMilliseconds < 10000)
                 return;
             last = DateTime.Now;
-            DB.Do(db => 
-            {
-                Uploader.Upload(db);
-            }); 
+            DB.Do(Uploader.Upload);
         }
     }
 }

+ 2 - 2
Projects/永冠OPP/WCS.Service/Uploader.cs

@@ -1,8 +1,8 @@
 using DBHelper;
 using System;
 using System.Linq;
+using WCS.Core;
 using WCS.Entity;
-using WCS.Service.Log;
 
 namespace WCS.Service
 {
@@ -61,4 +61,4 @@ namespace WCS.Service
         //    Stoped = true;
         //}
     }
-}
+}

+ 2 - 2
Projects/永冠OPP/WCS.Service/WebApi/APICaller.cs

@@ -7,7 +7,7 @@ using System.IO;
 using System.Net;
 using System.Text;
 using System.Threading.Tasks;
-using WCS.Service.Log;
+using WCS.Core;
 
 namespace WCS.Service
 {
@@ -107,4 +107,4 @@ namespace WCS.Service
             }
         }
     }
-}
+}

+ 2 - 2
Projects/永冠OPP/WCS.Service/WebApi/WMS/WMS.cs

@@ -2,8 +2,8 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Threading.Tasks;
+using WCS.Core;
 using WCS.Service.Entity;
-using WCS.Service.Log;
 
 namespace WCS.Service
 {
@@ -275,4 +275,4 @@ namespace WCS.Service
             catch { }
         }
     }
-}
+}

+ 2 - 2
Projects/永冠OPP/WCS.Service/Worker.cs

@@ -65,7 +65,7 @@ namespace WCS.Service
                 WMS.TaskException(d, s);
             };
 
-            LogicHandler.DbLog = Helpers.LogHelper.AddWCS_EXCEPTION;
+            //LogicHandler.DbLog = Helpers.LogHelper.AddWCS_EXCEPTION;
 
             PLCAccessor.Creater = new PLCAccessors.PLCAccessorsCreater();
             try
@@ -145,4 +145,4 @@ namespace WCS.Service
             return base.StopAsync(cancellationToken);
         }
     }
-}
+}

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

@@ -11,7 +11,6 @@ using WCS.Service.Entity;
 using WCS.Service.Extensions;
 using WCS.Service.Handlers;
 using WCS.Service.Helpers;
-using WCS.Service.Log;
 
 namespace WCS.Service.Works.SRM
 {
@@ -401,4 +400,4 @@ namespace WCS.Service.Works.SRM
             return dev.Is(DF.SRM);
         }
     }
-}
+}

+ 2 - 3
Projects/永冠OPP/WCS.Service/Works/Station/BOPP入库.cs

@@ -150,7 +150,7 @@ namespace WCS.Service.Works.Station
                                       .FirstOrDefault();//去一次重
 
                         if (rgvDeliveryPoint == null) continue;
-                        var taskInStation = Device.Where(p => p.CODE.StartsWith("G") && p.DEVICEGROUP.Any(d => d.MEMBER == rgvDeliveryPoint.Entity)).OrderBy(p => p.CODE).FirstOrDefault();
+                        var taskInStation = Device.Where(p => p.CODE.StartsWith("G") && p.DEVICEGROUP.Any(d => d.MEMBER == rgvDeliveryPoint.Entity)).MinBy(p => p.CODE);
                         //RGV是否有正在前往这个地址的任务
                         var rgvList = Device.Where(v => v.Is(DF.BOPPRGV)).Select(v => v.Create<RGVDevice>());
                         if (rgvList.Any(v => (!v.Data2.SystemStatus.HasFlag(WCS.Entity.Protocol.RGV.RGVRunStatus.空闲) || !v.Data2.WorkMode.HasFlag(WCS.Entity.Protocol.RGV.RGVMode.自动))
@@ -165,8 +165,7 @@ namespace WCS.Service.Works.Station
                     }
                     //筛选出优先级最高的可用巷道
                     var tunnelInfo = tunnelInfos.Where(v => { try { return (v.SRM.Data3.SCAlarm == 0 && v.SRM.Data2.SRMMode == SCMode.远程) || v.SRM.Entity.CODE == "SRM1"; } catch { return false; } })
-                                                .Where(v => !db.Default.Set<WCS_TASK>().Any(p => p.Priority > 0 && p.DEVICE == v.SRM.Entity.CODE && p.STATUS < TaskStatus.堆垛机完成))
-                                                .OrderBy(v => tunnelNo.IndexOf(v.Tunnel.CODE)).FirstOrDefault();
+                        .Where(v => !db.Default.Set<WCS_TASK>().Any(p => p.Priority > 0 && p.DEVICE == v.SRM.Entity.CODE && p.STATUS < TaskStatus.堆垛机完成)).MinBy(v => tunnelNo.IndexOf(v.Tunnel.CODE));
                     if (tunnelInfo == null) throw new WarnException("无可用巷道");
 
                     //开始变更任务信息

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

@@ -10,7 +10,6 @@ using WCS.Entity.Protocol;
 using WCS.Entity.Protocol.SRM;
 using WCS.Service.Extensions;
 using WCS.Service.Helpers;
-using WCS.Service.Log;
 
 namespace WCS.Service.Works.Station
 {
@@ -337,7 +336,7 @@ namespace WCS.Service.Works.Station
                     }
                     if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
                     {
-                        InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                        //InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                         continue;
                     }
                     devs.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
@@ -382,4 +381,4 @@ namespace WCS.Service.Works.Station
 
         private List<string> devCodes = new List<string>() { "G1035", "G1044", "G1053", "G1062" };
     }
-}
+}

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

@@ -7,7 +7,6 @@ using WCS.Entity;
 using WCS.Entity.Protocol;
 using WCS.Service.Extensions;
 using WCS.Service.Helpers;
-using WCS.Service.Log;
 
 namespace WCS.Service.Works.Station
 {
@@ -40,7 +39,7 @@ namespace WCS.Service.Works.Station
                         //没有光电
                         if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
                         {
-                            InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                            //InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                             continue;
                         }
                         devs.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
@@ -120,7 +119,6 @@ namespace WCS.Service.Works.Station
                         }
                         if (dev.Data2.Tasknum < 10000)
                         {
-                            InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无任务号", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                             continue;
                         };
                         devs.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
@@ -128,7 +126,7 @@ namespace WCS.Service.Works.Station
 
                     foreach (var dev in devs)
                     {
-                        var task = db.Default.Set<WCS_TASK>().Where(v => v.ID == dev.Station.Data2.Tasknum).FirstOrDefault();
+                        var task = db.Default.Set<WCS_TASK>().FirstOrDefault(v => v.ID == dev.Station.Data2.Tasknum);
                         if (task.STATUS == TaskStatus.新建) throw new WarnException($"{task.ID}任务状态错误");
 
                         task.STATUS = TaskStatus.已完成;
@@ -188,12 +186,10 @@ namespace WCS.Service.Works.Station
                         //没有光电
                         if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
                         {
-                            InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                             continue;
                         };
                         if (dev.Data2.Tasknum < 10000)
                         {
-                            InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求有光电无任务", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                             continue;
                         }
                         devs.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
@@ -220,4 +216,4 @@ namespace WCS.Service.Works.Station
             return dev.CODE == "G1589";
         }
     }
-}
+}

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

@@ -11,7 +11,6 @@ using WCS.Entity.Protocol.SRM;
 using WCS.Service.Extensions;
 using WCS.Service.Handlers;
 using WCS.Service.Helpers;
-using WCS.Service.Log;
 
 namespace WCS.Service.Works.Station
 {
@@ -56,7 +55,6 @@ namespace WCS.Service.Works.Station
                             //同时最多只能有10个任务被确认
                             if (qty.Count() >= 10)
                             {
-                                InfoLog.INFO_WarnDb($"{obj.Entity.CODE}正在执行的入库任务数量已达{qty.Count()},暂停入库", obj.Entity.CODE, WCS_EXCEPTIONTYPE.逻辑异常);
                                 continue;
                             };
 
@@ -97,28 +95,23 @@ namespace WCS.Service.Works.Station
                                 }
                                 if (obj.Items.Any(v => !v.Data3.Status.HasFlag(StationStatus.高位)))
                                 {
-                                    InfoLog.INFO_WarnDb("不在高位", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                                     continue;
                                 }
                                 if (obj.Items.Any(v => v.Data2.Status.HasFlag(IstationStatus.光电状态)))
                                 {
-                                    InfoLog.INFO_WarnDb("AGV请求放货,但有光电", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                                     continue;
                                 }
                                 if (obj.Items.Any(v => v.Data2.Status.HasFlag(IstationStatus.AGV放货完成信号)))
                                 {
-                                    InfoLog.INFO_WarnDb("AGV放货完成信号未清除", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                                     continue;
                                 }
                                 if (obj.Items.Any(v => v.Data2.Tasknum > 0))
                                 {
-                                    InfoLog.INFO_WarnDb("已有WCS任务号", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                                     continue;
                                 }
 
                                 if (db.Default.Set<WCS_AGVTask>().Any(v => v.Station == agvtask.Station && v.Status >= AGVTaskStatus.请求_允许 && v.Status < AGVTaskStatus.完成扫码 && v.ID != agvtask.ID)) //只能允许一个
                                 {
-                                    InfoLog.INFO_WarnDb("上一个允许放货的AGV任务未完成", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                                     continue;
                                 }
 
@@ -130,12 +123,10 @@ 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.设备异常);
                                     continue;
                                 }
                                 if (!obj.Items.Any(v => v.Data2.Status.HasFlag(IstationStatus.光电状态)))
                                 {
-                                    InfoLog.INFO_WarnDb("放货完成无光电", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                                     continue;
                                 }
 
@@ -215,7 +206,7 @@ namespace WCS.Service.Works.Station
 
                     if (!obj.Items.Any(v => v.Data2.Status.HasFlag(IstationStatus.手动入库)))
                     {
-                        agvTask = db.Default.Set<WCS_AGVTask>().Where(v => v.Status == AGVTaskStatus.完成 && v.Station == obj.Entity.CODE).FirstOrDefault() ?? throw new WarnException("无完成AGV任务");
+                        agvTask = db.Default.Set<WCS_AGVTask>().FirstOrDefault(v => v.Status == AGVTaskStatus.完成 && v.Station == obj.Entity.CODE) ?? throw new WarnException("无完成AGV任务");
 
                         if (agvTask.Status != AGVTaskStatus.完成扫码)
                         {
@@ -535,4 +526,4 @@ namespace WCS.Service.Works.Station
             "G1429",
         };
     }
-}
+}

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

@@ -43,7 +43,7 @@ namespace WCS.Service.Works.Station
                         //没有光电
                         if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
                         {
-                            InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                            //InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                             continue;
                         };
                         devs.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
@@ -119,12 +119,12 @@ namespace WCS.Service.Works.Station
                             }
                             if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
                             {
-                                InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                                //InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                                 continue;
                             }
                             if (dev.Data2.Tasknum < 10000)
                             {
-                                InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求有光电无任务", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                                //InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求有光电无任务", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                                 continue;
                             }
                             devs.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
@@ -216,12 +216,12 @@ namespace WCS.Service.Works.Station
                         }
                         if (dev.Data2.Request != IstationRequest.请求分配目标地址)
                         {
-                            InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电没有分配目标地址请求--2", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                            //InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电没有分配目标地址请求--2", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                             continue;
                         };
                         if (dev.Data2.Tasknum < 10000)
                         {
-                            InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电有请求没有任务号", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                            //InfoLog.INFO_WarnDb($"{dev.Entity.CODE}--有光电有请求没有任务号", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                             continue;
                         }
 
@@ -351,12 +351,12 @@ namespace WCS.Service.Works.Station
                         }
                         if (!dev.Data2.Status.HasFlag(IstationStatus.光电状态))
                         {
-                            InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                            //InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求无光电", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                             continue;
                         }
                         if (dev.Data2.Tasknum < 10000)
                         {
-                            InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求有光电无任务", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                            //InfoLog.INFO_WarnDb($"{dev.Entity.CODE}有请求有光电无任务", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                             continue;
                         }
                         devs.Add(new FinishTaskList<string>(dev.Entity.CODE, dev.Entity.Create<StationDevice>()));
@@ -423,12 +423,12 @@ namespace WCS.Service.Works.Station
                          if (agvtask.Status == AGVTaskStatus.新建)
                          {
                              if (obj.Entity.CODE != "G1340") continue;
-                             var qty = db.Default.Set<WCS_AGVTask>().Where(v => v.TaskType == AGVTaskType.叫料 && v.Status > AGVTaskStatus.新建 && v.Status < AGVTaskStatus.完成)
-                            .Where(v => v.Position == agvtask.Position).Count();
+                             var qty = db.Default.Set<WCS_AGVTask>()
+                                 .Where(v => v.TaskType == AGVTaskType.叫料 && v.Status > AGVTaskStatus.新建 && v.Status < AGVTaskStatus.完成).Count(v => v.Position == agvtask.Position);
 
                              if (qty >= 4)
                              {
-                                 InfoLog.INFO_WarnDb($"{agvtask.Position}正在执行的叫料任务数量已达{qty},暂停出库", obj.Entity.CODE, WCS_EXCEPTIONTYPE.逻辑异常);
+                                 //InfoLog.INFO_WarnDb($"{agvtask.Position}正在执行的叫料任务数量已达{qty},暂停出库", obj.Entity.CODE, WCS_EXCEPTIONTYPE.逻辑异常);
                                  continue;
                              };
 
@@ -440,7 +440,7 @@ namespace WCS.Service.Works.Station
                              }
                              catch (WarnException ex)
                              {
-                                 InfoLog.INFO_WarnDb($"{ex.Message}", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
+                                 //InfoLog.INFO_WarnDb($"{ex.Message}", obj.Entity.CODE, WCS_EXCEPTIONTYPE.设备异常);
                                  continue;
                              };
 
@@ -501,7 +501,7 @@ namespace WCS.Service.Works.Station
                  DB.Do(db =>
                  {
                      var taskList = db.Default.Set<WCS_TASK>().Where(v => taskIds.Contains(v.ID));
-                     if (taskList.Count() == 0) return;
+                     if (!taskList.Any()) return;
                      if (taskList == null) throw new WarnException($"WCS任务号{JsonConvert.SerializeObject(taskIds)}不存在");
                      if (taskList.Any(v => v.TYPE != TaskType.出库)) throw new WarnException("有任务的类型不是出库");
                      if (taskList.Any(v => v.AgvTask == 0)) throw new WarnException("人工出库任务,请手动搬走");
@@ -513,8 +513,8 @@ namespace WCS.Service.Works.Station
                      if (agvtask.Status == AGVTaskStatus.确认)
                      {
                          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();
+                         var flag = db.Default.Set<WCS_AGVTask>()
+                             .Where(v => v.TaskType == AGVTaskType.叫料).Count(v => v.Status > AGVTaskStatus.确认 && v.Status < AGVTaskStatus.取放完成);
                          if (flag >= 2) throw new Exception("有2未完成的AGV出库任务");
 
                          taskList.ToList().ForEach(task =>

+ 9 - 1
Projects/永冠OPP/WCS.Service/config.json

@@ -23,6 +23,14 @@
         "INFO_AGV": "info_agv"
       }
     },
+
+    {
+      "Name": "PLC",
+      "FileName": "D:\\WCSLog\\",
+      "SubLogNames": {
+        "PLC_LINKS": "PLC_Links"
+      }
+    },
     {
       "Name": "Error",
       "FileName": "D:\\WCSLog\\",
@@ -45,4 +53,4 @@
       }
     }
   ]
-}
+}

+ 10 - 16
WCS.Core/EntityEx.cs

@@ -9,23 +9,17 @@ namespace WCS.Core
     {
         public T Entity
         {
-            get; private set;
+            get;
         }
 
-        public EntityEx(T entity)
+        protected EntityEx(T entity)
         {
-            this.Entity = entity;
+            Entity = entity;
         }
 
         public virtual DateTime UpdateTime { get; set; }
 
-        public double Times
-        {
-            get
-            {
-                return (DateTime.Now - UpdateTime).TotalMilliseconds;
-            }
-        }
+        public double Times => (DateTime.Now - UpdateTime).TotalMilliseconds;
 
         public override string ToString()
         {
@@ -35,7 +29,7 @@ namespace WCS.Core
 
     public class Device<T> : EntityEx<WCS_DEVICE> where T : IProtocol
     {
-        public T Data { get; private set; }
+        public T Data { get; }
 
         public Device(WCS_DEVICE entity) : base(entity)
         {
@@ -45,7 +39,7 @@ namespace WCS.Core
 
     public class Device<T, T2> : Device<T> where T : IProtocol where T2 : IProtocol
     {
-        public T2 Data2 { get; private set; }
+        public T2 Data2 { get; }
 
         public Device(WCS_DEVICE entity) : base(entity)
         {
@@ -55,7 +49,7 @@ namespace WCS.Core
 
     public class Device<T, T2, T3> : Device<T, T2> where T : IProtocol where T2 : IProtocol where T3 : IProtocol
     {
-        public T3 Data3 { get; private set; }
+        public T3 Data3 { get; }
 
         public Device(WCS_DEVICE entity) : base(entity)
         {
@@ -65,7 +59,7 @@ namespace WCS.Core
 
     public class Device<T, T2, T3, T4> : Device<T, T2, T3> where T : IProtocol where T2 : IProtocol where T3 : IProtocol where T4 : IProtocol
     {
-        public T4 Data4 { get; private set; }
+        public T4 Data4 { get; }
 
         public Device(WCS_DEVICE entity) : base(entity)
         {
@@ -75,7 +69,7 @@ namespace WCS.Core
 
     public class Group<T> : EntityEx<WCS_DEVICE> where T : EntityEx<WCS_DEVICE>
     {
-        public IEnumerable<T> Items { get; private set; }
+        public IEnumerable<T> Items { get; }
 
         public Group(WCS_DEVICE entity) : base(entity)
         {
@@ -103,4 +97,4 @@ namespace WCS.Core
         {
         }
     }
-}
+}

+ 0 - 182
WCS.Core/InfoLog.cs

@@ -1,182 +0,0 @@
-using Logs;
-using System.Collections.Generic;
-using WCS.Entity;
-
-namespace WCS.Core
-{
-    /// <summary>
-    /// 信息日志
-    /// </summary>
-    public class InfoLog : ILogType
-    {
-        /// <summary>
-        /// 日志名称
-        /// </summary>
-        public string LogName => "Info";
-
-        /// <summary>
-        /// 信息日志
-        /// </summary>
-        public static ILogType Log { get; set; }
-
-        /// <summary>
-        /// 日志子项集合
-        /// </summary>
-        public Dictionary<string, string> SubLogNames { get; set; }
-
-        static InfoLog()
-        {
-            Log ??= new InfoLog();
-        }
-
-        public InfoLog()
-        {
-            SubLogNames = new Dictionary<string, string>
-            {
-                ["INFO"] = "Info"
-            };
-            LogHelper.Init(this);
-        }
-
-        /// <summary>
-        /// 系统执行信息
-        /// </summary>
-        /// <param name="msg"></param>
-        public static void INFO_INIT(string msg)
-        {
-            Log.Info(msg, "INFO_INIT");
-        }
-
-        /// <summary>
-        /// 系统执行信息
-        /// </summary>
-        /// <param name="msg"></param>
-        public static void INFO_SRMALARM(string msg)
-        {
-            Log.Info(msg, "INFO_SRMALARM");
-        }
-
-        /// <summary>
-        /// 系统执行信息  基本检查条件不满足时记录
-        /// </summary>
-        /// <param name="msg"></param>
-        public static void INFO_INFO(string msg)
-        {
-            Log.Info(msg, "INFO_INFO");
-        }
-
-        /// <summary>
-        /// 系统执行错误
-        /// </summary>
-        /// <param name="msg"></param>
-        public static void INFO_ERROR(string msg)
-        {
-            Log.Error(msg, "INFO_ERROR");
-            //Console.WriteLine(msg);
-        }
-
-        /// <summary>
-        /// 系统执行警告 所有一直错误都归类为警告
-        /// </summary>
-        /// <param name="msg"></param>
-        public static void INFO_WARN(string msg)
-        {
-            Log.Warn(msg, "INFO_WARN");
-            //Console.WriteLine(msg);
-        }
-
-        /// <summary>
-        /// 系统执行警告 所有一直错误都归类为警告,存入数据库
-        /// </summary>
-        /// <param name="msg">错误内容</param>
-        /// <param name="code">设备</param>
-        /// <param name="type">错误类型</param>
-        public static void INFO_WarnDb(string msg, string code, WCS_EXCEPTIONTYPE type)
-        {
-            Log.Warn(msg, "INFO_WARN");
-            //WCS.Service.Helpers.LogHelper.AddWCS_EXCEPTION(msg, code, type.ToString());
-            //WMS.TaskException(code, msg);
-        }
-
-        /// <summary>
-        /// 堆垛机写入记录
-        /// </summary>
-        /// <param name="msg"></param>
-        public static void INFO_SRMINFO(string msg)
-        {
-            Log.Info(msg, "INFO_SRMINFO");
-        }
-
-        /// <summary>
-        /// 任务状态更新记录
-        /// </summary>
-        /// <param name="msg"></param>
-        public static void INFO_SYTASKSTATUS(string msg)
-        {
-            Log.Info(msg, "INFO_SYTASKSTATUS");
-        }
-
-        /// <summary>
-        /// WMS请求记录
-        /// </summary>
-        /// <param name="msg"></param>
-        public static void INFO_WMSREQUEST(string msg)
-        {
-            Log.Info(msg, "INFO_WMSREQUEST");
-        }
-
-        /// <summary>
-        /// PLC读取记录
-        /// </summary>
-        /// <param name="msg"></param>
-        public static void INFO_PLCREADLOG(string msg)
-        {
-            Log.Info(msg, "INFO_PLCREADLOG");
-        }
-
-        /// <summary>
-        /// 计时器
-        /// </summary>
-        /// <param name="msg"></param>
-        public static void INFO_TIMING(string msg)
-        {
-            Log.Info(msg, "INFO_TIMING");
-        }
-
-        /// <summary>
-        /// WCS异常上抛记录
-        /// </summary>
-        /// <param name="msg"></param>
-        public static void INFO_I_WCS_GetExcTask(string msg)
-        {
-            Log.Info(msg, "INFO_UPEX");
-        }
-
-        /// <summary>
-        /// 任务创建记录
-        /// </summary>
-        /// <param name="msg"></param>
-        public static void INFO_CREATETASKIN(string msg)
-        {
-            Log.Info(msg, "INFO_CREATETASKIN");
-        }
-
-        /// <summary>
-        /// RGV的写入记录
-        /// </summary>
-        /// <param name="msg"></param>
-        public static void INFO_RGVINFO(string msg)
-        {
-            Log.Info(msg, "INFO_RGVINFO");
-        }
-
-        /// <summary>
-        /// AGV相关日志
-        /// </summary>
-        /// <param name="msg"></param>
-        public static void INFO_AGV(string msg)
-        {
-            Log.Info(msg, "INFO_AGV");
-        }
-    }
-}

+ 14 - 24
WCS.Core/LogicHandler.cs

@@ -5,6 +5,7 @@ using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
 using WCS.Entity;
+using WCS.Service;
 
 namespace WCS.Core
 {
@@ -312,36 +313,25 @@ namespace WCS.Core
 
                 wi.Work(p);
             }
-            catch (Exception ex)
+            catch (DoException ex)
             {
-                Ltc.Log(ex.GetBaseException().Message);
-                Log(wi, p, ex);
+                InfoLog.INFO_INFO($"[{channel}]--{ex.Message}");
             }
-            finally
+            //WarnException进阶条件未满足,添加数据库,记录文本日志、数据库,上抛WCS,上抛WMS
+            catch (WarnException ex)
             {
-                Ltc.Log("结束\n");
+                InfoLog.INFO_WARN($"[{channel}]--{ex.Message}");
+                Ltc.Log(ex.GetBaseException().Message);
+                Configs.UploadException?.Invoke(p.ToString(), ex.GetBaseException().Message);
             }
-        }
-
-        protected virtual void Log(WorkInfo<T> wi, T p, Exception ex)
-        {
-            try
+            //未知异常,仅记录文本日志,需定期排查该文件,检查系统是否有未知异常,并处理
+            catch (Exception ex)
             {
-                var msg = Description + "--" + wi.Title + "--";
-                if (p is IProtocol)
-                {
-                    msg += (p as IProtocol).PROTOCOL().DEVICE.CODE;
-                }
-                var con = ex.GetBaseException().Message.Split("|");
-
-                msg = msg + ":" + con[0];
-                //Console.WriteLine(msg);
-
-                DbLog.Invoke(msg, con[1], con[2]);
+                InfoLog.INFO_ERROR($"[{channel}]--{ex.Message}--{ex.StackTrace}");
             }
-            catch (Exception)
+            finally
             {
-                //TODO:增加一个异常记录
+                Ltc.Log("结束\n");
             }
         }
 
@@ -420,4 +410,4 @@ namespace WCS.Core
             return res;
         }
     }
-}
+}