Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 2ef9a125
由
zshaohui
编写于
2024-12-19 10:44:45 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
1.差异料转发更新
2.上抛中控问题修改
1 个父辈
6cd379f1
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
111 行增加
和
14 行删除
src/main/java/com/neotel/smfcore/core/system/util/DbBackupService.java
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/bean/DifferentMaterial.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/kafka/bean/LastStatusInfo.java
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/kafka/service/KafkaService.java
src/main/java/com/neotel/smfcore/core/system/util/DbBackupService.java
查看文件 @
2ef9a12
...
@@ -3,6 +3,7 @@ package com.neotel.smfcore.core.system.util;
...
@@ -3,6 +3,7 @@ package com.neotel.smfcore.core.system.util;
import
com.google.common.base.Strings
;
import
com.google.common.base.Strings
;
import
com.neotel.smfcore.common.utils.Constants
;
import
com.neotel.smfcore.common.utils.Constants
;
import
com.neotel.smfcore.common.utils.DateUtil
;
import
com.neotel.smfcore.common.utils.DateUtil
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.device.util.DataCache
;
import
com.neotel.smfcore.core.inList.service.po.InList
;
import
com.neotel.smfcore.core.inList.service.po.InList
;
import
com.neotel.smfcore.core.inList.service.po.InListItem
;
import
com.neotel.smfcore.core.inList.service.po.InListItem
;
...
@@ -25,6 +26,7 @@ import org.springframework.data.mongodb.core.query.Query;
...
@@ -25,6 +26,7 @@ import org.springframework.data.mongodb.core.query.Query;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.PostConstruct
;
import
javax.annotation.PostConstruct
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.ExecutorService
;
...
@@ -45,6 +47,8 @@ public class DbBackupService {
...
@@ -45,6 +47,8 @@ public class DbBackupService {
@Autowired
@Autowired
private
IAlarmInfoDao
alarmInfoDao
;
private
IAlarmInfoDao
alarmInfoDao
;
public
static
final
String
BARCODE_STR
=
"Barcode"
;
boolean
processing
=
false
;
boolean
processing
=
false
;
@PostConstruct
@PostConstruct
...
@@ -108,7 +112,8 @@ public class DbBackupService {
...
@@ -108,7 +112,8 @@ public class DbBackupService {
Message
.
class
,
Message
.
class
,
AlarmInfo
.
class
,
AlarmInfo
.
class
,
VirImportLog
.
class
,
VirImportLog
.
class
,
VirInventory
.
class
VirInventory
.
class
,
Barcode
.
class
);
);
dataCache
.
updateCache
(
Constants
.
LAST_BACKUP_TIME_KEY
,
new
Date
());
dataCache
.
updateCache
(
Constants
.
LAST_BACKUP_TIME_KEY
,
new
Date
());
processing
=
false
;
processing
=
false
;
...
@@ -120,7 +125,22 @@ public class DbBackupService {
...
@@ -120,7 +125,22 @@ public class DbBackupService {
try
{
try
{
MongoTemplate
mongoTemplate
=
alarmInfoDao
.
getMongoTemplate
();
MongoTemplate
mongoTemplate
=
alarmInfoDao
.
getMongoTemplate
();
Date
monthsBeforeToday
=
DateUtil
.
addMonthsFromToday
(-
monthsBefore
);
Date
monthsBeforeToday
=
DateUtil
.
addMonthsFromToday
(-
monthsBefore
);
Criteria
c
=
Criteria
.
where
(
"createDate"
).
lt
(
monthsBeforeToday
);
Criteria
c
=
new
Criteria
();
if
(
entityClass
.
getName
().
endsWith
(
BARCODE_STR
))
{
List
<
Criteria
>
criteriaList
=
new
ArrayList
<>();
criteriaList
.
add
(
Criteria
.
where
(
"posName"
).
is
(
""
));
criteriaList
.
add
(
Criteria
.
where
(
"posName"
).
exists
(
false
));
//monthsBeforeToday = cn.hutool.core.date.DateUtil.offsetMonth(monthsBeforeToday,+2);
List
<
String
>
partNumberList
=
new
ArrayList
<>();
partNumberList
.
add
(
"C07"
);
partNumberList
.
add
(
"C13"
);
partNumberList
.
add
(
"C15"
);
c
=
Criteria
.
where
(
"updateDate"
).
lt
(
monthsBeforeToday
).
orOperator
(
criteriaList
).
and
(
"partNumber"
).
nin
(
partNumberList
);
}
else
{
c
=
Criteria
.
where
(
"createDate"
).
lt
(
monthsBeforeToday
);
}
Query
query
=
new
Query
(
c
);
Query
query
=
new
Query
(
c
);
PageRequest
page
=
PageRequest
.
ofSize
(
20000
);
PageRequest
page
=
PageRequest
.
ofSize
(
20000
);
String
collectionName
=
mongoTemplate
.
getCollectionName
(
entityClass
);
String
collectionName
=
mongoTemplate
.
getCollectionName
(
entityClass
);
...
...
src/main/java/com/neotel/smfcore/custom/lizhen/wcs/bean/DifferentMaterial.java
查看文件 @
2ef9a12
...
@@ -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
;
...
...
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/kafka/bean/LastStatusInfo.java
0 → 100644
查看文件 @
2ef9a12
package
com
.
neotel
.
smfcore
.
custom
.
luxsan
.
factory_c
.
rawstor
.
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
;
}
\ No newline at end of file
\ No newline at end of file
src/main/java/com/neotel/smfcore/custom/luxsan/factory_c/rawstor/kafka/service/KafkaService.java
查看文件 @
2ef9a12
...
@@ -2,6 +2,7 @@ package com.neotel.smfcore.custom.luxsan.factory_c.rawstor.kafka.service;
...
@@ -2,6 +2,7 @@ package com.neotel.smfcore.custom.luxsan.factory_c.rawstor.kafka.service;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.google.common.collect.Maps
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.common.utils.StringUtils
;
import
com.neotel.smfcore.core.barcode.enums.BARCODE_STATUS
;
import
com.neotel.smfcore.core.barcode.enums.BARCODE_STATUS
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
import
com.neotel.smfcore.core.barcode.service.po.Barcode
;
...
@@ -31,6 +32,7 @@ import org.springframework.util.concurrent.ListenableFuture;
...
@@ -31,6 +32,7 @@ import org.springframework.util.concurrent.ListenableFuture;
import
java.util.*
;
import
java.util.*
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.stream.Collectors
;
//@Async
//@Async
@Service
@Service
...
@@ -50,6 +52,9 @@ public class KafkaService {
...
@@ -50,6 +52,9 @@ public class KafkaService {
private
IStoragePosManager
storagePosManager
;
private
IStoragePosManager
storagePosManager
;
Map
<
String
,
List
<
LastStatusInfo
>>
lastStatusInfoMap
=
Maps
.
newConcurrentMap
();
/**
/**
* 推送原材料仓的储位,出入库信息,每5分钟抛送一次
* 推送原材料仓的储位,出入库信息,每5分钟抛送一次
*/
*/
...
@@ -182,14 +187,19 @@ public class KafkaService {
...
@@ -182,14 +187,19 @@ public class KafkaService {
machineStatus
.
setOccurrenceTime
(
dateStr
);
machineStatus
.
setOccurrenceTime
(
dateStr
);
machineStatus
.
setMachineID
(
machineId
);
machineStatus
.
setMachineID
(
machineId
);
machineStatus
.
setTopicType
(
KafkaConfig
.
MACHINESTATUS_TOPIC
);
machineStatus
.
setTopicType
(
KafkaConfig
.
MACHINESTATUS_TOPIC
);
machineStatus
.
setCurrentStatus
(
currentStatus
);
machineStatus
.
setCurrentStatus
(
"3"
);
machineStatus
.
setErrorCode
(
equipMsg
.
getErrorCode
());
machineStatus
.
setErrorCode
(
equipMsg
.
getErrorCode
());
machineStatus
.
setErrorMsg
(
equipMsg
.
getMsg
());
machineStatus
.
setErrorMsg
(
equipMsg
.
getMsg
());
machineStatus
.
setClientIP
(
""
);
machineStatus
.
setClientIP
(
""
);
String
statusStr
=
JSON
.
toJSONString
(
machineStatus
);
log
.
info
(
machineId
+
"抛送设备状态主题为:"
+
KafkaConfig
.
MACHINESTATUS_TOPIC
+
"内容为:"
+
statusStr
);
boolean
hasSameStatus
=
hasSameStatus
(
machineStatus
.
getMachineID
(),
machineStatus
.
getErrorCode
(),
machineStatus
.
getErrorMsg
());
ListenableFuture
future
=
kafkaTemplate
.
send
(
KafkaConfig
.
MACHINESTATUS_TOPIC
,
statusStr
);
if
(!
hasSameStatus
)
{
log
.
info
(
machineId
+
"抛送设备状态返回结果为:"
+
JSON
.
toJSONString
(
future
));
String
statusStr
=
JSON
.
toJSONString
(
machineStatus
);
log
.
info
(
machineId
+
"抛送设备状态主题为:"
+
KafkaConfig
.
MACHINESTATUS_TOPIC
+
"内容为:"
+
statusStr
);
ListenableFuture
future
=
kafkaTemplate
.
send
(
KafkaConfig
.
MACHINESTATUS_TOPIC
,
statusStr
);
log
.
info
(
machineId
+
"抛送设备状态返回结果为:"
+
JSON
.
toJSONString
(
future
));
updateLastStatus
(
machineStatus
.
getMachineID
(),
machineStatus
.
getErrorCode
(),
machineStatus
.
getErrorMsg
());
}
}
}
}
else
{
}
else
{
MachineStatus
machineStatus
=
new
MachineStatus
();
MachineStatus
machineStatus
=
new
MachineStatus
();
...
@@ -210,6 +220,7 @@ public class KafkaService {
...
@@ -210,6 +220,7 @@ public class KafkaService {
log
.
info
(
"结束推送原材料仓,入料和出料机构设备状态信息"
);
log
.
info
(
"结束推送原材料仓,入料和出料机构设备状态信息"
);
}
}
@Scheduled
(
cron
=
"0 0 7,19 * * ? "
)
@Scheduled
(
cron
=
"0 0 7,19 * * ? "
)
//@Scheduled(fixedRate = 1000 * 5)
//@Scheduled(fixedRate = 1000 * 5)
public
void
setPosUseInfo
(){
public
void
setPosUseInfo
(){
...
@@ -326,15 +337,19 @@ public class KafkaService {
...
@@ -326,15 +337,19 @@ public class KafkaService {
machineStatus
.
setOccurrenceTime
(
dateStr
);
machineStatus
.
setOccurrenceTime
(
dateStr
);
machineStatus
.
setMachineID
(
agvMachineId
);
machineStatus
.
setMachineID
(
agvMachineId
);
machineStatus
.
setTopicType
(
KafkaConfig
.
Agv_MachineStatus
);
machineStatus
.
setTopicType
(
KafkaConfig
.
Agv_MachineStatus
);
machineStatus
.
setCurrentStatus
(
currentStatus
);
machineStatus
.
setCurrentStatus
(
"3"
);
machineStatus
.
setErrorCode
(
equipMsg
.
getErrorCode
());
machineStatus
.
setErrorCode
(
equipMsg
.
getErrorCode
());
machineStatus
.
setErrorMsg
(
equipMsg
.
getMsg
());
machineStatus
.
setErrorMsg
(
equipMsg
.
getMsg
());
machineStatus
.
setClientIP
(
""
);
machineStatus
.
setClientIP
(
""
);
String
statusStr
=
JSON
.
toJSONString
(
machineStatus
);
boolean
hasSameStatus
=
hasSameStatus
(
machineStatus
.
getMachineID
(),
machineStatus
.
getErrorCode
(),
machineStatus
.
getErrorMsg
());
log
.
info
(
agvMachineId
+
"抛送Agv状态主题为:"
+
KafkaConfig
.
Agv_MachineStatus
+
"内容为:"
+
statusStr
);
if
(!
hasSameStatus
)
{
ProducerRecord
record
=
new
ProducerRecord
(
KafkaConfig
.
Agv_MachineStatus
,
agvMachineId
,
statusStr
);
String
statusStr
=
JSON
.
toJSONString
(
machineStatus
);
ListenableFuture
future
=
kafkaTemplate
.
send
(
record
);
log
.
info
(
agvMachineId
+
"抛送Agv状态主题为:"
+
KafkaConfig
.
Agv_MachineStatus
+
"内容为:"
+
statusStr
);
log
.
info
(
agvMachineId
+
"抛送Agv状态返回结果为:"
+
JSON
.
toJSONString
(
future
));
ProducerRecord
record
=
new
ProducerRecord
(
KafkaConfig
.
Agv_MachineStatus
,
agvMachineId
,
statusStr
);
ListenableFuture
future
=
kafkaTemplate
.
send
(
record
);
log
.
info
(
agvMachineId
+
"抛送Agv状态返回结果为:"
+
JSON
.
toJSONString
(
future
));
updateLastStatus
(
machineStatus
.
getMachineID
(),
machineStatus
.
getErrorCode
(),
machineStatus
.
getErrorMsg
());
}
}
}
}
else
{
}
else
{
MachineStatus
machineStatus
=
new
MachineStatus
();
MachineStatus
machineStatus
=
new
MachineStatus
();
...
@@ -390,6 +405,50 @@ public class KafkaService {
...
@@ -390,6 +405,50 @@ public class KafkaService {
}
}
}
}
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
*
10
)
{
log
.
info
(
machineId
+
"的报错信息和上一次相同,跳过"
);
hasSameStatus
=
true
;
break
;
}
}
}
return
hasSameStatus
;
}
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
*
10
)
{
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
*
10
)
.
collect
(
Collectors
.
toList
());
lastStatusInfoMap
.
put
(
machineId
,
lastStatusInfoList
);
}
public
static
Map
<
String
,
StackerKafkaCache
>
stackerInMap
=
new
ConcurrentHashMap
<>();
public
static
Map
<
String
,
StackerKafkaCache
>
stackerInMap
=
new
ConcurrentHashMap
<>();
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论