Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 74643c1d
由
zshaohui
编写于
2025-07-21 10:40:38 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.回库功能优化
2.agv获取料仓,返回库位具体的使用数
1 个父辈
4992dcb0
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
30 行增加
和
18 行删除
src/main/java/com/neotel/smfcore/core/barcode/service/po/Barcode.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/custom/Jkem21481/controller/JkemController.java
src/main/java/com/neotel/smfcore/custom/Jkem21481/controller/StackerController.java
src/main/java/com/neotel/smfcore/custom/Jkem21481/manager/impl/ReturnStorageManagerImpl.java
src/main/java/com/neotel/smfcore/core/barcode/service/po/Barcode.java
查看文件 @
74643c1
...
...
@@ -175,6 +175,7 @@ public class Barcode extends BasePo implements Serializable {
*/
private
int
checkingAmount
=
0
;
private
String
orderId
=
""
;
private
String
orderNo
=
""
;
...
...
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
74643c1
...
...
@@ -1018,9 +1018,11 @@ public class LiteOrderCache {
//物料数量-已经发出的数量 = 点料数量
if
(
barcode
.
getAmount
()
-
checkingAmount
>
0
)
{
barcode
.
setCheckingAmount
(
checkingAmount
);
barcode
.
setOrderId
(
cacheOrder
.
getId
());
barcode
.
setOrderNo
(
orderNo
);
}
else
{
barcode
.
setCheckingAmount
(
barcode
.
getAmount
());
barcode
.
setOrderId
(
cacheOrder
.
getId
());
barcode
.
setOrderNo
(
orderNo
);
}
barcodeManager
.
save
(
barcode
);
...
...
src/main/java/com/neotel/smfcore/custom/Jkem21481/controller/JkemController.java
查看文件 @
74643c1
...
...
@@ -160,6 +160,7 @@ public class JkemController {
if
(
checkingAmount
>
0
||
StringUtils
.
isNotEmpty
(
barcode
.
getOrderNo
())){
log
.
info
(
barcode
.
getBarcode
()+
"为治具盒,点料数量为:"
+
checkingAmount
+
"需要清空"
);
barcode
.
setCheckingAmount
(
0
);
barcode
.
setOrderId
(
""
);
barcode
.
setOrderNo
(
""
);
barcodeManager
.
save
(
barcode
);
}
...
...
@@ -209,7 +210,7 @@ public class JkemController {
throw
new
ValidateException
(
"smfcore.noValidStorage"
,
"[{0}]料仓列表中未找到可用的料仓"
,
new
String
[]{
barcode
.
getBarcode
()});
}
for
(
DataLog
dataLog
:
taskService
.
get
Queue
Tasks
())
{
for
(
DataLog
dataLog
:
taskService
.
get
All
Tasks
())
{
// if(!dataLog.isPackageReel()){
//已经在任务当中,返回对应的信息
if
(
dataLog
.
getBarcode
().
equals
(
barcode
.
getBarcode
())
&&
!
dataLog
.
isCancel
()
&&
!
dataLog
.
isFinished
())
{
...
...
@@ -598,6 +599,7 @@ public class JkemController {
dataLog
.
setNum
(
checkingAmount
);
dataLog
.
setType
(
OP
.
CHECKOUT
);
dataLog
.
setStatus
(
OP_STATUS
.
FINISHED
.
name
());
dataLog
.
setSourceId
(
barcode
.
getOrderId
());
dataLog
.
setSourceName
(
barcode
.
getOrderNo
());
dataLogManager
.
save
(
dataLog
);
return
ResultBean
.
newOkResult
(
""
);
...
...
src/main/java/com/neotel/smfcore/custom/Jkem21481/controller/StackerController.java
查看文件 @
74643c1
...
...
@@ -92,9 +92,9 @@ public class StackerController {
if
(!
bindStacker
)
{
return
ResultBean
.
newErrorResult
(-
1
,
"smfcore.valueNotFind"
,
"未找到{0}[{1}]"
,
new
String
[]{
"stacker"
,
stacker
});
}
List
<
St
ring
>
availableStorageList
=
getAvailableStorage
(
stacker
,
storageCid
);
List
<
St
ackerAvailableStorage
>
availableStorageList
=
getAvailableStorage
(
stacker
,
storageCid
);
List
<
String
>
resultList
=
new
ArrayList
<>();
/*
List<String> resultList = new ArrayList<>();
if (availableStorageList != null && !availableStorageList.isEmpty()){
for (String cid : availableStorageList) {
Storage storage = dataCache.getStorage(cid);
...
...
@@ -107,13 +107,13 @@ public class StackerController {
resultList.add(cid);
}
resultList = resultList.stream().distinct().collect(Collectors.toList());
}
return
ResultBean
.
newOkResult
(
result
List
);
}
*/
return
ResultBean
.
newOkResult
(
availableStorage
List
);
}
private
static
final
List
<
String
>
msdCidList
=
Arrays
.
asList
(
"XLR4A"
,
"XLR4B"
,
"XLR5A"
,
"XLR5B"
,
"XLR6A"
,
"XLR6B"
);
private
List
<
St
ring
>
getAvailableStorage
(
String
stacker
,
String
storageCid
)
{
private
List
<
St
ackerAvailableStorage
>
getAvailableStorage
(
String
stacker
,
String
storageCid
)
{
List
<
StackerCache
>
stackerCacheList
=
StackerUtil
.
getDetailByStacker
(
stacker
);
//Msd和非Msd列表
List
<
StackerCache
>
msdList
=
new
ArrayList
<>();
...
...
@@ -123,18 +123,22 @@ public class StackerController {
}
}
if
(
msdList
!=
null
&&
!
msdList
.
isEmpty
())
{
List
<
St
ring
>
result
List
=
new
ArrayList
<>();
List
<
St
orage
>
storage
List
=
new
ArrayList
<>();
for
(
String
msdCid
:
msdCidList
)
{
if
(
StringUtils
.
isNotEmpty
(
storageCid
)){
if
(
msdCid
.
startsWith
(
storageCid
))
{
continue
;
}
}
resultList
.
add
(
msdCid
);
Storage
storage
=
dataCache
.
getStorage
(
msdCid
);
storageList
.
add
(
storage
);
}
log
.
info
(
"料串[{}]的msd不为空,信息为[{}],直接返回Msd列表"
,
stacker
,
JSON
.
toJSONString
(
resultList
));
return
resultList
;
log
.
info
(
"料串[{}]的msd不为空,信息为[{}],直接返回Msd列表"
,
stacker
,
JSON
.
toJSONString
(
storageList
));
List
<
StackerAvailableStorage
>
availableStorage
=
getAvailableStorage
(
stacker
,
storageList
,
stackerCacheList
);
if
(
availableStorage
!=
null
&&
!
availableStorage
.
isEmpty
()){
return
availableStorage
;
}
}
//不是msd的料仓
List
<
Storage
>
noMsdStorageList
=
new
ArrayList
<>();
...
...
@@ -148,7 +152,7 @@ public class StackerController {
noMsdStorageList
.
add
(
storage
);
}
}
List
<
St
ring
>
noMsdAvailableStorageList
=
getAvailableStorage
(
stacker
,
noMsdStorageList
,
stackerCacheList
);
List
<
St
ackerAvailableStorage
>
noMsdAvailableStorageList
=
getAvailableStorage
(
stacker
,
noMsdStorageList
,
stackerCacheList
);
if
(
noMsdAvailableStorageList
!=
null
&&
!
noMsdAvailableStorageList
.
isEmpty
())
{
return
noMsdAvailableStorageList
;
}
...
...
@@ -164,15 +168,14 @@ public class StackerController {
msdStorageList
.
add
(
storage
);
}
}
List
<
St
ring
>
msdAvailableStorageList
=
getAvailableStorage
(
stacker
,
msdStorageList
,
stackerCacheList
);
List
<
St
ackerAvailableStorage
>
msdAvailableStorageList
=
getAvailableStorage
(
stacker
,
msdStorageList
,
stackerCacheList
);
if
(
msdAvailableStorageList
!=
null
&&
!
msdAvailableStorageList
.
isEmpty
())
{
return
msdAvailableStorageList
;
}
return
new
ArrayList
<>();
}
private
List
<
String
>
getAvailableStorage
(
String
stacker
,
List
<
Storage
>
storageList
,
List
<
StackerCache
>
stackerList
)
{
List
<
String
>
availableStorageList
=
new
ArrayList
<>();
private
List
<
StackerAvailableStorage
>
getAvailableStorage
(
String
stacker
,
List
<
Storage
>
storageList
,
List
<
StackerCache
>
stackerList
)
{
List
<
StackerAvailableStorage
>
stackerAvailableStorageList
=
new
ArrayList
<>();
//按数量最多的进行排序
stackerList
=
stackerList
.
stream
().
sorted
(
Comparator
.
comparing
(
StackerCache:
:
getCount
).
reversed
()).
collect
(
Collectors
.
toList
());
...
...
@@ -217,7 +220,7 @@ public class StackerController {
}
//按空库位进行排序
if
(
stackerAvailableStorageList
!=
null
&&
!
stackerAvailableStorageList
.
isEmpty
()){
/*
if (stackerAvailableStorageList != null && !stackerAvailableStorageList.isEmpty()){
stackerAvailableStorageList = stackerAvailableStorageList.stream().sorted(Comparator.comparing(StackerAvailableStorage :: getCount).reversed()
.thenComparing(Comparator.comparing(StackerAvailableStorage::getEmptyCount).reversed())).collect(Collectors.toList());
log.info(JSON.toJSONString(stackerAvailableStorageList));
...
...
@@ -225,8 +228,8 @@ public class StackerController {
availableStorageList.add(stackerAvailableStorage.getStorageName());
}
availableStorageList = availableStorageList.stream().distinct().collect(Collectors.toList());
}
return
a
vailableStorageList
;
}
*/
return
stackerA
vailableStorageList
;
}
}
src/main/java/com/neotel/smfcore/custom/Jkem21481/manager/impl/ReturnStorageManagerImpl.java
查看文件 @
74643c1
...
...
@@ -77,7 +77,11 @@ public class ReturnStorageManagerImpl implements IReturnStorageManager {
public
void
saveOrUpdateReturnStorage
(
DataLog
task
)
{
//找到最后一个任务
DataLog
dataLog
=
dataLogManager
.
findOne
(
new
Query
(
Criteria
.
where
(
"barcode"
).
is
(
task
.
getBarcode
()).
and
(
"type"
).
is
(
OP
.
CHECKOUT
)).
with
(
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"updateDate"
)));
DataLog
dataLog
=
dataLogManager
.
findOne
(
new
Query
(
Criteria
.
where
(
"barcode"
).
is
(
task
.
getBarcode
())
.
and
(
"type"
).
is
(
OP
.
CHECKOUT
)
.
and
(
"posName"
).
exists
(
true
).
ne
(
""
)
).
with
(
Sort
.
by
(
Sort
.
Direction
.
DESC
,
"updateDate"
)));
if
(
dataLog
!=
null
)
{
log
.
info
(
dataLog
.
getBarcode
()
+
"找到上一个任务,对应的工单号为:"
+
dataLog
.
getStorageName
()
+
"任务状态为:"
+
dataLog
.
getStatus
()
+
",上次出库的任务数量为:"
+
dataLog
.
getNum
());
if
(
dataLog
.
isCheckOutTask
()
&&
dataLog
.
isFinished
())
{
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论