3d8f3e62 张雷

厂区驾驶舱接口开发

1 个父辈 1d7c30d4
...@@ -83,7 +83,6 @@ ...@@ -83,7 +83,6 @@
83 <select id="getYhylqs" resultType="java.util.HashMap"> 83 <select id="getYhylqs" resultType="java.util.HashMap">
84 SELECT 84 SELECT
85 LEFT( v3.time, 7 ) time, 85 LEFT( v3.time, 7 ) time,
86 ( v3.time, 7 ) time,
87 (SUM( v3.NACLO ) + SUM( v3.PFS ) + SUM( v3.FHTY ) + SUM( v3.RYXNJ ) + SUM( v3.YWL ) + SUM( v3.GXCLJ ) + SUM( v3.CH3COONA ) 86 (SUM( v3.NACLO ) + SUM( v3.PFS ) + SUM( v3.FHTY ) + SUM( v3.RYXNJ ) + SUM( v3.YWL ) + SUM( v3.GXCLJ ) + SUM( v3.CH3COONA )
88 + SUM( v3.HXT ) + SUM( v3.FECL3 ) + SUM( v3.SH ) + SUM( v3.CH3COOH ) + SUM( v3.FESO4G ) + SUM( v3.FESO4Y ) + SUM( v3.H2O2 ) ) AS zyl, 87 + SUM( v3.HXT ) + SUM( v3.FECL3 ) + SUM( v3.SH ) + SUM( v3.CH3COOH ) + SUM( v3.FESO4G ) + SUM( v3.FESO4Y ) + SUM( v3.H2O2 ) ) AS zyl,
89 v2.clsl, 88 v2.clsl,
......
...@@ -133,9 +133,9 @@ skua: ...@@ -133,9 +133,9 @@ skua:
133 web-url: http://103.85.171.27:8096 133 web-url: http://103.85.171.27:8096
134 path: 134 path:
135 #文件上传根目录 设置 135 #文件上传根目录 设置
136 upload: ../file 136 upload: /home/skboot/file
137 #webapp文件路径 137 #webapp文件路径
138 webapp: ../file 138 webapp: /home/skboot/file
139 # 断点续传路径 139 # 断点续传路径
140 chunk: /home/skboot/file/files 140 chunk: /home/skboot/file/files
141 #创蓝短信秘钥 141 #创蓝短信秘钥
......
1 package com.skua.modules.dataAnalysis.controller;
2
3 import com.skua.core.api.vo.Result;
4 import com.skua.modules.dataAnalysis.service.IFactoryCenterService;
5 import com.skua.modules.dataAnalysis.vo.StatisticsParam;
6 import com.skua.modules.dataAnalysis.vo.WaterQualityMonitoringDetailVO;
7 import com.skua.modules.dataAnalysis.vo.WaterQualityMonitoringVO;
8 import io.swagger.annotations.Api;
9 import io.swagger.annotations.ApiOperation;
10 import lombok.extern.slf4j.Slf4j;
11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.web.bind.annotation.GetMapping;
13 import org.springframework.web.bind.annotation.RequestMapping;
14 import org.springframework.web.bind.annotation.RestController;
15
16 import java.util.HashMap;
17 import java.util.List;
18 import java.util.Map;
19
20 @Slf4j
21 @Api(tags = "厂区驾驶舱")
22 @RestController
23 @RequestMapping("/v1/factoryCenter")
24 public class FactoryCenterController {
25
26 @Autowired
27 private IFactoryCenterService factoryCenterService;
28
29 @ApiOperation(value="厂区驾驶舱实时数据查询", notes="厂区驾驶舱实时数据查询")
30 @GetMapping(value = "/getRealTimeData")
31 public Result<List<WaterQualityMonitoringDetailVO>> getRealTimeData(String departId) {
32 Result<List<WaterQualityMonitoringDetailVO>> result = new Result<List<WaterQualityMonitoringDetailVO>>();
33 List<WaterQualityMonitoringDetailVO> list = factoryCenterService.queryMonitoringData(departId);
34 result.setSuccess(true);
35 result.setResult(list);
36 return result;
37 }
38
39 @ApiOperation(value="厂区驾驶舱统计数据", notes="厂区驾驶舱统计数据")
40 @GetMapping(value = "/getData")
41 public Result<Map<String,Object>> getData(String departId,String month) {
42 Result<Map<String,Object>> result = new Result<Map<String,Object>>();
43 Map<String,Object> map = factoryCenterService.getData(departId,month);
44 result.setSuccess(true);
45 result.setResult(map);
46 return result;
47 }
48
49 @ApiOperation(value="厂区驾驶舱产泥量统计", notes="厂区驾驶舱产泥量统计")
50 @GetMapping(value = "/getCnltj")
51 public Result<List<Map<String, Object>>> getCnltj(StatisticsParam statisticsParam) {
52 Result<List<Map<String, Object>>> result = new Result<List<Map<String, Object>>>();
53 List<Map<String, Object>> list = factoryCenterService.getCnltj(statisticsParam);
54 result.setSuccess(true);
55 result.setResult(list);
56 return result;
57 }
58
59 @ApiOperation(value="厂区驾驶舱耗电量统计", notes="厂区驾驶舱耗电量统计")
60 @GetMapping(value = "/getHdltj")
61 public Result<List<Map<String, Object>>> getHdltj(StatisticsParam statisticsParam) {
62 Result<List<Map<String, Object>>> result = new Result<List<Map<String, Object>>>();
63 List<Map<String, Object>> list = factoryCenterService.getHdltj(statisticsParam);
64 result.setSuccess(true);
65 result.setResult(list);
66 return result;
67 }
68
69 //污水处理水量统计
70 @ApiOperation(value="厂区驾驶舱污水处理水量统计", notes="厂区驾驶舱污水处理水量统计")
71 @GetMapping(value = "/getWssltj")
72 public Result<List<Map<String, Object>>> getWssltj(StatisticsParam statisticsParam) {
73 Result<List<Map<String, Object>>> result = new Result<List<Map<String, Object>>>();
74 List<Map<String, Object>> list = factoryCenterService.getWssltj(statisticsParam);
75 result.setSuccess(true);
76 result.setResult(list);
77 return result;
78 }
79
80 //厂区驾驶舱药耗统计
81 @ApiOperation(value="厂区驾驶舱药耗统计", notes="厂区驾驶舱药耗统计")
82 @GetMapping(value = "/getYhtj")
83 public Result<List<Map<String, Object>>> getYhtj(StatisticsParam statisticsParam) {
84 Result<List<Map<String, Object>>> result = new Result<List<Map<String, Object>>>();
85 List<Map<String, Object>> list = factoryCenterService.getYhtj(statisticsParam);
86 result.setSuccess(true);
87 result.setResult(list);
88 return result;
89 }
90
91 /**
92 * <pre>
93 * <获取指定厂站报警阈值
94 * </pre>
95 * @return
96 */
97 @ApiOperation(value="获取指定厂站报警阈值", notes="获取指定厂站报警阈值")
98 @GetMapping(value = "/getMonitorThreshold")
99 public Result<Map<String,Object>> getMonitorThreshold(String departId) {
100 Result<Map<String,Object>> result = new Result<Map<String,Object>>();
101 Map<String, Object> map = factoryCenterService.getMonitorThreshold(departId);
102 result.setSuccess(true);
103 result.setResult(map);
104 return result;
105 }
106
107 @ApiOperation(value="获取水质变化趋势", notes="获取水质变化趋势")
108 @GetMapping(value = "/getHourWaterData")
109 public Result<Map<String,Object>> getHourWaterData(StatisticsParam statisticsParam) {
110 Result<Map<String,Object>> result = new Result<Map<String,Object>>();
111 Map<String,Object> map = new HashMap<>();
112 map = factoryCenterService.getHourWaterData(statisticsParam);
113 result.setSuccess(true);
114 result.setResult(map);
115 return result;
116 }
117 }
1 package com.skua.modules.dataAnalysis.mapper;
2
3 import com.skua.modules.system.datestandard.entity.SysMonitorMetricInfo;
4 import org.apache.ibatis.annotations.Param;
5
6 import java.util.List;
7 import java.util.Map;
8
9 public interface FactoryCenterMapper {
10
11 List<SysMonitorMetricInfo> getMonitorListByDepart(@Param("departId") String departId);
12
13 List<Map<String, Object>> getHourWaterData(@Param("departId") String departId, @Param("startDate") String startDate, @Param("endDate") String endDate);
14 }
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3 <mapper namespace="com.skua.modules.dataAnalysis.mapper.FactoryCenterMapper">
4
5 <select id="getMonitorListByDepart" resultType="com.skua.modules.system.datestandard.entity.SysMonitorMetricInfo">
6 SELECT
7 *
8 FROM
9 sys_monitor_metric_info
10 WHERE
11 depart_id = #{departId}
12 AND metric_uid_tag IN ( 'JSTP', 'JSTN', 'JSPH', 'JSNH3N', 'JSCOD', 'CSTP', 'CSTN', 'CSPH', 'CSNH3N', 'CSCOD' )
13 </select>
14 <select id="getHourWaterData" resultType="java.util.HashMap">
15 select * from sys_monitor_metric_info
16 </select>
17
18 </mapper>
1 package com.skua.modules.dataAnalysis.service;
2
3 import com.skua.modules.dataAnalysis.vo.StatisticsParam;
4 import com.skua.modules.dataAnalysis.vo.WaterQualityMonitoringDetailVO;
5
6 import java.util.List;
7 import java.util.Map;
8
9 public interface IFactoryCenterService {
10
11 /**
12 * 获取水质监测数据
13 * @param departId
14 * @return
15 */
16 List<WaterQualityMonitoringDetailVO> queryMonitoringData(String departId);
17
18 Map<String, Object> getData(String departId,String month);
19
20 List<Map<String, Object>> getCnltj(StatisticsParam statisticsParam);
21
22 List<Map<String, Object>> getHdltj(StatisticsParam statisticsParam);
23
24 List<Map<String, Object>> getWssltj(StatisticsParam statisticsParam);
25
26 List<Map<String, Object>> getYhtj(StatisticsParam statisticsParam);
27
28 Map<String, Object> getMonitorThreshold(String departId);
29
30 Map<String, Object> getHourWaterData(StatisticsParam statisticsParam);
31 }
32
1 package com.skua.modules.dataAnalysis.service.impl;
2
3 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4 import com.skua.core.context.SpringContextUtils;
5 import com.skua.core.service.IPgQueryService;
6 import com.skua.core.util.ConvertUtils;
7 import com.skua.core.util.DateUtils;
8 import com.skua.core.util.DoubleOperaUtils;
9 import com.skua.modules.dataAnalysis.mapper.FactoryCenterMapper;
10 import com.skua.modules.dataAnalysis.service.IFactoryCenterService;
11 import com.skua.modules.dataAnalysis.vo.StatisticsParam;
12 import com.skua.modules.dataAnalysis.vo.WaterQualityMonitoringDetailVO;
13 import com.skua.modules.system.datestandard.entity.SysMonitorMetricInfo;
14 import com.skua.modules.system.datestandard.service.ISysMonitorMetricInfoService;
15 import org.apache.commons.lang3.StringUtils;
16 import org.springframework.beans.factory.annotation.Autowired;
17 import org.springframework.jdbc.core.JdbcTemplate;
18 import org.springframework.stereotype.Service;
19 import org.springframework.util.CollectionUtils;
20
21 import javax.annotation.Resource;
22 import java.time.LocalDate;
23 import java.time.YearMonth;
24 import java.time.format.DateTimeFormatter;
25 import java.util.*;
26 import java.util.stream.Collectors;
27
28 @Service
29 public class FactoryCenterServiceImpl implements IFactoryCenterService {
30
31 @Resource
32 private FactoryCenterMapper factoryCenterMapper;
33 @Autowired
34 private IPgQueryService pgQueryService;
35 @Autowired
36 private ISysMonitorMetricInfoService sysMonitorMetricInfoService;
37
38 @Override
39 public List<WaterQualityMonitoringDetailVO> queryMonitoringData(String departId) {
40 List<WaterQualityMonitoringDetailVO> list = new ArrayList<>();
41 Map<String, Object> monitorTagMap = new HashMap<String,Object>();
42 monitorTagMap.put("CSCOD","BXWSCLC_PLC1_Tag386");
43 monitorTagMap.put("CSNH3N","BXWSCLC_PLC1_Tag387");
44 monitorTagMap.put("CSPH","BXWSCLC_PLC1_Tag385");
45 monitorTagMap.put("CSTN","BXWSCLC_PLC1_Tag392");
46 monitorTagMap.put("CSTP","BXWSCLC_PLC1_Tag388");
47 monitorTagMap.put("JSCOD","BXWSCLC_PLC1_Tag381");
48 monitorTagMap.put("JSNH3N","BXWSCLC_PLC1_Tag382");
49 monitorTagMap.put("JSPH","BXWSCLC_PLC1_Tag1");
50 monitorTagMap.put("JSTN","BXWSCLC_PLC1_Tag3");
51 monitorTagMap.put("JSTP","BXWSCLC_PLC1_Tag2");
52 // List<SysMonitorMetricInfo> monitorList = factoryCenterMapper.getMonitorListByDepart(departId);
53 //获取实时指标
54 String fields = "";
55 // for(SysMonitorMetricInfo monitorInfo : monitorList) {
56 // fields = fields+","+monitorInfo.getId();
57 // }
58 // if(!StringUtils.isEmpty(fields)) {
59 // fields = fields.substring(1);
60 // }
61 fields = "BXWSCLC_PLC1_Tag386,BXWSCLC_PLC1_Tag387,BXWSCLC_PLC1_Tag385,BXWSCLC_PLC1_Tag392,BXWSCLC_PLC1_Tag388," +
62 "BXWSCLC_PLC1_Tag381,BXWSCLC_PLC1_Tag382,BXWSCLC_PLC1_Tag1,BXWSCLC_PLC1_Tag3,BXWSCLC_PLC1_Tag2,";
63 //获取实时数据
64 List<Map<String, Object>> pgDataList = pgQueryService.queryFactoryMonitorFromRealTimeData(departId, fields);
65 Map<String, Object> dataMap = new HashMap<String,Object>();
66 if(pgDataList!=null&&pgDataList.size()>0) {
67 dataMap = pgDataList.get(0);
68 }
69 WaterQualityMonitoringDetailVO inVO = new WaterQualityMonitoringDetailVO();
70 inVO.setParmType("in");
71 inVO.setNum(1);
72 inVO.setDepartId(departId);
73 inVO.setCodUpper("150");
74 inVO.setCodLower("0");
75 inVO.setNh3Upper("35");
76 inVO.setNh3Lower("0");
77 inVO.setTpUpper("4");
78 inVO.setTpLower("0");
79 inVO.setTnUpper("20");
80 inVO.setTnLower("0");
81 inVO.setPhUpper("14");
82 inVO.setPhLower("0");
83 if(monitorTagMap.get("JSCOD")!=null){
84 if(dataMap.get(monitorTagMap.get("JSCOD").toString())!=null){
85 inVO.setCodVal(dataMap.get(monitorTagMap.get("JSCOD").toString()).toString());
86 }else{
87 inVO.setCodVal("0");
88 }
89 }else{
90 inVO.setCodVal("0");
91 }
92 if(monitorTagMap.get("JSNH3N")!=null){
93 if(dataMap.get(monitorTagMap.get("JSNH3N").toString())!=null){
94 inVO.setNh3Val(dataMap.get(monitorTagMap.get("JSNH3N").toString()).toString());
95 }else{
96 inVO.setNh3Val("0");
97 }
98 }else{
99 inVO.setNh3Val("0");
100 }
101 if(monitorTagMap.get("JSTP")!=null){
102 if(dataMap.get(monitorTagMap.get("JSTP").toString())!=null){
103 inVO.setTpVal(dataMap.get(monitorTagMap.get("JSTP").toString()).toString());
104 }else{
105 inVO.setTpVal("0");
106 }
107 }else{
108 inVO.setTpVal("0");
109 }
110 if(monitorTagMap.get("JSTN")!=null){
111 if(dataMap.get(monitorTagMap.get("JSTN").toString())!=null){
112 inVO.setTnVal(dataMap.get(monitorTagMap.get("JSTN").toString()).toString());
113 }else{
114 inVO.setTnVal("0");
115 }
116 }else{
117 inVO.setTnVal("0");
118 }
119 if(monitorTagMap.get("JSPH")!=null){
120 if(dataMap.get(monitorTagMap.get("JSPH").toString())!=null){
121 inVO.setPhVal(dataMap.get(monitorTagMap.get("JSPH").toString()).toString());
122 }else{
123 inVO.setPhVal("0");
124 }
125 }else{
126 inVO.setPhVal("0");
127 }
128 list.add(inVO);
129 WaterQualityMonitoringDetailVO outVO = new WaterQualityMonitoringDetailVO();
130 outVO.setParmType("out");
131 outVO.setNum(2);
132 outVO.setDepartId(departId);
133 outVO.setCodUpper("30");
134 outVO.setCodLower("0");
135 outVO.setNh3Upper("1.5");
136 outVO.setNh3Lower("0");
137 outVO.setTpUpper("0.3");
138 outVO.setTpLower("0");
139 outVO.setTnUpper("10");
140 outVO.setTnLower("0");
141 outVO.setPhUpper("9");
142 outVO.setPhLower("6");
143 if(monitorTagMap.get("CSCOD")!=null){
144 if(dataMap.get(monitorTagMap.get("CSCOD").toString())!=null){
145 outVO.setCodVal(dataMap.get(monitorTagMap.get("CSCOD").toString()).toString());
146 }else{
147 outVO.setCodVal("0");
148 }
149 }else{
150 outVO.setCodVal("0");
151 }
152 if(monitorTagMap.get("CSNH3N")!=null){
153 if(dataMap.get(monitorTagMap.get("CSNH3N").toString())!=null){
154 outVO.setNh3Val(dataMap.get(monitorTagMap.get("CSNH3N").toString()).toString());
155 }else{
156 outVO.setNh3Val("0");
157 }
158 }else{
159 outVO.setNh3Val("0");
160 }
161 if(monitorTagMap.get("CSTP")!=null){
162 if(dataMap.get(monitorTagMap.get("CSTP").toString())!=null){
163 outVO.setTpVal(dataMap.get(monitorTagMap.get("CSTP").toString()).toString());
164 }else{
165 outVO.setTpVal("0");
166 }
167 }else{
168 outVO.setTpVal("0");
169 }
170 if(monitorTagMap.get("CSTN")!=null){
171 if(dataMap.get(monitorTagMap.get("CSTN").toString())!=null){
172 outVO.setTnVal(dataMap.get(monitorTagMap.get("CSTN").toString()).toString());
173 }else{
174 outVO.setTnVal("0");
175 }
176 }else{
177 outVO.setTnVal("0");
178 }
179 if(monitorTagMap.get("CSPH")!=null){
180 if(dataMap.get(monitorTagMap.get("CSPH").toString())!=null){
181 outVO.setPhVal(dataMap.get(monitorTagMap.get("CSPH").toString()).toString());
182 }else{
183 outVO.setPhVal("0");
184 }
185 }else{
186 outVO.setPhVal("0");
187 }
188 list.add(outVO);
189 return list;
190 }
191
192 @Override
193 public Map<String, Object> getData(String departId,String month) {
194 Map<String, Object> map = new HashMap<>();
195 map.put("yclsl",new HashMap<>());
196 Map<String, Object> yclslMap = new HashMap<>();
197 yclslMap.put("value","0");
198 yclslMap.put("valueTb","0");
199 yclslMap.put("valueHb","0");
200 map.put("rjclsl",new HashMap<>());
201 Map<String, Object> rjclslMap = new HashMap<>();
202 rjclslMap.put("value","0");
203 rjclslMap.put("valueTb","0");
204 rjclslMap.put("valueHb","0");
205 map.put("yzdl",new HashMap<>());
206 Map<String, Object> yzdlMap = new HashMap<>();
207 yzdlMap.put("value","0");
208 yzdlMap.put("valueTb","0");
209 yzdlMap.put("valueHb","0");
210 map.put("dsdh",new HashMap<>());
211 Map<String, Object> dsdhMap = new HashMap<>();
212 dsdhMap.put("value","0");
213 dsdhMap.put("valueTb","-");
214 dsdhMap.put("valueHb","0");
215 map.put("yzcnl",new HashMap<>());
216 Map<String, Object> yzcnlMap = new HashMap<>();
217 yzcnlMap.put("value","0");
218 yzcnlMap.put("valueTb","-");
219 yzcnlMap.put("valueHb","0");
220 map.put("wdscnl",new HashMap<>());
221 Map<String, Object> wdscnlMap = new HashMap<>();
222 wdscnlMap.put("value","0");
223 wdscnlMap.put("valueTb","-");
224 wdscnlMap.put("valueHb","0");
225 return map;
226 }
227
228 @Override
229 public List<Map<String, Object>> getCnltj(StatisticsParam statisticsParam) {
230 List<Map<String, Object>> list = new ArrayList<>();
231 String startDate = statisticsParam.getStartDate();
232 String endDate = statisticsParam.getEndDate();
233 List<String> monthList = getMonthsBetween(startDate,endDate);
234 for ( String month : monthList ) {
235 Map<String, Object> map = new HashMap<>();
236 map.put("time",month);
237 map.put("cnl","0");
238 map.put("wdscnl","0");
239 map.put("cnl_tb","0");
240 map.put("wdscnl_tb","0");
241 list.add(map);
242 }
243 return list;
244 }
245
246 @Override
247 public List<Map<String, Object>> getHdltj(StatisticsParam statisticsParam) {
248 List<Map<String, Object>> list = new ArrayList<>();
249 String startDate = statisticsParam.getStartDate();
250 String endDate = statisticsParam.getEndDate();
251 List<String> monthList = getMonthsBetween(startDate,endDate);
252 for ( String month : monthList ) {
253 Map<String, Object> map = new HashMap<>();
254 map.put("time",month);
255 map.put("hdl","0");
256 map.put("dsdh","0");
257 map.put("hdl_tb","0");
258 map.put("dsdh_tb","0");
259 list.add(map);
260 }
261 return list;
262 }
263
264 @Override
265 public List<Map<String, Object>> getWssltj(StatisticsParam statisticsParam) {
266 List<Map<String, Object>> list = new ArrayList<>();
267 String startDate = statisticsParam.getStartDate();
268 String endDate = statisticsParam.getEndDate();
269 List<String> monthList = getMonthsBetween(startDate,endDate);
270 for ( String month : monthList ) {
271 Map<String, Object> map = new HashMap<>();
272 map.put("time",month);
273 map.put("clsl","0");
274 map.put("clsl_tb","0");
275 list.add(map);
276 }
277 return list;
278 }
279
280 @Override
281 public List<Map<String, Object>> getYhtj(StatisticsParam statisticsParam) {
282 List<Map<String, Object>> list = new ArrayList<>();
283 String startDate = statisticsParam.getStartDate();
284 String endDate = statisticsParam.getEndDate();
285 List<String> monthList = getMonthsBetween(startDate,endDate);
286 for ( String month : monthList ) {
287 Map<String, Object> map = new HashMap<>();
288 map.put("time",month);
289 map.put("clyj","0");
290 map.put("tyyj","0");
291 list.add(map);
292 }
293 return list;
294 }
295
296 @Override
297 public Map<String, Object> getMonitorThreshold(String departId) {
298 JdbcTemplate masterDB = (JdbcTemplate) SpringContextUtils.getBean("master");
299 Map<String,Object> resultMap = new HashMap<String,Object>();
300 //获取进出水报警阈值
301 String alarmSql = "SELECT * FROM " +
302 " ( " +
303 " SELECT " +
304 " a.depart_id," +
305 " a.out_level," +
306 " b.alarm_param_code AS index_code," +
307 " b.alarm_param_upper_limit AS upper" +
308 " FROM " +
309 " sys_factory_info a " +
310 " LEFT JOIN alarm_param_standard_config b ON a.out_level = b.alarm_level_standard_id " +
311 " WHERE depart_id = '"+departId+"'" +
312 " UNION ALL " +
313 " SELECT " +
314 " DISTINCT depart_id, " +
315 " '' as out_level, " +
316 " index_code, " +
317 " upper " +
318 " FROM " +
319 " water_quality_in_level " +
320 " WHERE depart_id = '"+departId+"'" +
321 " ) aa ";
322 List<Map<String,Object>> alarmList = masterDB.queryForList(alarmSql);
323 for(Map<String,Object> map : alarmList) {
324 resultMap.put(ConvertUtils.getString(map.get("index_code")), ConvertUtils.getString(map.get("upper")));
325 }
326 return resultMap;
327 }
328
329 @Override
330 public Map<String, Object> getHourWaterData(StatisticsParam statisticsParam) {
331 Map<String, Object> map = new HashMap<>();
332 Map<String, Object> dataMap = new HashMap<>();
333 Map<String, Object> chartsMap = new HashMap<>();
334 List<Object> xlist = new ArrayList<>();
335 List<Object> jscodList = new ArrayList<>();
336 List<Object> jsadList = new ArrayList<>();
337 List<Object> jstnList = new ArrayList<>();
338 List<Object> jstpList = new ArrayList<>();
339 List<Object> jsphList = new ArrayList<>();
340 List<Object> cscodList = new ArrayList<>();
341 List<Object> csadList = new ArrayList<>();
342 List<Object> cstnList = new ArrayList<>();
343 List<Object> cstpList = new ArrayList<>();
344 List<Object> csphList = new ArrayList<>();
345 map.put("number",new HashMap<>());
346 map.put("realTime",new HashMap<>());
347 // List<Map<String, Object>> list = factoryCenterMapper.getHourWaterData(statisticsParam.getDepartId(),
348 // statisticsParam.getStartDate(), statisticsParam.getEndDate());
349 // for (Map<String, Object> newMap: list) {
350 // xlist.add(newMap.get("dataTime"));
351 // jscodList.add(newMap.get("jscod"));
352 // jsadList.add(newMap.get("jsad"));
353 // jstnList.add(newMap.get("jstn"));
354 // jstpList.add(newMap.get("jstp"));
355 // jsphList.add(newMap.get("jsph"));
356 // cscodList.add(newMap.get("cscod"));
357 // csadList.add(newMap.get("csad"));
358 // cstnList.add(newMap.get("cstn"));
359 // cstpList.add(newMap.get("cstp"));
360 // csphList.add(newMap.get("csph"));
361 // }
362 //追加实时数据
363 /******************************/
364 QueryWrapper<SysMonitorMetricInfo> qw = new QueryWrapper<>();
365 qw.in("metric_uid_tag", "CSPH,CSCOD,CSNH3N,CSTN,CSTP,JSCOD,JSNH3N,JSPH,JSTN,JSTP".split(","));
366 qw.eq("depart_id",statisticsParam.getDepartId());
367 qw.groupBy("depart_id","metric_uid_tag");
368 List<SysMonitorMetricInfo> metricInfos = sysMonitorMetricInfoService.list(qw);
369 if (!CollectionUtils.isEmpty(metricInfos)){
370 String fields = metricInfos.stream().map(SysMonitorMetricInfo::getId).collect(Collectors.joining(","));
371
372 Map<String, String> fieldsMap = metricInfos.stream().collect(Collectors.toMap(SysMonitorMetricInfo::getMetricUidTag, SysMonitorMetricInfo::getId));
373
374 List<Map<String, Object>> list1 = pgQueryService.queryFactoryMonitorFromRealTimeData(statisticsParam.getDepartId(), fields);
375
376 if (!CollectionUtils.isEmpty(list1)) {
377 Map<String, Object> map1 = list1.get(0);
378 String time = DateUtils.date2Str(new Date(Long.parseLong(map1.get("time").toString()) * 1000), DateUtils.datetimeFormat);
379 xlist.add(time);
380
381 String jscod;
382 if (!org.apache.commons.lang3.StringUtils.isEmpty(jscod = fieldsMap.get("JSCOD"))) {
383 jscodList.add(DoubleOperaUtils.bigDecimalRound(Double.parseDouble(map1.get(jscod).toString()),2));
384
385 }
386 String jsnh3n;
387 if (!org.apache.commons.lang3.StringUtils.isEmpty(jsnh3n = fieldsMap.get("JSNH3N"))) {
388 jsadList.add(DoubleOperaUtils.bigDecimalRound(Double.parseDouble(map1.get(jsnh3n).toString()),2));
389 }
390 String jstn;
391 if (!org.apache.commons.lang3.StringUtils.isEmpty(jstn = fieldsMap.get("JSTN"))) {
392 jstnList.add(DoubleOperaUtils.bigDecimalRound(Double.parseDouble(map1.get(jstn).toString()),2));
393 }
394 String jstp;
395 if (!org.apache.commons.lang3.StringUtils.isEmpty(jstp = fieldsMap.get("JSTP"))) {
396 jstpList.add(DoubleOperaUtils.bigDecimalRound(Double.parseDouble(map1.get(jstp).toString()),2));
397 }
398
399 String jsph;
400 if (!org.apache.commons.lang3.StringUtils.isEmpty(jsph = fieldsMap.get("JSPH"))) {
401 jsphList.add(DoubleOperaUtils.bigDecimalRound(Double.parseDouble(map1.get(jsph).toString()),2));
402 }
403
404 String cscod;
405 if (!org.apache.commons.lang3.StringUtils.isEmpty(cscod = fieldsMap.get("CSCOD"))) {
406 cscodList.add(DoubleOperaUtils.bigDecimalRound(Double.parseDouble(map1.get(cscod).toString()),2));
407 }
408
409 String csnh3n;
410 if (!org.apache.commons.lang3.StringUtils.isEmpty(csnh3n = fieldsMap.get("CSNH3N"))) {
411 csadList.add(DoubleOperaUtils.bigDecimalRound(Double.parseDouble(map1.get(csnh3n).toString()),2));
412 }
413
414 String cstn;
415 if (!org.apache.commons.lang3.StringUtils.isEmpty(cstn = fieldsMap.get("CSTN"))) {
416 cstnList.add(DoubleOperaUtils.bigDecimalRound(Double.parseDouble(map1.get(cstn).toString()),2));
417 }
418
419 String cstp;
420 if (!org.apache.commons.lang3.StringUtils.isEmpty(cstp = fieldsMap.get("CSTP"))) {
421 cstpList.add(DoubleOperaUtils.bigDecimalRound(Double.parseDouble(map1.get(cstp).toString()),2));
422 }
423
424 String csph;
425 if (!StringUtils.isEmpty(csph = fieldsMap.get("CSPH"))) {
426 csphList.add(DoubleOperaUtils.bigDecimalRound(Double.parseDouble(map1.get(csph).toString()),2));
427 }
428 }
429 }
430 /******************************/
431 dataMap.put("jscod",jscodList);
432 dataMap.put("jsad",jsadList);
433 dataMap.put("jstn",jstnList);
434 dataMap.put("jstp",jstpList);
435 dataMap.put("jsph",jsphList);
436 dataMap.put("cscod",cscodList);
437 dataMap.put("csad",csadList);
438 dataMap.put("cstn",cstnList);
439 dataMap.put("cstp",cstpList);
440 dataMap.put("csph",csphList);
441 chartsMap.put("dataMap",dataMap);
442 chartsMap.put("xline",xlist);
443 map.put("charts",chartsMap);
444 return map;
445 }
446
447 /**
448 * 获取时间之间的月份
449 * @param start
450 * @param end
451 * @return
452 */
453 public static List<String> getMonthsBetween(String start, String end) {
454 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
455 // 解析日期
456 LocalDate startDate = LocalDate.parse(start, formatter);
457 LocalDate endDate = LocalDate.parse(end, formatter);
458 List<String> months = new ArrayList<>();
459 // 获取起始和结束月份
460 YearMonth startMonth = YearMonth.from(startDate);
461 YearMonth endMonth = YearMonth.from(endDate);
462 // 遍历月份并添加到列表
463 YearMonth currentMonth = startMonth;
464 while (!currentMonth.isAfter(endMonth)) {
465 months.add(currentMonth.toString()); // 格式化为 yyyy-MM
466 currentMonth = currentMonth.plusMonths(1);
467 }
468 return months;
469 }
470 }
1 package com.skua.modules.dataAnalysis.vo;
2
3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty;
5 import lombok.Data;
6
7 /**
8 * 统计功能配置表
9 */
10 @Data
11 @ApiModel(value="大屏接口参数", description="大屏接口参数")
12 public class StatisticsParam {
13
14 /**厂区*/
15 @ApiModelProperty(value = "厂区")
16 private String departId;
17 /**开始时间*/
18 @ApiModelProperty(value = "开始时间")
19 private String startDate;
20 /**结束时间*/
21 @ApiModelProperty(value = "结束时间")
22 private String endDate;
23 }
1 package com.skua.modules.dataAnalysis.vo;
2
3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty;
5 import lombok.Data;
6
7 import java.util.List;
8 import java.util.Map;
9
10 /**
11 * 调度中心vo对象
12 *
13 */
14 @Data
15 @ApiModel(value="调度中心vo对象", description="调度中心vo对象")
16 public class WaterQualityMonitorVO {
17
18 /**
19 * 片区id
20 */
21 @ApiModelProperty(value = "所属片区")
22 private String areaId;
23 /**
24 * 厂id
25 */
26 @ApiModelProperty(value = "所属厂区")
27 private String factoryId;
28 private String factoryName;
29 /**
30 * 流量
31 */
32 @ApiModelProperty(value = "流量")
33 private String inFlow;
34 private String outFlow;
35 private String inFlowState;
36 private String outFlowState;
37 /**
38 * cod
39 */
40 @ApiModelProperty(value = "cod")
41 private String inCod;
42 private String outCod;
43 private String inCodState;
44 private String outCodState;
45 /**
46 * 氨氮
47 */
48 @ApiModelProperty(value = "氨氮")
49 private String inNh3;
50 private String outNh3;
51 private String inNh3State;
52 private String outNh3State;
53
54 /**
55 * 总磷
56 */
57 @ApiModelProperty(value = "总磷")
58 private String inTp;
59 private String outTp;
60 private String inTpState;
61 private String outTpState;
62 /**
63 * 总氮
64 */
65 @ApiModelProperty(value = "总氮")
66 private String inTn;
67 private String outTn;
68 private String inTnState;
69 private String outTnState;
70 /**
71 * ph
72 */
73 @ApiModelProperty(value = "ph")
74 private String inPh;
75 private String outPh;
76 private String inPhState;
77 private String outPhState;
78
79 private List<Map<String,Object>> equipList;
80
81 }
1 package com.skua.modules.dataAnalysis.vo;
2
3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty;
5 import lombok.Data;
6
7 /**
8 * 水质监测明细vo对象
9 * @author liyy
10 *
11 */
12 @Data
13 @ApiModel(value="水质监控明细对象", description="封装水质监控明细数据")
14 public class WaterQualityMonitoringDetailVO {
15
16 @ApiModelProperty(value = "进出水类型")
17 private Integer num;
18 /**
19 * 进出水类型
20 */
21 @ApiModelProperty(value = "进出水类型")
22 private String parmType;
23 /**
24 * 厂id
25 */
26 @ApiModelProperty(value = "厂id")
27 private String departId;
28 /**
29 * 厂站名称
30 */
31 @ApiModelProperty(value = "厂站名称")
32 private String departName;
33 @ApiModelProperty(value = "厂区排序")
34 private int departOrder;
35
36 @ApiModelProperty(value = "厂区负责人")
37 private String proPerson;
38
39 @ApiModelProperty(value = "厂区负责人电话")
40 private String proPhone;
41 /**
42 * 监测时间
43 */
44 @ApiModelProperty(value = "监测时间")
45 private String monitorTime;
46 /**
47 * 流量
48 */
49 @ApiModelProperty(value = "流量")
50 private String flowVal;
51 private String flowUpper;
52 private String flowLower;
53 private String flowAbnormal;
54 /**
55 * cod
56 */
57 @ApiModelProperty(value = "cod")
58 private String codVal;
59 private String codUpper;
60 private String codLower;
61 private String codAbnormal;
62 private String codWarnMessage;//预警
63 /**
64 * 氨氮
65 */
66 @ApiModelProperty(value = "氨氮")
67 private String nh3Val;
68 private String nh3Upper;
69 private String nh3Lower;
70 private String nh3Abnormal;
71 private String nh3WarnMessage;
72 /**
73 * 总磷
74 */
75 @ApiModelProperty(value = "总磷")
76 private String tpVal;
77 private String tpUpper;
78 private String tpLower;
79 private String tpAbnormal;
80 private String tpWarnMessage;
81 /**
82 * 总氮
83 */
84 @ApiModelProperty(value = "总氮")
85 private String tnVal;
86 private String tnUpper;
87 private String tnLower;
88 private String tnAbnormal;
89 private String tnWarnMessage;
90 /**
91 * 温度
92 */
93 @ApiModelProperty(value = "温度")
94 private String temperatureVal;
95 private String temperatureWarnMessage;
96 /**
97 * ph
98 */
99 @ApiModelProperty(value = "ph")
100 private String phVal;
101 private String phUpper;
102 private String phLower;
103 private String phAbnormal;
104 /**
105 * 摄像头
106 */
107 @ApiModelProperty(value = "摄像头")
108 private String cameraVal;
109 /**
110 * 出水标准
111 */
112 @ApiModelProperty(value = "出水标准")
113 private String outLevel;
114
115 /**
116 * 是否水质正常
117 */
118 private String isHaveNormal;
119 /**
120 * 是否水质超标
121 */
122 private String isHaveAbnormal;
123 /**
124 * 超标指标个数
125 */
126 private int abnormalCount;
127 /**
128 * 指标未配置
129 */
130 private int notConfiguredCount;
131 /**
132 * 厂站指标没有配置标记
133 */
134 private String isNotHaveConfigured;
135 /**
136 * 是否含有0值
137 */
138 private String isHaveZero;
139 /**
140 * 是否脱机
141 */
142 private String isHaveOffline;
143 /**
144 * 是否预警
145 */
146 private String isHaveWarn;
147 /**
148 * 预警个数
149 */
150 private int abWarnCount;
151
152 private int offLineCount;
153 }
1 package com.skua.modules.dataAnalysis.vo;
2
3 import io.swagger.annotations.ApiModel;
4 import io.swagger.annotations.ApiModelProperty;
5 import lombok.Data;
6
7 import java.util.List;
8
9 @Data
10 @ApiModel(value="水质监控对象", description="封装水质监控数据")
11 public class WaterQualityMonitoringVO {
12 @ApiModelProperty(value = "总数")
13 private String all;//全部
14 @ApiModelProperty(value = "在线")
15 private String normal;//正常
16 @ApiModelProperty(value = "异常")
17 private String abnormal;//异常
18 @ApiModelProperty(value = "脱机")
19 private String offline;//脱机
20 @ApiModelProperty(value = "零值")
21 private String zeroVal;//零值
22 @ApiModelProperty(value = "预警")
23 private String warnVal;//零值
24 @ApiModelProperty(value = "水质监控明细")
25 private List<WaterQualityMonitoringDetailVO> list;//明细
26 }
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!