BoxOutJobType.cs
2.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
using Common;
namespace DeviceLibrary
{
/// <summary>
/// 云仓出料任务
/// </summary>
public class BoxOutJobType : JobType
{
/// <summary>
/// 云仓出料任务
/// </summary>
/// <param name="agv"></param>
/// <returns></returns>
public override Job GetNewJob(Agv_Info agv)
{
if (!Context.CheckCanExecuteMission(agv))
return null;
if (!Context.CheckAGVStatusNone(agv))
return null;
string rfid = "";
string checkPlace = SettingString.D2;
//查找云仓出料的任务
if (FindNeedLeaveMission(agv, checkPlace, out rfid,false))
{
LogUtil.info(string.Format("{0} [{1}]需要出满料串{2}", agv.Name, checkPlace, rfid));
return new GetFullShelfJob(agv.Place, checkPlace, rfid);
}
if (FindNeedLeaveMission(agv, checkPlace,out rfid,true))
{
if (BoxInJobType.FindNeedEnterMission(agv, SettingString.D1, true)||
BoxInJobType.FindNeedEnterMission(agv, SettingString.D3, true)||
BoxInJobType.FindNeedEnterMission(agv, SettingString.A4, true)||
BoxInJobType.FindNeedEnterMission(agv, SettingString.A2, true))
{
LogUtil.info(string.Format("{0} [{1}]需要出空料串{2}", agv.Name, checkPlace, rfid));
return new GetShelfJob(agv.Place, checkPlace, rfid, false);
}
}
checkPlace = SettingString.D4;
if (FindNeedLeaveMission(agv, checkPlace, out rfid,false))
{
LogUtil.info(string.Format("{0} [{1}]需要出满料串{2}", agv.Name, checkPlace, rfid));
return new GetFullShelfJob(agv.Place, checkPlace, rfid);
}
if (FindNeedLeaveMission(agv, checkPlace, out rfid,true))
{
if (BoxInJobType.FindNeedEnterMission(agv, SettingString.D1, true) ||
BoxInJobType.FindNeedEnterMission(agv, SettingString.D3, true) ||
BoxInJobType.FindNeedEnterMission(agv, SettingString.A4, true) ||
BoxInJobType.FindNeedEnterMission(agv, SettingString.A2, true))
{
LogUtil.info(string.Format("{0} [{1}]需要出空料串{2}", agv.Name, checkPlace, rfid));
return new GetShelfJob(agv.Place, checkPlace, rfid, false);
}
}
return null;
}
public static bool CheckFullTask(string rfid,out string targetName)
{
targetName = "";
if (RequestManager.FindFullShelfTarget(rfid, out BoxDestInfo destInfo))
{
targetName = destInfo.data;
return true;
}
return false;
}
}
}