Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit f94231f4
由
zshaohui
编写于
2025-08-20 15:24:11 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.绑定料箱为空处理
2.工单出库挑最合适的料箱
1 个父辈
e6e4df6f
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
35 行增加
和
4 行删除
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
src/main/java/com/neotel/smfcore/core/order/rest/OrderSheetController.java
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrder.java
src/main/java/com/neotel/smfcore/core/order/LiteOrderCache.java
查看文件 @
f94231f
...
...
@@ -814,6 +814,17 @@ public class LiteOrderCache implements ITaskListener {
}
}
int
oneReelNum
=
component
.
getAmount
();
//如果单盘能满足,直接返回
StoragePos
pos
=
pickFitWholeReel
(
excludePosNameList
,
posList
,
targetNum
);
if
(
pos
!=
null
)
{
if
(
pos
.
getBarcode
().
getAmount
()
-
targetNum
>=
0
)
{
log
.
info
(
"需求数量为:"
+
targetNum
+
",barcode:"
+
pos
.
getBarcode
().
getBarcode
()
+
" 对应的数量为:"
+
pos
.
getBarcode
().
getAmount
()
+
",满足需求数量,直接返回"
);
outPosList
.
add
(
pos
);
return
outPosList
;
}
}
//挑选整盘
log
.
info
(
"开始挑选整盘料,共需要"
+
needWholeReelCount
+
"盘"
);
for
(
int
i
=
0
;
i
<
needWholeReelCount
;
i
++)
{
...
...
@@ -837,7 +848,8 @@ public class LiteOrderCache implements ITaskListener {
break
;
}
if
(
notWholePosList
.
size
()
>=
notFullNum
)
{
StoragePos
outPos
=
pickWholeReel
(
excludePosNameList
,
posList
,
targetNum
,
oneReelNum
);
break
;
/* StoragePos outPos = pickWholeReel(excludePosNameList, posList, targetNum, oneReelNum);
if (outPos == null) {
break;
} else {
...
...
@@ -845,7 +857,7 @@ public class LiteOrderCache implements ITaskListener {
outPosList.add(outPos);
excludePosNameList.add(outPos.getPosName());
targetNum = targetNum - outPos.getBarcode().getAmount();
}
}
*/
}
else
{
for
(
StoragePos
outPos
:
notWholePosList
)
{
log
.
info
(
"挑选到批次["
+
outPos
.
getBarcode
().
getBatch
()
+
"]的散盘物料:"
+
outPos
.
getBarcode
().
getBarcode
()
+
" 数量:"
+
outPos
.
getBarcode
().
getAmount
());
...
...
@@ -984,14 +996,24 @@ public class LiteOrderCache implements ITaskListener {
private
List
<
StoragePos
>
findNotWholePosList
(
List
<
String
>
excludePosNameList
,
List
<
StoragePos
>
posList
,
int
targetNum
,
int
oneReelNum
,
String
pn
,
int
notFullNum
)
{
List
<
StoragePos
>
storagePosList
=
new
ArrayList
<>();
//新创建一个list对象,防止引用
List
<
String
>
newExcluePosNameList
=
new
ArrayList
<>();
if
(
excludePosNameList
!=
null
&&
!
excludePosNameList
.
isEmpty
()){
for
(
String
excludePosName
:
excludePosNameList
)
{
newExcluePosNameList
.
add
(
excludePosName
);
}
}
while
(
true
)
{
if
(
storagePosList
!=
null
&&
!
storagePosList
.
isEmpty
())
{
for
(
StoragePos
pos
:
storagePosList
)
{
excludePosNameList
.
add
(
pos
.
getPosName
());
if
(!
newExcluePosNameList
.
contains
(
pos
.
getPosName
()))
{
newExcluePosNameList
.
add
(
pos
.
getPosName
());
}
}
}
//取散盘
StoragePos
outPos
=
pickNotWholeReel
(
exclud
ePosNameList
,
posList
,
targetNum
,
oneReelNum
);
StoragePos
outPos
=
pickNotWholeReel
(
newExclu
ePosNameList
,
posList
,
targetNum
,
oneReelNum
);
if
(
outPos
==
null
)
{
break
;
}
else
{
...
...
src/main/java/com/neotel/smfcore/core/order/rest/OrderController.java
查看文件 @
f94231f
...
...
@@ -664,6 +664,11 @@ public class OrderController {
continue
;
}
}
if
(!
onlyNotEndTask
){
if
(
datalog
.
isWait
()){
continue
;
}
}
if
(
datalog
.
isOrderTask
()
&&
datalog
.
getSourceId
().
equals
(
liteOrder
.
getId
()))
{
//判断是否再自己的权限范围内
if
(
myStorageIds
.
contains
(
datalog
.
getStorageId
()))
{
...
...
src/main/java/com/neotel/smfcore/core/order/rest/OrderSheetController.java
查看文件 @
f94231f
...
...
@@ -105,6 +105,7 @@ public class OrderSheetController {
}
for
(
String
boxName
:
boxNames
)
{
log
.
info
(
orderNo
+
"绑定料箱信息:"
+
boxName
);
if
(
liteOrder
.
hasBox
(
boxName
))
{
throw
new
ValidateException
(
"smfcore.orderSheet.box.exists"
,
"工单{0}已存在箱子{0}"
,
new
String
[]{
liteOrder
.
getOrderNo
(),
boxName
});
}
...
...
src/main/java/com/neotel/smfcore/core/order/service/po/LiteOrder.java
查看文件 @
f94231f
...
...
@@ -378,6 +378,9 @@ public class LiteOrder extends BasePo implements Serializable {
public
boolean
hasBox
(
String
boxName
){
if
(
boxInfos
!=
null
){
for
(
OrderBoxInfo
box
:
boxInfos
)
{
if
(
StringUtils
.
isEmpty
(
box
.
getBoxName
())){
continue
;
}
if
(
box
.
getBoxName
().
equals
(
boxName
)){
return
true
;
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论