GoldenService.java 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. package com.gyee.sampleimpala.service.custom;
  2. import com.gyee.sampleimpala.common.config.UniformcodeConfig;
  3. import com.gyee.sampleimpala.common.exception.CustomException;
  4. import com.gyee.sampleimpala.common.feign.RemoteServiceBuilder;
  5. import com.gyee.sampleimpala.common.result.ResultCode;
  6. import com.gyee.sampleimpala.common.util.DateUtil;
  7. import com.gyee.sampleimpala.model.custom.TsPointData;
  8. import com.gyee.sampleimpala.model.kudu.Caseperformance;
  9. import com.gyee.sampleimpala.model.kudu.Windturbinepoint;
  10. import com.gyee.sampleimpala.service.kudu.CaseperformanceService;
  11. import com.gyee.sampleimpala.service.kudu.WindturbinepointService;
  12. import lombok.extern.slf4j.Slf4j;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import java.util.*;
  16. @Slf4j
  17. @Service
  18. public class GoldenService {
  19. @Autowired
  20. private RemoteServiceBuilder remoteService;
  21. @Autowired
  22. private WindturbinepointService windturbinepointService;
  23. @Autowired
  24. private CaseperformanceService caseperformanceService;
  25. @Autowired
  26. private UniformcodeConfig uniformcodeConfig;
  27. /**
  28. * 查询原始数据
  29. *
  30. * @param points
  31. * @param startTs 精确到毫秒
  32. * @param endTs
  33. * @param interval
  34. * @return
  35. */
  36. public List<Map> getCurveScatter(String[] points, long startTs, long endTs, int interval) {
  37. List<Map> list = new ArrayList<>();
  38. try {
  39. for (String point : points) {
  40. Windturbinepoint w = windturbinepointService.getByPoint(point);
  41. List<TsPointData> data = new ArrayList<>();
  42. Map m = new HashMap();
  43. if (interval <= 0) {
  44. data = remoteService.ShardingService().getHistoryRaw(point, startTs, endTs);
  45. } else {
  46. data = remoteService.ShardingService().getHistorySnap(point, startTs, endTs, interval);
  47. }
  48. m.put("name", w.getPointdes());
  49. m.put("code", w.getWidgetcode());
  50. m.put("point", w.getPoint());
  51. m.put("list", data);
  52. list.add(m);
  53. }
  54. } catch (Exception e) {
  55. log.error(e.getMessage());
  56. throw new CustomException(ResultCode.ERROR_DATA);
  57. }
  58. return list;
  59. }
  60. /**
  61. * H获取风速和转速的曲线数据
  62. *
  63. * @param ids ids
  64. * @param interval 数据时间间隔
  65. * @return
  66. */
  67. public Map<String, List> getCurveScatter(Integer[] ids, int interval) {
  68. try {
  69. Map<String, List> maps = new HashMap<>();
  70. for (Integer id : ids) {
  71. List<String> codeList = uniformcodeConfig.getUniformcode();
  72. String[] codes = codeList.toArray(new String[codeList.size()]);
  73. Caseperformance cp = caseperformanceService.getPerformanceByid(id);
  74. List<Windturbinepoint> windturbinepoints = windturbinepointService.getListByStationAndWtIdAndUniformCode(cp.getStationen(), cp.getWindturbineid(), codes);
  75. List<TsPointData> data1 = remoteService.ShardingService().getHistorySnap(windturbinepoints.get(0).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
  76. DateUtil.covertDateTimestamp(cp.getEndtime()), interval);
  77. List<TsPointData> data2 = remoteService.ShardingService().getHistorySnap(windturbinepoints.get(1).getPoint(), DateUtil.covertDateTimestamp(cp.getStarttime()),
  78. DateUtil.covertDateTimestamp(cp.getEndtime()), interval);
  79. if (null != data1 && null != data2 && data1.size() == data2.size()) {
  80. List list = new ArrayList();
  81. List<Map> lp = new ArrayList<>();
  82. for (int i = 0; i < data1.size(); i++) {
  83. List l = new ArrayList();
  84. Map c = new HashMap();
  85. l.add(data1.get(i).getDoubleValue());
  86. l.add(data2.get(i).getDoubleValue());
  87. c.put("fs", data1.get(i).getDoubleValue());
  88. c.put("zs", data2.get(i).getDoubleValue());
  89. list.add(l);
  90. lp.add(c);
  91. }
  92. maps.put("S_" + id + "_" + cp.getWindturbineid(), list);
  93. maps.put("C_" + id + "_" + cp.getWindturbineid(), lp);
  94. }
  95. }
  96. return maps;
  97. } catch (Exception e) {
  98. log.error(e.getMessage());
  99. throw new CustomException(ResultCode.ERROR_DATA);
  100. }
  101. }
  102. }