HtAnalogDataController.java 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. package com.bizmatics.controller.web;
  2. import com.bizmatics.common.core.bean.ApiResult;
  3. import com.bizmatics.model.vo.DataManagementOneVO;
  4. import com.bizmatics.model.vo.HtAnalogEnergyConsumptionVo;
  5. import com.bizmatics.model.vo.HtAnalogEnergySegmentedVo;
  6. import com.bizmatics.model.vo.SingleLoopReportOneVo;
  7. import com.bizmatics.service.HtAnalogDataService;
  8. import com.bizmatics.service.aop.BusinessType;
  9. import com.bizmatics.service.aop.Log;
  10. import com.bizmatics.service.vo.CommonIcoVO;
  11. import com.bizmatics.service.vo.HadCountVO;
  12. import com.bizmatics.service.vo.RealScoreVO;
  13. import com.bizmatics.service.vo.TimeShareVO;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.format.annotation.DateTimeFormat;
  17. import org.springframework.web.bind.annotation.*;
  18. import java.time.LocalDate;
  19. import java.time.LocalDateTime;
  20. import java.time.format.DateTimeFormatter;
  21. import java.time.temporal.ChronoUnit;
  22. import java.util.Date;
  23. import java.util.List;
  24. /**
  25. * 历史消费组模拟量
  26. *
  27. * @author ya
  28. * @since 2021-07-07
  29. */
  30. @RestController
  31. @RequestMapping("/htAnalogData")
  32. public class HtAnalogDataController {
  33. @Autowired
  34. private HtAnalogDataService htAnalogDataService;
  35. /**
  36. * 首页日/月/年用电量
  37. *
  38. * @return
  39. */
  40. @GetMapping("count")
  41. public ApiResult<HadCountVO> count() {
  42. return ApiResult.success(htAnalogDataService.selectCount());
  43. }
  44. /**
  45. * 今日/昨日用电趋势
  46. *
  47. * @param siteId 站点id
  48. * @return
  49. */
  50. @GetMapping("eptrendIco")
  51. public ApiResult<List<CommonIcoVO>> getTrendByDate(@RequestParam(required = false) Integer siteId) {
  52. return ApiResult.success(htAnalogDataService.selectTrendByDate(siteId));
  53. }
  54. /**
  55. * 当月用电趋势图
  56. *
  57. * @return
  58. */
  59. @GetMapping("eptrendIcoMonth")
  60. public ApiResult<List<CommonIcoVO>> getTrendByMonth() {
  61. return ApiResult.success(htAnalogDataService.selectTrendByMonth());
  62. }
  63. /**
  64. * 站点日/月/年用电量
  65. *
  66. * @param siteId 站点id
  67. * @return
  68. */
  69. @GetMapping("dayMonthYearEp")
  70. public ApiResult<HadCountVO> getCountBySite(@RequestParam Integer siteId) {
  71. return ApiResult.success(htAnalogDataService.getCountBySite(siteId));
  72. }
  73. /**
  74. * 分时电量
  75. *
  76. * @param siteId 站点id
  77. * @param type 时间
  78. * @return
  79. */
  80. @GetMapping("timeShare")
  81. public ApiResult<TimeShareVO> getTimeShare(@RequestParam Integer siteId, @RequestParam Integer type) {
  82. return ApiResult.success(htAnalogDataService.getTimeShare(siteId, type));
  83. }
  84. /**
  85. * 需量趋势图
  86. *
  87. * @param siteId 站点id
  88. * @return
  89. */
  90. @GetMapping("demandIco")
  91. public ApiResult<List<CommonIcoVO>> getDemandIco(@RequestParam Integer siteId) {
  92. return ApiResult.success(htAnalogDataService.getDemandIco(siteId));
  93. }
  94. /**
  95. * 历史记录电流电压
  96. *
  97. * @param siteId 站点id
  98. * @param date 时间
  99. * @return
  100. */
  101. @GetMapping("electricIco")
  102. public ApiResult<List<CommonIcoVO>> getElectricIco(@RequestParam Integer siteId, @RequestParam Date date) {
  103. return ApiResult.success(htAnalogDataService.getElectricIco(siteId, date));
  104. }
  105. /**
  106. * 历史电流电压评分
  107. *
  108. * @param deviceCode
  109. * @param startTime
  110. * @param endTime
  111. * @return
  112. */
  113. @GetMapping("rtRealScore")
  114. public ApiResult<List<RealScoreVO>> rtRealScore(@RequestParam String deviceCode,
  115. @RequestParam Date startTime,
  116. @RequestParam Date endTime) {
  117. return ApiResult.success(htAnalogDataService.rtRealScore(deviceCode, startTime, endTime));
  118. }
  119. /**
  120. * 数据管理-同比分析报表-统计图数据查询
  121. *
  122. * @param dataManagementOneVO
  123. * @return
  124. */
  125. @PostMapping("yearOnYearList")
  126. public ApiResult<List<CommonIcoVO>> yearOnYearList(@RequestBody DataManagementOneVO dataManagementOneVO) {
  127. return ApiResult.success(htAnalogDataService.yearOnYearList(dataManagementOneVO));
  128. }
  129. /**
  130. * 数据管理-环比分析报表-统计图数据查询
  131. *
  132. * @param dataManagementOneVO
  133. * @return
  134. */
  135. @PostMapping("ringRatioList")
  136. public ApiResult<List<CommonIcoVO>> ringRatioList(@RequestBody DataManagementOneVO dataManagementOneVO) {
  137. return ApiResult.success(htAnalogDataService.ringRatioList(dataManagementOneVO));
  138. }
  139. /**
  140. * 数据管理-用能月报-统计图数据查询
  141. *
  142. * @param deviceCode 设备编号
  143. * @param cycle 1.日报表 2.月报表 3.年报表
  144. * @param startTime 开始时间
  145. * @param endTime 结束时间
  146. * @return
  147. */
  148. @GetMapping("monthlyReport")
  149. public ApiResult<List<CommonIcoVO>> monthlyReport(@RequestParam String deviceCode,
  150. @RequestParam int cycle,
  151. @RequestParam String startTime,
  152. @RequestParam String endTime) {
  153. return ApiResult.success(htAnalogDataService.monthlyReport(deviceCode, cycle, startTime, endTime));
  154. }
  155. /**
  156. * 数据管理-需量分析-统计图数据查询
  157. *
  158. * @param deviceCode 设备编号
  159. * @param cycle 1.电费结算周期 2.自然月
  160. * @param monthDate 时间 xxxx-xx
  161. * @return
  162. */
  163. @GetMapping("demandAnalysis")
  164. public ApiResult<List<CommonIcoVO>> demandAnalysis(@RequestParam String deviceCode,
  165. @RequestParam int cycle,
  166. @RequestParam String monthDate) {
  167. return ApiResult.success(htAnalogDataService.demandAnalysis(deviceCode, monthDate, cycle));
  168. }
  169. /**
  170. * 数据管理-用能月报-导出
  171. *
  172. * @param deviceCode 设备编号
  173. * @param cycle 1.日报表 2.月报表 3.年报表
  174. * @param startTime 开始时间
  175. * @param endTime 结束时间
  176. * @return
  177. */
  178. @Log(title = "数据管理-用能月报", businessType = BusinessType.EXPORT)
  179. @GetMapping("monthlyReportExport")
  180. public ApiResult<String> monthlyReportExport(@RequestParam String deviceCode,
  181. @RequestParam int cycle,
  182. @RequestParam String startTime,
  183. @RequestParam String endTime) {
  184. return ApiResult.success(htAnalogDataService.monthlyReportExport(deviceCode, startTime, endTime, cycle));
  185. }
  186. /**
  187. * 电能质量(单回路报告)
  188. *
  189. * @param deviceCode 设备编号
  190. * @param time 时间 type为1时时间格式 yyyy-MM-dd type为2时时间格式 yyyy-MM
  191. * @param type 类型 1:日 2:月
  192. * @return
  193. */
  194. @GetMapping("SingleLoopReportData")
  195. public ApiResult<SingleLoopReportOneVo> SingleLoopReportData(@RequestParam String deviceCode,
  196. @RequestParam Date time,
  197. @RequestParam int type) {
  198. return ApiResult.success(htAnalogDataService.SingleLoopReportData(deviceCode, time, type));
  199. }
  200. /**
  201. * 总能耗-头部数据
  202. *
  203. * @param siteId 站点id
  204. * @param consume 1.用量 2.费用
  205. * @param time 时间
  206. * @param timeType 时间类型 overview 概览,day 日,month 月,year 年
  207. * @return 响应
  208. */
  209. @GetMapping("getEnergyConsumption")
  210. public ApiResult<HtAnalogEnergyConsumptionVo> getEnergyConsumption(@RequestParam Integer siteId,
  211. @RequestParam(required = false, defaultValue = "1") Integer consume,
  212. @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime time,
  213. @RequestParam(required = false, defaultValue = "overview") String timeType) {
  214. if (time == null) {
  215. time = LocalDateTime.now();
  216. }
  217. return ApiResult.success(htAnalogDataService.getEnergyConsumption(siteId, consume, time, timeType));
  218. }
  219. /**
  220. * 获取分段数据
  221. * @param siteId 站点id
  222. * @param queryPeriod 查询周期 day month year
  223. * @param queryTime 查询时间
  224. * @param queryType 查询类型(energy 能耗;electric 电;cost 费用)
  225. * @return 分段图表数据
  226. */
  227. @GetMapping("getSegmentedData")
  228. public ApiResult<HtAnalogEnergySegmentedVo> getSegmentedData(@RequestParam Integer siteId,
  229. @RequestParam(required = false) String queryPeriod,
  230. @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime queryTime,
  231. @RequestParam(required = false, defaultValue = "energy") String queryType) {
  232. if (StringUtils.isEmpty(queryPeriod)) {
  233. queryPeriod = "day";
  234. }
  235. return ApiResult.success(htAnalogDataService.getSegmentedData(siteId, queryPeriod, queryTime, queryType));
  236. }
  237. }