12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- package com.gyee.power.fitting.controller.gf;
- import cn.hutool.core.date.DateUtil;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
- import com.gyee.power.fitting.common.result.JsonResult;
- import com.gyee.power.fitting.common.result.ResultCode;
- import com.gyee.power.fitting.model.PhotovoltaicAnalysis;
- import com.gyee.power.fitting.model.ProBasicEquipment;
- import com.gyee.power.fitting.service.IPhotovoltaicAnalysisService;
- import com.gyee.power.fitting.service.ProBasicEquipmentService;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.RestController;
- import javax.annotation.Resource;
- import java.util.Date;
- import java.util.List;
- import java.util.Map;
- import java.util.stream.Collectors;
- /**
- * <p>
- * 光伏分析 前端控制器
- * </p>
- *
- * @author gfhd
- * @since 2023-10-13
- */
- @RestController
- @RequestMapping("/photovoltaic")
- public class PhotovoltaicAnalysisController {
- @Resource
- private IPhotovoltaicAnalysisService photovoltaicAnalysisService;
- @Resource
- private ProBasicEquipmentService proBasicEquipmentService;
- @GetMapping("/analysis")
- public JSONObject photovoltaicAnalysis(
- @RequestParam("stationId") String stationId,
- @RequestParam("time") String time,
- @RequestParam("timeType") String timeType) {
- Date date, startDate, endDate;
- if ("year".equals(timeType)) {
- date = DateUtil.parse(time, "yyyy");
- startDate = DateUtil.beginOfYear(date);
- endDate = DateUtil.endOfYear(date);
- } else if ("month".equals(timeType)) {
- date = DateUtil.parse(time, "yyyy-MM");
- startDate = DateUtil.beginOfMonth(date);
- endDate = DateUtil.endOfMonth(date);
- } else {
- date = DateUtil.parse(time);
- startDate = DateUtil.beginOfDay(date);
- endDate = DateUtil.endOfDay(date);
- }
- QueryWrapper<PhotovoltaicAnalysis> wrapper = new QueryWrapper<>();
- wrapper.select("station_id,equipment_id,avg(scatter) scatter,(sum(average_theory_power)*100/sum(conversion_efficiency))" +
- " conversion_efficiency,sum(equivalent_generating_time) equivalent_generating_time," +
- "avg(device_availability) device_availability").between("data_date", startDate, endDate)
- .groupBy("station_id,equipment_id").orderByAsc("equipment_id");
- List<PhotovoltaicAnalysis> list = photovoltaicAnalysisService.list(wrapper);
- List<ProBasicEquipment> in = proBasicEquipmentService.getStationMap("IN").get(stationId);
- Map<String, String> collect = in.stream().collect(Collectors.toMap(ProBasicEquipment::getId, ProBasicEquipment::getAname));
- list = list.stream().peek(pa -> pa.setEquipmentId(collect.get(pa.getEquipmentId()))).collect(Collectors.toList());
- return JsonResult.successData(ResultCode.SUCCESS, list);
- }
- }
|