Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit decac0ea
由
zshaohui
编写于
2025-02-28 13:42:40 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
亮灯指引逻辑修改
1 个父辈
d71ed583
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
22 行增加
和
102 行删除
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
src/main/java/com/neotel/smfcore/core/device/handler/impl/BaseDeviceHandler.java
查看文件 @
decac0e
...
@@ -60,6 +60,7 @@ import org.springframework.stereotype.Service;
...
@@ -60,6 +60,7 @@ import org.springframework.stereotype.Service;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletRequest
;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.stream.Collectors
;
/**
/**
* Created by sunke on 2021/7/12.
* Created by sunke on 2021/7/12.
...
@@ -978,129 +979,48 @@ public class BaseDeviceHandler implements IDeviceHandler {
...
@@ -978,129 +979,48 @@ public class BaseDeviceHandler implements IDeviceHandler {
return
statusBean
;
return
statusBean
;
}
}
protected
List
<
DataLog
>
getLightGuideTask
(
Map
<
String
,
List
<
DataLog
>>
outMap
,
String
cid
)
{
protected
List
<
DataLog
>
getLightGuideTask
(
Map
<
String
,
List
<
DataLog
>>
outMap
,
String
cid
)
{
List
<
DataLog
>
dataLogs
=
Lists
.
newArrayList
();
List
<
DataLog
>
dataLogs
=
new
ArrayList
<>
();
if
(
outMap
.
size
()
<=
0
)
{
if
(
outMap
.
size
()
<=
0
)
{
return
dataLogs
;
return
dataLogs
;
}
}
//先查找正在执行中的发过去
//找到所有任务
for
(
String
sourceId
:
outMap
.
keySet
())
{
List
<
DataLog
>
needLightTask
=
new
ArrayList
<>();
//1.获取当前工单,所有的任务
List
<
DataLog
>
dataLogList
=
new
ArrayList
<>();
List
<
DataLog
>
allTasks
=
taskService
.
getAllTasks
();
List
<
DataLog
>
allTasks
=
taskService
.
getAllTasks
();
for
(
DataLog
dataLog
:
allTasks
)
{
for
(
DataLog
dataLog
:
allTasks
)
{
if
(
dataLog
.
isWait
()
||
dataLog
.
isExecuting
()){
if
(
dataLog
.
isCheckOutTask
()
&&
(
dataLog
.
isWait
()
||
dataLog
.
isExecuting
()))
{
if
(
sourceId
.
equals
(
dataLog
.
getSourceId
())){
if
(
StringUtils
.
isNotEmpty
(
dataLog
.
getSubSourceId
()))
{
dataLogList
.
add
(
dataLog
);
needLightTask
.
add
(
dataLog
);
}
}
}
//2.判断有没有正在执行的任务
boolean
hasExecuting
=
false
;
for
(
DataLog
dataLog
:
dataLogList
)
{
if
(
dataLog
.
isExecuting
()){
hasExecuting
=
true
;
if
(
cid
.
equals
(
dataLog
.
getCid
())){
dataLogs
.
add
(
dataLog
);
}
}
}
}
}
}
//3.判断工单是否存在
//按创建时间最早的进行排序
if
(!
hasExecuting
)
{
if
(
needLightTask
!=
null
&&
!
needLightTask
.
isEmpty
())
{
LiteOrder
order
=
liteOrderCache
.
getOrderSortItems
(
sourceId
);
needLightTask
=
needLightTask
.
stream
().
sorted
(
Comparator
.
comparing
(
DataLog
::
getCreateDate
)).
collect
(
Collectors
.
toList
());
if
(
order
==
null
)
{
//获取到工单ID
log
.
error
(
"ACCSHELF: sourceId="
+
sourceId
+
"的工单号未找到"
);
String
itemId
=
""
;
continue
;
for
(
DataLog
dataLog
:
needLightTask
)
{
}
if
(
StringUtils
.
isNotEmpty
(
dataLog
.
getSubSourceId
())){
itemId
=
dataLog
.
getSubSourceId
();
//3.获取到站位信息对应的任务
DataLog
needSendLog
=
null
;
for
(
LiteOrderItem
orderItem
:
order
.
getOrderItems
())
{
for
(
DataLog
dataLog
:
dataLogList
)
{
if
(
orderItem
.
getId
().
equals
(
dataLog
.
getSubSourceId
()))
{
needSendLog
=
dataLog
;
break
;
break
;
}
}
}
}
if
(
needSendLog
!=
null
)
{
//开始发送亮灯指令
break
;
if
(
StringUtils
.
isNotEmpty
(
itemId
)){
}
for
(
DataLog
dataLog
:
needLightTask
)
{
}
if
(
itemId
.
equals
(
dataLog
.
getSubSourceId
())){
if
(
cid
.
equals
(
dataLog
.
getCid
())
&&
dataLog
.
isWait
()){
//4.处理任务
if
(
needSendLog
!=
null
)
{
if
(
cid
.
equals
(
needSendLog
.
getCid
()))
{
if
(
needSendLog
.
isWait
())
{
needSendLog
.
setStatus
(
OP_STATUS
.
EXECUTING
.
name
());
taskService
.
updateQueueTask
(
needSendLog
);
dataLogs
.
add
(
needSendLog
);
log
.
info
(
"ACCSHELF: sourceId="
+
sourceId
+
"的工单["
+
order
.
getOrderNo
()
+
"]开始执行任务:["
+
needSendLog
.
getPosName
()
+
"]["
+
needSendLog
.
getPartNumber
()
+
"]["
+
needSendLog
.
getBarcode
()
+
"]"
);
}
}
String
subSourceId
=
needSendLog
.
getSubSourceId
();
if
(
StringUtils
.
isNotEmpty
(
subSourceId
))
{
for
(
DataLog
dataLog
:
taskService
.
getAllTasks
())
{
if
(
dataLog
.
isWait
()
&&
cid
.
equals
(
dataLog
.
getCid
())
&&
subSourceId
.
equals
(
dataLog
.
getSubSourceId
()))
{
if
(!
needSendLog
.
getBarcode
().
equals
(
dataLog
.
getBarcode
()))
{
dataLog
.
setStatus
(
OP_STATUS
.
EXECUTING
.
name
());
dataLog
.
setStatus
(
OP_STATUS
.
EXECUTING
.
name
());
taskService
.
updateQueueTask
(
dataLog
);
taskService
.
updateQueueTask
(
dataLog
);
dataLogs
.
add
(
dataLog
);
dataLogs
.
add
(
dataLog
);
log
.
info
(
"ACCSHELF: sourceId="
+
sourceId
+
"的工单["
+
order
.
getOrderNo
()
+
"]开始执行任务:["
+
dataLog
.
getPosName
()
+
"]["
+
dataLog
.
getPartNumber
()
+
"]["
+
dataLog
.
getBarcode
()
+
"]"
);
log
.
info
(
"ACCSHELF: sourceId="
+
dataLog
.
getSourceId
()
+
"的工单["
+
dataLog
.
getSourceName
()
+
"]开始执行任务:["
+
dataLog
.
getPosName
()
+
"]["
+
dataLog
.
getPartNumber
()
+
"]["
+
dataLog
.
getBarcode
()
+
"]"
);
}
}
}
}
}
}
}
}
}
}
}
/*List<DataLog> dataLogList = outMap.get(sourceId);
boolean isFind = false;
for (DataLog dataLog : dataLogList) {
if (dataLog.getStatus().equals(OP_STATUS.EXECUTING.name())) {
dataLogs.add(dataLog);
isFind = true;
break;
}
}
if (isFind) {
break;
}
//排序
LiteOrder order = liteOrderCache.getOrderSortItems(sourceId);
if (order == null) {
log.error("ACCSHELF: sourceId=" + sourceId + "的工单号未找到");
break;
}
for (LiteOrderItem item : order.getOrderItems()) {
for (DataLog dataLog : dataLogList) {
if (dataLog.getStatus().equals(OP_STATUS.WAIT.name())) {
if ((ObjectUtil.isNotEmpty(item.getPn()) && item.getPn().equals(dataLog.getPartNumber())) ||
(ObjectUtil.isNotEmpty(item.getRi()) && item.getRi().equals(dataLog.getBarcode()))
) {
dataLog.setStatus(OP_STATUS.EXECUTING.name());
}
taskService.updateQueueTask(dataLog);
log.info("ACCSHELF: sourceId=" + sourceId + "的工单[" + order.getOrderNo() + "]开始执行任务:[" + dataLog.getPosName() + "][" + dataLog.getPartNumber() + "][" + dataLog.getBarcode() + "]");
dataLogs.add(dataLog);
isFind = true;
break;
}
}
if (isFind) {
break;
}
}*/
}
return
dataLogs
;
return
dataLogs
;
}
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论