Test.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package com.ruoyi;
  2. import cn.hutool.core.collection.CollUtil;
  3. import cn.hutool.core.date.DateTime;
  4. import cn.hutool.core.date.DateUtil;
  5. import cn.hutool.core.util.NumberUtil;
  6. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  7. import com.ruoyi.ucp.entity.*;
  8. import com.ruoyi.ucp.feign.AdapterApi;
  9. import com.ruoyi.ucp.service.ITurbineInfoDayService;
  10. import com.ruoyi.ucp.util.CalcCache;
  11. import org.junit.runner.RunWith;
  12. import org.springframework.boot.test.context.SpringBootTest;
  13. import org.springframework.test.context.junit4.SpringRunner;
  14. import javax.annotation.Resource;
  15. import java.util.*;
  16. import java.util.concurrent.ConcurrentHashMap;
  17. import java.util.concurrent.atomic.AtomicReference;
  18. import java.util.function.Function;
  19. import java.util.stream.Collectors;
  20. /**
  21. * Author: malijun
  22. * Data : 2024: 07: 03
  23. **/
  24. @SpringBootTest
  25. @RunWith(SpringRunner.class)
  26. public class Test {
  27. @Resource
  28. private AdapterApi adapter;
  29. @Resource
  30. private JavaFunctionJobHandler javaFunctionJobHandler;
  31. @Resource
  32. private ITurbineInfoDayService turbineInfoDayService;
  33. @org.junit.Test
  34. public void test() {
  35. javaFunctionJobHandler.cutInWindSpeed();
  36. javaFunctionJobHandler.calcGlqxnh_edfs();
  37. }
  38. //平均温度
  39. @org.junit.Test
  40. public void ambientTemperature() {
  41. //date当天零点
  42. DateTime timeNow00 = DateUtil.beginOfDay(new Date());
  43. //date昨天零点
  44. DateTime timeBegin00 = DateUtil.offsetDay(timeNow00, -1);
  45. //上个月
  46. DateTime timeBegin2 = DateUtil.offsetMonth(timeBegin00, -1);
  47. //上个月第一天
  48. DateTime timeBegin1 = DateUtil.beginOfMonth(timeBegin2);
  49. //上个月最后一天
  50. DateTime timeEnd2 = DateUtil.endOfMonth(timeBegin2);
  51. //上个月天数
  52. int days = (int) DateUtil.betweenDay(timeBegin1, timeEnd2, false);
  53. //遍历天数
  54. for (int i = 1; i <= days; i++) {
  55. DateTime timeNow = DateUtil.offsetDay(timeBegin1, i);
  56. DateTime timeBegin = DateUtil.offsetDay(timeBegin1, i - 1);
  57. //所有风机的温度
  58. QueryWrapper<PointInfo> queryWrapper = new QueryWrapper<>();
  59. queryWrapper.eq("uniform_code", "AI072");
  60. List<PointInfo> pointInfos = javaFunctionJobHandler.getEntity("AI072", "turbine");
  61. //插入集合
  62. List<TurbineInfoDay> interest = new ArrayList<>();
  63. //更新集合
  64. List<TurbineInfoDay> update = new ArrayList<>();
  65. //遍历pointInfos
  66. for (PointInfo turbine : pointInfos) {
  67. List<PointData> pointDatas = adapter.getHistorySnap(javaFunctionJobHandler.goldenUri(), turbine.getPointKey(), timeBegin.getTime(), timeNow.getTime(), 10);
  68. //遍历pointDatas,取出数据算平均值
  69. double avgCutInWindSpeed = 0;
  70. for (PointData pointData : pointDatas) {
  71. avgCutInWindSpeed += pointData.getValue();
  72. }
  73. avgCutInWindSpeed /= pointDatas.size();
  74. //存入数据库
  75. String turbineId = turbine.getTurbineId();
  76. Date jdkDate = timeBegin.toJdkDate();
  77. System.out.println(turbineId + " " + jdkDate);
  78. QueryWrapper<TurbineInfoDay> turbineInfoDayQueryWrapper = new QueryWrapper<>();
  79. turbineInfoDayQueryWrapper.eq("turbine_id", turbine.getTurbineId());
  80. turbineInfoDayQueryWrapper.eq("record_date", timeBegin.toJdkDate());
  81. TurbineInfoDay one = turbineInfoDayService.getOne(turbineInfoDayQueryWrapper);
  82. System.out.println(one);
  83. if (one == null) {
  84. TurbineInfoDay turbineInfoDay = new TurbineInfoDay();
  85. turbineInfoDay.setTurbineId(turbine.getTurbineId());
  86. turbineInfoDay.setRecordDate(timeBegin.toJdkDate());
  87. turbineInfoDay.setHjwd(avgCutInWindSpeed);
  88. System.out.println(turbineInfoDay);
  89. interest.add(turbineInfoDay);
  90. // turbineInfoDayService.save(turbineInfoDay);
  91. } else {
  92. one.setHjwd(avgCutInWindSpeed);
  93. System.out.println(one);
  94. update.add(one);
  95. // turbineInfoDayService.updateById(one);
  96. }
  97. }
  98. // //批量插入
  99. // turbineInfoDayService.saveBatch(interest);
  100. // //批量更新
  101. // turbineInfoDayService.updateBatchById(update);
  102. // //批量插入或更新
  103. turbineInfoDayService.saveOrUpdateBatch(interest);
  104. turbineInfoDayService.saveOrUpdateBatch(update);
  105. }
  106. }
  107. @org.junit.Test
  108. public void test1() {
  109. Date date = DateUtil.date().toJdkDate();
  110. javaFunctionJobHandler.writeReportPool(date);
  111. javaFunctionJobHandler.writeReportPoolProject(date);
  112. javaFunctionJobHandler.writeReportPoolPjfs(date);
  113. }
  114. }