Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 700055ad
由
zshaohui
编写于
2023-10-10 13:26:38 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
客户端分配任务修改
1 个父辈
9b717212
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
84 行增加
和
14 行删除
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
查看文件 @
700055a
...
@@ -92,6 +92,12 @@ public class TaskService {
...
@@ -92,6 +92,12 @@ public class TaskService {
*/
*/
private
static
Map
<
String
,
String
>
boxPosName
=
Maps
.
newConcurrentMap
();
private
static
Map
<
String
,
String
>
boxPosName
=
Maps
.
newConcurrentMap
();
/**
* 出料口信息缓存
*/
public
static
Map
<
String
,
String
>
exportMap
=
Maps
.
newConcurrentMap
();
// public TaskService(List<ITaskListener> listenerList){
// public TaskService(List<ITaskListener> listenerList){
// for (ITaskListener taskListener: listenerList) {
// for (ITaskListener taskListener: listenerList) {
// taskListenerList.add(taskListener);
// taskListenerList.add(taskListener);
...
@@ -424,6 +430,7 @@ public class TaskService {
...
@@ -424,6 +430,7 @@ public class TaskService {
return
false
;
return
false
;
}
}
/**
/**
* 为 box 分配出库任务
* 为 box 分配出库任务
*/
*/
...
@@ -462,6 +469,7 @@ public class TaskService {
...
@@ -462,6 +469,7 @@ public class TaskService {
DataLog
singleOutTask
=
null
;
DataLog
singleOutTask
=
null
;
DataLog
outTask
=
null
;
DataLog
outTask
=
null
;
for
(
DataLog
task
:
allTasks
)
{
//优先分配单盘任务和没有工单的任务
for
(
DataLog
task
:
allTasks
)
{
//优先分配单盘任务和没有工单的任务
if
(
cid
.
equals
(
task
.
getCid
())
&&
task
.
isCheckOutTask
()
&&
task
.
isWait
())
{
if
(
cid
.
equals
(
task
.
getCid
())
&&
task
.
isCheckOutTask
()
&&
task
.
isWait
())
{
String
posName
=
task
.
getPosName
();
String
posName
=
task
.
getPosName
();
...
@@ -471,10 +479,6 @@ public class TaskService {
...
@@ -471,10 +479,6 @@ public class TaskService {
if
(
singleOutTask
==
null
||
task
.
getCreateDate
().
before
(
singleOutTask
.
getCreateDate
()))
{
if
(
singleOutTask
==
null
||
task
.
getCreateDate
().
before
(
singleOutTask
.
getCreateDate
()))
{
singleOutTask
=
task
;
singleOutTask
=
task
;
}
}
}
else
{
if
(
outTask
==
null
||
task
.
getCreateDate
().
before
(
outTask
.
getCreateDate
()))
{
outTask
=
task
;
}
}
}
}
}
}
}
...
@@ -483,28 +487,94 @@ public class TaskService {
...
@@ -483,28 +487,94 @@ public class TaskService {
log
.
info
(
"分配优先(单盘或无工单)出库任务"
+
singleOutTask
.
getBarcode
()
+
"["
+
singleOutTask
.
getPosName
()
+
"]到 "
+
cid
);
log
.
info
(
"分配优先(单盘或无工单)出库任务"
+
singleOutTask
.
getBarcode
()
+
"["
+
singleOutTask
.
getPosName
()
+
"]到 "
+
cid
);
return
singleOutTask
;
return
singleOutTask
;
}
}
//判断出料口位置是否一样
for
(
DataLog
task
:
allTasks
)
{
if
(
cid
.
equals
(
task
.
getCid
())
&&
task
.
isCheckOutTask
()
&&
task
.
isWait
())
{
String
posName
=
task
.
getPosName
();
if
(!
Strings
.
isNullOrEmpty
(
posName
))
{
if
(!
task
.
isSingleOut
())
{
if
(
outTask
==
null
||
task
.
getCreateDate
().
before
(
outTask
.
getCreateDate
()))
{
String
export
=
task
.
getExport
();
String
cacheExport
=
exportMap
.
get
(
cid
);
if
(
StringUtils
.
isNotBlank
(
cacheExport
))
{
if
(
cacheExport
.
equals
(
export
))
{
continue
;
}
}
outTask
=
task
;
}
}
}
}
}
//如果出料口相同,则重新赋值一遍
if
(
outTask
==
null
){
for
(
DataLog
task
:
allTasks
)
{
if
(
cid
.
equals
(
task
.
getCid
())
&&
task
.
isCheckOutTask
()
&&
task
.
isWait
())
{
String
posName
=
task
.
getPosName
();
if
(!
Strings
.
isNullOrEmpty
(
posName
))
{
if
(
outTask
==
null
||
task
.
getCreateDate
().
before
(
outTask
.
getCreateDate
()))
{
outTask
=
task
;
}
}
}
}
}
//判断发送的任务与当前执行的工单是否一致
//判断发送的任务与当前执行的工单是否一致
if
(
outTask
!=
null
)
{
if
(
outTask
!=
null
)
{
List
<
DataLog
>
dataLogList
=
new
ArrayList
<>();
//判断当前任务是不是大盘料
for
(
DataLog
task
:
allTasks
)
{
if
(
outTask
.
getW
()
>
7
)
{
if
(
outTask
.
getCid
().
equals
(
task
.
getCid
()))
{
return
outTask
;
if
(
StringUtils
.
isNotBlank
(
outTask
.
getSourceName
()))
{
}
if
(
outTask
.
getSourceName
().
equals
(
task
.
getSourceName
())){
if
(
task
.
isWait
())
{
String
sourceName
=
outTask
.
getSourceName
();
dataLogList
.
add
(
task
);
//判断当前工单有没有大盘料
boolean
otherStorageBigReel
=
false
;
if
(
StringUtils
.
isNotBlank
(
sourceName
))
{
for
(
DataLog
dataLog
:
allTasks
)
{
if
(
dataLog
.
isCheckOutTask
()
&&
dataLog
.
isWait
()
&&
sourceName
.
equals
(
dataLog
.
getSourceName
())
&&
dataLog
.
getW
()
>
7
)
{
if
(
dataLog
.
getCid
().
equals
(
cid
))
{
exportMap
.
put
(
dataLog
.
getCid
(),
dataLog
.
getExport
());
return
dataLog
;
}
else
{
otherStorageBigReel
=
true
;
}
}
}
//没有大盘料,直接返回当前任务
if
(!
otherStorageBigReel
)
{
exportMap
.
put
(
outTask
.
getCid
(),
outTask
.
getExport
());
return
outTask
;
}
//如果有大盘料,取B面的料
else
{
if
(
"B"
.
equals
(
outTask
.
getSide
()))
{
exportMap
.
put
(
outTask
.
getCid
(),
outTask
.
getExport
());
return
outTask
;
}
else
{
for
(
DataLog
dataLog
:
allTasks
)
{
if
(
dataLog
.
isCheckOutTask
()
&&
dataLog
.
isWait
()
&&
sourceName
.
equals
(
dataLog
.
getSourceName
()))
{
if
(
dataLog
.
getCid
().
equals
(
cid
)
&&
"B"
.
equals
(
outTask
.
getCid
()))
{
exportMap
.
put
(
dataLog
.
getCid
(),
dataLog
.
getExport
());
return
dataLog
;
}
}
}
}
}
}
}
}
}
}
if
(
dataLogList
!=
null
&&
!
dataLogList
.
isEmpty
()){
dataLogList
=
dataLogList
.
stream
().
sorted
(
Comparator
.
comparing
(
DataLog:
:
getW
).
reversed
()).
collect
(
Collectors
.
toList
());
outTask
=
dataLogList
.
get
(
0
);
}
}
}
}
return
outTask
;
return
outTask
;
}
}
/**
/**
* 出库处理
* 出库处理
*/
*/
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论