Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 1e2338bd
由
zshaohui
编写于
2024-07-25 13:43:38 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.退库上架传完整条码
2.获取可用料格加缓存
1 个父辈
05db7f97
显示空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
63 行增加
和
40 行删除
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/CDeviceController.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/CtuDeviceController.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/util/BinCacheUtil.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/CDeviceController.java
查看文件 @
1e2338b
...
@@ -265,7 +265,7 @@ public class CDeviceController {
...
@@ -265,7 +265,7 @@ public class CDeviceController {
else
if
(
MaterialUtil
.
ticketReturn
(
materialStr
)){
else
if
(
MaterialUtil
.
ticketReturn
(
materialStr
)){
log
.
info
(
materialStr
+
"绑定单据退库上架,barcode为:"
+
barcode
.
getBarcode
());
log
.
info
(
materialStr
+
"绑定单据退库上架,barcode为:"
+
barcode
.
getBarcode
());
TicketReturn
ticketReturn
=
MaterialUtil
.
getTicketReturnInfo
(
materialStr
);
TicketReturn
ticketReturn
=
MaterialUtil
.
getTicketReturnInfo
(
materialStr
);
TicketUpResult
ticketUp
=
LuxsanApi
.
ticketUp
(
new
TicketUpRequest
(
CommonUtil
.
plantCode
,
ticketReturn
.
getTicket
(),
ticketReturn
.
getTicketItem
(),
binCodeStr
,
Arrays
.
asList
(
barcode
.
get
Barc
ode
()),
barcode
.
getAmount
()));
TicketUpResult
ticketUp
=
LuxsanApi
.
ticketUp
(
new
TicketUpRequest
(
CommonUtil
.
plantCode
,
ticketReturn
.
getTicket
(),
ticketReturn
.
getTicketItem
(),
binCodeStr
,
Arrays
.
asList
(
barcode
.
get
FullC
ode
()),
barcode
.
getAmount
()));
barcode
.
setLabelId
(
ticketUp
.
getLABEL_ID
());
barcode
.
setLabelId
(
ticketUp
.
getLABEL_ID
());
}
}
...
@@ -784,29 +784,8 @@ public class CDeviceController {
...
@@ -784,29 +784,8 @@ public class CDeviceController {
return
ResultBean
.
newErrorResult
(-
1
,
""
,
stackerId
+
"未找到可用料箱"
);
return
ResultBean
.
newErrorResult
(-
1
,
""
,
stackerId
+
"未找到可用料箱"
);
}
}
//判断AGV是上的料箱有几个
callAgvTask
(
stackerId
,
stackerBarcode
);
int
count
=
0
;
log
.
info
(
"入料机构获取可用料格:"
+
stackerId
+
"返回的数据为:"
+
JSON
.
toJSONString
(
validBin
));
List
<
DataLog
>
allTasks
=
taskService
.
getAllTasks
();
for
(
DataLog
dataLog
:
allTasks
)
{
if
(
dataLog
.
isCheckOutTask
()
&&
(
dataLog
.
getStatus
().
equals
(
OP_STATUS
.
WAIT
.
name
()))
||
dataLog
.
getStatus
().
equals
(
OP_STATUS
.
EXECUTING
.
name
())
||
dataLog
.
getStatus
().
equals
(
OP_STATUS
.
OUT_ON_AGV
.
name
()))
{
if
(
TaskCurrentLoc
.
In1_FeedingInlet
.
equals
(
dataLog
.
getLoc
())
||
TaskCurrentLoc
.
In2_FeedingInlet
.
equals
(
dataLog
.
getLoc
())
||
TaskCurrentLoc
.
In_FeedingInlet
.
equals
(
dataLog
.
getLoc
()))
{
count
=
count
+
1
;
}
}
}
if
(
count
<
4
)
{
try
{
log
.
info
(
"AGV上的料箱数量小于4,呼叫一个空料箱出来"
);
String
materialSize
=
MaterialUtil
.
getMaterialSize
(
stackerId
);
BoxHandleUtil
.
callEmptyBox
(
materialSize
,
TaskCurrentLoc
.
In_FeedingInlet
,
stackerBarcode
.
getWarehouseCode
(),
new
ArrayList
<>());
}
catch
(
Exception
e
)
{
log
.
info
(
"呼叫空箱报错:"
+
e
.
getMessage
());
}
}
return
ResultBean
.
newOkResult
(
validBin
);
return
ResultBean
.
newOkResult
(
validBin
);
}
}
...
@@ -1029,6 +1008,32 @@ public class CDeviceController {
...
@@ -1029,6 +1008,32 @@ public class CDeviceController {
return
ResultBean
.
newOkResult
(
boxBarcode
.
getHeightMap
());
return
ResultBean
.
newOkResult
(
boxBarcode
.
getHeightMap
());
}
}
private
synchronized
void
callAgvTask
(
String
stackerId
,
Barcode
stackerBarcode
)
{
//判断AGV是上的料箱有几个
int
count
=
0
;
List
<
DataLog
>
allTasks
=
taskService
.
getAllTasks
();
for
(
DataLog
dataLog
:
allTasks
)
{
if
(
dataLog
.
isCheckOutTask
()
&&
(
dataLog
.
getStatus
().
equals
(
OP_STATUS
.
WAIT
.
name
()))
||
dataLog
.
getStatus
().
equals
(
OP_STATUS
.
EXECUTING
.
name
())
||
dataLog
.
getStatus
().
equals
(
OP_STATUS
.
OUT_ON_AGV
.
name
()))
{
if
(
TaskCurrentLoc
.
In1_FeedingInlet
.
equals
(
dataLog
.
getLoc
())
||
TaskCurrentLoc
.
In2_FeedingInlet
.
equals
(
dataLog
.
getLoc
())
||
TaskCurrentLoc
.
In_FeedingInlet
.
equals
(
dataLog
.
getLoc
()))
{
count
=
count
+
1
;
}
}
}
log
.
info
(
"入料机构获取可用料格:"
+
stackerId
+
"AGV上的箱子数为:"
+
count
);
if
(
count
<
4
)
{
try
{
log
.
info
(
"AGV上的料箱数量小于4,呼叫一个空料箱出来"
);
String
materialSize
=
MaterialUtil
.
getMaterialSize
(
stackerId
);
BoxHandleUtil
.
callEmptyBox
(
materialSize
,
TaskCurrentLoc
.
In_FeedingInlet
,
stackerBarcode
.
getWarehouseCode
(),
new
ArrayList
<>());
}
catch
(
Exception
e
)
{
log
.
info
(
"呼叫空箱报错:"
+
e
.
getMessage
());
}
}
}
private
void
generatePutInTask
(
Barcode
barcode
,
Barcode
boxBarcode
,
String
status
)
{
private
void
generatePutInTask
(
Barcode
barcode
,
Barcode
boxBarcode
,
String
status
)
{
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/controller/CtuDeviceController.java
查看文件 @
1e2338b
...
@@ -276,8 +276,10 @@ public class CtuDeviceController {
...
@@ -276,8 +276,10 @@ public class CtuDeviceController {
||
TaskCurrentLoc
.
Out1_FeedingInlet
.
equals
(
loc
)
||
TaskCurrentLoc
.
Out1_FeedingInlet
.
equals
(
loc
)
||
TaskCurrentLoc
.
Out2_FeedingInlet
.
equals
(
loc
)
||
TaskCurrentLoc
.
Out2_FeedingInlet
.
equals
(
loc
)
)
{
)
{
if
(
dataLog
.
isCheckOutTask
())
{
dataLog
.
setStatus
(
loc
);
dataLog
.
setStatus
(
loc
);
}
}
}
if
(
dataLog
.
isExecuting
()
||
dataLog
.
isWait
()){
if
(
dataLog
.
isExecuting
()
||
dataLog
.
isWait
()){
taskService
.
updateQueueTask
(
dataLog
);
taskService
.
updateQueueTask
(
dataLog
);
}
else
{
}
else
{
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/util/BinCacheUtil.java
查看文件 @
1e2338b
...
@@ -38,11 +38,21 @@ public class BinCacheUtil {
...
@@ -38,11 +38,21 @@ public class BinCacheUtil {
BinCacheUtil
.
taskService
=
service
;
BinCacheUtil
.
taskService
=
service
;
}
}
public
static
long
time
=
0
l
;
public
static
Map
<
String
,
String
>
cacheBinCodeMap
=
null
;
public
static
boolean
canPutInBinCode
(
String
binCode
,
String
warehouseCode
)
{
public
static
boolean
canPutInBinCode
(
String
binCode
,
String
warehouseCode
)
{
Map
<
String
,
String
>
cacheMap
=
binCodeCacheMap
(
warehouseCode
);
if
(
cacheBinCodeMap
==
null
||
time
==
0
l
||
System
.
currentTimeMillis
()
-
time
>
1000
*
60
*
10
){
cacheBinCodeMap
=
binCodeCacheMap
(
warehouseCode
);
time
=
System
.
currentTimeMillis
();
log
.
info
(
"获取可用料箱,缓存可能为空,时间可能为空,当前时间与上一次时间相差10分钟:"
+(
System
.
currentTimeMillis
()
-
time
));
}
//判断code是否相同
//判断code是否相同
String
code
=
cacheMap
.
get
(
binCode
);
String
code
=
cache
BinCode
Map
.
get
(
binCode
);
if
(
StringUtils
.
isNotEmpty
(
code
))
{
if
(
StringUtils
.
isNotEmpty
(
code
))
{
if
(
code
.
equals
(
warehouseCode
))
{
if
(
code
.
equals
(
warehouseCode
))
{
//binCodeUpdateTime = System.currentTimeMillis();
//binCodeUpdateTime = System.currentTimeMillis();
...
@@ -113,12 +123,12 @@ public class BinCacheUtil {
...
@@ -113,12 +123,12 @@ public class BinCacheUtil {
String
barcode
=
stackerBarcode
.
getBarcode
();
String
barcode
=
stackerBarcode
.
getBarcode
();
String
materialSize
=
MaterialUtil
.
getMaterialSize
(
barcode
);
String
materialSize
=
MaterialUtil
.
getMaterialSize
(
barcode
);
log
.
info
(
"收到料串信息为:"
+
barcode
+
"尺寸为:"
+
materialSize
);
log
.
info
(
"
入料机构获取可用料格,
收到料串信息为:"
+
barcode
+
"尺寸为:"
+
materialSize
);
//判断当前工作的料箱能不能放入
//判断当前工作的料箱能不能放入
if
(
StringUtils
.
isNotEmpty
(
binListStr
))
{
if
(
StringUtils
.
isNotEmpty
(
binListStr
))
{
log
.
info
(
barcode
+
"正在工作的料格为:"
+
binListStr
);
log
.
info
(
"入料机构获取可用料格:"
+
barcode
+
"正在工作的料格为:"
+
binListStr
);
String
[]
binStr
=
binListStr
.
split
(
","
);
String
[]
binStr
=
binListStr
.
split
(
","
);
List
<
String
>
binCodeList
=
getValidBinList
(
stackerBarcode
,
Arrays
.
asList
(
binStr
));
List
<
String
>
binCodeList
=
getValidBinList
(
stackerBarcode
,
Arrays
.
asList
(
binStr
));
...
@@ -150,11 +160,11 @@ public class BinCacheUtil {
...
@@ -150,11 +160,11 @@ public class BinCacheUtil {
//如果不为空,返回
//如果不为空,返回
if
(
validBinList
!=
null
&&
!
validBinList
.
isEmpty
())
{
if
(
validBinList
!=
null
&&
!
validBinList
.
isEmpty
())
{
log
.
info
(
barcode
+
"获取到可用料格为:"
+
JSON
.
toJSONString
(
validBinList
));
String
resultStr
=
validBinList
.
get
(
0
);
String
resultStr
=
validBinList
.
get
(
0
);
boxCode
=
BoxHandleUtil
.
getBoxStr
(
resultStr
,
false
);
boxCode
=
BoxHandleUtil
.
getBoxStr
(
resultStr
,
false
);
boxLoc
=
source
;
boxLoc
=
source
;
stackerLoc
=
source
;
stackerLoc
=
source
;
log
.
info
(
"入料机构获取到当前正在工作的料格"
+
barcode
+
"获取到可用料格为:"
+
JSON
.
toJSONString
(
validBinList
));
return
new
ValidBin
(
boxCode
,
boxLoc
,
stackerLoc
,
validBinList
);
return
new
ValidBin
(
boxCode
,
boxLoc
,
stackerLoc
,
validBinList
);
}
}
}
}
...
@@ -162,7 +172,7 @@ public class BinCacheUtil {
...
@@ -162,7 +172,7 @@ public class BinCacheUtil {
//如果呼叫的空箱没有可用的,查找出库任务,在流水线上的
//如果呼叫的空箱没有可用的,查找出库任务,在流水线上的
if
(
validBinList
==
null
||
validBinList
.
isEmpty
())
{
if
(
validBinList
==
null
||
validBinList
.
isEmpty
())
{
log
.
info
(
"
未找到当前工作的料格,
开始寻找正在当前工位上的料箱"
);
log
.
info
(
"
入料机构获取到未找到当前工作的料格"
+
barcode
+
"
开始寻找正在当前工位上的料箱"
);
List
<
String
>
emptyBoxList
=
new
ArrayList
<>();
List
<
String
>
emptyBoxList
=
new
ArrayList
<>();
...
@@ -171,7 +181,7 @@ public class BinCacheUtil {
...
@@ -171,7 +181,7 @@ public class BinCacheUtil {
for
(
DataLog
dataLog
:
allTasks
)
{
for
(
DataLog
dataLog
:
allTasks
)
{
if
(
dataLog
.
isCheckOutTask
()
&&
!
dataLog
.
isCancel
()
&&
!
dataLog
.
isFinished
())
{
if
(
dataLog
.
isCheckOutTask
()
&&
!
dataLog
.
isCancel
()
&&
!
dataLog
.
isFinished
())
{
if
(
source
.
equals
(
dataLog
.
getCurrentLoc
()))
{
if
(
source
.
equals
(
dataLog
.
getCurrentLoc
()))
{
log
.
info
(
barcode
+
"找到当前工位上的料箱为:"
+
dataLog
.
getBarcode
()
+
",位置为:"
+
dataLog
.
getCurrentLoc
());
//
log.info(barcode + "找到当前工位上的料箱为:" + dataLog.getBarcode() + ",位置为:" + dataLog.getCurrentLoc());
emptyBoxList
.
add
(
dataLog
.
getBarcode
());
emptyBoxList
.
add
(
dataLog
.
getBarcode
());
}
}
}
}
...
@@ -212,11 +222,11 @@ public class BinCacheUtil {
...
@@ -212,11 +222,11 @@ public class BinCacheUtil {
//如果不为空,返回
//如果不为空,返回
if
(
validBinList
!=
null
&&
!
validBinList
.
isEmpty
())
{
if
(
validBinList
!=
null
&&
!
validBinList
.
isEmpty
())
{
log
.
info
(
barcode
+
"获取到可用料格为:"
+
JSON
.
toJSONString
(
validBinList
));
String
resultStr
=
validBinList
.
get
(
0
);
String
resultStr
=
validBinList
.
get
(
0
);
boxCode
=
BoxHandleUtil
.
getBoxStr
(
resultStr
,
false
);
boxCode
=
BoxHandleUtil
.
getBoxStr
(
resultStr
,
false
);
boxLoc
=
source
;
boxLoc
=
source
;
stackerLoc
=
source
;
stackerLoc
=
source
;
log
.
info
(
"入料机构获取到当前工位上的料格"
+
barcode
+
"获取到可用料格为:"
+
JSON
.
toJSONString
(
validBinList
));
return
new
ValidBin
(
boxCode
,
boxLoc
,
stackerLoc
,
validBinList
);
return
new
ValidBin
(
boxCode
,
boxLoc
,
stackerLoc
,
validBinList
);
}
}
}
}
...
@@ -227,7 +237,7 @@ public class BinCacheUtil {
...
@@ -227,7 +237,7 @@ public class BinCacheUtil {
//如果不可以放入,则判断当前呼叫空箱物料是否可以放入
//如果不可以放入,则判断当前呼叫空箱物料是否可以放入
if
(
validBinList
==
null
||
validBinList
.
isEmpty
())
{
if
(
validBinList
==
null
||
validBinList
.
isEmpty
())
{
log
.
info
(
"
未找到当前工位上的料箱,开始寻找呼叫
空箱"
);
log
.
info
(
"
入料机构未找到当前工位上的料箱"
+
barcode
+
"开始寻找已经呼叫过
空箱"
);
List
<
String
>
callEmptyBoxList
=
new
ArrayList
<>();
List
<
String
>
callEmptyBoxList
=
new
ArrayList
<>();
...
@@ -239,7 +249,6 @@ public class BinCacheUtil {
...
@@ -239,7 +249,6 @@ public class BinCacheUtil {
&&
!
TaskCurrentLoc
.
In2_FeedingInlet
.
equals
(
dataLog
.
getCurrentLoc
())
&&
!
TaskCurrentLoc
.
In2_FeedingInlet
.
equals
(
dataLog
.
getCurrentLoc
())
)
{
)
{
if
(
TaskCurrentLoc
.
In_FeedingInlet
.
equals
(
dataLog
.
getLoc
())
||
source
.
equals
(
dataLog
.
getLoc
())
)
{
if
(
TaskCurrentLoc
.
In_FeedingInlet
.
equals
(
dataLog
.
getLoc
())
||
source
.
equals
(
dataLog
.
getLoc
())
)
{
log
.
info
(
barcode
+
"查找出来呼叫空箱的箱子为:"
+
dataLog
.
getBarcode
());
callEmptyBoxList
.
add
(
dataLog
.
getBarcode
());
callEmptyBoxList
.
add
(
dataLog
.
getBarcode
());
}
}
}
}
...
@@ -288,7 +297,6 @@ public class BinCacheUtil {
...
@@ -288,7 +297,6 @@ public class BinCacheUtil {
List
<
DataLog
>
taskList
=
taskService
.
getAllTasks
();
List
<
DataLog
>
taskList
=
taskService
.
getAllTasks
();
for
(
DataLog
dataLog
:
taskList
)
{
for
(
DataLog
dataLog
:
taskList
)
{
if
(
dataLog
.
getBarcode
().
equals
(
boxStr
)
&&
dataLog
.
isCheckOutTask
()
&&
!
dataLog
.
isCancel
())
{
if
(
dataLog
.
getBarcode
().
equals
(
boxStr
)
&&
dataLog
.
isCheckOutTask
()
&&
!
dataLog
.
isCancel
())
{
log
.
info
(
barcode
+
"获取到可用料格为:"
+
JSON
.
toJSONString
(
validBinList
));
String
loc
=
""
;
String
loc
=
""
;
if
(
StringUtils
.
isEmpty
(
dataLog
.
getLoc
()))
{
if
(
StringUtils
.
isEmpty
(
dataLog
.
getLoc
()))
{
loc
=
source
;
loc
=
source
;
...
@@ -313,6 +321,7 @@ public class BinCacheUtil {
...
@@ -313,6 +321,7 @@ public class BinCacheUtil {
boxCode
=
boxStr
;
boxCode
=
boxStr
;
boxLoc
=
loc
;
boxLoc
=
loc
;
stackerLoc
=
loc
;
stackerLoc
=
loc
;
log
.
info
(
"入料机构获取已经呼叫过的空箱:"
+
barcode
+
"获取到可用料格为:"
+
JSON
.
toJSONString
(
validBinList
));
return
new
ValidBin
(
boxCode
,
boxLoc
,
stackerLoc
,
validBinList
);
return
new
ValidBin
(
boxCode
,
boxLoc
,
stackerLoc
,
validBinList
);
}
}
}
}
...
@@ -323,7 +332,7 @@ public class BinCacheUtil {
...
@@ -323,7 +332,7 @@ public class BinCacheUtil {
if
(
validBinList
==
null
||
validBinList
.
isEmpty
())
{
if
(
validBinList
==
null
||
validBinList
.
isEmpty
())
{
log
.
info
(
"都未找到,开始寻找空箱"
);
log
.
info
(
"
入料机构获取可用料格"
+
barcode
+
"
都未找到,开始寻找空箱"
);
String
outLet
=
"0"
;
String
outLet
=
"0"
;
if
(
TaskCurrentLoc
.
In2_FeedingInlet
.
equals
(
source
))
{
if
(
TaskCurrentLoc
.
In2_FeedingInlet
.
equals
(
source
))
{
...
@@ -347,7 +356,7 @@ public class BinCacheUtil {
...
@@ -347,7 +356,7 @@ public class BinCacheUtil {
List
<
String
>
binCodeList
=
getValidBinList
(
stackerBarcode
,
binList
);
List
<
String
>
binCodeList
=
getValidBinList
(
stackerBarcode
,
binList
);
if
(
binCodeList
!=
null
&&
!
binCodeList
.
isEmpty
())
{
if
(
binCodeList
!=
null
&&
!
binCodeList
.
isEmpty
())
{
log
.
info
(
"寻找到空箱为:"
+
boxStr
);
log
.
info
(
"
入料机构获取可用料格"
+
barcode
+
"
寻找到空箱为:"
+
boxStr
);
for
(
String
binCode
:
binCodeList
)
{
for
(
String
binCode
:
binCodeList
)
{
if
(
"7"
.
equals
(
materialSize
))
{
if
(
"7"
.
equals
(
materialSize
))
{
...
@@ -373,6 +382,7 @@ public class BinCacheUtil {
...
@@ -373,6 +382,7 @@ public class BinCacheUtil {
boxCode
=
boxStr
;
boxCode
=
boxStr
;
boxLoc
=
source
;
boxLoc
=
source
;
stackerLoc
=
source
;
stackerLoc
=
source
;
log
.
info
(
"入料机构获取可用料格:"
+
barcode
+
"通过呼叫空箱呼叫的可用料格为:"
+
JSON
.
toJSONString
(
validBinList
));
return
new
ValidBin
(
boxCode
,
boxLoc
,
stackerLoc
,
validBinList
);
return
new
ValidBin
(
boxCode
,
boxLoc
,
stackerLoc
,
validBinList
);
}
}
}
}
...
@@ -382,17 +392,23 @@ public class BinCacheUtil {
...
@@ -382,17 +392,23 @@ public class BinCacheUtil {
private
static
List
<
String
>
getValidBinList
(
Barcode
stackerBarcode
,
List
<
String
>
binList
)
{
private
static
List
<
String
>
getValidBinList
(
Barcode
stackerBarcode
,
List
<
String
>
binList
)
{
List
<
String
>
validBinList
=
new
ArrayList
<>();
List
<
String
>
validBinList
=
new
ArrayList
<>();
Barcode
boxBarcode
=
null
;
StoragePos
pos
=
null
;
for
(
String
binId
:
binList
)
{
for
(
String
binId
:
binList
)
{
String
boxStr
=
BoxHandleUtil
.
getBoxStr
(
binId
,
true
);
String
boxStr
=
BoxHandleUtil
.
getBoxStr
(
binId
,
true
);
Barcode
boxBarcode
=
codeResolve
.
resolveOneValideBarcode
(
boxStr
);
if
(
boxBarcode
==
null
){
boxBarcode
=
codeResolve
.
resolveOneValideBarcode
(
boxStr
);
}
//为料箱分配一个库位,直接放到库位中, 如果没有库位, 那么这个料箱不允许使用
//为料箱分配一个库位,直接放到库位中, 如果没有库位, 那么这个料箱不允许使用
StoragePos
pos
=
BoxHandleUtil
.
locOnePos
(
boxBarcode
);
if
(
pos
==
null
)
{
pos
=
BoxHandleUtil
.
locOnePos
(
boxBarcode
);
}
if
(
pos
!=
null
)
{
if
(
pos
!=
null
)
{
String
canPutIn
=
BinCacheUtil
.
canMaterialPutInBin
(
stackerBarcode
,
boxBarcode
,
binId
);
String
canPutIn
=
BinCacheUtil
.
canMaterialPutInBin
(
stackerBarcode
,
boxBarcode
,
binId
);
if
(
canPutIn
.
isEmpty
())
{
if
(
canPutIn
.
isEmpty
())
{
validBinList
.
add
(
binId
);
validBinList
.
add
(
binId
);
}
else
{
}
else
{
log
.
info
(
canPutIn
);
//
log.info(canPutIn);
}
}
}
}
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论