package com.bizmatics.controller.web; import com.bizmatics.common.core.bean.ApiResult; import com.bizmatics.model.vo.DataManagementOneVO; import com.bizmatics.model.vo.HtAnalogEnergyConsumptionVo; import com.bizmatics.model.vo.HtAnalogEnergySegmentedVo; import com.bizmatics.model.vo.SingleLoopReportOneVo; import com.bizmatics.service.HtAnalogDataService; import com.bizmatics.service.aop.BusinessType; import com.bizmatics.service.aop.Log; import com.bizmatics.service.vo.CommonIcoVO; import com.bizmatics.service.vo.HadCountVO; import com.bizmatics.service.vo.RealScoreVO; import com.bizmatics.service.vo.TimeShareVO; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.web.bind.annotation.*; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; import java.util.Date; import java.util.List; /** * 历史消费组模拟量 * * @author ya * @since 2021-07-07 */ @RestController @RequestMapping("/htAnalogData") public class HtAnalogDataController { @Autowired private HtAnalogDataService htAnalogDataService; /** * 首页日/月/年用电量 * * @return */ @GetMapping("count") public ApiResult count() { return ApiResult.success(htAnalogDataService.selectCount()); } /** * 今日/昨日用电趋势 * * @param siteId 站点id * @return */ @GetMapping("eptrendIco") public ApiResult> getTrendByDate(@RequestParam(required = false) Integer siteId) { return ApiResult.success(htAnalogDataService.selectTrendByDate(siteId)); } /** * 当月用电趋势图 * * @return */ @GetMapping("eptrendIcoMonth") public ApiResult> getTrendByMonth() { return ApiResult.success(htAnalogDataService.selectTrendByMonth()); } /** * 站点日/月/年用电量 * * @param siteId 站点id * @return */ @GetMapping("dayMonthYearEp") public ApiResult getCountBySite(@RequestParam Integer siteId) { return ApiResult.success(htAnalogDataService.getCountBySite(siteId)); } /** * 分时电量 * * @param siteId 站点id * @param type 时间 * @return */ @GetMapping("timeShare") public ApiResult getTimeShare(@RequestParam Integer siteId, @RequestParam Integer type) { return ApiResult.success(htAnalogDataService.getTimeShare(siteId, type)); } /** * 需量趋势图 * * @param siteId 站点id * @return */ @GetMapping("demandIco") public ApiResult> getDemandIco(@RequestParam Integer siteId) { return ApiResult.success(htAnalogDataService.getDemandIco(siteId)); } /** * 历史记录电流电压 * * @param siteId 站点id * @param date 时间 * @return */ @GetMapping("electricIco") public ApiResult> getElectricIco(@RequestParam Integer siteId, @RequestParam Date date) { return ApiResult.success(htAnalogDataService.getElectricIco(siteId, date)); } /** * 历史电流电压评分 * * @param deviceCode * @param startTime * @param endTime * @return */ @GetMapping("rtRealScore") public ApiResult> rtRealScore(@RequestParam String deviceCode, @RequestParam Date startTime, @RequestParam Date endTime) { return ApiResult.success(htAnalogDataService.rtRealScore(deviceCode, startTime, endTime)); } /** * 数据管理-同比分析报表-统计图数据查询 * * @param dataManagementOneVO * @return */ @PostMapping("yearOnYearList") public ApiResult> yearOnYearList(@RequestBody DataManagementOneVO dataManagementOneVO) { return ApiResult.success(htAnalogDataService.yearOnYearList(dataManagementOneVO)); } /** * 数据管理-环比分析报表-统计图数据查询 * * @param dataManagementOneVO * @return */ @PostMapping("ringRatioList") public ApiResult> ringRatioList(@RequestBody DataManagementOneVO dataManagementOneVO) { return ApiResult.success(htAnalogDataService.ringRatioList(dataManagementOneVO)); } /** * 数据管理-用能月报-统计图数据查询 * * @param deviceCode 设备编号 * @param cycle 1.日报表 2.月报表 3.年报表 * @param startTime 开始时间 * @param endTime 结束时间 * @return */ @GetMapping("monthlyReport") public ApiResult> monthlyReport(@RequestParam String deviceCode, @RequestParam int cycle, @RequestParam String startTime, @RequestParam String endTime) { return ApiResult.success(htAnalogDataService.monthlyReport(deviceCode, cycle, startTime, endTime)); } /** * 数据管理-需量分析-统计图数据查询 * * @param deviceCode 设备编号 * @param cycle 1.电费结算周期 2.自然月 * @param monthDate 时间 xxxx-xx * @return */ @GetMapping("demandAnalysis") public ApiResult> demandAnalysis(@RequestParam String deviceCode, @RequestParam int cycle, @RequestParam String monthDate) { return ApiResult.success(htAnalogDataService.demandAnalysis(deviceCode, monthDate, cycle)); } /** * 数据管理-用能月报-导出 * * @param deviceCode 设备编号 * @param cycle 1.日报表 2.月报表 3.年报表 * @param startTime 开始时间 * @param endTime 结束时间 * @return */ @Log(title = "数据管理-用能月报", businessType = BusinessType.EXPORT) @GetMapping("monthlyReportExport") public ApiResult monthlyReportExport(@RequestParam String deviceCode, @RequestParam int cycle, @RequestParam String startTime, @RequestParam String endTime) { return ApiResult.success(htAnalogDataService.monthlyReportExport(deviceCode, startTime, endTime, cycle)); } /** * 电能质量(单回路报告) * * @param deviceCode 设备编号 * @param time 时间 type为1时时间格式 yyyy-MM-dd type为2时时间格式 yyyy-MM * @param type 类型 1:日 2:月 * @return */ @GetMapping("SingleLoopReportData") public ApiResult SingleLoopReportData(@RequestParam String deviceCode, @RequestParam Date time, @RequestParam int type) { return ApiResult.success(htAnalogDataService.SingleLoopReportData(deviceCode, time, type)); } /** * 总能耗-头部数据 * * @param siteId 站点id * @param consume 1.用量 2.费用 * @param time 时间 * @param timeType 时间类型 overview 概览,day 日,month 月,year 年 * @return 响应 */ @GetMapping("getEnergyConsumption") public ApiResult getEnergyConsumption(@RequestParam Integer siteId, @RequestParam(required = false, defaultValue = "1") Integer consume, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime time, @RequestParam(required = false, defaultValue = "overview") String timeType) { if (time == null) { time = LocalDateTime.now(); } return ApiResult.success(htAnalogDataService.getEnergyConsumption(siteId, consume, time, timeType)); } /** * 获取分段数据 * @param siteId 站点id * @param queryPeriod 查询周期 day month year * @param queryTime 查询时间 * @param queryType 查询类型(energy 能耗;electric 电;cost 费用) * @return 分段图表数据 */ @GetMapping("getSegmentedData") public ApiResult getSegmentedData(@RequestParam Integer siteId, @RequestParam(required = false) String queryPeriod, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime queryTime, @RequestParam(required = false, defaultValue = "energy") String queryType) { if (StringUtils.isEmpty(queryPeriod)) { queryPeriod = "day"; } return ApiResult.success(htAnalogDataService.getSegmentedData(siteId, queryPeriod, queryTime, queryType)); } }