|
@@ -33,7 +33,7 @@ namespace WCS.Service.Works
|
|
protected override bool SelectDevice(WCS_DEVICE dev)
|
|
protected override bool SelectDevice(WCS_DEVICE dev)
|
|
{
|
|
{
|
|
//return true;
|
|
//return true;
|
|
- return new string[] { "SC4", "SC5" }.Contains(dev.CODE);
|
|
|
|
|
|
+ return new string[] { "SC7" , "SC8" , "SC9" }.Contains(dev.CODE);
|
|
}
|
|
}
|
|
|
|
|
|
protected override void Do(Device<ISC521, ISC520, ISC537> dev)
|
|
protected override void Do(Device<ISC521, ISC520, ISC537> dev)
|
|
@@ -112,10 +112,23 @@ namespace WCS.Service.Works
|
|
Ltc.Log("开始下发任务");
|
|
Ltc.Log("开始下发任务");
|
|
|
|
|
|
var tunnel = "";
|
|
var tunnel = "";
|
|
- if (dev.Entity.CODE == "SC4" || dev.Entity.CODE == "SC5")
|
|
|
|
- tunnel = "TM" + dev.Data.Tunnel;
|
|
|
|
- else
|
|
|
|
- tunnel = "TY" + dev.Data.Tunnel;
|
|
|
|
|
|
+ //if (dev.Entity.CODE == "SC4" || dev.Entity.CODE == "SC5")
|
|
|
|
+ // tunnel = "TM" + dev.Data.Tunnel;
|
|
|
|
+ //else
|
|
|
|
+
|
|
|
|
+ if (dev.Data.Tunnel == 1)
|
|
|
|
+ {
|
|
|
|
+ tunnel = "TY9";
|
|
|
|
+ }
|
|
|
|
+ else if (dev.Data.Tunnel == 2)
|
|
|
|
+ {
|
|
|
|
+ tunnel = "TY8";
|
|
|
|
+ }
|
|
|
|
+ else if (dev.Data.Tunnel == 3 )
|
|
|
|
+ {
|
|
|
|
+ tunnel = "TY7";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
|
|
if (Ltc.Do(dev, v => v.Data.Mode != SCMode.远程)) return;
|
|
if (Ltc.Do(dev, v => v.Data.Mode != SCMode.远程)) return;
|
|
if (Ltc.Do(dev, v => v.Data.Status != SCRunStatus.空闲)) return;
|
|
if (Ltc.Do(dev, v => v.Data.Status != SCRunStatus.空闲)) return;
|
|
@@ -283,7 +296,7 @@ namespace WCS.Service.Works
|
|
.Where(v => v.TYPE == TaskType.出库 && v.Priority >= 0)
|
|
.Where(v => v.TYPE == TaskType.出库 && v.Priority >= 0)
|
|
.Where(v => !db.Default.Set<WCS_TASK>().Any(d => d.DEVICE == sc && d.STATUS == TaskStatus.堆垛机执行));
|
|
.Where(v => !db.Default.Set<WCS_TASK>().Any(d => d.DEVICE == sc && d.STATUS == TaskStatus.堆垛机执行));
|
|
|
|
|
|
- if (dev.Entity.CODE == "SC4" || dev.Entity.CODE == "SC5")
|
|
|
|
|
|
+ if (dev.Entity.CODE == "SC7" || dev.Entity.CODE == "SC8" || dev.Entity.CODE == "SC9")
|
|
{
|
|
{
|
|
//找到所有出口相同的任务
|
|
//找到所有出口相同的任务
|
|
//一个目标位置同一时间最多只能有两个卷
|
|
//一个目标位置同一时间最多只能有两个卷
|
|
@@ -292,7 +305,7 @@ namespace WCS.Service.Works
|
|
.Where(d => d.STATUS > TaskStatus.新建)
|
|
.Where(d => d.STATUS > TaskStatus.新建)
|
|
.Where(d => d.STATUS < TaskStatus.已完成 || taskidList.Contains(d.ID))
|
|
.Where(d => d.STATUS < TaskStatus.已完成 || taskidList.Contains(d.ID))
|
|
.Where(d => d.ADDRTO == v.ADDRTO && d.FLOOR == v.FLOOR)
|
|
.Where(d => d.ADDRTO == v.ADDRTO && d.FLOOR == v.FLOOR)
|
|
- .Where(d => d.DEVICE == "SC4" || d.DEVICE == "SC5")
|
|
|
|
|
|
+ .Where(d => d.DEVICE == "SC7" || d.DEVICE == "SC8" || d.DEVICE == "SC9")
|
|
.Count() < 2
|
|
.Count() < 2
|
|
);
|
|
);
|
|
}
|
|
}
|
|
@@ -361,7 +374,7 @@ namespace WCS.Service.Works
|
|
protected override bool SelectDevice(WCS_DEVICE dev)
|
|
protected override bool SelectDevice(WCS_DEVICE dev)
|
|
{
|
|
{
|
|
//return true;
|
|
//return true;
|
|
- return new string[] { "SC1", "SC2", "SC3" , "SC6" }.Contains(dev.CODE);
|
|
|
|
|
|
+ return new string[] { "SC1", "SC2", "SC3" ,"SC4", "SC6" }.Contains(dev.CODE);
|
|
}
|
|
}
|
|
|
|
|
|
protected override void Do(Device<ISC521, ISC520, ISC537> dev)
|
|
protected override void Do(Device<ISC521, ISC520, ISC537> dev)
|
|
@@ -451,10 +464,10 @@ namespace WCS.Service.Works
|
|
Ltc.Log("开始下发任务");
|
|
Ltc.Log("开始下发任务");
|
|
|
|
|
|
var tunnel = "";
|
|
var tunnel = "";
|
|
- if (dev.Entity.CODE == "SC4" || dev.Entity.CODE == "SC5")
|
|
|
|
- tunnel = "TM" + dev.Data.Tunnel;
|
|
|
|
- else
|
|
|
|
- tunnel = "TY" + dev.Data.Tunnel;
|
|
|
|
|
|
+ //if (dev.Entity.CODE == "SC4" || dev.Entity.CODE == "SC5")
|
|
|
|
+ // tunnel = "TM" + dev.Data.Tunnel;
|
|
|
|
+ //else
|
|
|
|
+ tunnel = "TY" + dev.Data.Tunnel;
|
|
|
|
|
|
if (Ltc.Do(dev, v => v.Data.Mode != SCMode.远程)) return;
|
|
if (Ltc.Do(dev, v => v.Data.Mode != SCMode.远程)) return;
|
|
|
|
|
|
@@ -620,18 +633,19 @@ namespace WCS.Service.Works
|
|
.Where(v => v.TYPE == TaskType.出库 && v.Priority >= 0)
|
|
.Where(v => v.TYPE == TaskType.出库 && v.Priority >= 0)
|
|
.Where(v => !db.Default.Set<WCS_TASK>().Any(d => d.DEVICE == sc && d.STATUS == TaskStatus.堆垛机执行));
|
|
.Where(v => !db.Default.Set<WCS_TASK>().Any(d => d.DEVICE == sc && d.STATUS == TaskStatus.堆垛机执行));
|
|
|
|
|
|
- if (dev.Entity.CODE == "SC4" || dev.Entity.CODE == "SC5")
|
|
|
|
- {
|
|
|
|
- q = q.Where(v =>
|
|
|
|
- db.Default.Set<WCS_TASK>().Where(d => d.TYPE == TaskType.出库)
|
|
|
|
- .Where(d => d.STATUS > TaskStatus.新建)
|
|
|
|
- .Where(d => d.STATUS < TaskStatus.已完成 || taskidList.Contains(d.ID))
|
|
|
|
- .Where(d => d.ADDRTO == v.ADDRTO && d.FLOOR == v.FLOOR)
|
|
|
|
- .Where(d => d.DEVICE == "SC4" || d.DEVICE == "SC5")
|
|
|
|
- .Count() < 2
|
|
|
|
- );
|
|
|
|
- }
|
|
|
|
- else q = q.Where(v => empties.Contains(v.SCSTATION));
|
|
|
|
|
|
+ //if (dev.Entity.CODE == "SC4" || dev.Entity.CODE == "SC5")
|
|
|
|
+ //{
|
|
|
|
+ // q = q.Where(v =>
|
|
|
|
+ // db.Default.Set<WCS_TASK>().Where(d => d.TYPE == TaskType.出库)
|
|
|
|
+ // .Where(d => d.STATUS > TaskStatus.新建)
|
|
|
|
+ // .Where(d => d.STATUS < TaskStatus.已完成 || taskidList.Contains(d.ID))
|
|
|
|
+ // .Where(d => d.ADDRTO == v.ADDRTO && d.FLOOR == v.FLOOR)
|
|
|
|
+ // .Where(d => d.DEVICE == "SC4" || d.DEVICE == "SC5")
|
|
|
|
+ // .Count() < 2
|
|
|
|
+ // );
|
|
|
|
+ //}
|
|
|
|
+ //else
|
|
|
|
+ q = q.Where(v => empties.Contains(v.SCSTATION));
|
|
|
|
|
|
var task = q.OrderByDescending(v => v.Priority)
|
|
var task = q.OrderByDescending(v => v.Priority)
|
|
.ThenBy(v => v.TUNNEL == tunnel ? 0 : 1)
|
|
.ThenBy(v => v.TUNNEL == tunnel ? 0 : 1)
|