林豪 左 3 vuotta sitten
vanhempi
commit
ee024d3df0
1 muutettua tiedostoa jossa 60 lisäystä ja 54 poistoa
  1. 60 54
      Projects/永冠OPP/WCS.Service/Extensions/DeviceExtension.cs

+ 60 - 54
Projects/永冠OPP/WCS.Service/Extensions/DeviceExtension.cs

@@ -875,61 +875,67 @@ namespace WCS.Service.Extensions
             //检查同组堆垛机是否有正在执行出库任务的
             DB.Do(db =>
             {
-                var srm = Device.Find("SRM4").Create<SRMDevice>();
-                var task = db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM4" && v.TYPE == TaskType.出库);
-                switch (Entity.CODE)
+                try
+                {
+                    var srm = Device.Find("SRM4").Create<SRMDevice>();
+                    var task = db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM4" && v.TYPE == TaskType.出库);
+                    switch (Entity.CODE)
+                    {
+                        case "SRM3":
+                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
+                                throw new DoException("SRM4正在执行出库任务");
+                            //if (db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM4" && v.TYPE == TaskType.出库))
+                            //    throw new DoException("SRM3正在执行出库任务");
+                            break;
+
+                        case "SRM4":
+                            srm = Device.Find("SRM3").Create<SRMDevice>();
+                            task = db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM3" && v.TYPE == TaskType.出库);
+                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
+                                throw new DoException("SRM4正在执行出库任务");
+                            //if (db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM3" && v.TYPE == TaskType.出库))
+                            //    throw new DoException("SRM3正在执行出库任务");
+                            break;
+
+                        case "SRM5":
+                            srm = Device.Find("SRM6").Create<SRMDevice>();
+                            task = db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM6" && v.TYPE == TaskType.出库);
+                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
+                                throw new DoException("SRM4正在执行出库任务");
+                            //if (db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM6" && v.TYPE == TaskType.出库))
+                            //    throw new DoException("SRM6正在执行出库任务");
+                            break;
+
+                        case "SRM6":
+                            srm = Device.Find("SRM5").Create<SRMDevice>();
+                            task = db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM5" && v.TYPE == TaskType.出库);
+                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
+                                throw new DoException("SRM4正在执行出库任务");
+                            //if (db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM5" && v.TYPE == TaskType.出库))
+                            //    throw new DoException("SRM5正在执行出库任务");
+                            break;
+
+                        case "SRM7":
+                            srm = Device.Find("SRM8").Create<SRMDevice>();
+                            task = db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM8" && v.TYPE == TaskType.出库);
+                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
+                                throw new DoException("SRM4正在执行出库任务");
+                            //if (db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM8" && v.TYPE == TaskType.出库))
+                            //    throw new DoException("SRM7正在执行出库任务");
+                            break;
+
+                        case "SRM8":
+                            srm = Device.Find("SRM7").Create<SRMDevice>();
+                            task = db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM7" && v.TYPE == TaskType.出库);
+                            if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
+                                throw new DoException("SRM4正在执行出库任务");
+                            //if (db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM7" && v.TYPE == TaskType.出库))
+                            //    throw new DoException("SRM8正在执行出库任务");
+                            break;
+                    }
+                }
+                catch (Exception)
                 {
-                    case "SRM3":
-                        if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
-                            throw new DoException("SRM4正在执行出库任务");
-                        //if (db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM4" && v.TYPE == TaskType.出库))
-                        //    throw new DoException("SRM3正在执行出库任务");
-                        break;
-
-                    case "SRM4":
-                        srm = Device.Find("SRM3").Create<SRMDevice>();
-                        task = db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM3" && v.TYPE == TaskType.出库);
-                        if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
-                            throw new DoException("SRM4正在执行出库任务");
-                        //if (db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM3" && v.TYPE == TaskType.出库))
-                        //    throw new DoException("SRM3正在执行出库任务");
-                        break;
-
-                    case "SRM5":
-                        srm = Device.Find("SRM6").Create<SRMDevice>();
-                        task = db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM6" && v.TYPE == TaskType.出库);
-                        if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
-                            throw new DoException("SRM4正在执行出库任务");
-                        //if (db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM6" && v.TYPE == TaskType.出库))
-                        //    throw new DoException("SRM6正在执行出库任务");
-                        break;
-
-                    case "SRM6":
-                        srm = Device.Find("SRM5").Create<SRMDevice>();
-                        task = db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM5" && v.TYPE == TaskType.出库);
-                        if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
-                            throw new DoException("SRM4正在执行出库任务");
-                        //if (db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM5" && v.TYPE == TaskType.出库))
-                        //    throw new DoException("SRM5正在执行出库任务");
-                        break;
-
-                    case "SRM7":
-                        srm = Device.Find("SRM8").Create<SRMDevice>();
-                        task = db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM8" && v.TYPE == TaskType.出库);
-                        if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
-                            throw new DoException("SRM4正在执行出库任务");
-                        //if (db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM8" && v.TYPE == TaskType.出库))
-                        //    throw new DoException("SRM7正在执行出库任务");
-                        break;
-
-                    case "SRM8":
-                        srm = Device.Find("SRM7").Create<SRMDevice>();
-                        task = db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM7" && v.TYPE == TaskType.出库);
-                        if (srm.Data3.SCAlarm == 0 && srm.Data2.SRMMode == WCS.Entity.Protocol.SRM.SCMode.远程 && task)
-                            throw new DoException("SRM4正在执行出库任务");
-                        //if (db.Default.Set<WCS_TASK>().Any(v => v.STATUS == TaskStatus.堆垛机执行 && v.DEVICE == "SRM7" && v.TYPE == TaskType.出库))
-                        //    throw new DoException("SRM8正在执行出库任务");
-                        break;
                 }
             });
         }