|
@@ -0,0 +1,338 @@
|
|
|
+package com.welampiot.controller;
|
|
|
+
|
|
|
+import com.welampiot.common.BaseResult;
|
|
|
+import com.welampiot.common.InterfaceResultEnum;
|
|
|
+import com.welampiot.dto.*;
|
|
|
+import com.welampiot.service.*;
|
|
|
+import com.welampiot.utils.ToolUtils;
|
|
|
+import com.welampiot.vo.*;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.web.bind.annotation.CrossOrigin;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestMethod;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
+
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+@RestController
|
|
|
+@CrossOrigin
|
|
|
+@RequestMapping("/ledger")
|
|
|
+public class LedgerController extends BaseController {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private LampPoleService lampPoleService;
|
|
|
+ @Autowired
|
|
|
+ private LampService lampService;
|
|
|
+ @Autowired
|
|
|
+ private ElectricBoxService electricBoxService;
|
|
|
+ @Autowired
|
|
|
+ private NetworkService networkService;
|
|
|
+ @Autowired
|
|
|
+ private LoopService loopService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ToolUtils toolUtils;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private LedgerService ledgerService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private LampInfoCacheByDayService lampInfoCacheByDayService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 灯杆数量统计
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/lampPoleStatistics",method = RequestMethod.POST)
|
|
|
+ public BaseResult<?> lampPoleStatistics(LedgerVO ledgerVO) {
|
|
|
+ Integer version = ledgerVO.getVersion();
|
|
|
+ if (ledgerVO.getUsername() == null) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR, version);
|
|
|
+
|
|
|
+ LampPoleDTO lampPoleDTO = new LampPoleDTO();
|
|
|
+ lampPoleDTO.setAreaId(ledgerVO.getAreaId());
|
|
|
+ lampPoleDTO.setSectionId(ledgerVO.getSectionId());
|
|
|
+ lampPoleDTO.setSectionList(getSectionList(ledgerVO.getUsername()));
|
|
|
+ Integer lampPoleTotal = lampPoleService.getLampPoleInstallTotalByDTO(lampPoleDTO);
|
|
|
+ // 灯杆类型(0 单臂,1 双臂,2 玉兰灯,3 中华灯,4 景观灯,5 高杆灯,6 太阳能灯,7 钠灯)
|
|
|
+ lampPoleDTO.setType(0); // 单臂
|
|
|
+ Integer oneTotal = lampPoleService.getLampPoleInstallTotalByDTO(lampPoleDTO);
|
|
|
+ lampPoleDTO.setType(1); // 双臂
|
|
|
+ Integer twoTotal = lampPoleService.getLampPoleInstallTotalByDTO(lampPoleDTO);
|
|
|
+ lampPoleDTO.setType(2); // 玉兰灯
|
|
|
+ Integer yuTotal = lampPoleService.getLampPoleInstallTotalByDTO(lampPoleDTO);
|
|
|
+ lampPoleDTO.setType(3); // 中华灯
|
|
|
+ Integer huaTotal = lampPoleService.getLampPoleInstallTotalByDTO(lampPoleDTO);
|
|
|
+ lampPoleDTO.setType(4); // 景观灯
|
|
|
+ Integer enTotal = lampPoleService.getLampPoleInstallTotalByDTO(lampPoleDTO);
|
|
|
+ lampPoleDTO.setType(5); // 高杆灯
|
|
|
+ Integer highTotal = lampPoleService.getLampPoleInstallTotalByDTO(lampPoleDTO);
|
|
|
+ lampPoleDTO.setType(6); // 太阳能灯
|
|
|
+ Integer solarTotal = lampPoleService.getLampPoleInstallTotalByDTO(lampPoleDTO);
|
|
|
+ lampPoleDTO.setType(7); // 太阳能灯
|
|
|
+ Integer naTotal = lampPoleService.getLampPoleInstallTotalByDTO(lampPoleDTO);
|
|
|
+
|
|
|
+ LedgerPoleCountVO ledgerPoleCountVO = new LedgerPoleCountVO();
|
|
|
+ ledgerPoleCountVO.setTotal(lampPoleTotal);
|
|
|
+ ledgerPoleCountVO.setOneTotal(oneTotal);
|
|
|
+ ledgerPoleCountVO.setTwoTotal(twoTotal);
|
|
|
+ ledgerPoleCountVO.setYuTotal(yuTotal);
|
|
|
+ ledgerPoleCountVO.setHuaTotal(huaTotal);
|
|
|
+ ledgerPoleCountVO.setEnTotal(enTotal);
|
|
|
+ ledgerPoleCountVO.setHighTotal(highTotal);
|
|
|
+ ledgerPoleCountVO.setSolarTotal(solarTotal);
|
|
|
+ ledgerPoleCountVO.setNaTotal(naTotal);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version, ledgerPoleCountVO);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 路灯数量统计
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/lampStatistics",method = RequestMethod.POST)
|
|
|
+ public BaseResult<?> lampStatistics(LedgerVO ledgerVO) {
|
|
|
+ Integer version = ledgerVO.getVersion();
|
|
|
+ LampInfoDTO lampInfoDTO = new LampInfoDTO();
|
|
|
+ lampInfoDTO.setAreaId(ledgerVO.getAreaId());
|
|
|
+ lampInfoDTO.setSectionId(ledgerVO.getSectionId());
|
|
|
+ lampInfoDTO.setSectionList(getSectionList(ledgerVO.getUsername()));
|
|
|
+ Integer total = lampService.getLampInstallTotalByDTO(lampInfoDTO);
|
|
|
+ lampInfoDTO.setRatedPower(30);
|
|
|
+ Integer power30 = lampService.getLampInstallTotalByDTO(lampInfoDTO);
|
|
|
+ lampInfoDTO.setRatedPower(50);
|
|
|
+ Integer power50 = lampService.getLampInstallTotalByDTO(lampInfoDTO);
|
|
|
+ lampInfoDTO.setRatedPower(60);
|
|
|
+ Integer power60 = lampService.getLampInstallTotalByDTO(lampInfoDTO);
|
|
|
+ lampInfoDTO.setRatedPower(80);
|
|
|
+ Integer power80 = lampService.getLampInstallTotalByDTO(lampInfoDTO);
|
|
|
+ lampInfoDTO.setRatedPower(100);
|
|
|
+ Integer power100 = lampService.getLampInstallTotalByDTO(lampInfoDTO);
|
|
|
+ lampInfoDTO.setRatedPower(120);
|
|
|
+ Integer power120 = lampService.getLampInstallTotalByDTO(lampInfoDTO);
|
|
|
+ lampInfoDTO.setRatedPower(150);
|
|
|
+ Integer power150 = lampService.getLampInstallTotalByDTO(lampInfoDTO);
|
|
|
+ lampInfoDTO.setRatedPower(180);
|
|
|
+ Integer power180 = lampService.getLampInstallTotalByDTO(lampInfoDTO);
|
|
|
+ lampInfoDTO.setRatedPower(200);
|
|
|
+ Integer power200 = lampService.getLampInstallTotalByDTO(lampInfoDTO);
|
|
|
+ lampInfoDTO.setRatedPower(240);
|
|
|
+ Integer power240 = lampService.getLampInstallTotalByDTO(lampInfoDTO);
|
|
|
+ lampInfoDTO.setRatedPower(300);
|
|
|
+ Integer power300 = lampService.getLampInstallTotalByDTO(lampInfoDTO);
|
|
|
+ Integer otherPower = total - power30 - power50 - power60 - power80 - power100 - power120 - power150 - power180 - power200 - power240 - power300;
|
|
|
+
|
|
|
+ LedgerLampCountVO ledgerLampCountVO = new LedgerLampCountVO();
|
|
|
+ ledgerLampCountVO.setTotal(total);
|
|
|
+ ledgerLampCountVO.setPower30(power30);
|
|
|
+ ledgerLampCountVO.setPower50(power50);
|
|
|
+ ledgerLampCountVO.setPower60(power60);
|
|
|
+ ledgerLampCountVO.setPower80(power80);
|
|
|
+ ledgerLampCountVO.setPower100(power100);
|
|
|
+ ledgerLampCountVO.setPower120(power120);
|
|
|
+ ledgerLampCountVO.setPower150(power150);
|
|
|
+ ledgerLampCountVO.setPower180(power180);
|
|
|
+ ledgerLampCountVO.setPower200(power200);
|
|
|
+ ledgerLampCountVO.setPower240(power240);
|
|
|
+ ledgerLampCountVO.setPower300(power300);
|
|
|
+ ledgerLampCountVO.setOtherPower(otherPower);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version, ledgerLampCountVO);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 电箱数量统计
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/eleBoxStatistics",method = RequestMethod.POST)
|
|
|
+ public BaseResult<?> eleBoxStatistics(LedgerVO ledgerVO) {
|
|
|
+ Integer version = ledgerVO.getVersion();
|
|
|
+ List<Integer> sectionList = getSectionList(ledgerVO.getUsername());
|
|
|
+ ElectricBoxDTO dto = new ElectricBoxDTO();
|
|
|
+ dto.setAreaId(ledgerVO.getAreaId());
|
|
|
+ dto.setSectionId(ledgerVO.getSectionId());
|
|
|
+ dto.setSectionList(sectionList);
|
|
|
+ Integer eleBoxTotal = electricBoxService.getTotalByStatus(dto);
|
|
|
+ dto.setLoopCount(1);
|
|
|
+ Integer loop1 = electricBoxService.getLoopEleBoxTotalByDTO(dto);
|
|
|
+ dto.setLoopCount(2);
|
|
|
+ Integer loop2 = electricBoxService.getLoopEleBoxTotalByDTO(dto);
|
|
|
+ dto.setLoopCount(3);
|
|
|
+ Integer loop3 = electricBoxService.getLoopEleBoxTotalByDTO(dto);
|
|
|
+ dto.setLoopCount(4);
|
|
|
+ Integer loop4 = electricBoxService.getLoopEleBoxTotalByDTO(dto);
|
|
|
+ dto.setLoopCount(5);
|
|
|
+ Integer loop5 = electricBoxService.getLoopEleBoxTotalByDTO(dto);
|
|
|
+ dto.setLoopCount(6);
|
|
|
+ Integer loop6 = electricBoxService.getLoopEleBoxTotalByDTO(dto);
|
|
|
+ dto.setLoopCount(7);
|
|
|
+ Integer loop7 = electricBoxService.getLoopEleBoxTotalByDTO(dto);
|
|
|
+ dto.setLoopCount(8);
|
|
|
+ Integer loop8 = electricBoxService.getLoopEleBoxTotalByDTO(dto);
|
|
|
+ NetworkDTO networkDTO = new NetworkDTO();
|
|
|
+ networkDTO.setAreaId(ledgerVO.getAreaId());
|
|
|
+ networkDTO.setSectionId(ledgerVO.getSectionId());
|
|
|
+ networkDTO.setSectionList(sectionList);
|
|
|
+ Integer networkTotal = networkService.getLoopNetworkCountByDTO(networkDTO);
|
|
|
+ networkDTO.setLoopCount(1);
|
|
|
+ Integer net1 = networkService.getLoopNetworkCountByDTO(networkDTO);
|
|
|
+ networkDTO.setLoopCount(2);
|
|
|
+ Integer net2 = networkService.getLoopNetworkCountByDTO(networkDTO);
|
|
|
+ networkDTO.setLoopCount(3);
|
|
|
+ Integer net3 = networkService.getLoopNetworkCountByDTO(networkDTO);
|
|
|
+ networkDTO.setLoopCount(4);
|
|
|
+ Integer net4 = networkService.getLoopNetworkCountByDTO(networkDTO);
|
|
|
+ networkDTO.setLoopCount(5);
|
|
|
+ Integer net5 = networkService.getLoopNetworkCountByDTO(networkDTO);
|
|
|
+ networkDTO.setLoopCount(6);
|
|
|
+ Integer net6 = networkService.getLoopNetworkCountByDTO(networkDTO);
|
|
|
+ networkDTO.setLoopCount(7);
|
|
|
+ Integer net7 = networkService.getLoopNetworkCountByDTO(networkDTO);
|
|
|
+ networkDTO.setLoopCount(8);
|
|
|
+ Integer net8 = networkService.getLoopNetworkCountByDTO(networkDTO);
|
|
|
+ LoopDTO loopDTO = new LoopDTO();
|
|
|
+ loopDTO.setAreaId(ledgerVO.getAreaId());
|
|
|
+ loopDTO.setSectionId(ledgerVO.getSectionId());
|
|
|
+ loopDTO.setSectionList(sectionList);
|
|
|
+ loopDTO.setNetworkId(0);
|
|
|
+ Integer loopTotal = loopService.getLoopTotalByDTO(loopDTO);
|
|
|
+ LedgerEleBoxCountVO ledgerEleBoxCountVO = new LedgerEleBoxCountVO();
|
|
|
+ ledgerEleBoxCountVO.setEleBoxTotal(eleBoxTotal);
|
|
|
+ ledgerEleBoxCountVO.setTransformerTotal(0);
|
|
|
+ ledgerEleBoxCountVO.setLoopTotal(loopTotal);
|
|
|
+ ledgerEleBoxCountVO.setNetworkTotal(networkTotal);
|
|
|
+ ledgerEleBoxCountVO.setLoop1(loop1 + net1);
|
|
|
+ ledgerEleBoxCountVO.setLoop2(loop2 + net2);
|
|
|
+ ledgerEleBoxCountVO.setLoop3(loop3 + net3);
|
|
|
+ ledgerEleBoxCountVO.setLoop4(loop4 + net4);
|
|
|
+ ledgerEleBoxCountVO.setLoop5(loop5 + net5);
|
|
|
+ ledgerEleBoxCountVO.setLoop6(loop6 + net6);
|
|
|
+ ledgerEleBoxCountVO.setLoop7(loop7 + net7);
|
|
|
+ ledgerEleBoxCountVO.setLoop8(loop8 + net8);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version, ledgerEleBoxCountVO);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 路灯类型下拉列表
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/lampTypeNav",method = RequestMethod.POST)
|
|
|
+ public BaseResult<?> lampTypeNav(LedgerVO ledgerVO) {
|
|
|
+ Integer version = ledgerVO.getVersion();
|
|
|
+ List<Integer> sectionList = getSectionList(ledgerVO.getUsername());
|
|
|
+ LampListResponseVO lampListResponseVO = new LampListResponseVO();
|
|
|
+ lampListResponseVO.setAreaId(ledgerVO.getAreaId());
|
|
|
+ lampListResponseVO.setSectionId(ledgerVO.getSectionId());
|
|
|
+ lampListResponseVO.setSectionList(sectionList);
|
|
|
+ List<LampInfoDTO> lampList = lampService.getNavByVO(lampListResponseVO);
|
|
|
+ Set<LampTypeNavVO> lampSet = new HashSet<>();
|
|
|
+ for (LampInfoDTO lampInfoDTO : lampList) {
|
|
|
+ String height = ToolUtils.formatNumber(lampInfoDTO.getHeight());
|
|
|
+ Integer devType = lampInfoDTO.getDevType();
|
|
|
+ LampTypeNavVO lampTypeNavVO = new LampTypeNavVO();
|
|
|
+ lampTypeNavVO.setId(height + "-" + devType);
|
|
|
+ String lampDevTypeStr = LampInfoDTO.getLampDevTypeStr(devType);
|
|
|
+ lampTypeNavVO.setName(height + "米" + lampDevTypeStr);
|
|
|
+ lampSet.add(lampTypeNavVO);
|
|
|
+ }
|
|
|
+ List<LampTypeNavVO> list = new ArrayList<>(lampSet);
|
|
|
+ list.sort(Comparator.comparing(LampTypeNavVO::getId));
|
|
|
+ LedgerVO ledgerVO1 = new LedgerVO();
|
|
|
+ ledgerVO1.setList(list);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version, ledgerVO1);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 路段列表
|
|
|
+ */
|
|
|
+ @RequestMapping(value = "/sectionStatisticsList",method = RequestMethod.POST)
|
|
|
+ public BaseResult<?> sectionStatisticsList(LedgerVO ledgerVO) {
|
|
|
+ Integer version = ledgerVO.getVersion();
|
|
|
+ List<Integer> sectionList = getSectionList(ledgerVO.getUsername());
|
|
|
+ ledgerVO.setSectionList(sectionList);
|
|
|
+ if (ledgerVO.getPage() == null) ledgerVO.setPage(1);
|
|
|
+ if (ledgerVO.getCount() == null) ledgerVO.setCount(20);
|
|
|
+ ledgerVO.setPage((ledgerVO.getPage() - 1) * ledgerVO.getCount());
|
|
|
+ long l = System.currentTimeMillis() - 24 * 60 * 60 * 1000;
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ ledgerVO.setUpdateTime(simpleDateFormat.format(l));
|
|
|
+ List<LedgerLampDTO> ledgerLampList = ledgerService.getSectionStatisticsListByLedgerVO(ledgerVO);
|
|
|
+ Map<Integer, List<LedgerLampDTO>> map = ledgerLampList.stream().collect(Collectors.groupingBy(LedgerLampDTO::getId));
|
|
|
+
|
|
|
+ List<LedgerSectionDTO> ledgerSectionList = new ArrayList<>();
|
|
|
+ for (Integer sectionId : map.keySet()) {
|
|
|
+ List<LedgerLampDTO> ledgerLampDTOS = map.get(sectionId);
|
|
|
+ LedgerLampDTO oneLedgerLamp = ledgerLampDTOS.get(0);
|
|
|
+ LedgerSectionDTO ledgerSectionDTO = new LedgerSectionDTO();
|
|
|
+ ledgerSectionDTO.setId(oneLedgerLamp.getId());
|
|
|
+ ledgerSectionDTO.setName(oneLedgerLamp.getName());
|
|
|
+ ledgerSectionDTO.setStartName(oneLedgerLamp.getName());
|
|
|
+ ledgerSectionDTO.setEndName(oneLedgerLamp.getName());
|
|
|
+
|
|
|
+ List<ElectricBoxDTO> eleBoxList = electricBoxService.getEleBoxListBySectionId(sectionId);
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ eleBoxList.forEach(electricBoxDTO -> {
|
|
|
+ String name = electricBoxDTO.getName();
|
|
|
+ if (sb.length() > 0) {
|
|
|
+ sb.append(",");
|
|
|
+ sb.append(name);
|
|
|
+ } else {
|
|
|
+ sb.append(name);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ ledgerSectionDTO.setBoxName(sb.toString());
|
|
|
+
|
|
|
+ List<LedgerLampDTO> newLedgerLampList = new ArrayList<>();
|
|
|
+ for (LedgerLampDTO ledgerLampDTO : ledgerLampDTOS) {
|
|
|
+ Integer lampTotal = ledgerLampDTO.getLampTotal();
|
|
|
+ if (lampTotal == 0) continue;
|
|
|
+ String height = ToolUtils.formatNumber(ledgerLampDTO.getHeight());
|
|
|
+ String lampDevTypeStr = LampInfoDTO.getLampDevTypeStr(ledgerLampDTO.getDevType());
|
|
|
+ LedgerLampDTO newLedgerLamp = new LedgerLampDTO();
|
|
|
+ newLedgerLamp.setLampTypeName(height + "米" + lampDevTypeStr);
|
|
|
+ newLedgerLamp.setLampTotal(lampTotal);
|
|
|
+ newLedgerLamp.setLampPoleTotal(ledgerLampDTO.getLampPoleTotal());
|
|
|
+ newLedgerLamp.setLightStripTotal(ledgerLampDTO.getLightStripTotal());
|
|
|
+ if (ledgerLampDTO.getLightingType() == 1) {
|
|
|
+ newLedgerLamp.setLampType("钠灯");
|
|
|
+ newLedgerLamp.setNaTotal(lampTotal);
|
|
|
+ newLedgerLamp.setLedTotal(0);
|
|
|
+ } else {
|
|
|
+ newLedgerLamp.setLampType("LED灯");
|
|
|
+ newLedgerLamp.setLedTotal(lampTotal);
|
|
|
+ newLedgerLamp.setNaTotal(0);
|
|
|
+ }
|
|
|
+ newLedgerLamp.setHighRatedPower(ledgerLampDTO.getTotalRatedPower());
|
|
|
+ newLedgerLamp.setLowRatedPower(0);
|
|
|
+ newLedgerLamp.setTotalRatedPower(ledgerLampDTO.getTotalRatedPower());
|
|
|
+ newLedgerLamp.setHighLampTotal(lampTotal);
|
|
|
+ newLedgerLamp.setLowLampTotal(0);
|
|
|
+ // 昨日用电量
|
|
|
+ if (ledgerLampDTO.getDayConSum() == null) {
|
|
|
+ newLedgerLamp.setLastDayCon("0");
|
|
|
+ } else {
|
|
|
+ newLedgerLamp.setLastDayCon(ToolUtils.formatNumber(ledgerLampDTO.getDayConSum()));
|
|
|
+ }
|
|
|
+ if (ledgerLampDTO.getDayGenerateEnergy() == null) {
|
|
|
+ ledgerLampDTO.setDayGenerateEnergy(0.0);
|
|
|
+ }
|
|
|
+ // 本月用电量
|
|
|
+ if (ledgerLampDTO.getMonthConSum() == null) {
|
|
|
+ newLedgerLamp.setMonthCon("0");
|
|
|
+ } else {
|
|
|
+ double monthCon = ledgerLampDTO.getMonthConSum() + ledgerLampDTO.getDayGenerateEnergy();
|
|
|
+ newLedgerLamp.setMonthCon(ToolUtils.formatNumber(monthCon));
|
|
|
+ }
|
|
|
+ // 累计用电量
|
|
|
+ if (ledgerLampDTO.getUsedEnergyTotal() == null) {
|
|
|
+ newLedgerLamp.setTotalCon("0");
|
|
|
+ } else {
|
|
|
+ double totalCon = ledgerLampDTO.getUsedEnergyTotal() + ledgerLampDTO.getDayGenerateEnergy();
|
|
|
+ newLedgerLamp.setTotalCon(ToolUtils.formatNumber(totalCon));
|
|
|
+ }
|
|
|
+ newLedgerLampList.add(newLedgerLamp);
|
|
|
+ }
|
|
|
+ ledgerSectionDTO.setLampList(newLedgerLampList);
|
|
|
+ ledgerSectionList.add(ledgerSectionDTO);
|
|
|
+ }
|
|
|
+
|
|
|
+ LedgerVO ledgerVO1 = new LedgerVO();
|
|
|
+ ledgerVO1.setList(ledgerSectionList);
|
|
|
+ return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version, ledgerVO1);
|
|
|
+ }
|
|
|
+}
|