Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
zhongtong-avi-service
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
中通客车项目
zhongtong-avi-service
Commits
e89ef5c4
Commit
e89ef5c4
authored
Dec 06, 2019
by
夏东伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
网关采集
parent
2768bff2
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
285 additions
and
97 deletions
+285
-97
EquipStatusRecord.java
...tar/zhongtong/avi/equipment/domain/EquipStatusRecord.java
+43
-0
FaultRecord.java
...et/vtstar/zhongtong/avi/equipment/domain/FaultRecord.java
+9
-8
StatisticsTimeJob.java
...vtstar/zhongtong/avi/equipment/job/StatisticsTimeJob.java
+1
-1
EquipStatusRecordMapper.java
...ongtong/avi/equipment/mapper/EquipStatusRecordMapper.java
+13
-0
DryingRoomTempService.java
...hongtong/avi/equipment/service/DryingRoomTempService.java
+23
-6
RunRecordService.java
...tar/zhongtong/avi/equipment/service/RunRecordService.java
+60
-15
PlateChainStateMachine.java
...g/avi/gateway/assembly/domain/PlateChainStateMachine.java
+1
-1
PlateChainStateMachineJob.java
...g/avi/gateway/assembly/job/PlateChainStateMachineJob.java
+9
-5
PlateChainTimeMachineJob.java
...ng/avi/gateway/assembly/job/PlateChainTimeMachineJob.java
+2
-1
PretreatmentMachine.java
...ongtong/avi/gateway/parts/domain/PretreatmentMachine.java
+23
-23
HydrogenStationVocMachineJob.java
...g/avi/gateway/trial/job/HydrogenStationVocMachineJob.java
+3
-0
AutomaticSpotWeldingMachineJob.java
...i/gateway/welding/job/AutomaticSpotWeldingMachineJob.java
+6
-2
WeldingPlateChainTimeMachineJob.java
.../gateway/welding/job/WeldingPlateChainTimeMachineJob.java
+2
-1
LedController.java
...tstar/zhongtong/avi/ledlamp/controller/LedController.java
+30
-11
VocVO.java
.../net/vtstar/zhongtong/avi/monitoring/domain/vo/VocVO.java
+1
-1
AVIMonitorJob.java
...et/vtstar/zhongtong/avi/monitoring/job/AVIMonitorJob.java
+1
-1
RedisToCacheJob.java
.../vtstar/zhongtong/avi/monitoring/job/RedisToCacheJob.java
+10
-3
ReadDataToCacheRunner.java
...hongtong/avi/monitoring/runner/ReadDataToCacheRunner.java
+12
-12
RfidMessageHandler.java
.../vtstar/zhongtong/avi/mqtt/handle/RfidMessageHandler.java
+1
-1
ReportController.java
...tar/zhongtong/avi/report/controller/ReportController.java
+30
-5
EquipStatusRecordMapper.xml
src/main/resources/mapper/mysql/EquipStatusRecordMapper.xml
+5
-0
No files found.
src/main/java/net/vtstar/zhongtong/avi/equipment/domain/EquipStatusRecord.java
0 → 100644
View file @
e89ef5c4
package
net
.
vtstar
.
zhongtong
.
avi
.
equipment
.
domain
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
javax.persistence.Column
;
import
javax.persistence.Id
;
import
javax.persistence.Table
;
import
java.util.Date
;
/**
* @Author: xiadongwei
* @Date: 2019/11/20 17:30
*/
@ApiModel
(
"设备状态记录表"
)
@Data
@Table
(
name
=
"equip_status_record"
)
public
class
EquipStatusRecord
{
@Id
private
Long
id
;
@Column
(
name
=
"equip_type"
)
private
String
equipType
;
@ApiModelProperty
(
notes
=
"设备编号"
)
@Column
(
name
=
"equip_code"
)
private
String
equipCode
;
@ApiModelProperty
(
notes
=
"状态"
)
@Column
(
name
=
"equip_status"
)
private
String
equipStatus
;
@ApiModelProperty
(
notes
=
"开始时间"
)
@Column
(
name
=
"begin_time"
)
private
Date
beginTime
;
@ApiModelProperty
(
notes
=
"结束时间"
)
@Column
(
name
=
"end_time"
)
private
Date
endTime
;
}
src/main/java/net/vtstar/zhongtong/avi/equipment/domain/FaultRecord.java
View file @
e89ef5c4
...
...
@@ -18,7 +18,7 @@ import java.util.Date;
@ApiModel
(
"设备故障记录表"
)
@Data
@Search
(
code
=
"MACHINE_WARNING_RECORD"
)
@Table
(
name
=
"
machine
_warning_record"
)
@Table
(
name
=
"
equip
_warning_record"
)
public
class
FaultRecord
{
@Id
...
...
@@ -29,18 +29,12 @@ public class FaultRecord {
@Search
private
String
workshopCode
;
@ApiModelProperty
(
notes
=
"设备ID"
)
@Column
(
name
=
"machine_id"
)
private
Long
machineId
;
@ApiModelProperty
(
notes
=
"设备编号"
)
@
JoinColumn
(
tableName
=
EquipInfo
.
class
,
name
=
"equipC
ode"
)
@
Column
(
name
=
"machine_c
ode"
)
@Search
private
String
equipCode
;
@ApiModelProperty
(
notes
=
"设备名称"
)
@JoinColumn
(
tableName
=
EquipInfo
.
class
,
name
=
"alias"
)
@Search
private
String
alias
;
@ApiModelProperty
(
notes
=
"故障信息"
)
...
...
@@ -51,4 +45,11 @@ public class FaultRecord {
@Column
(
name
=
"begin_time"
)
private
Date
beginTime
;
@ApiModelProperty
(
notes
=
"结束时间"
)
@Column
(
name
=
"end_time"
)
private
Date
endTime
;
@Column
(
name
=
"create_time"
)
private
Date
createTime
;
}
src/main/java/net/vtstar/zhongtong/avi/equipment/job/StatisticsTimeJob.java
View file @
e89ef5c4
...
...
@@ -67,8 +67,8 @@ public class StatisticsTimeJob extends QuartzJobBean {
if
(
null
!=
lastRecord
&&
lastRecord
.
getCreateTime
().
before
(
DateUtils
.
getEndOfDay
(
0
))
&&
lastRecord
.
getCreateTime
().
after
(
DateUtils
.
getStartOfDay
(
0
))){
//如果上一条记录是今天创建的, 则更新当班累计运行时间
lastRecord
.
setCreateTime
(
new
Date
());
lastRecord
.
setCurrentRuntime
(
hours
);
lastRecord
.
setTotalRuntime
(
lastRecord
.
getTotalRuntime
().
subtract
(
lastRecord
.
getCurrentRuntime
()).
add
(
hours
));
lastRecord
.
setCurrentRuntime
(
hours
);
runtimeRecordMapper
.
update
(
lastRecord
);
}
else
{
RuntimeRecord
runtimeRecord
=
new
RuntimeRecord
();
...
...
src/main/java/net/vtstar/zhongtong/avi/equipment/mapper/EquipStatusRecordMapper.java
0 → 100644
View file @
e89ef5c4
package
net
.
vtstar
.
zhongtong
.
avi
.
equipment
.
mapper
;
import
net.vtstar.user.mybatis.BaseMapper
;
import
net.vtstar.zhongtong.avi.equipment.domain.EquipStatusRecord
;
import
org.apache.ibatis.annotations.Mapper
;
/**
* @Author: xiadongwei
* @Date: 2019/11/20 9:31
*/
@Mapper
public
interface
EquipStatusRecordMapper
extends
BaseMapper
<
EquipStatusRecord
>
{
}
src/main/java/net/vtstar/zhongtong/avi/equipment/service/DryingRoomTempService.java
View file @
e89ef5c4
...
...
@@ -4,10 +4,12 @@ import com.alibaba.excel.util.StringUtils;
import
com.github.pagehelper.PageHelper
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.scada.base.equipmgt.service.EquipDataService
;
import
net.vtstar.scada.base.gather.domain.EquipmentData
;
import
net.vtstar.user.mybatis.provider.Operation
;
import
net.vtstar.user.mybatis.provider.OrderBy
;
import
net.vtstar.user.mybatis.provider.WhereFilter
;
import
net.vtstar.utils.DateUtils
;
import
net.vtstar.zhongtong.avi.equipment.domain.EquipStatusRecord
;
import
net.vtstar.zhongtong.avi.equipment.mapper.EquipStatusRecordMapper
;
import
net.vtstar.zhongtong.avi.equipment.mapper.EquipmentDataMapper
;
import
net.vtstar.zhongtong.avi.gateway.painting.domain.DryingRoomTempMachine
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -30,20 +32,35 @@ public class DryingRoomTempService {
@Autowired
private
EquipmentDataMapper
dataMapper
;
@Autowired
private
EquipStatusRecordMapper
statusRecordMapper
;
/**
* 查询温度状态列表
*/
public
List
<
Equip
mentData
>
findPageEquip
(
Integer
pageNum
,
Integer
pageSize
,
String
equipCode
,
Date
beginTime
)
{
public
List
<
Equip
StatusRecord
>
findPageEquip
(
Integer
pageNum
,
Integer
pageSize
,
String
equipCode
,
Date
beginTime
)
{
PageHelper
.
startPage
(
pageNum
,
pageSize
);
if
(
null
==
beginTime
){
beginTime
=
new
Date
();
}
if
(
StringUtils
.
isEmpty
(
equipCode
)){
return
equipDataService
.
findRunByType
(
"DRYING_ROOM_TEMP"
);
}
String
startOfDay
=
DateUtils
.
parseDateToString
(
DateUtils
.
getStartOfDay
(
0
,
beginTime
),
"yyyy-MM-dd HH:mm:ss"
);
String
endOfDay
=
DateUtils
.
parseDateToString
(
DateUtils
.
getEndOfDay
(
0
,
beginTime
),
"yyyy-MM-dd HH:mm:ss"
);
return
equipDataService
.
findRunByCodeAndDate2
(
equipCode
,
startOfDay
,
endOfDay
);
if
(
StringUtils
.
isEmpty
(
equipCode
)){
return
statusRecordMapper
.
findList
(
new
WhereFilter
(){{
addFilter
(
"equip_type"
,
Operation
.
EQUAL
,
"DRYING_ROOM_TEMP"
);
addFilter
(
"begin_time"
,
Operation
.
GREATER_THAN
,
startOfDay
);
addFilter
(
"end_time"
,
Operation
.
LESS_THAN
,
endOfDay
);
addFilter
(
"equip_status"
,
Operation
.
EQUAL
,
"RUN"
);
addOrderBy
(
EquipStatusRecord
.
class
,
"begin_time"
,
OrderBy
.
DESC
);
}},
EquipStatusRecord
.
class
);
}
return
statusRecordMapper
.
findList
(
new
WhereFilter
(){{
addFilter
(
"equip_code"
,
Operation
.
EQUAL
,
equipCode
);
addFilter
(
"begin_time"
,
Operation
.
GREATER_THAN
,
startOfDay
);
addFilter
(
"end_time"
,
Operation
.
LESS_THAN
,
endOfDay
);
addFilter
(
"equip_status"
,
Operation
.
EQUAL
,
"RUN"
);
addOrderBy
(
EquipStatusRecord
.
class
,
"begin_time"
,
OrderBy
.
DESC
);
}},
EquipStatusRecord
.
class
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/equipment/service/RunRecordService.java
View file @
e89ef5c4
...
...
@@ -8,24 +8,25 @@ import net.vtstar.user.mybatis.provider.Operation;
import
net.vtstar.user.mybatis.provider.OrderBy
;
import
net.vtstar.user.mybatis.provider.WhereFilter
;
import
net.vtstar.user.search.service.SearchService
;
import
net.vtstar.zhongtong.avi.equipment.domain.*
;
import
net.vtstar.zhongtong.avi.equipment.domain.EquipInfo
;
import
net.vtstar.zhongtong.avi.equipment.domain.FaultRecord
;
import
net.vtstar.zhongtong.avi.equipment.domain.RuntimeRecord
;
import
net.vtstar.zhongtong.avi.equipment.mapper.BasicInfoMapper
;
import
net.vtstar.zhongtong.avi.equipment.mapper.EquipmentDataMapper
;
import
net.vtstar.zhongtong.avi.equipment.mapper.FaultRecordMapper
;
import
net.vtstar.zhongtong.avi.equipment.mapper.RuntimeRecordMapper
;
import
net.vtstar.zhongtong.avi.
global.constant.Constant
;
import
net.vtstar.zhongtong.avi.
monitoring.domain.Warning
;
import
net.vtstar.zhongtong.avi.stamping.domain.LaserCutting3DMachine
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.Cache
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
/**
* @Author: xiadongwei
...
...
@@ -50,11 +51,6 @@ public class RunRecordService {
@Autowired
private
EquipmentDataMapper
equipmentData
;
@Resource
(
name
=
"warningCache"
)
private
Cache
warningCache
;
@Resource
(
name
=
"redisTemplate"
)
private
RedisTemplate
redisTemplate
;
/**
* 分页查询运行时间
*/
...
...
@@ -70,10 +66,6 @@ public class RunRecordService {
*/
public
List
<
FaultRecord
>
findPageFault
(
JSONObject
pageFilter
)
{
PageHelper
.
startPage
(
pageFilter
.
getIntValue
(
"pageNum"
),
pageFilter
.
getIntValue
(
"pageSize"
));
Set
<
String
>
keys
=
redisTemplate
.
keys
(
Constant
.
LED_PREFIX
+
"*"
);
for
(
String
key
:
keys
)
{
List
warningList
=
warningCache
.
get
(
key
,
ArrayList
.
class
);
}
return
faultRecordMapper
.
findList
(
searchService
.
pageFilter2Filter
(
pageFilter
,
new
WhereFilter
()
{{
/*addJoin(PaintshopStation.class, "area_id", PaintshopArea.class, "id");
addJoin(PaintshopStation.class, "lane_id", PaintshopLane.class, "id");*/
...
...
@@ -108,4 +100,57 @@ public class RunRecordService {
equipmentData
.
insert
(
runtimeRecord
);
}
/**
* 刷新Redis中的warning信息到数据库中
*
* @param list
*/
public
void
refreshWarning
(
List
<
Warning
>
list
)
{
List
<
FaultRecord
>
faultRecords
=
faultRecordMapper
.
findList
(
new
WhereFilter
()
{{
addFilter
(
"end_time"
,
Operation
.
IS
,
"null"
);
}},
FaultRecord
.
class
);
List
<
FaultRecord
>
records
=
new
ArrayList
<>();
//告警记录为空, 则保存当前报警
if
(
CollectionUtils
.
isEmpty
(
faultRecords
))
{
for
(
Warning
w
:
list
)
{
FaultRecord
faultRecord
=
new
FaultRecord
();
faultRecord
.
setEquipCode
(
w
.
getName
().
split
(
" "
)[
0
]);
faultRecord
.
setWarningInfo
(
w
.
getInfo
());
faultRecord
.
setWorkshopCode
(
"涂装车间"
);
faultRecord
.
setBeginTime
(
new
Date
());
records
.
add
(
faultRecord
);
}
if
(!
CollectionUtils
.
isEmpty
(
records
))
{
faultRecordMapper
.
insertList
(
records
);
}
return
;
}
Map
<
String
,
Warning
>
warningMap
=
list
.
stream
().
collect
(
Collectors
.
toMap
(
Warning
::
getInfo
,
w
->
w
,
(
key1
,
key2
)
->
key1
));
Map
<
String
,
FaultRecord
>
faultRecordMap
=
faultRecords
.
stream
().
collect
(
Collectors
.
toMap
(
FaultRecord:
:
getWarningInfo
,
f
->
f
,
(
key1
,
key2
)
->
key1
));
//遍历现有异常, 看是否存在新的报警
for
(
String
warningKey
:
warningMap
.
keySet
()){
Warning
warning
=
warningMap
.
get
(
warningKey
);
if
(
null
==
faultRecordMap
.
get
(
warningKey
)){
FaultRecord
faultRecord
=
new
FaultRecord
();
faultRecord
.
setEquipCode
(
warning
.
getName
().
split
(
" "
)[
0
]);
faultRecord
.
setWarningInfo
(
warning
.
getInfo
());
faultRecord
.
setWorkshopCode
(
"涂装车间"
);
faultRecord
.
setBeginTime
(
new
Date
());
faultRecord
.
setCreateTime
(
new
Date
());
records
.
add
(
faultRecord
);
}
}
if
(!
CollectionUtils
.
isEmpty
(
records
)){
faultRecordMapper
.
insertList
(
records
);
}
//遍历异常记录, 若现有异常里面不包含, 则说明此异常已经结束
for
(
String
faultString
:
faultRecordMap
.
keySet
()){
FaultRecord
faultRecord
=
faultRecordMap
.
get
(
faultString
);
if
(
null
==
warningMap
.
get
(
faultString
)){
faultRecord
.
setEndTime
(
new
Date
());
faultRecordMapper
.
update
(
faultRecord
);
}
}
}
}
src/main/java/net/vtstar/zhongtong/avi/gateway/assembly/domain/PlateChainStateMachine.java
View file @
e89ef5c4
...
...
@@ -25,7 +25,7 @@ public class PlateChainStateMachine extends EquipmentData {
private
String
equipCode
;
@Column
(
name
=
"state"
)
@ApiModelProperty
(
notes
=
"设备状态
(0是关机,1是运行)
"
)
@ApiModelProperty
(
notes
=
"设备状态"
)
private
Integer
state
;
@ApiModelProperty
(
"时间"
)
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/assembly/job/PlateChainStateMachineJob.java
View file @
e89ef5c4
...
...
@@ -36,8 +36,11 @@ public class PlateChainStateMachineJob extends GatherJob {
@Override
public
boolean
handleObject
(
EquipmentData
equipmentData
)
{
PlateChainStateMachine
data
=
(
PlateChainStateMachine
)
equipmentData
;
Integer
state
=
data
.
getState
();
if
(
state
==
null
)
{
String
state
=
data
.
getStatus
();
if
(
state
==
null
||
"0"
.
equals
(
state
))
{
return
false
;
}
if
(
null
==
data
.
getState
()){
return
false
;
}
/**
...
...
@@ -50,11 +53,12 @@ public class PlateChainStateMachineJob extends GatherJob {
testValueOperations
.
set
(
key
,
state
);
return
true
;
}
if
(
state
.
equals
(
value
)){
return
false
;
if
(
data
.
getState
().
equals
(
value
)){
equipmentData
.
setEquipStatus
(
EquipStatusEnum
.
ALARM
);
return
true
;
}
equipmentData
.
setEquipStatus
(
EquipStatusEnum
.
RUN
);
testValueOperations
.
set
(
key
,
state
);
testValueOperations
.
set
(
key
,
data
.
getState
()
);
return
true
;
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/assembly/job/PlateChainTimeMachineJob.java
View file @
e89ef5c4
...
...
@@ -65,11 +65,12 @@ public class PlateChainTimeMachineJob extends QuartzJobBean {
}
//如果记录的开始时间大于上一条记录的结束时间
Date
beginTime
=
equipmentData
.
getBeginTime
();
if
(
null
==
beginTime
){
if
(
null
==
beginTime
||
null
==
equipmentData
.
getEndTime
()
){
continue
;
}
if
(
beginTime
.
after
(
startTime
)){
totalTime
=
totalTime
+
beginTime
.
getTime
()
-
startTime
.
getTime
();
startTime
=
equipmentData
.
getEndTime
();
}
}
if
(
totalTime
!=
0
){
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/parts/domain/PretreatmentMachine.java
View file @
e89ef5c4
...
...
@@ -24,47 +24,47 @@ public class PretreatmentMachine extends EquipmentData {
@ApiModelProperty
(
notes
=
"设备编号"
)
private
String
equipCode
;
@Show
(
label
=
"热纯水洗燃烧机温度"
)
@Column
(
name
=
"rcs_temperature"
)
@ApiModelProperty
(
notes
=
"热纯水燃烧机温度"
)
private
String
rcsTemperature
;
@Show
(
label
=
"防锈工位燃烧机温度"
)
@Column
(
name
=
"fxgw_temperature"
)
@ApiModelProperty
(
notes
=
"防锈工位燃烧机温度"
)
private
String
fxgwTemperature
;
@Show
(
label
=
"磷化热水泵温度"
)
@Column
(
name
=
"lh_temperature"
)
@ApiModelProperty
(
notes
=
"磷化热说泵温度"
)
private
String
lhTemperature
;
@Show
(
label
=
"电动三通阀温度"
)
@Column
(
name
=
"ddst_temperature"
)
@ApiModelProperty
(
notes
=
"电动三通阀温度"
)
private
String
ddstTemperature
;
@Show
(
label
=
"脱脂电动三通阀温度"
)
@Show
(
label
=
"预脱脂温度"
)
@Column
(
name
=
"ytz_temperature"
)
@ApiModelProperty
(
notes
=
"预脱脂电动三通阀温度"
)
private
String
ytzTemperature
;
@Show
(
label
=
"脱脂温度"
)
@Column
(
name
=
"tz_temperature"
)
@ApiModelProperty
(
notes
=
"脱脂电动三通阀温度"
)
private
String
tzTemperature
;
@Show
(
label
=
"预脱脂电动三通阀温度"
)
@Column
(
name
=
"ytz_temperature"
)
@ApiModelProperty
(
notes
=
"预脱脂电动三通阀温度"
)
private
String
ytzTemperature
;
@Show
(
label
=
"磷化温度"
)
@Column
(
name
=
"lh_temperature"
)
@ApiModelProperty
(
notes
=
"磷化热说泵温度"
)
private
String
lhTemperature
;
@Show
(
label
=
"热纯水温度"
)
@Column
(
name
=
"rcs_temperature"
)
@ApiModelProperty
(
notes
=
"热纯水燃烧机温度"
)
private
String
rcsTemperature
;
@Show
(
label
=
"防锈工位温度"
)
@Column
(
name
=
"fxgw_temperature"
)
@ApiModelProperty
(
notes
=
"防锈工位燃烧机温度"
)
private
String
fxgwTemperature
;
@Show
(
label
=
"2#弱酸洗
槽
时间(s)"
)
@Show
(
label
=
"2#弱酸洗时间(s)"
)
@Column
(
name
=
"rsc2_time"
)
@ApiModelProperty
(
notes
=
"2#若酸洗槽时间"
)
private
Integer
rsc2Time
;
@Show
(
label
=
"3#中和
槽
时间(s)"
)
@Show
(
label
=
"3#中和时间(s)"
)
@Column
(
name
=
"zhc3_time"
)
@ApiModelProperty
(
notes
=
"3#中和槽时间"
)
private
Integer
zhc3Time
;
@Show
(
label
=
"4#水洗4
槽
时间(s)"
)
@Show
(
label
=
"4#水洗4时间(s)"
)
@Column
(
name
=
"sx4_time"
)
@ApiModelProperty
(
notes
=
"4#水洗4槽时间"
)
private
Integer
sx4Time
;
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/trial/job/HydrogenStationVocMachineJob.java
View file @
e89ef5c4
...
...
@@ -34,6 +34,9 @@ public class HydrogenStationVocMachineJob extends GatherJob {
if
(
state
==
null
||
"0"
.
equals
(
state
))
{
return
false
;
}
if
(
null
==
data
.
getDischargePortPressure
()
&&
null
==
data
.
getHydrogenSourcePressure
()){
return
false
;
}
equipmentData
.
setEquipStatus
(
EquipStatusEnum
.
RUN
);
return
true
;
}
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/welding/job/AutomaticSpotWeldingMachineJob.java
View file @
e89ef5c4
...
...
@@ -34,7 +34,7 @@ public class AutomaticSpotWeldingMachineJob extends GatherJob {
if
(
state
==
null
||
"0"
.
equals
(
state
))
{
return
false
;
}
if
(
data
.
getWeldingSpotA1
()
==
null
||
data
.
getWeldingSpotA2
()
==
null
){
if
(
data
.
getWeldingSpotA1
()
==
null
||
data
.
getWeldingSpotA2
()
==
null
||
null
==
data
.
getPressure
()
){
return
false
;
}
equipmentData
.
setEquipStatus
(
EquipStatusEnum
.
RUN
);
...
...
@@ -47,7 +47,11 @@ public class AutomaticSpotWeldingMachineJob extends GatherJob {
return
null
;
}
if
(
fieldName
.
startsWith
(
"weldingSpotA"
)){
return
Float
.
valueOf
(
Integer
.
valueOf
(
value
.
toString
())
/
65535
f
*
10
*
4000
).
intValue
();
int
intValue
=
Float
.
valueOf
(
Integer
.
valueOf
(
value
.
toString
())
/
65535
f
*
5
*
4000
).
intValue
();
if
(
intValue
<
1000
){
return
null
;
}
return
intValue
;
}
if
(
"pressure"
.
equals
(
fieldName
)){
return
Integer
.
valueOf
(
value
.
toString
())
/
1000
f
;
...
...
src/main/java/net/vtstar/zhongtong/avi/gateway/welding/job/WeldingPlateChainTimeMachineJob.java
View file @
e89ef5c4
...
...
@@ -66,11 +66,12 @@ public class WeldingPlateChainTimeMachineJob extends QuartzJobBean {
}
//如果记录的开始时间大于上一条记录的结束时间
Date
beginTime
=
equipmentData
.
getBeginTime
();
if
(
null
==
beginTime
){
if
(
null
==
beginTime
||
null
==
equipmentData
.
getEndTime
()
){
continue
;
}
if
(
beginTime
.
after
(
startTime
)){
totalTime
=
totalTime
+
beginTime
.
getTime
()
-
startTime
.
getTime
();
startTime
=
equipmentData
.
getEndTime
();
}
}
if
(
totalTime
!=
0
){
...
...
src/main/java/net/vtstar/zhongtong/avi/ledlamp/controller/LedController.java
View file @
e89ef5c4
...
...
@@ -3,13 +3,14 @@ package net.vtstar.zhongtong.avi.ledlamp.controller;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.user.mybatis.provider.OrderBy
;
import
net.vtstar.user.mybatis.provider.WhereFilter
;
import
net.vtstar.utils.CollecUtils
;
import
net.vtstar.utils.domain.Return
;
import
net.vtstar.zhongtong.avi.ledlamp.domain.RoomInfo
;
import
net.vtstar.zhongtong.avi.equipment.mapper.EquipmentDataMapper
;
import
net.vtstar.zhongtong.avi.gateway.painting.domain.VocMachine
;
import
net.vtstar.zhongtong.avi.ledlamp.domain.vo.LedStationVO
;
import
net.vtstar.zhongtong.avi.ledlamp.service.LedService
;
import
net.vtstar.zhongtong.avi.monitoring.domain.Warning
;
import
net.vtstar.zhongtong.avi.monitoring.domain.WorkRoom
;
import
net.vtstar.zhongtong.avi.monitoring.domain.enums.StationState
;
import
net.vtstar.zhongtong.avi.monitoring.domain.vo.VocVO
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.GetMapping
;
...
...
@@ -18,7 +19,8 @@ import org.springframework.web.bind.annotation.RequestParam;
import
org.springframework.web.bind.annotation.RestController
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
@Slf4j
@Api
(
description
=
"led大屏监控模块"
)
...
...
@@ -29,12 +31,15 @@ public class LedController {
@Autowired
private
LedService
ledService
;
@Autowired
private
EquipmentDataMapper
dataMapper
;
@ApiOperation
(
value
=
"工位级led大屏信息监控"
,
response
=
LedStationVO
.
class
)
@GetMapping
(
value
=
"/ledInfo"
)
private
Return
getLEDStationInfo
(
@RequestParam
(
value
=
"ledNo"
)
String
ledNo
)
{
LedStationVO
ledStationVO
=
new
LedStationVO
();
ledStationVO
.
setName
(
"电泳"
);
/*
ledStationVO.setName("电泳");
ArrayList<Warning> warnings = new ArrayList<>();
Warning warning = new Warning();
warning.setInfo("报警信息1111111111111111111111111111111111111");
...
...
@@ -62,7 +67,7 @@ public class LedController {
roomInfos.add(roomInfo);
roomInfos.add(roomInfo2);
ledStationVO
.
setRoomInfoList
(
roomInfos
);
ledStationVO.setRoomInfoList(roomInfos);
*/
ledStationVO
=
ledService
.
getInfoByNo
(
ledNo
);
return
Return
.
success
(
ledStationVO
);
...
...
@@ -71,11 +76,25 @@ public class LedController {
@ApiOperation
(
value
=
"led VOC浓度接口"
,
response
=
VocVO
.
class
)
@GetMapping
(
value
=
"/info/VOC"
)
private
Return
getVOCInfo
()
{
//TODO: voc进出口浓度 真实数据
List
<
Map
<
String
,
Object
>>
datas
=
dataMapper
.
findJoin
(
new
WhereFilter
()
{{
addOrderBy
(
"create_time"
,
OrderBy
.
DESC
);
setRows
(
0
);
setOffset
(
1
);
}},
VocMachine
.
class
);
VocVO
vocVO
=
new
VocVO
();
vocVO
.
setExitCONC
(
new
BigDecimal
(
0.47
));
vocVO
.
setNorthCONC
(
new
BigDecimal
(
0.25
));
vocVO
.
setSouthCONC
(
new
BigDecimal
(
0.15
));
if
(
CollecUtils
.
isEmpty
(
datas
)){
vocVO
.
setExitCONC
(
new
BigDecimal
(
100
));
vocVO
.
setNorthCONC
(
new
BigDecimal
(
85
));
vocVO
.
setSouthCONC
(
new
BigDecimal
(
5
));
}
else
{
Map
<
String
,
Object
>
map
=
datas
.
get
(
0
);
vocVO
.
setSouthCONC
(
new
BigDecimal
(
map
.
get
(
"concentration2"
).
toString
()));
vocVO
.
setNorthCONC
(
new
BigDecimal
(
map
.
get
(
"concentration1"
).
toString
()));
vocVO
.
setExitCONC
(
new
BigDecimal
(
5
));
}
//TODO: voc进出口浓度 真实数据
return
Return
.
success
(
vocVO
);
}
}
src/main/java/net/vtstar/zhongtong/avi/monitoring/domain/vo/VocVO.java
View file @
e89ef5c4
...
...
@@ -13,7 +13,7 @@ public class VocVO {
@ApiModelProperty
(
notes
=
"南进口VOC浓度"
)
private
BigDecimal
southCONC
;
@ApiModelProperty
(
notes
=
"
南
进口VOC浓度"
)
@ApiModelProperty
(
notes
=
"
北
进口VOC浓度"
)
private
BigDecimal
northCONC
;
@ApiModelProperty
(
notes
=
"出口VOC浓度"
)
...
...
src/main/java/net/vtstar/zhongtong/avi/monitoring/job/AVIMonitorJob.java
View file @
e89ef5c4
...
...
@@ -74,7 +74,7 @@ public class AVIMonitorJob extends GatherJob {
List
<
PaintshopStation
>
stations
=
new
ArrayList
<>();
for
(
EquipInfo
equipInfo
:
equipInfoList
)
{
List
<
EquipCommunication
>
commList
=
equipInfoService
.
getCommunicationList
(
equipInfo
.
getEquipCode
(),
1
);
List
<
EquipCommunication
>
commList
=
equipInfoService
.
getCommunicationList
ByEquipType
(
equipInfo
.
getEquipCode
(),
1
);
if
(
CollectionUtils
.
isEmpty
(
commList
))
{
return
;
}
...
...
src/main/java/net/vtstar/zhongtong/avi/monitoring/job/RedisToCacheJob.java
View file @
e89ef5c4
...
...
@@ -4,6 +4,7 @@ import lombok.extern.slf4j.Slf4j;
import
net.vtstar.scada.base.gather.job.GatherJob
;
import
net.vtstar.zhongtong.avi.equipment.domain.PaintshopArea
;
import
net.vtstar.zhongtong.avi.equipment.domain.PaintshopStation
;
import
net.vtstar.zhongtong.avi.equipment.service.RunRecordService
;
import
net.vtstar.zhongtong.avi.global.constant.Constant
;
import
net.vtstar.zhongtong.avi.monitoring.domain.Skid
;
import
net.vtstar.zhongtong.avi.monitoring.domain.Warning
;
...
...
@@ -13,6 +14,7 @@ import net.vtstar.zhongtong.avi.monitoring.domain.enums.StationState;
import
net.vtstar.zhongtong.avi.monitoring.domain.vo.CarStatisticsVO
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.ValueOperations
;
...
...
@@ -39,6 +41,8 @@ public class RedisToCacheJob extends GatherJob {
private
Cache
webStationCache
;
@Resource
(
name
=
"warningCache"
)
private
Cache
warningCache
;
@Autowired
private
RunRecordService
runRecordService
;
@Override
protected
void
executeInternal
(
JobExecutionContext
jobExecutionContext
)
throws
JobExecutionException
{
...
...
@@ -51,12 +55,13 @@ public class RedisToCacheJob extends GatherJob {
Set
<
String
>
warningKeys
=
redisTemplate
.
keys
(
Constant
.
WARNING_PREFIX
+
"*"
);
Map
<
String
,
List
<
String
>>
warningKeyMap
=
warningKeys
.
stream
().
collect
(
Collectors
.
groupingBy
(
a
->
a
.
split
(
":"
)[
1
]));
List
<
Warning
>
list
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
String
,
List
<
String
>>
warningKey
:
warningKeyMap
.
entrySet
())
{
String
key
=
warningKey
.
getKey
();
List
<
Warning
>
warnings
=
new
ArrayList
<>();
List
<
String
>
value
=
warningKey
.
getValue
();
for
(
String
s
:
value
)
{
Integer
state
=
(
Integer
)
valueOperations
.
get
(
warningKey
);
Integer
state
=
(
Integer
)
valueOperations
.
get
(
s
);
if
(
state
==
1
)
{
String
[]
split
=
s
.
split
(
":"
);
String
warningCode
=
split
[
2
];
...
...
@@ -65,8 +70,10 @@ public class RedisToCacheJob extends GatherJob {
}
}
warningCache
.
put
(
Constant
.
LED_PREFIX
+
key
,
warnings
);
list
.
addAll
(
warnings
);
warningCache
.
put
(
Constant
.
LED_PREFIX
+
"ALL"
,
warnings
);
}
runRecordService
.
refreshWarning
(
list
);
//处理进出车信息
Set
<
String
>
keys
=
redisTemplate
.
keys
(
Constant
.
STATION_PREFIX
+
"*"
);
List
<
PaintshopStation
>
stations
=
new
ArrayList
<>();
...
...
@@ -95,7 +102,7 @@ public class RedisToCacheJob extends GatherJob {
for
(
Map
.
Entry
<
String
,
PaintshopStation
>
entry
:
collect
.
entrySet
())
{
PaintshopStation
value
=
entry
.
getValue
();
Skid
skid
=
value
.
getSkid
();
if
(
null
!=
skid
){
if
(
null
!=
skid
)
{
value
.
setState
(
StationState
.
USE
);
value
.
setBusNo
(
skid
.
getBusNo
());
value
.
setBusType
(
skid
.
getBusType
());
...
...
src/main/java/net/vtstar/zhongtong/avi/monitoring/runner/ReadDataToCacheRunner.java
View file @
e89ef5c4
...
...
@@ -96,18 +96,18 @@ public class ReadDataToCacheRunner implements CommandLineRunner {
addOrderBy
(
PaintshopStation
.
class
,
"id"
,
OrderBy
.
ASC
);
}},
PaintshopStation
.
class
);
//
for (int i = 0; i < stations.size(); i++) {
//
PaintshopStation station = stations.get(i);
//
if (i % 5 == 0) {
//
station.setBusType(ProductionType.OWN);
//
station.setBusNo("");
//
station.setState(StationState.USE);
//
} else {
//
station.setState(StationState.FREE);
//
}
//
valueOperations.set(Constant.STATION_PREFIX + station.getCode(),station);
//
}
//todo: 初始化工位信息
for
(
int
i
=
0
;
i
<
stations
.
size
();
i
++)
{
PaintshopStation
station
=
stations
.
get
(
i
);
if
(
i
%
5
==
0
)
{
station
.
setBusType
(
ProductionType
.
OWN
);
station
.
setBusNo
(
""
);
station
.
setState
(
StationState
.
USE
);
}
else
{
station
.
setState
(
StationState
.
FREE
);
}
valueOperations
.
set
(
Constant
.
STATION_PREFIX
+
station
.
getCode
(),
station
);
}
...
...
src/main/java/net/vtstar/zhongtong/avi/mqtt/handle/RfidMessageHandler.java
View file @
e89ef5c4
...
...
@@ -225,7 +225,7 @@ public class RfidMessageHandler extends AbstractTesterMessageHandler {
}
}
//记录过站信息
//
TODO:
记录过站信息
String
areaCode
=
value
.
getAreaId
().
toString
();
String
areaKey
=
Constant
.
BUS_SIZE_IN
+
areaCode
+
":"
+
today
;
Integer
size
=
(
Integer
)
valueOperations
.
get
(
areaKey
);
...
...
src/main/java/net/vtstar/zhongtong/avi/report/controller/ReportController.java
View file @
e89ef5c4
...
...
@@ -5,19 +5,28 @@ import io.swagger.annotations.ApiImplicitParam;
import
io.swagger.annotations.ApiImplicitParams
;
import
io.swagger.annotations.ApiOperation
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.user.mybatis.provider.Operation
;
import
net.vtstar.user.mybatis.provider.WhereFilter
;
import
net.vtstar.utils.DateUtils
;
import
net.vtstar.utils.domain.Return
;
import
net.vtstar.zhongtong.avi.equipment.domain.EquipInfo
;
import
net.vtstar.zhongtong.avi.equipment.domain.RuntimeRecord
;
import
net.vtstar.zhongtong.avi.equipment.mapper.RuntimeRecordMapper
;
import
net.vtstar.zhongtong.avi.global.constant.Constant
;
import
net.vtstar.zhongtong.avi.monitoring.domain.Warning
;
import
net.vtstar.zhongtong.avi.report.domain.vo.EquStatePercent
;
import
net.vtstar.zhongtong.avi.report.domain.vo.TrendVO
;
import
net.vtstar.zhongtong.avi.utils.DateUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.cache.Cache
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.format.annotation.DateTimeFormat
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.text.SimpleDateFormat
;
import
java.util.ArrayList
;
...
...
@@ -32,6 +41,12 @@ import java.util.Random;
@RequestMapping
(
"/area"
)
public
class
ReportController
{
@Resource
(
name
=
"warningCache"
)
private
Cache
warningCache
;
@Autowired
private
RuntimeRecordMapper
runtimeRecordMapper
;
private
Integer
errNum
=
2
;
private
Integer
runNum
=
5
;
...
...
@@ -173,7 +188,7 @@ public class ReportController {
SimpleDateFormat
format
=
new
SimpleDateFormat
(
"HH:mm"
);
String
time
=
format
.
format
(
date
);
List
<
Warning
>
warnings
=
new
ArrayList
<>();
Warning
warning
=
new
Warning
();
/*
Warning warning = new Warning();
warning.setTime(time);
warning.setInfo("设备停止运动");
warning.setEquipName("旋转棍床");
...
...
@@ -183,7 +198,9 @@ public class ReportController {
warning1.setTime(time);
warning1.setInfo("设备发生异常");
warnings.add(warning);
warnings
.
add
(
warning1
);
warnings.add(warning1);*/
warnings
=
warningCache
.
get
(
Constant
.
LED_PREFIX
+
"ALL"
,
ArrayList
.
class
);
return
Return
.
success
(
warnings
);
}
...
...
@@ -191,13 +208,21 @@ public class ReportController {
@GetMapping
(
"/runTimeList"
)
private
Return
getMachineRunTime
(
@RequestParam
String
workshopCode
){
//TODO:
ArrayList
<
Object
>
list
=
new
ArrayList
<>();
for
(
int
i
=
0
;
i
<
10
;
i
++){
List
<
RuntimeRecord
>
list
=
new
ArrayList
<>();
/*
for (int i = 0; i < 10; i++){
RuntimeRecord runtimeRecord = new RuntimeRecord();
runtimeRecord.setEquipCode("喷涂室00" + i);
runtimeRecord.setCurrentRuntime(new BigDecimal(5));
list.add(runtimeRecord);
}
}*/
String
startOfDay
=
DateUtils
.
parseDateToString
(
DateUtils
.
getStartOfDay
(
0
),
"yyyy-MM-dd HH:mm:ss"
);
String
endOfDay
=
DateUtils
.
parseDateToString
(
DateUtils
.
getEndOfDay
(
0
),
"yyyy-MM-dd HH:mm:ss"
);
list
=
runtimeRecordMapper
.
findList
(
new
WhereFilter
()
{{
addFilter
(
RuntimeRecord
.
class
,
"create_time"
,
Operation
.
GREATER_THAN
,
startOfDay
);
addFilter
(
RuntimeRecord
.
class
,
"create_time"
,
Operation
.
LESS_THAN
,
endOfDay
);
addFilter
(
RuntimeRecord
.
class
,
"workshop_code"
,
Operation
.
EQUAL
,
workshopCode
);
addJoin
(
RuntimeRecord
.
class
,
"machine_id"
,
EquipInfo
.
class
,
"id"
);
}},
RuntimeRecord
.
class
);
return
Return
.
success
(
list
);
}
}
src/main/resources/mapper/mysql/EquipStatusRecordMapper.xml
0 → 100644
View file @
e89ef5c4
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper
namespace=
"net.vtstar.zhongtong.avi.equipment.mapper.EquipStatusRecordMapper"
>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment