StackCombinationEnum.java
6.53 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
package com.huaheng.api.acs.controller;
import java.util.List;
/***
* @author tongzonghao
*
*/
public enum StackCombinationEnum {
/**
* 垛型分配 两类:
* 1层3个的矩形
* 1层4个的矩形
* (1,1) 1表示 1层3个的矩形 1表示放1个箱子
* (2,9) 2表示 1层4个的矩形 9表示放9个箱子
*/
_1层4个_码垛1个箱子_11(1, 1) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层4个_码垛1个箱子_12(1, 2) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层4个_码垛1个箱子_13(1, 3) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层4个_码垛1个箱子_14(1, 4) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层4个_码垛1个箱子_15(1, 5) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层4个_码垛1个箱子_16(1, 6) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层4个_码垛1个箱子_17(1, 7) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层4个_码垛1个箱子_18(1, 8) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层4个_码垛1个箱子_19(1, 9) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层4个_码垛10个箱子_110(1, 10) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层4个_码垛11个箱子_111(1, 11) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层4个_码垛12个箱子_112(1, 12) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层3个_码垛1个箱子_21(2, 1) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层3个_码垛2个箱子_22(2, 2) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层3个_码垛3个箱子_23(2, 3) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层3个_码垛4个箱子_24(2, 4) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层3个_码垛5个箱子_25(2, 5) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层3个_码垛6个箱子_26(2, 6) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层3个_码垛7个箱子_27(2, 7) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层3个_码垛8个箱子_28(2, 8) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
},
_1层3个_码垛9个箱子_29(2, 9) {
@Override
public String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller) {
return stackCaller.callApi(boxType,stackTotal,palletType);
}
};
private final int[] states;
StackCombinationEnum(int... states) {
this.states = states;
}
public abstract String apply(Integer boxType,Integer stackTotal,Integer palletType,StackCaller stackCaller);
public static StackCombinationEnum fromStates(int... states) {
for (StackCombinationEnum combination : values()) {
if (matches(combination.states, states)) {
return combination;
}
}
throw new IllegalArgumentException("No matching stack combination found.");
}
private static boolean matches(int[] combinationStates, int[] states) {
if (combinationStates.length != states.length) {
return false;
}
for (int i = 0; i < combinationStates.length; i++) {
if (combinationStates[i] != states[i]) {
return false;
}
}
return true;
}
}