Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit a6319170
由
zshaohui
编写于
2025-01-22 15:38:45 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.agv获取不到目的地修改
2.工单出库,单个料仓 交替着出
1 个父辈
c0bf202f
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
45 行增加
和
68 行删除
src/main/java/com/neotel/smfcore/core/device/handler/impl/XLRBoxHandler.java
src/main/java/com/neotel/smfcore/custom/Jkem21481/controller/StackerController.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/XLRBoxHandler.java
查看文件 @
a631917
...
...
@@ -315,85 +315,61 @@ public class XLRBoxHandler extends BaseDeviceHandler {
}
}
//获取到上一个出料口和下一个出料口
String
lastOutExport
=
lastOutExportMap
.
get
(
cid
);
List
<
String
>
nextOutExportList
=
getNextOutExport
(
lastOutExport
);
log
.
info
(
cid
+
"对应的上一个出料口为:"
+
lastOutExport
+
"获取到的出料口顺序为:"
+
JSON
.
toJSONString
(
nextOutExportList
));
//按出料口进行分组
for
(
String
nextOutExport
:
nextOutExportList
)
{
Map
<
String
,
List
<
DataLog
>>
map
=
notEmptyExportList
.
stream
().
collect
(
Collectors
.
groupingBy
(
DataLog:
:
getExport
));
for
(
String
key
:
map
.
keySet
())
{
if
(!
key
.
startsWith
(
nextOutExport
))
{
continue
;
}
List
<
DataLog
>
groupByList
=
map
.
get
(
key
);
Collections
.
sort
(
groupByList
,
(
o1
,
o2
)
->
{
String
feederInfo1
=
o1
.
getAppendData
(
"feederInfo"
);
String
feederInfo2
=
o2
.
getAppendData
(
"feederInfo"
);
return
feederInfo1
.
compareTo
(
feederInfo2
);
});
DataLog
dataLog
=
null
;
if
(
groupByList
!=
null
&&
!
groupByList
.
isEmpty
())
{
dataLog
=
groupByList
.
get
(
0
);
//最多有2个工单正在执行
List
<
DataLog
>
needOutTaskList
=
new
ArrayList
<>();
Map
<
String
,
List
<
DataLog
>>
map
=
notEmptyExportList
.
stream
().
collect
(
Collectors
.
groupingBy
(
DataLog:
:
getExport
));
for
(
String
key
:
map
.
keySet
())
{
List
<
DataLog
>
groupByList
=
map
.
get
(
key
);
Collections
.
sort
(
groupByList
,
(
o1
,
o2
)
->
{
String
feederInfo1
=
o1
.
getAppendData
(
"feederInfo"
);
String
feederInfo2
=
o2
.
getAppendData
(
"feederInfo"
);
return
feederInfo1
.
compareTo
(
feederInfo2
);
});
DataLog
dataLog
=
null
;
if
(
groupByList
!=
null
&&
!
groupByList
.
isEmpty
())
{
dataLog
=
groupByList
.
get
(
0
);
}
if
(
dataLog
!=
null
&&
dataLog
.
isWait
()
&&
cid
.
equals
(
dataLog
.
getCid
()))
{
String
feederInfo
=
dataLog
.
getAppendData
(
"feederInfo"
);
String
feeder
=
StorageExportUtil
.
getCurrentExportFeeder
(
key
);
log
.
info
(
"UM口对应的feeder为:"
+
feeder
+
",当前任务的feeder为:"
+
feederInfo
);
if
(
feederInfo
.
startsWith
(
feeder
))
{
needOutTaskList
.
add
(
dataLog
);
}
if
(
dataLog
!=
null
&&
dataLog
.
isWait
()
&&
cid
.
equals
(
dataLog
.
getCid
()))
{
String
feederInfo
=
dataLog
.
getAppendData
(
"feederInfo"
);
String
feeder
=
StorageExportUtil
.
getCurrentExportFeeder
(
key
);
log
.
info
(
"UM口对应的feeder为:"
+
feeder
+
",当前任务的feeder为:"
+
feederInfo
);
if
(
feederInfo
.
startsWith
(
feeder
))
{
log
.
info
(
"分配出库任务,站位号为:"
+
dataLog
.
getAppendData
(
"feederInfo"
)
+
",出料口为:"
+
key
+
",barcode为:"
+
dataLog
.
getBarcode
());
}
}
String
lastOutSourceId
=
lastOutSourceIdMap
.
get
(
cid
);
if
(
needOutTaskList
!=
null
&&
!
needOutTaskList
.
isEmpty
())
{
for
(
DataLog
dataLog
:
needOutTaskList
)
{
if
(
StringUtils
.
isNotEmpty
(
lastOutSourceId
))
{
if
(!
lastOutSourceId
.
equals
(
dataLog
.
getSourceId
()))
{
orderTask
=
dataLog
;
break
;
}
}
else
{
orderTask
=
dataLog
;
break
;
}
}
if
(
orderTask
!
=
null
)
{
log
.
info
(
cid
+
"对应的下一个出料口为:"
+
orderTask
.
getExpor
t
());
break
;
if
(
orderTask
=
=
null
)
{
needOutTaskList
=
needOutTaskList
.
stream
().
sorted
(
Comparator
.
comparing
(
DataLog:
:
getCreateDate
)).
collect
(
Collectors
.
toLis
t
());
orderTask
=
needOutTaskList
.
get
(
0
)
;
}
}
//如果没有找到,从头开始找
if
(
orderTask
==
null
){
lastOutExportMap
.
put
(
cid
,
""
);
if
(
orderTask
!=
null
)
{
log
.
info
(
"分配出库任务,站位号为:"
+
orderTask
.
getAppendData
(
"feederInfo"
)
+
",出料口为:"
+
orderTask
.
getExport
()
+
",barcode为:"
+
orderTask
.
getBarcode
());
lastOutSourceIdMap
.
put
(
cid
,
orderTask
.
getSourceId
());
}
else
{
lastOut
ExportMap
.
put
(
cid
,
orderTask
.
getExport
()
);
lastOut
SourceIdMap
.
put
(
cid
,
""
);
}
return
orderTask
;
}
Map
<
String
,
String
>
lastOutExportMap
=
Maps
.
newConcurrentMap
();
private
static
List
<
String
>
getNextOutExport
(
String
lastOutExport
)
{
List
<
String
>
exportList
=
new
ArrayList
<>();
exportList
.
add
(
"UM1"
);
exportList
.
add
(
"UM5"
);
exportList
.
add
(
"UM2"
);
exportList
.
add
(
"UM6"
);
exportList
.
add
(
"UM3"
);
exportList
.
add
(
"UM7"
);
exportList
.
add
(
"UM4"
);
exportList
.
add
(
"UM8"
);
int
index
=
0
;
if
(
StringUtils
.
isEmpty
(
lastOutExport
))
{
return
exportList
;
}
for
(
int
i
=
0
;
i
<
exportList
.
size
();
i
++)
{
String
export
=
exportList
.
get
(
i
);
if
(
lastOutExport
.
startsWith
(
export
))
{
index
=
i
;
break
;
}
}
index
=
(
index
+
1
)
>=
exportList
.
size
()
?
0
:
(
index
+
1
);
List
<
String
>
resultList
=
new
ArrayList
<>();
for
(
int
i
=
index
;
i
<
exportList
.
size
();
i
++)
{
resultList
.
add
(
exportList
.
get
(
i
));
}
return
resultList
;
}
Map
<
String
,
String
>
lastOutSourceIdMap
=
Maps
.
newConcurrentMap
();
@Override
public
DeviceType
getDeviceType
()
{
...
...
src/main/java/com/neotel/smfcore/custom/Jkem21481/controller/StackerController.java
查看文件 @
a631917
...
...
@@ -123,8 +123,9 @@ public class StackerController {
List
<
String
>
resultList
=
new
ArrayList
<>();
for
(
String
msdCid
:
msdCidList
)
{
if
(
StringUtils
.
isNotEmpty
(
storageCid
)){
if
(
storageCid
.
equals
(
msdCid
));
continue
;
if
(
storageCid
.
equals
(
msdCid
))
{
continue
;
}
}
resultList
.
add
(
msdCid
);
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论