|
@@ -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;
|
|
|
}
|
|
|
});
|
|
|
}
|