|
@@ -2,8 +2,14 @@ package com.welampiot.controller;
|
|
|
|
|
|
import com.welampiot.common.BaseResult;
|
|
|
import com.welampiot.common.InterfaceResultEnum;
|
|
|
+import com.welampiot.dto.LampInfoCacheByDayDTO;
|
|
|
+import com.welampiot.dto.LampInfoLogDTO;
|
|
|
+import com.welampiot.service.LampInfoCacheByDayService;
|
|
|
+import com.welampiot.service.LampInfoLogService;
|
|
|
import com.welampiot.service.LampService;
|
|
|
+import com.welampiot.utils.ExcelUtil;
|
|
|
import com.welampiot.utils.ToolUtils;
|
|
|
+import com.welampiot.vo.LampInfoCacheByDayVO;
|
|
|
import com.welampiot.vo.LampInfoDataVO;
|
|
|
import com.welampiot.vo.LampInfoVO;
|
|
|
import org.jetbrains.annotations.NotNull;
|
|
@@ -13,7 +19,10 @@ import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
|
|
|
/**
|
|
|
* ClassName: ReportController
|
|
@@ -32,6 +41,10 @@ public class ReportController {
|
|
|
private ToolUtils toolUtils;
|
|
|
@Autowired
|
|
|
private LampService lampService;
|
|
|
+ @Autowired
|
|
|
+ private LampInfoCacheByDayService lampInfoCacheByDayService;
|
|
|
+ @Autowired
|
|
|
+ private LampInfoLogService lampInfoLogService;
|
|
|
|
|
|
/**
|
|
|
* 耗电报表
|
|
@@ -98,4 +111,156 @@ public class ReportController {
|
|
|
lampInfoVO1.setSavePower(lampInfoVO.getSavePower());
|
|
|
return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampInfoVO1);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 亮灯时间报表
|
|
|
+ * @param request 时间类型、统计类型
|
|
|
+ * @return 灯控累计亮灯时间统计数据
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/getList", method = RequestMethod.POST)
|
|
|
+ public BaseResult<?> getList(HttpServletRequest request) throws ParseException {
|
|
|
+ Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
|
|
|
+ Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
|
|
|
+ Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
|
|
|
+ Integer lampId = (Integer) toolUtils.getRequestContent(request,"lampId",1);
|
|
|
+ Integer page = (Integer) toolUtils.getRequestContent(request,"page",1);
|
|
|
+ Integer count = (Integer) toolUtils.getRequestContent(request,"count",1);
|
|
|
+ Integer download = (Integer) toolUtils.getRequestContent(request,"download",1);
|
|
|
+ String keyword = (String) toolUtils.getRequestContent(request,"keyword",2);
|
|
|
+ if (page == 0) page = 1;
|
|
|
+ if (count == 0) count = 16;
|
|
|
+
|
|
|
+ long l = System.currentTimeMillis();
|
|
|
+ Date date1 = new Date(l);
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(date1);
|
|
|
+ int year = calendar.get(Calendar.YEAR); // 获取年份
|
|
|
+ int month = calendar.get(Calendar.MONTH) + 1; // 获取月份
|
|
|
+ String startDate,startDate1,startDate2;
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ String endDate = simpleDateFormat.format(l);
|
|
|
+
|
|
|
+ if (month < 10) {
|
|
|
+ startDate = year + "-0" + month + "-01";
|
|
|
+ } else {
|
|
|
+ startDate = year + "-" + month + "-01";
|
|
|
+ }
|
|
|
+ startDate1 = year + "-01" + "-01";
|
|
|
+ startDate2 = "2020-01-01";
|
|
|
+
|
|
|
+ LampInfoCacheByDayDTO dayDTO = new LampInfoCacheByDayDTO();
|
|
|
+ dayDTO.setAreaId(areaId);
|
|
|
+ dayDTO.setSectionId(sectionId);
|
|
|
+ dayDTO.setStartDate(startDate);
|
|
|
+ dayDTO.setStartDate1(startDate1);
|
|
|
+ dayDTO.setStartDate2(startDate2);
|
|
|
+ dayDTO.setKeyword(keyword);
|
|
|
+ if (download == 0) {
|
|
|
+ dayDTO.setPage(page);
|
|
|
+ dayDTO.setCount(count);
|
|
|
+ }
|
|
|
+ dayDTO.setVersion(version);
|
|
|
+ dayDTO.setLampId(lampId);
|
|
|
+ dayDTO.setEndDate(endDate);
|
|
|
+ dayDTO.setSectionList(toolUtils.getSectionList(request));
|
|
|
+ List<LampInfoCacheByDayDTO> conSumList = lampInfoCacheByDayService.getEleConsumptionSaveList(dayDTO);
|
|
|
+ LampInfoCacheByDayVO lampInfoCacheByDayVO = new LampInfoCacheByDayVO();
|
|
|
+ lampInfoCacheByDayVO.setList(conSumList);
|
|
|
+ if (download == 1) { // 导出数据
|
|
|
+ String title;
|
|
|
+ if (version == 0) {
|
|
|
+ title = "序号,路灯编号,行政区,路段,更新时间,功率(W)," +
|
|
|
+ "用电量(kWh)(当天统计),省电量(kWh)(当天统计),电费(元)(当天统计),节省电费(元)(当天统计),亮灯时长(min)," +
|
|
|
+ "用电量(kWh)(当月统计),省电量(kWh)(当月统计),电费(元)(当月统计),节省电费(元)(当月统计),亮灯时长(min)," +
|
|
|
+ "用电量(kWh)(当年统计),省电量(kWh)(当年统计),电费(元)(当年统计),节省电费(元)(当年统计),亮灯时长(min)," +
|
|
|
+ "用电量(kWh)(累计统计),省电量(kWh)(累计统计),电费(元)(累计统计),节省电费(元)(累计统计),亮灯时长(min)"
|
|
|
+ ;
|
|
|
+ } else if (version == 1) {
|
|
|
+ title = "Serial number,street lamp number,district,road section,renewal time,power," +
|
|
|
+ "electricity consumption(kWh)(daily statistics),electricity saving(kWh)(daily statistics),electricity cost(yuan)(daily statistics),electricity saving(yuan)(daily statistics),lighting time(min)," +
|
|
|
+ "electricity consumption(kWh)(current month statistics),electricity saving(kWh)(current month statistics),electricity cost(yuan)(current month statistics),electricity saving(yuan)(current month statistics),lighting time(min)," +
|
|
|
+ "electricity consumption(kWh)(current statistics),electricity saving(kWh)(current statistics),electricity cost(yuan)(current statistics),electricity saving(yuan)(current statistics),lighting time(min)," +
|
|
|
+ "electricity consumption(kWh)(cumulative statistics),electricity saving(kWh)(cumulative statistics),electricity cost(yuan)(cumulative statistics),electricity saving(yuan)(cumulative statistics),lighting time(min)"
|
|
|
+ ;
|
|
|
+ } else {
|
|
|
+ title = "Порядковый номер,номер уличного фонаря,административный район,участок дороги,время обновления,мощность (W)," +
|
|
|
+ "Потреблен электроэнерг (квт. ч) (ден статистическ), провинц электричеств (квт. ч) (ден статистическ), электричеств (доллар) (ден статистическ), сэконом электричеств (доллар) (ден статистическ), выключ свет продолжительн (мин)," +
|
|
|
+ "Потреблен электроэнерг (квт. ч) (месяц статистическ), провинц электричеств (квт. ч) (месяц статистическ), электричеств (доллар) (месяц статистическ), сэконом электричеств (доллар) (месяц статистическ), выключ свет продолжительн (мин)," +
|
|
|
+ "Потреблен электроэнерг (квт. ч) (год статистическ), провинц электричеств (квт. ч) (год статистическ), электричеств (доллар) (год статистическ), сэконом электричеств (доллар) (год статистическ), выключ свет продолжительн (мин)," +
|
|
|
+ "Потреблен электроэнерг (квт. ч) (совокупн статистическ), провинц электричеств (квт. ч) (совокупн статистическ), электричеств (доллар) (совокупн статистическ), сэконом электричеств (доллар) (совокупн статистическ), выключ свет продолжительн (мин)"
|
|
|
+ ;
|
|
|
+ }
|
|
|
+ List<String> titleList = Arrays.asList(title.split(","));
|
|
|
+ List<List<String>> contentList = new ArrayList<>();
|
|
|
+ for (LampInfoCacheByDayDTO dto : conSumList) {
|
|
|
+ List<String> newString = new ArrayList<>();
|
|
|
+ newString.add(String.valueOf(conSumList.indexOf(dto) + 1));
|
|
|
+ newString.add(dto.getNumber());
|
|
|
+ newString.add(dto.getArea());
|
|
|
+ newString.add(dto.getSection());
|
|
|
+ newString.add(dto.getUpdateTime());
|
|
|
+ newString.add(dto.getPower());
|
|
|
+ newString.add(dto.getDayConsumption());
|
|
|
+ newString.add(dto.getDayEleSave());
|
|
|
+ newString.add(dto.getDayUser());
|
|
|
+ newString.add(dto.getDayEleUser());
|
|
|
+ newString.add(String.valueOf(dto.getDayLightTime()));
|
|
|
+ newString.add(dto.getMonthConsumption());
|
|
|
+ newString.add(dto.getMonthEleSave());
|
|
|
+ newString.add(dto.getMonthUser());
|
|
|
+ newString.add(dto.getMonthEleUser());
|
|
|
+ newString.add(String.valueOf(dto.getMonthLightTime()));
|
|
|
+ newString.add(dto.getYearConsumption());
|
|
|
+ newString.add(dto.getYearEleSave());
|
|
|
+ newString.add(dto.getYearUser());
|
|
|
+ newString.add(dto.getYearEleUser());
|
|
|
+ newString.add(String.valueOf(dto.getYearLightTime()));
|
|
|
+ newString.add(dto.getTotalConsumption());
|
|
|
+ newString.add(dto.getTotalEleSave());
|
|
|
+ newString.add(dto.getTotalUser());
|
|
|
+ newString.add(dto.getTotalEleUser());
|
|
|
+ newString.add(String.valueOf(dto.getLightTime()));
|
|
|
+ contentList.add(conSumList.indexOf(dto),newString);
|
|
|
+ }
|
|
|
+ String path = ExcelUtil.outExcel(titleList, contentList);
|
|
|
+ lampInfoCacheByDayVO.setPath(path);
|
|
|
+ }
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampInfoCacheByDayVO);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 删除历史数据
|
|
|
+ * @param request lampId
|
|
|
+ * @return 删除历史数据
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/del", method = RequestMethod.POST)
|
|
|
+ public BaseResult<?> del(HttpServletRequest request) throws ParseException {
|
|
|
+ Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
|
|
|
+ Integer lampId = (Integer) toolUtils.getRequestContent(request,"lampId",1);
|
|
|
+ if (lampId == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
|
|
|
+ String date = (String) toolUtils.getRequestContent(request,"date",2);
|
|
|
+ LampInfoCacheByDayDTO dto = new LampInfoCacheByDayDTO();
|
|
|
+ dto.setLampId(lampId);
|
|
|
+ LampInfoLogDTO lampInfoLogDTO = new LampInfoLogDTO();
|
|
|
+ lampInfoLogDTO.setLampId(lampId);
|
|
|
+ if (!date.isEmpty()) {
|
|
|
+ List<String> split = Arrays.asList(date.split("/"));
|
|
|
+ String startDate = split.get(0);
|
|
|
+ String endDate = split.get(1);
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ long startTime,endTime;
|
|
|
+ startTime = simpleDateFormat.parse(startDate + " 00:00:00").getTime();
|
|
|
+ endTime = simpleDateFormat.parse(endDate + " 23:59:59").getTime();
|
|
|
+ if (endTime < startTime) return toolUtils.response(InterfaceResultEnum.LACK_DATE_FORMAT_ERROR, version);
|
|
|
+ if (endTime - startTime > 29L * 24 * 3600 * 1000)
|
|
|
+ return toolUtils.response(InterfaceResultEnum.LACK_DATE_RANGE_ERROR, version);
|
|
|
+ dto.setStartDate(startDate);
|
|
|
+ dto.setEndDate(endDate);
|
|
|
+ lampInfoLogDTO.setStartDate(startDate);
|
|
|
+ lampInfoLogDTO.setEndDate(endDate);
|
|
|
+ }
|
|
|
+ lampInfoCacheByDayService.deleteLampInfoCacheByDayData(dto);
|
|
|
+ lampInfoLogService.deleteLampInfoLogData(lampInfoLogDTO);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
|
|
|
+ }
|
|
|
}
|