Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit ee3078b8
由
sunke
编写于
2022-12-05 08:52:04 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
锡膏料仓
1 个父辈
230d8423
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
45 行增加
和
17 行删除
src/main/java/com/neotel/smfcore/core/device/bean/BoxStatusBean.java
src/main/java/com/neotel/smfcore/core/solder/handler/SpBoxHandler.java
src/main/java/com/neotel/smfcore/core/solder/util/SolderBoxCache.java
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
src/main/java/com/neotel/smfcore/core/device/bean/BoxStatusBean.java
查看文件 @
ee3078b
...
...
@@ -132,6 +132,13 @@ public class BoxStatusBean {
return
data
.
get
(
"posId"
);
}
/**
* 从data中获取值
*/
public
String
getData
(
String
key
){
return
data
.
get
(
key
);
}
/**
* 获取客户端发送上来的出入库完成的库位信息
...
...
src/main/java/com/neotel/smfcore/core/solder/handler/SpBoxHandler.java
查看文件 @
ee3078b
...
...
@@ -77,11 +77,15 @@ public class SpBoxHandler extends BaseDeviceHandler {
if
(
queueTask
.
getBarcode
().
equals
(
barcode
)){
continue
;
}
if
(
queueTask
.
getCid
().
equals
(
cid
)
&&
queueTask
.
isMixTask
()
&&
mixTime
==
queueTask
.
getMixTime
()){
if
(
queueTask
.
getCid
().
equals
(
cid
)
&&
queueTask
.
is
Wait
()
&&
queueTask
.
is
MixTask
()
&&
mixTime
==
queueTask
.
getMixTime
()){
//搅拌时间相同, 重量相差在10%以内
float
diffWeight
=
Math
.
abs
(
queueTask
.
getNum
()
-
weight
);
float
diffRate
=
diffWeight
/
weight
;
if
(
diffRate
<=
0.1
){
log
.
info
(
"为["
+
barcode
+
"]匹配到搅拌任务["
+
queueTask
.
getBarcode
()+
"]"
);
queueTask
.
setStatus
(
OP_STATUS
.
EXECUTING
.
name
());
taskService
.
updateQueueTask
(
queueTask
);
Map
<
String
,
Object
>
resultMap
=
new
HashMap
<>();
resultMap
.
put
(
"posId"
,
queueTask
.
getPosName
());
resultMap
.
put
(
"barcode"
,
queueTask
.
getBarcode
());
...
...
@@ -293,6 +297,11 @@ public class SpBoxHandler extends BaseDeviceHandler {
return
statusBean
;
}
else
if
(
task
.
isMixTask
())
{
//已有正在执行的搅拌任务,先不发送
boolean
hasExecutingMixTask
=
hasExcecutingMixTask
(
cid
);
if
(
hasExecutingMixTask
){
continue
;
}
//搅拌任务
statusBean
.
setOp
(
OP
.
MIX
);
statusBean
.
addData
(
"posId"
,
task
.
getPosName
());
...
...
@@ -310,6 +319,18 @@ public class SpBoxHandler extends BaseDeviceHandler {
return
null
;
}
private
boolean
hasExcecutingMixTask
(
String
cid
){
Collection
<
DataLog
>
tasks
=
taskService
.
getQueueTasks
();
for
(
DataLog
t
:
tasks
)
{
if
(
t
.
getCid
().
equals
(
cid
)){
if
(
t
.
isMixTask
()
&&
t
.
isExecuting
()){
return
true
;
}
}
}
return
false
;
}
/**
* 根据回温取料任务查找回温放料任务
*
...
...
@@ -361,10 +382,10 @@ public class SpBoxHandler extends BaseDeviceHandler {
}
if
(
takingTask
!=
null
)
{
if
(
takingTask
.
isCancel
())
{
//被取消的任务,客户端发完成信号过来,修改取消状态为已完成
log
.
warn
(
statusBean
.
getCid
()
+
"回温取料["
+
boxStatus
.
getPosId
()
+
"]完成时任务
不存在
"
);
log
.
warn
(
statusBean
.
getCid
()
+
"回温取料["
+
boxStatus
.
getPosId
()
+
"]完成时任务
已取消
"
);
}
DataLog
puttingTask
=
null
;
List
<
DataLog
>
allTasks
=
taskService
.
getAll
Tasks
();
Collection
<
DataLog
>
allTasks
=
taskService
.
getQueue
Tasks
();
for
(
DataLog
dataLog
:
allTasks
)
{
if
(
dataLog
.
getCid
().
equals
(
statusBean
.
getCid
()))
{
if
(
dataLog
.
getBarcode
().
equals
(
takingTask
.
getBarcode
()))
{
...
...
@@ -377,15 +398,11 @@ public class SpBoxHandler extends BaseDeviceHandler {
rewarmTakingEnd
(
takingTask
);
if
(
puttingTask
!=
null
)
{
puttingTask
.
setStatus
(
OP_STATUS
.
EXECUTING
.
name
());
//dataLog.setSourceType();
// dataLogDao.save(puttingTask);
// taskMap.put(puttingTask.getId(), puttingTask);
taskService
.
addTaskToExecute
(
puttingTask
);;
taskService
.
updateQueueTask
(
puttingTask
);
statusBean
.
addData
(
"secondPosId"
,
puttingTask
.
getPosName
());
}
}
else
{
log
.
warn
(
statusBean
.
getCid
()
+
"
出仓位
["
+
boxStatus
.
getPosId
()
+
"]完成时任务不存在"
);
log
.
warn
(
statusBean
.
getCid
()
+
"
回温取料
["
+
boxStatus
.
getPosId
()
+
"]完成时任务不存在"
);
}
}
else
if
(
BOX_STATUS
.
REWARM_PUTTING_END
==
status
)
{
//回温放料结束
...
...
@@ -409,7 +426,11 @@ public class SpBoxHandler extends BaseDeviceHandler {
}
else
if
(
BOX_STATUS
.
MIXING
==
status
)
{
//搅拌中
changeSolderStatus
(
boxStatus
.
getPosId
(),
SOLDER_STATUS
.
MIXING
);
// changeSolderStatus(boxStatus.getPosId(), SOLDER_STATUS.MIXING);
// String secondPosId = boxStatus.getData("secondPosId");
// if(!Strings.isNullOrEmpty(secondPosId)){
// changeSolderStatus(secondPosId, SOLDER_STATUS.MIXING);
// }
}
else
if
(
BOX_STATUS
.
MIX_PUTTING
==
status
)
{
//搅拌完成
...
...
@@ -511,7 +532,7 @@ public class SpBoxHandler extends BaseDeviceHandler {
}
private
void
mixEnd
(
DataLog
mixTask
)
throws
ValidateException
{
if
(
mixTask
!=
null
)
{
log
.
info
(
mixTask
.
getBarcode
()
+
"搅拌完成,送回原库位,更改状态为待出库"
);
log
.
info
(
mixTask
.
getBarcode
()
+
"搅拌完成,送回原库位
["
+
mixTask
.
getPosName
()+
"]
,更改状态为待出库"
);
taskService
.
removeQueueTask
(
mixTask
);
mixTask
.
setStatus
(
OP_STATUS
.
FINISHED
.
name
());
...
...
src/main/java/com/neotel/smfcore/core/solder/util/SolderBoxCache.java
查看文件 @
ee3078b
...
...
@@ -212,15 +212,15 @@ public class SolderBoxCache {
StoragePos
warmPos
=
storagePosManager
.
getEmptyWarmPos
(
storage
,
barcode
,
excludePosIds
);
if
(
warmPos
!=
null
){
log
.
info
(
barcode
.
getBarcode
()
+
"创建回温移库任务["
+
storagePos
.
getPosName
()+
"]=>"
+
warmPos
.
getPosName
());
DataLog
puttingTask
=
newTask
(
storage
,
warmPos
,
barcode
);
puttingTask
.
setType
(
OP
.
REWARM_PUTTING
);
puttingTask
=
dataLogDao
.
save
(
puttingTask
);
taskService
.
addTaskToExecute
(
puttingTask
);
DataLog
takingTask
=
newTask
(
storage
,
storagePos
,
barcode
);
takingTask
.
setType
(
OP
.
REWARM_TAKING
);
takingTask
=
dataLogDao
.
save
(
takingTask
);
taskService
.
addTaskToExecute
(
takingTask
);
DataLog
puttingTask
=
newTask
(
storage
,
warmPos
,
barcode
);
puttingTask
.
setType
(
OP
.
REWARM_PUTTING
);
puttingTask
=
dataLogDao
.
save
(
puttingTask
);
taskService
.
addTaskToExecute
(
puttingTask
);
}
}
catch
(
ValidateException
e
)
{
log
.
info
(
barcode
.
getBarcode
()
+
"查找回温库位失败"
);
...
...
src/main/java/com/neotel/smfcore/core/system/util/TaskService.java
查看文件 @
ee3078b
...
...
@@ -340,7 +340,7 @@ public class TaskService {
log
.
error
(
"cid["
+
cid
+
"]已有入库任务,不可再分配出库任务"
);
return
null
;
}
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
());
return
task
;
}
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论