Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 4428addc
由
LN
编写于
2024-05-10 10:47:26 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
优先分配对向的出库任务
1 个父辈
4dd19615
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
53 行增加
和
5 行删除
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
查看文件 @
4428add
...
@@ -337,14 +337,14 @@ public class TaskService {
...
@@ -337,14 +337,14 @@ public class TaskService {
}
}
return
false
;
return
false
;
}
}
/**
* 为 box 分配出库任务
*/
private
DataLog
findCheckoutBoxTask
(
Storage
storage
)
{
private
DataLog
findCheckoutBoxTask
(
Storage
storage
)
{
String
cid
=
storage
.
getCid
();
String
cid
=
storage
.
getCid
();
int
checkoutSize
=
0
;
int
checkoutSize
=
0
;
Collection
<
DataLog
>
allTasks
=
taskMap
.
values
();
Collection
<
DataLog
>
allTasks
=
taskMap
.
values
();
//当前出库任务的posName
String
currPosName
=
""
;
for
(
DataLog
task
:
allTasks
)
{
for
(
DataLog
task
:
allTasks
)
{
if
(!
task
.
isCheckOutTask
())
{
if
(!
task
.
isCheckOutTask
())
{
continue
;
continue
;
...
@@ -355,9 +355,11 @@ public class TaskService {
...
@@ -355,9 +355,11 @@ public class TaskService {
log
.
error
(
"cid["
+
cid
+
"]已有入库任务,不可再分配出库任务"
);
log
.
error
(
"cid["
+
cid
+
"]已有入库任务,不可再分配出库任务"
);
return
null
;
return
null
;
}
else
if
(
task
.
needReSendToClient
()
&&
task
.
isCheckOutTask
())
{
//超过30秒仍未完成的出库再次发送到客户端
}
else
if
(
task
.
needReSendToClient
()
&&
task
.
isCheckOutTask
())
{
//超过30秒仍未完成的出库再次发送到客户端
log
.
error
(
"cid["
+
cid
+
"]的出库任务["
+
task
.
getPosName
()
+
"]超过60秒仍未完成,重新发送到客户端!"
);
log
.
error
(
"cid["
+
cid
+
"]的出库任务["
+
task
.
getPosName
()
+
"]
"
+
task
.
getBarcode
()
+
"
超过60秒仍未完成,重新发送到客户端!"
);
task
.
setUpdateDate
(
new
Date
());
task
.
setUpdateDate
(
new
Date
());
return
task
;
return
task
;
}
else
if
(
task
.
isCheckOutTask
())
{
currPosName
=
task
.
getPosName
();
}
}
//只能同时有两个正在执行的出库任务,如果超过两个不再分配了
//只能同时有两个正在执行的出库任务,如果超过两个不再分配了
...
@@ -370,6 +372,52 @@ public class TaskService {
...
@@ -370,6 +372,52 @@ public class TaskService {
}
}
}
}
}
}
String
currPosType
=
""
;
try
{
//先查找对面的
//04AA02130411
//04BB08070210
if
(
ObjectUtil
.
isNotEmpty
(
currPosName
))
{
if
(
currPosName
.
contains
(
"AA"
))
{
currPosType
=
"AA"
;
}
else
if
(
currPosName
.
contains
(
"BB"
))
{
currPosType
=
"BB"
;
}
}
if
(
ObjectUtil
.
isNotEmpty
(
currPosType
))
{
DataLog
singleOutTask
=
null
;
DataLog
outTask
=
null
;
for
(
DataLog
task
:
allTasks
)
{
//优先分配单盘任务和没有工单的任务
if
(
cid
.
equals
(
task
.
getCid
())
&&
task
.
isCheckOutTask
()
&&
task
.
isWait
())
{
String
posName
=
task
.
getPosName
();
if
(!
Strings
.
isNullOrEmpty
(
posName
)
&&
(!
posName
.
contains
(
currPosType
)))
{
//有库位号
if
(
task
.
isSingleOut
())
{
//单盘优先出库
if
(
singleOutTask
==
null
||
task
.
getCreateDate
().
before
(
singleOutTask
.
getCreateDate
()))
{
singleOutTask
=
task
;
}
}
else
{
if
(
outTask
==
null
||
task
.
getCreateDate
().
before
(
outTask
.
getCreateDate
()))
{
outTask
=
task
;
}
}
}
}
}
if
(
singleOutTask
!=
null
)
{
log
.
info
(
"当前出库库位号:"
+
currPosName
+
",type="
+
currPosType
+
"分配优先(单盘或无工单)的对向出库任务"
+
singleOutTask
.
getBarcode
()
+
"["
+
singleOutTask
.
getPosName
()
+
"]到 "
+
cid
);
return
singleOutTask
;
}
if
(
outTask
!=
null
)
{
log
.
info
(
"当前出库库位号:"
+
currPosName
+
",type="
+
currPosType
+
"分配对向出库任务"
+
outTask
.
getBarcode
()
+
"["
+
outTask
.
getPosName
()
+
"]到 "
+
cid
);
return
outTask
;
}
}
}
catch
(
Exception
exception
)
{
log
.
error
(
"findCheckoutBoxTask 当前出库库位号:"
+
currPosName
+
",type="
+
currPosType
+
",查找对向库位时出错:"
+
exception
.
toString
());
}
//指定紧急单盘出库的优先出库,否则按批量出库处理
//指定紧急单盘出库的优先出库,否则按批量出库处理
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论