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
08cbf091
Commit
08cbf091
authored
Oct 08, 2019
by
喻训浩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 数据清洗与运行时间计算分离
parent
44e05286
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
71 additions
and
50 deletions
+71
-50
CleanStatusDataJob.java
...tstar/zhongtong/avi/equipment/job/CleanStatusDataJob.java
+1
-45
StatisticsTimeJob.java
...vtstar/zhongtong/avi/equipment/job/StatisticsTimeJob.java
+62
-3
application-quartz.properties
src/main/resources/config/application-quartz.properties
+8
-2
No files found.
src/main/java/net/vtstar/zhongtong/avi/equipment/job/Clean
AndStatistics
Job.java
→
src/main/java/net/vtstar/zhongtong/avi/equipment/job/Clean
StatusData
Job.java
View file @
08cbf091
package
net
.
vtstar
.
zhongtong
.
avi
.
equipment
.
job
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.scada.base.equipmgt.domain.Enum.EquipStatusEnum
;
import
net.vtstar.scada.base.equipmgt.service.EquipDataService
;
import
net.vtstar.scada.base.gather.domain.EquipmentData
;
import
net.vtstar.scada.base.redis.service.SimpleRedisService
;
import
net.vtstar.scada.base.redis.util.EquipDataUtil
;
import
net.vtstar.user.mybatis.provider.Operation
;
import
net.vtstar.user.mybatis.provider.WhereFilter
;
import
net.vtstar.zhongtong.avi.equipment.domain.EquipInfo
;
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.RuntimeRecordMapper
;
import
net.vtstar.zhongtong.avi.equipment.service.RunRecordService
;
import
org.quartz.DisallowConcurrentExecution
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
...
...
@@ -24,16 +16,13 @@ import org.springframework.stereotype.Component;
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
;
@Slf4j
@Component
@DisallowConcurrentExecution
public
class
Clean
AndStatistics
Job
extends
QuartzJobBean
{
public
class
Clean
StatusData
Job
extends
QuartzJobBean
{
@Resource
(
name
=
"redisTemplate"
)
...
...
@@ -43,15 +32,8 @@ public class CleanAndStatisticsJob extends QuartzJobBean {
@Autowired
private
SimpleRedisService
simpleRedisService
;
@Autowired
private
RunRecordService
runRecordService
;
@Autowired
private
RuntimeRecordMapper
runtimeRecordMapper
;
@Autowired
private
BasicInfoMapper
basicInfoMapper
;
@Autowired
private
EquipmentDataMapper
equipmentDataMapper
;
@Override
protected
void
executeInternal
(
JobExecutionContext
context
)
throws
JobExecutionException
{
...
...
@@ -76,7 +58,6 @@ public class CleanAndStatisticsJob extends QuartzJobBean {
EquipmentData
last
=
equipDataService
.
getLast
(
equipCode
);
final
EquipmentData
first
=
last
;
int
index
=
1
;
long
totalRuntime
=
0
;
for
(
int
i
=
0
;
i
<
dataList
.
size
();
i
++)
{
if
(
last
==
null
)
{
...
...
@@ -100,12 +81,6 @@ public class CleanAndStatisticsJob extends QuartzJobBean {
// 保存
equipDataService
.
save
(
last
);
}
//计算累计运行时间
if
(
last
.
getEquipStatus
().
equals
(
EquipStatusEnum
.
RUN
))
{
long
runtime
=
last
.
getEndTime
().
getTime
()
-
last
.
getBeginTime
().
getTime
();
totalRuntime
+=
runtime
;
}
last
=
d
;
index
++;
}
...
...
@@ -117,25 +92,6 @@ public class CleanAndStatisticsJob extends QuartzJobBean {
equipDataService
.
save
(
last
);
}
RuntimeRecord
lastRecord
=
runRecordService
.
getLastByCode
(
equipCode
);
RuntimeRecord
runtimeRecord
=
new
RuntimeRecord
();
runtimeRecord
.
setCreateTime
(
new
Date
());
BigDecimal
hours
=
new
BigDecimal
(
totalRuntime
).
divide
(
new
BigDecimal
(
3600000
),
4
,
BigDecimal
.
ROUND_HALF_UP
);
runtimeRecord
.
setCurrentRuntime
(
hours
);
BigDecimal
total
=
BigDecimal
.
ZERO
;
if
(
null
!=
lastRecord
)
{
total
=
lastRecord
.
getTotalRuntime
();
}
runtimeRecord
.
setTotalRuntime
(
total
.
add
(
hours
));
List
<
EquipInfo
>
list
=
basicInfoMapper
.
findList
(
new
WhereFilter
()
{{
addFilter
(
EquipInfo
.
class
,
"equip_code"
,
Operation
.
EQUAL
,
equipCode
);
}},
EquipInfo
.
class
);
EquipInfo
eqp
=
list
.
get
(
0
);
runtimeRecord
.
setMachineId
(
eqp
.
getId
());
runtimeRecord
.
setWorkshopCode
(
eqp
.
getWorkshopCode
());
List
<
RuntimeRecord
>
records
=
new
ArrayList
<>();
records
.
add
(
runtimeRecord
);
runtimeRecordMapper
.
insertLists
(
records
);
}
}
}
src/main/java/net/vtstar/zhongtong/avi/equipment/job/StatisticsTimeJob.java
View file @
08cbf091
package
net
.
vtstar
.
zhongtong
.
avi
.
equipment
.
job
;
import
lombok.extern.slf4j.Slf4j
;
import
net.vtstar.zhongtong.avi.equipment.mapper.EquipmentDataMapper
;
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.WhereFilter
;
import
net.vtstar.zhongtong.avi.equipment.domain.EquipInfo
;
import
net.vtstar.zhongtong.avi.equipment.domain.RuntimeRecord
;
import
net.vtstar.zhongtong.avi.equipment.mapper.BasicInfoMapper
;
import
net.vtstar.zhongtong.avi.equipment.mapper.RuntimeRecordMapper
;
import
net.vtstar.zhongtong.avi.equipment.service.RunRecordService
;
import
org.quartz.JobExecutionContext
;
import
org.quartz.JobExecutionException
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.quartz.QuartzJobBean
;
import
org.springframework.util.CollectionUtils
;
import
java.math.BigDecimal
;
import
java.util.ArrayList
;
import
java.util.Calendar
;
import
java.util.Date
;
import
java.util.List
;
/**
...
...
@@ -15,12 +30,56 @@ import org.springframework.scheduling.quartz.QuartzJobBean;
public
class
StatisticsTimeJob
extends
QuartzJobBean
{
@Autowired
private
EquipmentDataMapper
equipmentDataMapper
;
private
EquipDataService
equipDataService
;
@Autowired
private
RunRecordService
runRecordService
;
@Autowired
private
BasicInfoMapper
basicInfoMapper
;
@Autowired
private
RuntimeRecordMapper
runtimeRecordMapper
;
@Override
protected
void
executeInternal
(
JobExecutionContext
jobExecutionContext
)
throws
JobExecutionException
{
Calendar
instance
=
Calendar
.
getInstance
();
instance
.
add
(
Calendar
.
DATE
,
-
1
);
Date
yesterday
=
instance
.
getTime
();
//查询今日设备所有运行状态数据
//拿到所有设备
List
<
EquipInfo
>
equipInfo
=
basicInfoMapper
.
findList
(
new
WhereFilter
(),
EquipInfo
.
class
);
for
(
EquipInfo
info
:
equipInfo
)
{
String
equipCode
=
info
.
getEquipCode
();
long
totalRuntime
=
0
;
//查询今日设备所有运行状态数据
List
<
EquipmentData
>
runData
=
equipDataService
.
findRunByCodeAndDate
(
equipCode
,
yesterday
);
if
(
CollectionUtils
.
isEmpty
(
runData
))
{
continue
;
}
//计算运行时间
for
(
EquipmentData
data
:
runData
)
{
long
runtime
=
data
.
getEndTime
().
getTime
()
-
data
.
getBeginTime
().
getTime
();
totalRuntime
+=
runtime
;
}
//生成运行时间记录
RuntimeRecord
lastRecord
=
runRecordService
.
getLastByCode
(
equipCode
);
RuntimeRecord
runtimeRecord
=
new
RuntimeRecord
();
runtimeRecord
.
setCreateTime
(
new
Date
());
BigDecimal
hours
=
new
BigDecimal
(
totalRuntime
).
divide
(
new
BigDecimal
(
3600000
),
4
,
BigDecimal
.
ROUND_HALF_UP
);
runtimeRecord
.
setCurrentRuntime
(
hours
);
BigDecimal
total
=
BigDecimal
.
ZERO
;
if
(
null
!=
lastRecord
)
{
total
=
lastRecord
.
getTotalRuntime
();
}
runtimeRecord
.
setTotalRuntime
(
total
.
add
(
hours
));
List
<
EquipInfo
>
list
=
basicInfoMapper
.
findList
(
new
WhereFilter
()
{{
addFilter
(
EquipInfo
.
class
,
"equip_code"
,
Operation
.
EQUAL
,
equipCode
);
}},
EquipInfo
.
class
);
EquipInfo
eqp
=
list
.
get
(
0
);
runtimeRecord
.
setMachineId
(
eqp
.
getId
());
runtimeRecord
.
setWorkshopCode
(
eqp
.
getWorkshopCode
());
List
<
RuntimeRecord
>
records
=
new
ArrayList
<>();
records
.
add
(
runtimeRecord
);
runtimeRecordMapper
.
insertLists
(
records
);
}
}
}
src/main/resources/config/application-quartz.properties
View file @
08cbf091
...
...
@@ -26,13 +26,19 @@ quartz.job.taskInfos[0].jobDescription=\u5C01\u88C5\u7EBF\u9884\u710A\u673A\u657
quartz.job.taskInfos[0]
.cronExpression
=
0/10 * * * * ?
quartz.job.taskInfos[0]
.start
=
false
quartz.job.taskInfos[1]
.jobName
=
net.vtstar.zhongtong.avi.equipment.job.Clean
AndStatistics
Job
quartz.job.taskInfos[1]
.jobGroup
=
Clean
AndStatistics
Job
quartz.job.taskInfos[1]
.jobName
=
net.vtstar.zhongtong.avi.equipment.job.Clean
StatusData
Job
quartz.job.taskInfos[1]
.jobGroup
=
Clean
StatusData
Job
quartz.job.taskInfos[1]
.jobDescription
=
\u
6E05
\u
6D17
\u
8BBE
\u5907\u
72B6
\u6001
Job
#quartz.job.taskInfos[1].cronExpression=0 0 0 * * ?
quartz.job.taskInfos[1]
.cronExpression
=
0 0/1 * * * ?
quartz.job.taskInfos[1]
.start
=
false
quartz.job.taskInfos[2]
.jobName
=
net.vtstar.zhongtong.avi.equipment.job.StatisticsTimeJob
quartz.job.taskInfos[2]
.jobGroup
=
StatisticsTimeJob
quartz.job.taskInfos[2]
.jobDescription
=
\u
8ba1
\u
7b97
\u
8fd0
\u
884c
\u
65f6
\u
95f4Job
quartz.job.taskInfos[2]
.cronExpression
=
0 0 1 * * ?
quartz.job.taskInfos[2]
.start
=
false
#quartz.job.taskInfos[2].jobName=net.vtstar.scada.base.equipmgt.job.CleanEquipStatusJob
#quartz.job.taskInfos[2].jobGroup=CleanEquipStatusJob
#quartz.job.taskInfos[2].jobDescription=\u6E05\u6D17\u8BBE\u5907\u72B6\u6001Job
...
...
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