DayDataSyncJob.java
5.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
package com.skua.modules.job;
import com.skua.common.constant.ReportConstant;
import com.skua.core.util.DateUtils;
import com.skua.modules.alarmtmp.entity.SysFactoryDevice;
import com.skua.modules.alarmtmp.service.ISysFactoryDeviceService;
import com.skua.modules.report.service.IReportDataService;
import com.skua.modules.system.datestandard.entity.SysMonitorMetricInfo;
import com.skua.modules.system.datestandard.service.ISysMonitorMetricInfoService;
import com.skua.modules.system.service.IPgService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 发送消息任务
*/
@Slf4j
@Component
public class DayDataSyncJob implements Job {
@Autowired
private IPgService pgService;
@Autowired
private ISysMonitorMetricInfoService sysMonitorMetricInfoService;
@Autowired
private ISysFactoryDeviceService sysFactoryDeviceService;
@Autowired
private IReportDataService reportDataService;
private DecimalFormat df = new DecimalFormat("######0");
/**
* 若参数变量名修改 QuartzJobController中也需对应修改
*/
private String parameter;
public void setParameter(String parameter) {
this.parameter = parameter;
}
@Override
public void execute(JobExecutionContext jobExecutionContext) {
String yesterday = DateUtils.getYesterday();
if(StringUtils.isNotEmpty(this.parameter)){
yesterday = this.parameter;
}
log.info("开始同步【"+yesterday+"】数据入报表");
List<SysFactoryDevice> deviceList = sysFactoryDeviceService.getList();
if(deviceList.size() > 0){
Map<String, String> tagMap = new HashMap<>();
List<SysMonitorMetricInfo> list = sysMonitorMetricInfoService.getTagDataList();
for (SysMonitorMetricInfo monitorMetricInfo : list) {
tagMap.put(monitorMetricInfo.getMetricUidTag()+"-"+monitorMetricInfo.getDepartId(),monitorMetricInfo.getId());
}
for (SysFactoryDevice sysFactoryDevice : deviceList) {
String departId = sysFactoryDevice.getDepartId();
String deviceId = sysFactoryDevice.getDeviceId();
String fields = "";
for (SysMonitorMetricInfo monitorMetricInfo : list) {
if(departId.equals(monitorMetricInfo.getDepartId())){
fields = fields + monitorMetricInfo.getId() + ",";
}
}
if(!"".equals(fields)){
Map<String, Object> dataMap = new HashMap<>();
try{
dataMap = pgService.queryDayData(fields, deviceId, yesterday);
}catch (Exception e){
dataMap = new HashMap<>();
}
Map<String, String> data = new HashMap<>();
if(dataMap.size() != 0){
//出水数据
data = setReportDataValue(data,departId,"CSLL","CSL",tagMap,dataMap);
data = setReportDataValue(data,departId,"CSNH3N","CSAD",tagMap,dataMap);
data = setReportDataValue(data,departId,"CSCOD","CSCOD",tagMap,dataMap);
data = setReportDataValue(data,departId,"CSPH","CSPH",tagMap,dataMap);
data = setReportDataValue(data,departId,"CSSS","CSSS",tagMap,dataMap);
data = setReportDataValue(data,departId,"CSTP","CSZL",tagMap,dataMap);
data = setReportDataValue(data,departId,"CSTN","CSTN",tagMap,dataMap);
//进水数据
data = setReportDataValue(data,departId,"JSLL","JSL",tagMap,dataMap);
data = setReportDataValue(data,departId,"JSNH3N","JSAD",tagMap,dataMap);
data = setReportDataValue(data,departId,"JSCOD","JSCOD",tagMap,dataMap);
data = setReportDataValue(data,departId,"JSPH","JSPH",tagMap,dataMap);
data = setReportDataValue(data,departId,"JSSS","JSSS",tagMap,dataMap);
data = setReportDataValue(data,departId,"JSTP","JSZL",tagMap,dataMap);
data = setReportDataValue(data,departId,"JSTN","JSZD",tagMap,dataMap);
data.put("departId", departId);
data.put("reportId", ReportConstant.view2119);
data.put("time",yesterday);
reportDataService.insertOrUpdateReportData(departId, yesterday, data, ReportConstant.view2119);
// log.info("========="+departId+"数据同步完成"+data);
}
}
}
log.info("同步"+yesterday+"的数据入报表完成");
}else {
log.info("没有需要同步数据的水厂");
}
}
/**
* 填充报表数据
* @param data
* @param departId
* @param tagCode
* @param itemCode
* @param tagMap
* @param dataMap
* @return
*/
private Map<String, String> setReportDataValue(Map<String, String> data, String departId, String tagCode, String itemCode,
Map<String, String> tagMap, Map<String, Object> dataMap) {
if(tagMap.get(tagCode+"-"+departId)!=null){
if(dataMap.get(tagMap.get(tagCode+"-"+departId)) != null){
if("CSLL".equals(tagCode)||"JSLL".equals(tagCode)){
data.put(itemCode, df.format(24*Double.parseDouble(dataMap.get(tagMap.get(tagCode+"-"+departId)).toString())));
}else{
data.put(itemCode, dataMap.get(tagMap.get(tagCode+"-"+departId)).toString());
}
}else{
data.put(itemCode, "");
}
}else{
data.put(itemCode, "");
}
return data;
}
}