Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit a1e75e91
由
zshaohui
编写于
2024-12-08 20:01:32 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.上抛中控问题 提交
1 个父辈
0a0627a0
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
84 行增加
和
21 行删除
src/main/java/com/neotel/smfcore/custom/lizhen/kafka/bean/LastStatusInfo.java
src/main/java/com/neotel/smfcore/custom/lizhen/kafka/service/KafkaService.java
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/DifferenceReelController.java
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/bean/DifferentMaterial.java
src/main/java/com/neotel/smfcore/custom/lizhen/kafka/bean/LastStatusInfo.java
0 → 100644
查看文件 @
a1e75e9
package
com
.
neotel
.
smfcore
.
custom
.
lizhen
.
kafka
.
bean
;
import
lombok.AllArgsConstructor
;
import
lombok.Data
;
@Data
@AllArgsConstructor
public
class
LastStatusInfo
{
private
String
machineId
;
private
String
errorCode
;
private
String
errorText
;
private
long
lastSaveTime
=
0
l
;
}
src/main/java/com/neotel/smfcore/custom/lizhen/kafka/service/KafkaService.java
查看文件 @
a1e75e9
...
@@ -19,10 +19,7 @@ import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
...
@@ -19,10 +19,7 @@ import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import
com.neotel.smfcore.core.system.util.EquipStatusUtil
;
import
com.neotel.smfcore.core.system.util.EquipStatusUtil
;
import
com.neotel.smfcore.custom.lizhen.innerBox.bean.StorageExport
;
import
com.neotel.smfcore.custom.lizhen.innerBox.bean.StorageExport
;
import
com.neotel.smfcore.custom.lizhen.innerBox.util.StorageExportUtil
;
import
com.neotel.smfcore.custom.lizhen.innerBox.util.StorageExportUtil
;
import
com.neotel.smfcore.custom.lizhen.kafka.bean.Heartbeat
;
import
com.neotel.smfcore.custom.lizhen.kafka.bean.*
;
import
com.neotel.smfcore.custom.lizhen.kafka.bean.MachineParameter
;
import
com.neotel.smfcore.custom.lizhen.kafka.bean.MachineParameterData
;
import
com.neotel.smfcore.custom.lizhen.kafka.bean.MachineStatus
;
import
com.neotel.smfcore.custom.lizhen.kafka.config.KafkaConfig
;
import
com.neotel.smfcore.custom.lizhen.kafka.config.KafkaConfig
;
import
com.neotel.smfcore.custom.lizhen.kafka.config.StorageExportConfig
;
import
com.neotel.smfcore.custom.lizhen.kafka.config.StorageExportConfig
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
@@ -54,6 +51,8 @@ public class KafkaService {
...
@@ -54,6 +51,8 @@ public class KafkaService {
Map
<
String
,
String
>
statusMap
=
Maps
.
newConcurrentMap
();
Map
<
String
,
String
>
statusMap
=
Maps
.
newConcurrentMap
();
Map
<
String
,
List
<
LastStatusInfo
>>
lastStatusInfoMap
=
Maps
.
newConcurrentMap
();
/**
/**
* 料仓---设备状态
* 料仓---设备状态
...
@@ -134,10 +133,13 @@ public class KafkaService {
...
@@ -134,10 +133,13 @@ public class KafkaService {
status
.
setErrorCode
(
map
.
get
(
"errorCode"
));
status
.
setErrorCode
(
map
.
get
(
"errorCode"
));
status
.
setErrorMsg
(
map
.
get
(
"msg"
));
status
.
setErrorMsg
(
map
.
get
(
"msg"
));
status
.
setCurrentStatus
(
"3"
);
status
.
setCurrentStatus
(
"3"
);
String
statusStr
=
JSON
.
toJSONString
(
status
);
boolean
hasSameStatus
=
hasSameStatus
(
status
.
getMachineID
(),
status
.
getErrorCode
(),
status
.
getErrorMsg
());
log
.
info
(
"主题为:"
+
KafkaConfig
.
MACHINESTATUS_TOPIC
+
"内容为:"
+
statusStr
);
if
(!
hasSameStatus
){
ListenableFuture
future
=
kafkaTemplate
.
send
(
KafkaConfig
.
MACHINESTATUS_TOPIC
,
statusStr
);
String
statusStr
=
JSON
.
toJSONString
(
status
);
//log.info("返回结果为:" + JSON.toJSONString(future));
log
.
info
(
"主题为:"
+
KafkaConfig
.
MACHINESTATUS_TOPIC
+
"内容为:"
+
statusStr
);
ListenableFuture
future
=
kafkaTemplate
.
send
(
KafkaConfig
.
MACHINESTATUS_TOPIC
,
statusStr
);
updateLastStatus
(
status
.
getMachineID
(),
status
.
getErrorCode
(),
status
.
getErrorMsg
());
}
}
}
}
else
{
}
else
{
if
(
"3"
.
equals
(
currentStatus
)){
if
(
"3"
.
equals
(
currentStatus
)){
...
@@ -258,9 +260,6 @@ public class KafkaService {
...
@@ -258,9 +260,6 @@ public class KafkaService {
}
}
//发送出料口信息
/**
/**
* 发送出料口心跳
* 发送出料口心跳
*/
*/
...
@@ -299,7 +298,7 @@ public class KafkaService {
...
@@ -299,7 +298,7 @@ public class KafkaService {
/**
/**
*
设备
状态发送
*
出料口
状态发送
*/
*/
@Scheduled
(
fixedRate
=
1000
*
10
)
@Scheduled
(
fixedRate
=
1000
*
10
)
public
void
setStorageExportStatus
()
{
public
void
setStorageExportStatus
()
{
...
@@ -341,10 +340,15 @@ public class KafkaService {
...
@@ -341,10 +340,15 @@ public class KafkaService {
machineStatus
.
setErrorCode
(
equipMsg
.
getErrorCode
());
machineStatus
.
setErrorCode
(
equipMsg
.
getErrorCode
());
machineStatus
.
setErrorMsg
(
equipMsg
.
getMsg
());
machineStatus
.
setErrorMsg
(
equipMsg
.
getMsg
());
machineStatus
.
setClientIP
(
statusBean
.
getClientIp
());
machineStatus
.
setClientIP
(
statusBean
.
getClientIp
());
String
statusStr
=
JSON
.
toJSONString
(
machineStatus
);
boolean
hasSameStatus
=
hasSameStatus
(
machineStatus
.
getMachineID
(),
machineStatus
.
getErrorCode
(),
machineStatus
.
getErrorMsg
());
log
.
info
(
"出料口主题为:"
+
KafkaConfig
.
MACHINESTATUS_TOPIC
+
"内容为:"
+
statusStr
);
if
(!
hasSameStatus
){
ListenableFuture
future
=
kafkaTemplate
.
send
(
KafkaConfig
.
MACHINESTATUS_TOPIC
,
statusStr
);
String
statusStr
=
JSON
.
toJSONString
(
machineStatus
);
log
.
info
(
"出料口返回结果为:"
+
JSON
.
toJSONString
(
future
));
log
.
info
(
"出料口主题为:"
+
KafkaConfig
.
MACHINESTATUS_TOPIC
+
"内容为:"
+
statusStr
);
ListenableFuture
future
=
kafkaTemplate
.
send
(
KafkaConfig
.
MACHINESTATUS_TOPIC
,
statusStr
);
log
.
info
(
"出料口返回结果为:"
+
JSON
.
toJSONString
(
future
));
updateLastStatus
(
machineStatus
.
getMachineID
(),
machineStatus
.
getErrorCode
(),
machineStatus
.
getErrorMsg
());
}
}
}
}
else
{
}
else
{
MachineStatus
machineStatus
=
new
MachineStatus
();
MachineStatus
machineStatus
=
new
MachineStatus
();
...
@@ -367,9 +371,50 @@ public class KafkaService {
...
@@ -367,9 +371,50 @@ public class KafkaService {
}
}
private
void
updateLastStatus
(
String
machineId
,
String
errorCode
,
String
errorText
)
{
List
<
LastStatusInfo
>
lastStatusInfoList
=
lastStatusInfoMap
.
get
(
machineId
);
if
(
lastStatusInfoList
==
null
)
{
lastStatusInfoList
=
new
ArrayList
<>();
}
boolean
hasSameStatus
=
false
;
for
(
LastStatusInfo
lastStatusInfo
:
lastStatusInfoList
)
{
if
(
errorText
.
equals
(
lastStatusInfo
.
getErrorText
()))
{
//超过1个小时,重新统计
if
(
System
.
currentTimeMillis
()
-
lastStatusInfo
.
getLastSaveTime
()
>=
1000
*
60
*
30
)
{
hasSameStatus
=
true
;
break
;
}
}
}
if
(!
hasSameStatus
)
{
LastStatusInfo
lastStatusInfo
=
new
LastStatusInfo
(
machineId
,
errorCode
,
errorText
,
System
.
currentTimeMillis
());
lastStatusInfoList
.
add
(
lastStatusInfo
);
}
//清理超过一个小时的
lastStatusInfoList
=
lastStatusInfoList
.
stream
()
.
filter
(
lastStatusInfo
->
System
.
currentTimeMillis
()-
lastStatusInfo
.
getLastSaveTime
()
>=
1000
*
60
*
30
)
.
collect
(
Collectors
.
toList
());
lastStatusInfoMap
.
put
(
machineId
,
lastStatusInfoList
);
}
private
boolean
hasSameStatus
(
String
machineId
,
String
errorCode
,
String
errorText
)
{
boolean
hasSameStatus
=
false
;
List
<
LastStatusInfo
>
lastStatusInfoList
=
lastStatusInfoMap
.
get
(
machineId
);
if
(
lastStatusInfoList
==
null
)
{
lastStatusInfoList
=
new
ArrayList
<>();
}
for
(
LastStatusInfo
lastStatusInfo
:
lastStatusInfoList
)
{
if
(
errorText
.
equals
(
lastStatusInfo
.
getErrorText
()))
{
//超过1个小时,重新统计
if
(
System
.
currentTimeMillis
()
-
lastStatusInfo
.
getLastSaveTime
()
>=
1000
*
60
*
30
)
{
log
.
info
(
machineId
+
"的报错信息和上一次相同,跳过"
);
hasSameStatus
=
true
;
break
;
}
}
}
return
hasSameStatus
;
}
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/DifferenceReelController.java
查看文件 @
a1e75e9
...
@@ -40,7 +40,7 @@ public class DifferenceReelController {
...
@@ -40,7 +40,7 @@ public class DifferenceReelController {
List
<
LiteOrderItem
>
itemList
=
new
ArrayList
<>();
List
<
LiteOrderItem
>
itemList
=
new
ArrayList
<>();
for
(
DifferentMaterial
differentMaterial
:
differentMaterialList
)
{
for
(
DifferentMaterial
differentMaterial
:
differentMaterialList
)
{
String
mo
=
differentMaterial
.
getM
o
();
String
wo
=
differentMaterial
.
getW
o
();
String
mc
=
differentMaterial
.
getMc
();
String
mc
=
differentMaterial
.
getMc
();
String
ipn
=
differentMaterial
.
getIpn
();
String
ipn
=
differentMaterial
.
getIpn
();
if
(
StringUtils
.
isEmpty
(
ipn
)){
if
(
StringUtils
.
isEmpty
(
ipn
)){
...
@@ -56,7 +56,7 @@ public class DifferenceReelController {
...
@@ -56,7 +56,7 @@ public class DifferenceReelController {
String
side
=
gidLineSideS
[
2
];
String
side
=
gidLineSideS
[
2
];
LiteOrderItem
item
=
new
LiteOrderItem
();
LiteOrderItem
item
=
new
LiteOrderItem
();
item
.
setMo
(
m
o
);
item
.
setMo
(
w
o
);
item
.
setMachineName
(
mc
);
item
.
setMachineName
(
mc
);
item
.
setPn
(
ipn
);
item
.
setPn
(
ipn
);
item
.
setStation
(
zone
);
item
.
setStation
(
zone
);
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/bean/DifferentMaterial.java
查看文件 @
a1e75e9
...
@@ -13,7 +13,7 @@ public class DifferentMaterial {
...
@@ -13,7 +13,7 @@ public class DifferentMaterial {
* gidLineSide;//线_Line_面
* gidLineSide;//线_Line_面
*/
*/
private
String
m
o
;
private
String
w
o
;
private
String
mc
;
private
String
mc
;
private
String
ipn
;
private
String
ipn
;
private
String
zone
;
private
String
zone
;
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论