Переглянути джерело

修改bigScreenController接口

weclouds 2 роки тому
батько
коміт
60ad92fcc6
74 змінених файлів з 1116 додано та 254 видалено
  1. 578 201
      src/main/java/com/welampiot/controller/BigScreenController.java
  2. 2 3
      src/main/java/com/welampiot/controller/MapController.java
  3. 1 1
      src/main/java/com/welampiot/controller/NewLampPoleController2.java
  4. 2 0
      src/main/java/com/welampiot/dao/AllAlarmInfoLogDao.java
  5. 1 0
      src/main/java/com/welampiot/dao/ChargeDao.java
  6. 1 1
      src/main/java/com/welampiot/dao/EnvmonitorDao.java
  7. 1 0
      src/main/java/com/welampiot/dao/EnvmonitorInfoLogDao.java
  8. 3 1
      src/main/java/com/welampiot/dao/LampDao.java
  9. 6 0
      src/main/java/com/welampiot/dao/LampInfoLogDao.java
  10. 1 0
      src/main/java/com/welampiot/dao/LampPoleDao.java
  11. 1 0
      src/main/java/com/welampiot/dao/ScreenDao.java
  12. 3 0
      src/main/java/com/welampiot/dao/TrailInfoDao.java
  13. 2 0
      src/main/java/com/welampiot/dao/VideoCarDao.java
  14. 2 0
      src/main/java/com/welampiot/dao/VideoFaceDao.java
  15. 1 0
      src/main/java/com/welampiot/dao/VideoMonitorDao.java
  16. 1 0
      src/main/java/com/welampiot/dao/WifiInfoLogDao.java
  17. 2 1
      src/main/java/com/welampiot/dto/EnvmonitorDTO.java
  18. 4 0
      src/main/java/com/welampiot/dto/EnvmonitorInfoLogDTO.java
  19. 15 15
      src/main/java/com/welampiot/dto/LampInfoDTO.java
  20. 23 0
      src/main/java/com/welampiot/dto/LampInfoLogDTO.java
  21. 2 1
      src/main/java/com/welampiot/dto/TrailInfoDTO.java
  22. 2 0
      src/main/java/com/welampiot/dto/VideoCarDTO.java
  23. 2 0
      src/main/java/com/welampiot/dto/VideoFaceDTO.java
  24. 3 0
      src/main/java/com/welampiot/dto/WifiDTO.java
  25. 1 1
      src/main/java/com/welampiot/dto/WifiInfoLogDTO.java
  26. 3 0
      src/main/java/com/welampiot/service/AllAlarmInfoLogService.java
  27. 1 0
      src/main/java/com/welampiot/service/ChargeService.java
  28. 1 0
      src/main/java/com/welampiot/service/EnvmonitorInfoLogService.java
  29. 1 0
      src/main/java/com/welampiot/service/EnvmonitorService.java
  30. 6 0
      src/main/java/com/welampiot/service/LampInfoLogService.java
  31. 1 0
      src/main/java/com/welampiot/service/LampPoleService.java
  32. 3 1
      src/main/java/com/welampiot/service/LampService.java
  33. 1 0
      src/main/java/com/welampiot/service/ScreenService.java
  34. 3 0
      src/main/java/com/welampiot/service/TrailInfoService.java
  35. 2 0
      src/main/java/com/welampiot/service/VideoCarService.java
  36. 2 0
      src/main/java/com/welampiot/service/VideoFaceService.java
  37. 1 0
      src/main/java/com/welampiot/service/VideoMonitorService.java
  38. 1 0
      src/main/java/com/welampiot/service/WifiInfoLogService.java
  39. 8 0
      src/main/java/com/welampiot/service/impl/AllAlarmInfoLogServiceImpl.java
  40. 4 0
      src/main/java/com/welampiot/service/impl/ChargeServiceImpl.java
  41. 4 0
      src/main/java/com/welampiot/service/impl/EnvmonitorInfoLogServiceImpl.java
  42. 4 0
      src/main/java/com/welampiot/service/impl/EnvmonitorServiceImpl.java
  43. 22 0
      src/main/java/com/welampiot/service/impl/LampInfoLogServiceImpl.java
  44. 4 0
      src/main/java/com/welampiot/service/impl/LampPoleServiceImpl.java
  45. 29 16
      src/main/java/com/welampiot/service/impl/LampServiceImpl.java
  46. 4 0
      src/main/java/com/welampiot/service/impl/ScreenServiceImpl.java
  47. 12 0
      src/main/java/com/welampiot/service/impl/TrailInfoServiceImpl.java
  48. 8 0
      src/main/java/com/welampiot/service/impl/VideoCarServiceImpl.java
  49. 8 0
      src/main/java/com/welampiot/service/impl/VideoFaceServiceImpl.java
  50. 4 0
      src/main/java/com/welampiot/service/impl/VideoMonitorServiceImpl.java
  51. 4 0
      src/main/java/com/welampiot/service/impl/WifiInfoLogServiceImpl.java
  52. 5 5
      src/main/java/com/welampiot/utils/ToolUtils.java
  53. 5 2
      src/main/java/com/welampiot/vo/AllAlarmInfoLogVO.java
  54. 2 0
      src/main/java/com/welampiot/vo/LampInfoVO.java
  55. 1 1
      src/main/java/com/welampiot/vo/LampPoleDataVO.java
  56. 1 0
      src/main/java/com/welampiot/vo/LampVO.java
  57. 18 0
      src/main/java/com/welampiot/vo/NetworkWeather.java
  58. 74 0
      src/main/resources/mapper/AllAlarmInfoLogMapper.xml
  59. 5 0
      src/main/resources/mapper/ChargeMapper.xml
  60. 5 0
      src/main/resources/mapper/EnvmonitorInfoLogMapper.xml
  61. 6 0
      src/main/resources/mapper/EnvmonitorMapper.xml
  62. 4 0
      src/main/resources/mapper/GlobalLocationMapper.xml
  63. 1 1
      src/main/resources/mapper/GroupMapper.xml
  64. 79 0
      src/main/resources/mapper/LampInfoLogMapper.xml
  65. 27 2
      src/main/resources/mapper/LampMapper.xml
  66. 12 0
      src/main/resources/mapper/LampPoleMapper.xml
  67. 6 0
      src/main/resources/mapper/ScreenMapper.xml
  68. 19 0
      src/main/resources/mapper/TrailInfoMapper.xml
  69. 11 0
      src/main/resources/mapper/VideoCarMapper.xml
  70. 11 0
      src/main/resources/mapper/VideoFaceMapper.xml
  71. 6 0
      src/main/resources/mapper/VideoMonitorMapper.xml
  72. 5 0
      src/main/resources/mapper/WifiInfoLogMapper.xml
  73. 1 1
      src/main/resources/mapper/WifiMapper.xml
  74. 11 0
      src/test/java/com/welampiot/service/UserServiceTest.java

+ 578 - 201
src/main/java/com/welampiot/controller/BigScreenController.java

@@ -1,5 +1,8 @@
 package com.welampiot.controller;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.welampiot.common.BaseResult;
 import com.welampiot.common.InterfaceResultEnum;
 import com.welampiot.dto.*;
@@ -14,13 +17,14 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
+import java.io.File;
 import java.text.DecimalFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
+import java.time.DayOfWeek;
+import java.time.LocalDate;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * ClassName: BigScreenController
@@ -69,59 +73,188 @@ public class BigScreenController {
     private AllAlarmInfoLogService allAlarmInfoLogService;
     @Autowired
     private LoopService loopService;
+    @Autowired
+    private LampInfoLogService lampInfoLogService;
+    @Autowired
+    private GroupService groupService;
+    @Autowired
+    private EnvmonitorInfoLogService envmonitorInfoLogService;
+    @Autowired
+    private WeatherRS485DevInfoService weatherRS485DevInfoService;
+    @Autowired
+    private GlobalLocationService globalLocationService;
 
     /**
      * 用电量统计
      * @param request sectionList
      * @return 用电量统计
      */
-    @RequestMapping(value = "/statistics", method = RequestMethod.POST)
-    public BaseResult<?> statistics(HttpServletRequest request) throws ParseException {
-        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
-        long startTime = System.currentTimeMillis() - 24L * 3600 * 1000 * 30;
-        long endTime = System.currentTimeMillis() - 24 * 3600 * 1000;
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
-        String startDate = simpleDateFormat.format(startTime);
-        String endDate = simpleDateFormat.format(endTime);
-        LampInfoCacheByDayDTO dayDTO = new LampInfoCacheByDayDTO();
-        dayDTO.setStartDate(startDate);
-        dayDTO.setEndDate(endDate);
-        dayDTO.setSectionList(toolUtils.getSectionList(request));
-        List<LampInfoCacheByDayDTO> list = lampInfoCacheByDayService.getSectionOfMonthConSum(dayDTO);
-        DecimalFormat decimalFormat = new DecimalFormat("0.00");
-
-        HashMap<String, Integer> objectObjectHashMap = new HashMap<>();
-        long timeT = startTime;
-        int i = 0;
-        List<Object> dateList = new ArrayList<>();
-        List<Object> valueList = new ArrayList<>();
+    @RequestMapping(value = "/data", method = RequestMethod.POST)
+    public BaseResult<?> data(HttpServletRequest request) throws ParseException {
+        Integer version = (Integer) toolUtils.getRequestContent(request, "version", 1);
+        List sectionList = toolUtils.getSectionList(request);
+        LampInfoDTO dto = new LampInfoDTO();
+        dto.setLampPoleId(0);
+        dto.setSectionList(sectionList);
+        //路灯数据
+       List<LampInfoDTO> lampList =  lampService.getLampLocaltion(dto);
+       //灯杆数据
+        LampPoleDTO lampPoleDTO = new LampPoleDTO();
+        lampPoleDTO.setSectionList(sectionList);
+        List<LampPoleDTO> lampPoleList = lampPoleService.getLampPoleLocation(lampPoleDTO);
+        //系统数据
+        LampInfoLogDTO lampInfoLogDTO = new LampInfoLogDTO();
+        lampInfoLogDTO.setSectionList(sectionList);
+        LampInfoLogDTO dayConsumption = lampInfoLogService.getDayConsumption(lampInfoLogDTO);
+        //故障
+        AllAlarmInfoLogVO alarmVo = new AllAlarmInfoLogVO();
+        alarmVo.setSectionList(sectionList);
+        AllAlarmInfoLogVO countBySection = allAlarmInfoLogService.getCountBySection(alarmVo);
 
-        while (timeT <= endTime) {
-            objectObjectHashMap.put(simpleDateFormat.format(new Date(timeT)),i);
-            dateList.add(simpleDateFormat.format(new Date(timeT)));
-            valueList.add(0);
-            timeT += 3600 * 1000 * 24;
-            i ++;
+        if (dayConsumption == null){
+            lampInfoLogDTO.setSectionList(null);
+            dayConsumption = lampInfoLogDTO;
+        }
+        if (dayConsumption.getDayconsumption() == null){
+            dayConsumption.setDayconsumption(0d);
+        }else {
+           String consumption = String.format("%.2f",dayConsumption.getDayconsumption() == null? 0.0 : dayConsumption.getDayconsumption());
+            dayConsumption.setDayconsumption(Double.valueOf(consumption));
+        }
+        String totalConsumption = String.format("%.2f",dayConsumption.getTotalconsumption() == null? 0.0 : dayConsumption.getTotalconsumption());
+        dayConsumption.setTotalconsumption(Double.valueOf(totalConsumption));
+        dayConsumption.setLampCount(lampList.size());
+        dayConsumption.setPoleCount(lampPoleList.size());
+        dayConsumption.setPoleList(lampPoleList);
+        LampVO lampVO = new LampVO();
+        lampVO.setSectionList(sectionList);
+        lampVO.setStatus(1);
+        int onlineCountByVO = lampService.getOnlineCountByVO(lampVO);
+        dayConsumption.setLightCount(onlineCountByVO);
+        dayConsumption.setAlarmCount(countBySection.getTotal());
+        HashMap<String, LampInfoDTO> tempLampList = new HashMap<>();
+        for (LampInfoDTO item:lampList) {
+            item.setSelect(0);
+            tempLampList.put(String.valueOf(item.getId()),item);
         }
+        List<GroupDTO> groupList = groupService.getListBySection(sectionList);
+        int index = 0;
 
-        for (LampInfoCacheByDayDTO dto : list) {
-            Date date = new Date(simpleDateFormat.parse(dto.getUpdateTime()).getTime());
-            String s = simpleDateFormat.format(date);
-            Integer integer = null;
-            if (objectObjectHashMap.containsKey(s)) {
-                integer = objectObjectHashMap.get(s);
+        List<List<LampInfoDTO>> groupLists = new ArrayList<>();
+        List<LampInfoDTO> otherLists = new ArrayList<>();
+        for (GroupDTO group:groupList) {
+            if (group.getLampId() == null) continue;
+            ArrayList<LampInfoDTO> groupTemp = new ArrayList<>();
+
+            Set<String> uniqueSet = new LinkedHashSet<>();
+            String[] items = group.getLampId().split(",");
+            uniqueSet.addAll(Arrays.asList(items));
+            for (String id:uniqueSet) {
+                LampInfoDTO lamp = tempLampList.get(id);
+                if (lamp != null){
+                    //groupTemp.add(tempLampList.get(id));
+                    LampInfoDTO lampTemp = new LampInfoDTO();
+                    lampTemp.setId(lamp.getId());
+                    lampTemp.setLongitude(lamp.getLongitude());
+                    lampTemp.setLatitude(lamp.getLatitude());
+                    lampTemp.setNumber(lamp.getNumber());
+                    lampTemp.setSelect(lamp.getSelect());
+                    groupTemp.add(lampTemp);
+
+                    lamp.setSelect(1);
+                    tempLampList.put(id, lamp);
+                }
             }
+            if (groupTemp.size() <= 1){
+                if (groupTemp.size() != 0) {
+                    Integer tempId = groupTemp.get(0).getId();
+                    if (tempLampList.get(String.valueOf(tempId)).getSelect() > 0) tempLampList.get(String.valueOf(tempId)).setSelect(0);
+                }
+            }else {
+                groupLists.add(index,groupTemp);
+                index ++;
+            }
+        }
+        tempLampList.forEach((key, value) -> {
+            Integer select = value.getSelect();
+            if (select == 0){
+                otherLists.add(value);
+            }
+        });
+        LampInfoVO lampInfoVO = new LampInfoVO();
+        lampInfoVO.setGroup(groupLists);
+        lampInfoVO.setOther(otherLists);
+        dayConsumption.setLampList(lampInfoVO);
+
+        // 重点地区
+        alarmVo.setType(1);
+        alarmVo.setVersion(version);
+        //AllAlarmInfoLogVO vo = allAlarmInfoLogService.alarmTOP(alarmVo);
+        List<AllAlarmInfoLogVO> objetVo = allAlarmInfoLogService.alarmTOP(alarmVo);
 
-            if (dto.getConSum() != null && !dto.getConSum().equals("0") && integer != null) {
-                String formatConSum = decimalFormat.format(dto.getConSum());
-                valueList.set(integer, Float.parseFloat(formatConSum));
+        if (objetVo.size() > 0){
+            AllAlarmInfoLogVO vo = objetVo.get(0);
+            dayConsumption.setArea(vo.getArea());
+            if (version == 0){
+                if (vo.getArea() == null){
+                    dayConsumption.setArea("暂无");
+                }
+            } else if (version == 1) {
+                if (vo.getArea() == null){
+                    dayConsumption.setArea("Not available");
+                }
+            }else {
+                if (vo.getArea() == null){
+                    dayConsumption.setArea("Пока нет");
+                }
+            }
+        }else {
+            if (version == 0){
+                dayConsumption.setArea("暂无");
+            } else if (version == 1) {
+                dayConsumption.setArea("Not available");
+            }else {
+                dayConsumption.setArea("Пока нет");
             }
         }
 
-        LampInfoCacheByDayVO lampInfoCacheByDayVO = new LampInfoCacheByDayVO();
-        lampInfoCacheByDayVO.setDate(dateList);
-        lampInfoCacheByDayVO.setValue(valueList);
-        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampInfoCacheByDayVO);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,dayConsumption);
+    }
+        /**
+         * 用电量统计
+         * @param request sectionList
+         * @return 用电量统计
+         */
+    @RequestMapping(value = "/statistics", method = RequestMethod.POST)
+    public BaseResult<?> statistics(HttpServletRequest request) throws ParseException {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        List sectionList = toolUtils.getSectionList(request);
+        LampInfoLogDTO repLampinfoLog =  new LampInfoLogDTO();
+
+        List<Object> value = new ArrayList<>();
+        List<Object> date = new ArrayList<>();
+        for (int i = 30; i >= 0; i --){
+            long t = System.currentTimeMillis() - i * 24L * 3600 * 1000;
+            String dateStr = simpleDateFormat.format(new Date(t));
+            String startDate = dateStr + " 00:00:00";
+            String endDate = dateStr + " 23:59:59";
+            LampInfoLogDTO dto = new LampInfoLogDTO();
+            dto.setStartDate(startDate);
+            dto.setEndDate(endDate);
+            dto.setSectionList(sectionList);
+            LampInfoLogDTO lampInfoLogDTO = lampInfoLogService.consumptiontSatistics(dto);
+            if (lampInfoLogDTO != null){
+                value.add(String.format("%.2f",lampInfoLogDTO.getDayconsumption()));
+            }else {
+                value.add(0);
+            }
+
+            date.add(dateStr);
+        }
+        repLampinfoLog.setValue(value);
+        repLampinfoLog.setDate(date);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version, repLampinfoLog);
     }
 
     /**
@@ -132,13 +265,25 @@ public class BigScreenController {
     @RequestMapping(value = "/alarmTOP", method = RequestMethod.POST)
     public BaseResult<?> alarmTOP(HttpServletRequest request) {
         Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
-        LampInfoDTO lampInfoDTO = new LampInfoDTO();
-        lampInfoDTO.setVersion(version);
-        lampInfoDTO.setSectionList(toolUtils.getSectionList(request));
-        List<LampInfoDTO> list = lampService.getAlarmAreaCountTop(lampInfoDTO);
-        LampInfoVO lampInfoVO = new LampInfoVO();
-        lampInfoVO.setList(list);
-        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampInfoVO);
+       List<?> sectionList = toolUtils.getSectionList(request);
+        AllAlarmInfoLogVO alarmVo = new AllAlarmInfoLogVO();
+        alarmVo.setSectionList(sectionList);
+        alarmVo.setType(0);
+        alarmVo.setVersion(version);
+         Object objectVo= allAlarmInfoLogService.alarmTOP(alarmVo);
+        List<AllAlarmInfoLogVO> voList = (List<AllAlarmInfoLogVO>)objectVo;
+
+        alarmVo.setSectionList(null);
+        alarmVo.setType(null);
+        alarmVo.setVersion(null);
+        List<AllAlarmInfoLogVO> objects = new ArrayList<>();
+        for (AllAlarmInfoLogVO vo :voList) {
+           if (vo.getArea() != null){
+               objects.add(vo);
+           }
+        }
+        alarmVo.setList(objects);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,alarmVo);
     }
 
     /**
@@ -149,22 +294,16 @@ public class BigScreenController {
     @RequestMapping(value = "/consumptionTOP", method = RequestMethod.POST)
     public BaseResult<?> consumptionTOP(HttpServletRequest request) {
         Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
-        LampInfoDTO lampInfoDTO = new LampInfoDTO();
-        lampInfoDTO.setSectionList(toolUtils.getSectionList(request));
-        List<LampInfoDTO> list = lampService.getLampEleUseSectionTop(lampInfoDTO);
-        DecimalFormat decimalFormat = new DecimalFormat("0.00");
-        for (LampInfoDTO dto : list) {
-            if (dto.getConsumption() != null && !dto.getConsumption().equals("0.0")) {
-                float consumption = Float.parseFloat(dto.getConsumption());
-                String format = decimalFormat.format(consumption);
-                dto.setConsumption(format);
-            } else if (dto.getConsumption() == null || dto.getConsumption().equals("0.0")) {
-                dto.setConsumption("0");
-            }
+        List<?> sectionList = toolUtils.getSectionList(request);
+        LampInfoLogDTO lampInfoLogDTO = new LampInfoLogDTO();
+        lampInfoLogDTO.setSectionList(sectionList);
+        List<LampInfoLogDTO> lampInfoLogDTOS = lampInfoLogService.consumptionTOP(lampInfoLogDTO);
+        for (LampInfoLogDTO dto:lampInfoLogDTOS) {
+            if (dto.getConsumption() == null) dto.setConsumption(0);
         }
-        LampInfoVO lampInfoVO = new LampInfoVO();
-        lampInfoVO.setList(list);
-        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampInfoVO);
+        lampInfoLogDTO.setList(lampInfoLogDTOS);
+        lampInfoLogDTO.setSectionList(null);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS, version, lampInfoLogDTO);
     }
 
     /**
@@ -199,48 +338,30 @@ public class BigScreenController {
     public BaseResult<?> alarmChart(HttpServletRequest request) throws ParseException {
         Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
 
-        long startTime = System.currentTimeMillis() - 29L * 3600 * 1000 * 24;
-        long endTime = System.currentTimeMillis();
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
-        String startDate = simpleDateFormat.format(startTime);
-        String endDate = simpleDateFormat.format(endTime);
-        LampInfoDTO lampInfoDTO = new LampInfoDTO();
-        lampInfoDTO.setStartDate(startDate);
-        lampInfoDTO.setEndDate(endDate);
-        lampInfoDTO.setSectionList(toolUtils.getSectionList(request));
-        List<LampInfoDTO> list = lampService.getLampAlarmTotal(lampInfoDTO);
-
-        HashMap<String, Integer> objectObjectHashMap = new HashMap<>();
-        long timeT = startTime;
-        int i = 0;
-        List<Object> dateList = new ArrayList<>();
-        List<Object> valueList = new ArrayList<>();
-
-        while (timeT <= endTime) {
-            objectObjectHashMap.put(simpleDateFormat.format(new Date(timeT)),i);
-            dateList.add(simpleDateFormat.format(new Date(timeT)));
-            valueList.add(0);
-            timeT += 3600 * 1000 * 24;
-            i ++;
-        }
-
-        for (LampInfoDTO dto : list) {
-            Date date = new Date(simpleDateFormat.parse(dto.getUpdateTime()).getTime());
-            String s = simpleDateFormat.format(date);
-            Integer integer = null;
-            if (objectObjectHashMap.containsKey(s)) {
-                integer = objectObjectHashMap.get(s);
-            }
+        List sectionList = toolUtils.getSectionList(request);
+        LampInfoLogDTO repLampinfoLog =  new LampInfoLogDTO();
 
-            if (dto.getLampCount() != null && dto.getLampCount() != 0 && integer != null) {
-                valueList.set(integer, dto.getLampCount());
+        List<Object> value = new ArrayList<>();
+        List<Object> date = new ArrayList<>();
+        for (int i = 29; i >= 0; i --){
+            long t = System.currentTimeMillis() - i * 24L * 3600 * 1000;
+            String dateStr = simpleDateFormat.format(new Date(t));
+            String endDate = dateStr + " 23:59:59";
+            LampInfoLogDTO dto = new LampInfoLogDTO();
+            dto.setEndDate(endDate);
+            dto.setSectionList(sectionList);
+            AllAlarmInfoLogVO vo = lampInfoLogService.alarmCountChart(dto);
+            if (vo == null){
+                value.add(0);
+            }else {
+                value.add(vo.getTotal());
             }
+            date.add(dateStr);
         }
-
-        LampInfoVO lampInfoVO = new LampInfoVO();
-        lampInfoVO.setDate(dateList);
-        lampInfoVO.setValue(valueList);
-        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampInfoVO);
+        repLampinfoLog.setValue(value);
+        repLampinfoLog.setDate(date);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,repLampinfoLog);
     }
 
     /**
@@ -255,6 +376,7 @@ public class BigScreenController {
         lampPoleDTO.setSectionList(toolUtils.getSectionList(request));
         LampInfoDTO lampInfoDTO = new LampInfoDTO();
         lampInfoDTO.setSectionList(toolUtils.getSectionList(request));
+        lampInfoDTO.setType(2);
         LampPoleInfoVO lampPoleData = lampPoleService.getLampPoleBigScreenCount(lampPoleDTO, lampInfoDTO);
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampPoleData);
     }
@@ -269,115 +391,370 @@ public class BigScreenController {
         Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
         Integer lampPoleId = (Integer) toolUtils.getRequestContent(request,"lampPoleId",1);
         if (lampPoleId == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
-        // 照明数据
-        LampInfoDTO lampInfoDTO = lampService.getLampOfLampPoleById(lampPoleId, 0);
+
         LampPoleDataVO lampPoleDataVO = new LampPoleDataVO();
-        lampPoleDataVO.setLampData(lampInfoDTO);
-        // 气象数据
-        EnvmonitorDTO envmonitor = envmonitorService.getEnvmonitorByLampPoleId(lampPoleId);
-        Double longitude = null,latitude = null;
-        if (envmonitor != null) {
-            longitude = envmonitor.getLongitude();
-            latitude = envmonitor.getLatitude();
-        }
-        if (longitude != null && latitude != null) {
-            List<WeatherDTO> weatherList = WeatherUtil.getNearWeatherInfo(longitude.toString(), latitude.toString());
-            envmonitor.setWeatherList(weatherList);
-        }
-        lampPoleDataVO.setWeatherData(envmonitor);
-        // 屏幕数据
-        ScreenDTO screen = screenService.getScreenByLampPoleId(lampPoleId);
-        if (screen != null) screen.setName(screen.getPlay());
-        lampPoleDataVO.setScreenData(screen);
         // 监控数据
-        VideoMonitorDTO video = videoMonitorService.getVideoMonitorByLampPoleId(lampPoleId);
-        video.setVideoPath("");
-        video.setVideoPathHd("");
-        VideoCarDTO videoCar = videoCarService.getVideoCarByVideoId(video.getId());
-        if (videoCar != null) video.setCarImage(videoCar.getImage());
-        List<VideoCarDTO> carList = videoCarService.getVideoCarListByVideoId(video.getId());
-        video.setCarList(carList); // 车牌识别列表
-        List<VideoFaceDTO> videoFace = videoFaceService.getVideoFaceListByVideoId(lampPoleId);
-        video.setFaceList(videoFace); // 人脸识别列表
-        List<TrailInfoDTO> trailList = trailInfoService.getTrailInfoListByVideoId(video.getId());
-        video.setTrailList(trailList); // 轨迹列表
-        List<TrailInfoDTO> smailList = trailInfoService.getSmailListByVideoId(video.getId());
-        video.setSmailList(smailList); // 相似度列表
-        lampPoleDataVO.setVideoData(video);
-        // 充电桩数据
-        ChargeDTO chargeDTO = chargeService.getChargeInfoByLampPoleId(lampPoleId);
-        lampPoleDataVO.setChargeData(chargeDTO);
-        // wifi数据
-        WifiDTO wifi = wifiService.getWifiByLampPoleId(lampPoleId);
-        if (wifi.getFlow() != null) {
-            Float flow = wifi.getFlow();
-            if (flow < 1024) {
-                wifi.setType(0);
-            } else if (1024 <= flow && flow < 1024 * 1024) {
-                wifi.setType(1);
-                flow = flow / 1024;
-                wifi.setFlow(flow);
-            } else if (1024 * 1024 <= flow) {
-                wifi.setType(2);
-                flow = flow / (1024 * 1024);
-                wifi.setFlow(flow);
+        VideoMonitorDTO videoMonitor = videoMonitorService.getOneData(lampPoleId);
+        if (videoMonitor == null){
+            lampPoleDataVO.setVideoData(new VideoMonitorDTO());
+        }else {
+            // 人脸识别列表
+            List<VideoFaceDTO> faceList = videoFaceService.getList(videoMonitor.getId());
+            videoMonitor.setFaceList(faceList == null ? new ArrayList<>() : faceList);
+            // 车牌识别列表
+            List<VideoCarDTO> carList = videoCarService.getList(videoMonitor.getId());
+            videoMonitor.setCarList(carList == null ? new ArrayList<>() : carList);
+            videoMonitor.setCarImage(carList.size() > 0 ? carList.get(0).getImage() : "");
+            // 今天人流量
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            long l = System.currentTimeMillis();
+            String time = simpleDateFormat.format(new Date(l));
+            String beginDate = time + " 00:00:00";
+            String endDate = time + " 23:59:59";
+            VideoFaceDTO faceDTO = new VideoFaceDTO();
+            faceDTO.setId(videoMonitor.getId());
+            faceDTO.setBeginDate(beginDate);
+            faceDTO.setEndDate(endDate);
+            Integer faceTotal = videoFaceService.getTotal(faceDTO);
+
+            VideoCarDTO videoCarDTO = new VideoCarDTO();
+            videoCarDTO.setId(videoMonitor.getId());
+            videoCarDTO.setBeginDate(beginDate);
+            videoCarDTO.setEndDate(endDate);
+            Integer carTotal = videoCarService.getTotal(videoCarDTO);
+            videoMonitor.setPersonCountToday(faceTotal == null ? 0 : faceTotal);
+            videoMonitor.setCarCountToday(carTotal == null ? 0 : carTotal);
+
+            if (videoMonitor.getNetType() == 1){
+                String gbPlayAddress = toolUtils.getGbPlayAddress(videoMonitor.getGbAddress(), null, null, null);
+                videoMonitor.setVideoPath(gbPlayAddress);
+                videoMonitor.setVideoPathHd(gbPlayAddress);
+                videoMonitor.setHlsHd(gbPlayAddress);
+            }
+            // 轨迹信息
+            List<TrailInfoDTO> trailList  = trailInfoService.getList(videoMonitor.getId());
+            videoMonitor.setTrailList( trailList == null ? new ArrayList<>() : trailList);
+
+            TrailInfoDTO smai = trailInfoService.getSmaiListById(videoMonitor.getId());
+            TrailInfoDTO smai2 = trailInfoService.getSmaiList(videoMonitor.getId());
+            if (smai == null){
+                videoMonitor.setSmailList(new ArrayList<>());
+            }else {
+                ArrayList<TrailInfoDTO> trailInfoDTOS = new ArrayList<>();
+                smai.setSmail(Float.parseFloat(String.format("%.1f",smai.getSmail())));
+                trailInfoDTOS.add(smai);
+                videoMonitor.setSmailList(trailInfoDTOS);
             }
+            if (smai2 != null){
+                ArrayList<TrailInfoDTO> trailInfoDTOS = new ArrayList<>();
+                smai2.setSmail(Float.parseFloat(String.format("%.1f",smai2.getSmail())));
+                trailInfoDTOS.add(smai2);
+                videoMonitor.setSmailList(trailInfoDTOS);
+            }
+            lampPoleDataVO.setVideoData(videoMonitor);
         }
-        // 流量列表
-        List<Object> dateList = new ArrayList<>();
-        List<Object> flowList = new ArrayList<>();
-        long l = System.currentTimeMillis();
-        long startTime = l - 24 * 3600 * 1000 * 6;
-        HashMap<String, Integer> objectObjectHashMap = new HashMap<>();
-        long timeT = startTime;
-        int i = 0;
+        // 照明数据
+        LampInfoDTO lamp = lampService.getLampById(lampPoleId);
+        if (lamp == null) {
+            lampPoleDataVO.setLampData(new LampInfoDTO());
+        }else {
+            lamp.setColourVal(lamp.getColourVal() < 3000 ? 5000 : lamp.getColourVal());
+            LampInfoLogDTO logDTO = lampInfoLogService.getOne(lamp.getId());
+            lamp.setGridVolt(logDTO == null ? 0 : logDTO.getGridvolt());
+            lamp.setGridCurr(logDTO == null ? 0 : logDTO.getGridcurr());
+            lamp.setGridActivePower(logDTO == null ? 0 : logDTO.getGridActivePower());
+            lamp.setGridPF(logDTO == null ? 0 : logDTO.getGridPF());
+            if (logDTO == null){
+                lamp.setWorkTimeTotal("0");
+            }else {
+                double h = Math.floor(logDTO.getWorkTimeTotal() / 3600);
+                String tempH = String.valueOf(h);
+                String h1 = h < 10 ? "0" + tempH : tempH;
+                double m = Math.floor(logDTO.getWorkTimeTotal() % 3600 / 60);
+                String tempM = String.valueOf(m);
+                String m1 = m < 10 ? "0" + tempM : tempM;
+                lamp.setWorkTimeTotal(h1 + ":" + m1);
+            }
+            lamp.setUsedEnergyTotal(logDTO == null ? 0 : logDTO.getUsedEnergyTotal());
+            lampPoleDataVO.setLampData(lamp);
+        }
+        // 气象数据
+        EnvmonitorDTO envmonitorDTO = envmonitorService.getOne(lampPoleId);
+        if (envmonitorDTO == null){
+            lampPoleDataVO.setWeatherData(new EnvmonitorInfoLogDTO());
+        }else {
+            //气象数据
+            EnvmonitorInfoLogDTO logServiceOne = envmonitorInfoLogService.getOne(envmonitorDTO.getId());
+            if (envmonitorDTO.getNetType() == 1){
+                List<WeatherRS485DevInfoDTO> listByWeather = weatherRS485DevInfoService.getListByWeatherId(envmonitorDTO.getId());
+                if (listByWeather == null || listByWeather.size() == 0){
+                    logServiceOne.setDevType("1");
+                }else {
+                    ArrayList<String> devIds = new ArrayList<>();
+                    for (WeatherRS485DevInfoDTO dto : listByWeather) {
+                        if (dto.getDevId() != null) devIds.add(String.valueOf(dto.getDevId()));
+                    }
+                    String result = devIds.stream().collect(Collectors.joining(","));
+                    logServiceOne.setDevType(result);
+                }
+            }
+            if (envmonitorDTO.getAreaId() == null){
+                logServiceOne.setWeatherList(new ArrayList<>());
+            }else {
+                GlobalLocationDTO oneById = globalLocationService.getOneById(envmonitorDTO.getAreaId());
+                long time =  System.currentTimeMillis() / 1000;
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                Date parse = sdf.parse(envmonitorDTO.getWeatherUpdateTime());
+                long tamp = parse.getTime()  / 1000;
+                if (envmonitorDTO.getWeatherInfo() == null || envmonitorDTO.getWeatherUpdateTime() == null || time - tamp > 3600){
+                    String url = "https://devapi.qweather.com/v7/weather/7d?location="+ oneById.getLongitude()+","+oneById.getLatitude()+"&key=a90f03e386e84375a27404374324713f";
+                    String s = toolUtils.zlibNetwork(url);
+                    JSONObject jsonObject = JSON.parseObject(s);
+                    List<NetworkWeather> networkWeathers = new ArrayList<>();
+                    if (jsonObject.getJSONArray("daily") != null){
+                        JSONArray array = jsonObject.getJSONArray("daily");
+                        JSONObject daily = (JSONObject)jsonObject.getJSONArray("daily").get(0);
 
-        DecimalFormat decimalFormat = new DecimalFormat("0.00");
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:00:00");
-        SimpleDateFormat simpleDateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        while (timeT <= l) {
-            objectObjectHashMap.put(simpleDateFormat.format(new Date(timeT)), i);
-            dateList.add(simpleDateFormat.format(new Date(timeT)));
-            flowList.add(0);
-            timeT += 3600 * 1000;
-            i++;
+                        NetworkWeather networkWeather = new NetworkWeather();
+                        String code = "";
+                        if (version == 0){
+                            code = toolUtils.weatherTranslateCn(daily.getString("iconDay"));
+                        } else if (version == 1) {
+                            code = toolUtils.weatherTranslateEn(daily.getString("iconDay"));
+                        }else {
+                            code = toolUtils.weatherTranslateRu(daily.getString("iconDay"));
+                        }
+                        networkWeather.setWeatherType(code);
+//                        networkWeather.setWeatherType(daily.getString("textDay"));
+//                        networkWeather.setCode(daily.getString("iconDay"));
+                        networkWeather.setTmp((Integer.valueOf(daily.getString("tempMin"))+Integer.valueOf(daily.getString("tempMax"))) / 2);
+                        networkWeather.setSr(daily.getString("sunrise"));
+                        networkWeather.setSs(daily.getString("sunset"));
+                        String fxDate = daily.getString("fxDate");
+                        LocalDate date = LocalDate.parse(fxDate);
+                        // 获取星期几
+                        DayOfWeek dayOfWeek = date.getDayOfWeek();
+                        networkWeather.setDateStr(String.valueOf(dayOfWeek));
+
+                        // 获取月日
+                        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+                        SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd");
+                        Date parse1 = simpleDateFormat.parse(fxDate);
+                        String format = dateFormat.format(parse1);
+                        networkWeather.setDate(format);
+                        networkWeathers.add(networkWeather);
+                        int i = 0;
+                        for (Object obj:array) {
+                            if (i != 0){
+                                JSONObject obje = (JSONObject) obj;
+                                NetworkWeather weather = new NetworkWeather();
+                                if (version == 0){
+                                    code = toolUtils.weatherTranslateCn(obje.getString("iconDay"));
+                                } else if (version == 1) {
+                                    code = toolUtils.weatherTranslateEn(obje.getString("iconDay"));
+                                }else {
+                                    code = toolUtils.weatherTranslateRu(obje.getString("iconDay"));
+                                }
+                                weather.setWeatherType(code);
+//                                weather.setWeatherType(obje.getString("textDay"));
+//                                weather.setCode(obje.getString("iconDay"));
+                                 weather.setMaxTmp(obje.getString("tempMax"));
+                                weather.setMinTmp(obje.getString("tempMin"));
+                                weather.setSr(obje.getString("sunrise"));
+                                weather.setSs(obje.getString("sunset"));
+                                fxDate = obje.getString("fxDate");
+                                date = LocalDate.parse(fxDate);
+                                // 获取星期几
+                                dayOfWeek = date.getDayOfWeek();
+                                weather.setDateStr(String.valueOf(dayOfWeek));
+
+                                // 获取月日
+                                simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+                                dateFormat = new SimpleDateFormat("MM-dd");
+                                parse = simpleDateFormat.parse(fxDate);
+                                format = dateFormat.format(parse);
+                                weather.setDate(format);
+                                networkWeathers.add(weather);
+
+                            }
+                            i ++ ;
+                        }
+                    }
+                    logServiceOne.setWeatherList(networkWeathers);
+                }else {
+                    JSONArray array = JSON.parseArray(envmonitorDTO.getWeatherInfo());
+                    List<NetworkWeather> networkWeathers = new ArrayList<>();
+                    for (Object o:array) {
+                        JSONObject te = (JSONObject) o;
+                        NetworkWeather networkWeather = new NetworkWeather();
+                        networkWeather.setWeatherType(te.getString("weatherType"));
+                        networkWeather.setCode(te.getString("code"));
+                        networkWeather.setMaxTmp(te.getString("maxTmp"));
+                        networkWeather.setMinTmp(te.getString("minTmp"));
+                        networkWeather.setSr(te.getString("sr"));
+                        networkWeather.setDate(te.getString("date"));
+                        networkWeather.setSs(te.getString("ss"));
+                        networkWeather.setDateStr(te.getString("dateStr"));
+                        networkWeathers.add(networkWeather);
+                    }
+                    logServiceOne.setWeatherList(networkWeathers);
+                }
+            }
+
+            lampPoleDataVO.setWeatherData(logServiceOne);
         }
 
-        int dayNumber = 1;
-        WifiInfoLogDTO wifiInfoLogDTO = new WifiInfoLogDTO();
-        wifiInfoLogDTO.setDayNum(7);
-        wifiInfoLogDTO.setDayNumber(dayNumber);
-        wifiInfoLogDTO.setLampPoleId(lampPoleId);
-        List<WifiInfoLogDTO> wifiInfoLogList = wifiInfoLogService.getWifiStatisticsListByDTO(wifiInfoLogDTO);
-        for (WifiInfoLogDTO dto1 : wifiInfoLogList) {
-            Date date = new Date(simpleDateFormat2.parse(dto1.getUpdateTime()).getTime());
-            String s = simpleDateFormat.format(date);
-            long time = simpleDateFormat.parse(s).getTime();
-            String formatStart = simpleDateFormat.format(startTime);
-            startTime = simpleDateFormat.parse(formatStart).getTime();
-            long timespan = (time - startTime) / (3600 * 1000 * dayNumber);
-            long newTime = startTime + timespan * (3600 * 1000 * dayNumber);
-            date = new Date(newTime);
-            s = simpleDateFormat.format(date);
-            Integer integer = null;
-            if (objectObjectHashMap.containsKey(s)) {
-                integer = objectObjectHashMap.get(s);
+        // 屏幕数据
+        ScreenDTO screenAndProgram = screenService.getScreenAndProgram(lampPoleId);
+        if (screenAndProgram == null){
+            lampPoleDataVO.setScreenData(new ScreenDTO());
+        }else {
+            if (screenAndProgram.getType() == 1){//气象站
+                if (version == 0){
+                    screenAndProgram.setName("气象站");
+                } else if (version == 1) {
+                    screenAndProgram.setName("Weather station");
+                }else {
+                    screenAndProgram.setName("Mетеорологическая станция");
+                }
+            } else if (screenAndProgram.getType() == 2) { // 视屏监控
+                if (version == 0){
+                    screenAndProgram.setName("摄像头");
+                } else if (version == 1) {
+                    screenAndProgram.setName("Camera");
+                }else {
+                    screenAndProgram.setName("Kамера");
+                }
+            }
+            String path = "/upload/images/"+screenAndProgram.getNum()+".png";
+            File logFile = new File(path);
+            if (!logFile.exists()) {
+                screenAndProgram.setImage("");
+            }else {
+                screenAndProgram.setImage(path);
             }
+            lampPoleDataVO.setScreenData(screenAndProgram);
+        }
+        // 充电桩数据
+       ChargeDTO charge = chargeService.getOne(lampPoleId);
+        if (charge == null){
+            charge = new ChargeDTO();
+            charge.setFree(0f);
+            charge.setDuration("00:00");
+            charge.setEquipmentElectricity(0f);
+            charge.setConnectorNum(0);
+            lampPoleDataVO.setChargeData(charge);
+        }else {
+            double h = Math.floor(Integer.parseInt(charge.getDuration()) / 60);
+            String tempH = String.valueOf(h);
+            String h1 = h < 10 ? "0" + tempH : tempH;
+            double m = Math.floor(Integer.parseInt(charge.getDuration()) % 60);
+            String tempM = String.valueOf(m);
+            String m1 = m < 10 ? "0" + tempM : tempM;
+            charge.setDuration(h1+":"+m1);
+            lampPoleDataVO.setChargeData(charge);
+        }
+        // wifi 数据
+        WifiDTO oneWifi = wifiService.getOneWifiByLampPoleId(lampPoleId);
+        if (oneWifi == null){
+            oneWifi = new WifiDTO();
+            oneWifi.setTotalFlaw(0f);
+            oneWifi.setTotalDevice(0);
+            oneWifi.setFlowList(new ArrayList<>());
+            oneWifi.setXDataList(new ArrayList<>());
+            oneWifi.setType(0);
+            lampPoleDataVO.setWifiData(oneWifi);
+        }else {
+           long l =  System.currentTimeMillis();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String endDate = sdf.format(new Date(l));
+            String beginDate = sdf.format(new Date( l - 12 * 3600 * 1000));
+            WifiInfoLogDTO logDto = new WifiInfoLogDTO();
+            logDto.setWifiId(oneWifi.getId());
+            logDto.setStartDate(beginDate);
+            logDto.setEndDate(endDate);
+            List<WifiInfoLogDTO> list = wifiInfoLogService.getList(logDto);
 
-            if (dto1.getMinFlow() != null && !dto1.getMinFlow().equals("0") && integer != null &&
-                    dto1.getMaxFlow() != null && !dto1.getMaxFlow().equals("0")) {
-                Float flow = Float.parseFloat(dto1.getMaxFlow()) - Float.parseFloat(dto1.getMinFlow());
-                flowList.set(integer,Float.parseFloat(decimalFormat.format(flow)));
+            if (list.size() > 0){
+                HashMap<Integer, Float> hashMap = new HashMap<>();
+                long t = 0;
+                Integer type = 0;
+                for (WifiInfoLogDTO dto:list) {
+                    long time = sdf.parse(dto.getUpdateTime()).getTime();
+                    int index = Math.round((l - time) / 3600 / 1000);
+                    if (hashMap.get(index) == null){
+                        t = dto.getFlow() > t ? Math.round(dto.getFlow())  : t;
+                        hashMap.put(index,dto.getFlow());
+                    }
+                }
+                if (t > 1024 * 1024){
+                    type = 2;
+                    Float round = Float.parseFloat(String.format(".2f",list.get(0).getFlow() / (1024 * 1024)));
+                    oneWifi.setTotalFlow(round);
+                } else if (t > 1024) {
+                    type = 1;
+                    Float round = Float.parseFloat(String.format(".2f",list.get(0).getFlow() / 1024 ));
+                    oneWifi.setTotalFlow(round);
+                }else {
+                    Float round = Float.parseFloat(String.format(".2f",list.get(0).getFlow()));
+                    oneWifi.setTotalFlow(round);
+                }
+                List<Object> xDataList = new ArrayList<>();
+                for (int i = 0; i <= 11; i++){
+                    if (hashMap.get(String.valueOf(i)) == null){
+                        hashMap.put(i,0f);
+                    }else {
+                        if (type == 2){
+                            String value = String.format(".2f", hashMap.get(String.valueOf(i)) / (1024 * 1024));
+                            hashMap.put(i,Float.valueOf(value));
+                        } else if (type == 1) {
+                            String value = String.format(".2f", hashMap.get(String.valueOf(i)) / 1024);
+                            hashMap.put(i,Float.valueOf(value));
+                        }else {
+                            String value = String.format(".2f", hashMap.get(String.valueOf(i)));
+                            hashMap.put(i,Float.valueOf(value));
+                        }
+                        SimpleDateFormat hh = new SimpleDateFormat("HH");
+                        String format = hh.format(new Date(l - (11 - i) * 3600 * 1000));
+                        String tempTime = format + ":00";
+                        xDataList.add(tempTime);
+                    }
+                }
+                //反转
+                List<Object> floats = new ArrayList<>();
+                Set<Integer> keys = hashMap.keySet();
+                List<Integer> keyList = new ArrayList<>(keys);
+                Collections.sort(keyList, Collections.reverseOrder());
+                for (Integer s : hashMap.keySet()) {
+                    floats.add(hashMap.get(s));
+                }
+                oneWifi.setFlowList(floats);
+                oneWifi.setTotalDevice(list.get(0).getDeviceCount());
+                oneWifi.setXDataList(xDataList);
+                oneWifi.setType(type);
+            }else {
+                oneWifi = new WifiDTO();
+                oneWifi.setTotalFlaw(0f);
+                oneWifi.setTotalDevice(0);
+                List<Object> arr = new ArrayList<>(Arrays.asList(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+                oneWifi.setFlowList(arr);
+                oneWifi.setType(0);
+                List<Object> xDataList = new ArrayList<>();
+                for (int i = 0; i <= 11; i++){
+                    SimpleDateFormat hh = new SimpleDateFormat("HH");
+                    String format = hh.format(new Date(l - (11 - i) * 3600 * 1000));
+                    String tempTime = format + ":00";
+                    xDataList.add(tempTime);
+                }
+                oneWifi.setXDataList(xDataList);
             }
+            lampPoleDataVO.setWifiData(oneWifi);
         }
-        wifi.setDateList(dateList);
-        wifi.setFlowList(flowList);
-        lampPoleDataVO.setWifiData(wifi);
-        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampPoleDataVO);
-    }
+        return  toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampPoleDataVO);
+  }
 
     /**
-     * 灯杆大屏灯杆视屏列表
+     * 灯杆大屏灯杆视屏列表 #TODO
      * @param request sectionList
      * @return 灯杆视屏列表
      */
@@ -577,7 +954,7 @@ public class BigScreenController {
             WeatherDTO weatherInfo = WeatherUtil.getNowWeatherInfo(longitude.toString(), latitude.toString());
             envmonitor.setWeatherData(weatherInfo);
         }
-        lampPoleDataVO.setWeatherData(envmonitor);
+        //lampPoleDataVO.setWeatherData(envmonitor);
         // 屏幕数据
         ScreenDTO screen = screenService.getScreenByLampPoleId(lampPoleId);
         if (screen != null) screen.setName(screen.getPlay());
@@ -613,7 +990,7 @@ public class BigScreenController {
         Integer lampPoleId = (Integer) toolUtils.getRequestContent(request,"lampPoleId",1);
         if (lampPoleId == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
         LampInfoDTO lampInfoDTO = lampService.getLampOfLampPoleById(lampPoleId, 0);
-        String usedEnergyTotal = lampInfoDTO.getUsedEnergyTotal(); // 累计用电量
+        String usedEnergyTotal = String.valueOf(lampInfoDTO.getUsedEnergyTotal()); // 累计用电量
         String createTime = lampInfoDTO.getCreateTime();
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         long startTime = format.parse(createTime).getTime();

+ 2 - 3
src/main/java/com/welampiot/controller/MapController.java

@@ -9,7 +9,6 @@ import com.welampiot.dto.*;
 import com.welampiot.service.*;
 import com.welampiot.utils.ToolUtils;
 import com.welampiot.vo.*;
-import org.apache.commons.lang3.ArrayUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -1527,8 +1526,8 @@ public class MapController{
             wifiInfoLogList = wifiInfoLogService.getWifiInfoLogListByDTO(wifiDTO);
             for (WifiInfoLogDTO dto : wifiInfoLogList) {
                 if (dto.getFlow() != null) {
-                    if (flowMax < Float.parseFloat(dto.getFlow())) {
-                        flowMax = Float.parseFloat(dto.getFlow());
+                    if (flowMax < dto.getFlow()) {
+                        flowMax = dto.getFlow();
                     }
                 }
             }

+ 1 - 1
src/main/java/com/welampiot/controller/NewLampPoleController2.java

@@ -659,7 +659,7 @@ public class NewLampPoleController2 {
             envmonitor.setAirCount(weatherInfo.getAqi());
             envmonitor.setAirLevel(weatherInfo.getLevel());
             lampPoleDataVO.setDataType("lampPoleDataWeather");
-            lampPoleDataVO.setWeatherData(envmonitor);
+            //lampPoleDataVO.setWeatherData(envmonitor);
         } else if (type == 9) { // 广播音柱
             BroadcastDTO broadcastDTO = broadcastService.getBroadcastDTOByLampPoleId(id);
             lampPoleDataVO.setDataType("lampPoleDataBroadcast");

+ 2 - 0
src/main/java/com/welampiot/dao/AllAlarmInfoLogDao.java

@@ -56,4 +56,6 @@ public interface AllAlarmInfoLogDao {
     List<AllAlarmInfoLogDTO> getOneLampPoleAlarmList(@Param("lampPoleId") Integer lampPoleId);
 
     void addAlarmData(AllAlarmInfoLogDTO dto);
+    AllAlarmInfoLogVO getCountBySection(AllAlarmInfoLogVO vo);
+    List<AllAlarmInfoLogVO> alarmTOP(AllAlarmInfoLogVO vo);
 }

+ 1 - 0
src/main/java/com/welampiot/dao/ChargeDao.java

@@ -52,4 +52,5 @@ public interface ChargeDao {
 
     ChargeDTO getOneCharge(HashMap<String,Object> map);
     ChargeDTO getOneChargeByLampPoleId(Integer lampPoleId);
+    ChargeDTO getOne(Integer lampPoleId);
 }

+ 1 - 1
src/main/java/com/welampiot/dao/EnvmonitorDao.java

@@ -71,5 +71,5 @@ public interface EnvmonitorDao {
     List<EnvmonitorDTO> getIlluminanceListByVO(EnvmonitorVO vo);
     List<EnvmonitorDTO> getNewMapDataByVO(MapDataVO vo);
     EnvmonitorDTO getOneEnvmonitor(HashMap<String,Object> map);
-
+    EnvmonitorDTO getOne(Integer lampPoleId);
 }

+ 1 - 0
src/main/java/com/welampiot/dao/EnvmonitorInfoLogDao.java

@@ -27,4 +27,5 @@ public interface EnvmonitorInfoLogDao {
     List<EnvmonitorInfoLogDTO> getEnvStatisticsListByDTO(EnvmonitorDTO dto);
 
     void deleteEnvmonitorInfoLogData(@Param("envmonitorId") Integer envmonitorId);
+    EnvmonitorInfoLogDTO getOne(Integer envmonitorId);
 }

+ 3 - 1
src/main/java/com/welampiot/dao/LampDao.java

@@ -68,5 +68,7 @@ public interface LampDao {
     void addByDto(LampInfoDTO dto);
     void updateById(LampInfoDTO dto);
     LampInfoDTO getOneData(HashMap<String,Object> map);
-    List<LampInfoDTO>getLampJoinLogList(Integer id);
+    List<LampInfoDTO> getLampJoinLogList(Integer id);
+    List<LampInfoDTO> getLampLocaltion(LampInfoDTO dto);
+    LampInfoDTO getLampById(Integer id);
 }

+ 6 - 0
src/main/java/com/welampiot/dao/LampInfoLogDao.java

@@ -1,6 +1,7 @@
 package com.welampiot.dao;
 
 import com.welampiot.dto.LampInfoLogDTO;
+import com.welampiot.vo.AllAlarmInfoLogVO;
 import com.welampiot.vo.LampLogVO;
 import org.apache.ibatis.annotations.Param;
 
@@ -11,4 +12,9 @@ public interface LampInfoLogDao {
     List<LampInfoLogDTO> getListByVO(LampLogVO lampLogVO);
     List<LampInfoLogDTO> getDayEleUsedList(@Param("type") Integer type, @Param("value") Integer value);
     void deleteLampInfoLogData(LampInfoLogDTO dto);
+    LampInfoLogDTO getDayConsumption(LampInfoLogDTO dto);
+    LampInfoLogDTO consumptiontSatistics(LampInfoLogDTO dto);
+    List<LampInfoLogDTO> consumptionTOP(LampInfoLogDTO dto);
+    AllAlarmInfoLogVO alarmCountChart(LampInfoLogDTO dto);
+    LampInfoLogDTO getOne(Integer lampId);
 }

+ 1 - 0
src/main/java/com/welampiot/dao/LampPoleDao.java

@@ -67,4 +67,5 @@ public interface LampPoleDao {
     LampPoleDTO getLocalDataById(Integer id);
     List<LampPoleDTO> getRangeLampPole(HashMap<String,Double> hashMap);
     LampPoleDTO getSimpleOne(LampPoleDTO dto);
+    List<LampPoleDTO> getLampPoleLocation(LampPoleDTO dto);
 }

+ 1 - 0
src/main/java/com/welampiot/dao/ScreenDao.java

@@ -43,4 +43,5 @@ public interface ScreenDao {
     void updateByDto(ScreenDTO dto);
     ScreenDTO getOneScreen(HashMap<String,Object> map);
     ScreenDTO getOneScreenByLampPoleId(Integer lampPoleId);
+    ScreenDTO getScreenAndProgram(Integer lampPoleId);
 }

+ 3 - 0
src/main/java/com/welampiot/dao/TrailInfoDao.java

@@ -18,4 +18,7 @@ public interface TrailInfoDao {
     List<TrailInfoDTO> getTrailInfoListByVideoId(@Param("videoId") Integer videoId);
 
     List<TrailInfoDTO> getSmailListByVideoId(@Param("videoId") Integer videoId);
+    List<TrailInfoDTO> getList(Integer id);
+    TrailInfoDTO getSmaiListById(Integer id);
+    TrailInfoDTO getSmaiList(Integer id);
 }

+ 2 - 0
src/main/java/com/welampiot/dao/VideoCarDao.java

@@ -18,4 +18,6 @@ public interface VideoCarDao {
     VideoCarDTO getVideoCarByVideoId(@Param("videoId") Integer videoId);
 
     List<VideoCarDTO> getVideoCarListByVideoId(@Param("videoId") Integer videoId);
+    List<VideoCarDTO> getList(Integer id);
+    Integer getTotal(VideoCarDTO dto);
 }

+ 2 - 0
src/main/java/com/welampiot/dao/VideoFaceDao.java

@@ -16,4 +16,6 @@ import java.util.List;
  */
 public interface VideoFaceDao {
     List<VideoFaceDTO> getVideoFaceListByVideoId(@Param("videoId") Integer videoId);
+    List<VideoFaceDTO> getList(Integer id);
+    Integer getTotal(VideoFaceDTO dto);
 }

+ 1 - 0
src/main/java/com/welampiot/dao/VideoMonitorDao.java

@@ -54,4 +54,5 @@ public interface VideoMonitorDao {
 
     VideoMonitorDTO getOneMonitor(HashMap<String,Object> map);
     VideoMonitorDTO geteMonitorData(Integer lampPoleId);
+    VideoMonitorDTO getOneData(Integer lampPoleId);
 }

+ 1 - 0
src/main/java/com/welampiot/dao/WifiInfoLogDao.java

@@ -26,4 +26,5 @@ public interface WifiInfoLogDao {
     List<WifiInfoLogDTO> getWifiInfoLogListByDTO(WifiInfoLogDTO dto);
     WifiInfoLogDTO getWifiDayTotalCom(@Param("id") Integer id, @Param("startDate") String startDate);
     List<WifiInfoLogDTO> getWifiLog(HashMap<String,Object> hashMap);
+    List<WifiInfoLogDTO> getList(WifiInfoLogDTO dto);
 }

+ 2 - 1
src/main/java/com/welampiot/dto/EnvmonitorDTO.java

@@ -1,5 +1,6 @@
 package com.welampiot.dto;
 
+import com.welampiot.vo.NetworkWeather;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -214,7 +215,7 @@ public class EnvmonitorDTO implements Serializable {
     private String location;
 
     private WeatherDTO weatherData;
-    private List<WeatherDTO> weatherList;
+    private List<NetworkWeather> weatherList;
     List<WeatherRS485DevInfoDTO> devList;
 
     private String temp;

+ 4 - 0
src/main/java/com/welampiot/dto/EnvmonitorInfoLogDTO.java

@@ -1,8 +1,10 @@
 package com.welampiot.dto;
 
+import com.welampiot.vo.NetworkWeather;
 import lombok.Data;
 
 import java.io.Serializable;
+import java.util.List;
 
 /**
  * ClassName: EnvmonitorInfoLogDTO
@@ -56,4 +58,6 @@ public class EnvmonitorInfoLogDTO implements Serializable {
     private String co;
 
     private String tsp;
+    private String devType;
+    private List<NetworkWeather> weatherList;
 }

+ 15 - 15
src/main/java/com/welampiot/dto/LampInfoDTO.java

@@ -18,15 +18,15 @@ public class LampInfoDTO {
     private String section;
     private Integer sectionId;
     private Integer timezone;
-    private int lighteness;
+    private Integer lighteness;
     private Integer status;
-    private String gridVolt;
-    private String girdCurr;
-    private String gridActivePower;
+    private Float gridVolt;
+    private Float gridCurr;
+    private Float gridActivePower;
     private String workTimeTotal;
-    private String usedEnergyTotal;
+    private Float usedEnergyTotal;
     private String powerSave;
-    private String gridPF;
+    private Float gridPF;
     private String name;
     private String voltage;
     private String current;
@@ -43,11 +43,11 @@ public class LampInfoDTO {
     private String lampOnline;
     private Integer rssi;
     private Integer snr;
-    private int protocolType;
+    private Integer protocolType;
     private String groupId;
     private String group;
     private String network;
-    private int networkId;
+    private Integer networkId;
     private Integer netStatus;
     private String lampPoleName;
     private String loopNumber;
@@ -56,7 +56,7 @@ public class LampInfoDTO {
     private Integer mode;
     private String hwVersion;
     private String swVersion;
-    private int controlType;
+    private Integer controlType;
     private String macAddress;
     private String devAddr;
     private Integer bindStatus;
@@ -74,13 +74,13 @@ public class LampInfoDTO {
     private String dueDate;
     private String controlTypeStr;
     private String createTime;
-    private int companyId;
-    private int ratedPower;
-    private int version;
-    private int select;
-    private int lampPoleId;
+    private Integer companyId;
+    private Integer ratedPower;
+    private Integer version;
+    private Integer select;
+    private Integer lampPoleId;
     private Integer loopId;
-    private String colourVal;
+    private Integer colourVal;
     private String keyword;
     private List<?> sectionList;
     private Integer alarmCount;

+ 23 - 0
src/main/java/com/welampiot/dto/LampInfoLogDTO.java

@@ -1,7 +1,10 @@
 package com.welampiot.dto;
 
+import com.welampiot.vo.LampInfoVO;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 public class LampInfoLogDTO {
     private String voltage;
@@ -18,4 +21,24 @@ public class LampInfoLogDTO {
     private Integer lampId;
     private String startDate;
     private String endDate;
+    private Double dayconsumption;
+    private Double totalconsumption;
+    private List<?> sectionList;
+    private Integer lampCount;
+    private Integer poleCount;
+    private List<LampPoleDTO> poleList;
+    private Integer lightCount;
+    private Integer alarmCount;
+    private LampInfoVO lampList;
+    private String area;
+    private List<Object> value; // 用电量
+    private List<Object> date; // 用电量
+    private Integer consumption;
+    private List<?> list;
+    private Float gridvolt;
+    private Float gridcurr;
+    private Float gridActivePower;
+    private Float gridPF;
+    private Integer workTimeTotal;
+    private Float usedEnergyTotal;
 }

+ 2 - 1
src/main/java/com/welampiot/dto/TrailInfoDTO.java

@@ -21,7 +21,7 @@ public class TrailInfoDTO implements Serializable {
 
     private Integer videoId;
 
-    private String smail; // 相似度
+    private Float smail; // 相似度
 
     private String image; // 相似人脸图片地址
 
@@ -32,4 +32,5 @@ public class TrailInfoDTO implements Serializable {
     private String faceImage;
 
     private Integer isAuto;
+    private String faceImage2;
 }

+ 2 - 0
src/main/java/com/welampiot/dto/VideoCarDTO.java

@@ -30,4 +30,6 @@ public class VideoCarDTO implements Serializable {
     private String faceImage;
 
     private String bigImage; // 大图地址
+    private String beginDate;
+    private String endDate;
 }

+ 2 - 0
src/main/java/com/welampiot/dto/VideoFaceDTO.java

@@ -34,4 +34,6 @@ public class VideoFaceDTO implements Serializable {
     private String updateTime; // 更新时间
 
     private String faceToken; // 人脸标识
+    private String beginDate;
+    private String endDate;
 }

+ 3 - 0
src/main/java/com/welampiot/dto/WifiDTO.java

@@ -322,4 +322,7 @@ public class WifiDTO implements Serializable {
 
     private List<Object> dateList;
     private List<Object> flowList;
+    private Integer totalDevice;
+    private List<Object> xDataList;
+    private Float totalFlow;
 }

+ 1 - 1
src/main/java/com/welampiot/dto/WifiInfoLogDTO.java

@@ -26,7 +26,7 @@ public class WifiInfoLogDTO implements Serializable {
     private Integer deviceCount;
 
     /** 使用流量数 **/
-    private String flow;
+    private Float flow;
 
     /** 数据更新时间 **/
     private String updateTime;

+ 3 - 0
src/main/java/com/welampiot/service/AllAlarmInfoLogService.java

@@ -54,4 +54,7 @@ public interface AllAlarmInfoLogService {
 
     List<AllAlarmInfoLogDTO> getLessLampAlarmInfoList(AllAlarmInfoLogVO vo);
     void addAlarmData(AllAlarmInfoLogDTO dto);
+    AllAlarmInfoLogVO getCountBySection(AllAlarmInfoLogVO vo);
+//    AllAlarmInfoLogVO alarmTOP(AllAlarmInfoLogVO vo);
+    List<AllAlarmInfoLogVO> alarmTOP(AllAlarmInfoLogVO vo);
 }

+ 1 - 0
src/main/java/com/welampiot/service/ChargeService.java

@@ -39,4 +39,5 @@ public interface ChargeService {
     Integer getChargeTotalByDTO(ChargeDTO dto);
     ChargeDTO getOneCharge(HashMap<String,Object> map);
     ChargeDTO getOneChargeByLampPoleId(Integer lampPoleId);
+    ChargeDTO getOne(Integer lampPoleId);
 }

+ 1 - 0
src/main/java/com/welampiot/service/EnvmonitorInfoLogService.java

@@ -26,4 +26,5 @@ public interface EnvmonitorInfoLogService {
     List<EnvmonitorInfoLogDTO> getEnvStatisticsListByDTO(EnvmonitorDTO dto);
 
     void deleteEnvmonitorInfoLogData(Integer envmonitorId);
+    EnvmonitorInfoLogDTO getOne(Integer envmonitorId);
 }

+ 1 - 0
src/main/java/com/welampiot/service/EnvmonitorService.java

@@ -68,4 +68,5 @@ public interface EnvmonitorService {
     List<EnvmonitorDTO> getIlluminanceListByVO(EnvmonitorVO vo);
     List<EnvmonitorDTO> getNewMapDataByVO(MapDataVO vo);
     EnvmonitorDTO getOneEnvmonitor(HashMap<String,Object> map);
+    EnvmonitorDTO getOne(Integer lampPoleId);
 }

+ 6 - 0
src/main/java/com/welampiot/service/LampInfoLogService.java

@@ -1,6 +1,7 @@
 package com.welampiot.service;
 
 import com.welampiot.dto.LampInfoLogDTO;
+import com.welampiot.vo.AllAlarmInfoLogVO;
 import com.welampiot.vo.LampLogVO;
 
 import java.util.List;
@@ -10,4 +11,9 @@ public interface LampInfoLogService {
     List<LampInfoLogDTO> getListByVO(LampLogVO lampLogVO);
     List<LampInfoLogDTO> getDayEleUsedList(Integer type, Integer value);
     void deleteLampInfoLogData(LampInfoLogDTO dto);
+    LampInfoLogDTO getDayConsumption(LampInfoLogDTO dto);
+    LampInfoLogDTO consumptiontSatistics(LampInfoLogDTO dto);
+    List<LampInfoLogDTO> consumptionTOP(LampInfoLogDTO dto);
+    AllAlarmInfoLogVO alarmCountChart(LampInfoLogDTO dto);
+    LampInfoLogDTO getOne(Integer lampId);
 }

+ 1 - 0
src/main/java/com/welampiot/service/LampPoleService.java

@@ -59,4 +59,5 @@ public interface LampPoleService {
     LampPoleDTO getLocalDataById(Integer id);
     List<LampPoleDTO> getRangeLampPole(HashMap<String,Double> hashMap);
     LampPoleDTO getSimpleOne(LampPoleDTO dto);
+    List<LampPoleDTO> getLampPoleLocation(LampPoleDTO dto);
 }

+ 3 - 1
src/main/java/com/welampiot/service/LampService.java

@@ -68,5 +68,7 @@ public interface LampService {
     void addByDto(LampInfoDTO dto);
     void updateById(LampInfoDTO dto);
     LampInfoDTO getOneData(HashMap<String,Object> map);
-    List<LampInfoDTO>getLampJoinLogList(Integer id);
+    List<LampInfoDTO> getLampJoinLogList(Integer id);
+    List<LampInfoDTO> getLampLocaltion(LampInfoDTO dto);
+    LampInfoDTO getLampById(Integer id);
 }

+ 1 - 0
src/main/java/com/welampiot/service/ScreenService.java

@@ -40,4 +40,5 @@ public interface ScreenService {
     void updateByDto(ScreenDTO dto);
     ScreenDTO getOneScreen(HashMap<String,Object> map);
     ScreenDTO getOneScreenByLampPoleId(Integer lampPoleId);
+    ScreenDTO getScreenAndProgram(Integer lampPoleId);
 }

+ 3 - 0
src/main/java/com/welampiot/service/TrailInfoService.java

@@ -17,4 +17,7 @@ public interface TrailInfoService {
     List<TrailInfoDTO> getTrailInfoListByVideoId(Integer videoId);
 
     List<TrailInfoDTO> getSmailListByVideoId(Integer videoId);
+    List<TrailInfoDTO> getList(Integer id);
+    TrailInfoDTO getSmaiListById(Integer id);
+    TrailInfoDTO getSmaiList(Integer id);
 }

+ 2 - 0
src/main/java/com/welampiot/service/VideoCarService.java

@@ -17,4 +17,6 @@ public interface VideoCarService {
     VideoCarDTO getVideoCarByVideoId(Integer videoId);
 
     List<VideoCarDTO> getVideoCarListByVideoId(Integer videoId);
+    List<VideoCarDTO> getList(Integer id);
+    Integer getTotal(VideoCarDTO dto);
 }

+ 2 - 0
src/main/java/com/welampiot/service/VideoFaceService.java

@@ -15,4 +15,6 @@ import java.util.List;
  */
 public interface VideoFaceService {
     List<VideoFaceDTO> getVideoFaceListByVideoId(Integer videoId);
+    List<VideoFaceDTO> getList(Integer id);
+    Integer getTotal(VideoFaceDTO dto);
 }

+ 1 - 0
src/main/java/com/welampiot/service/VideoMonitorService.java

@@ -38,4 +38,5 @@ public interface VideoMonitorService {
     List<VideoMonitorDTO> getDataList(EmergencyDTO dto);
     VideoMonitorDTO getOneMonitor(HashMap<String,Object> map);
     VideoMonitorDTO geteMonitorData(Integer lampPoleId);
+    VideoMonitorDTO getOneData(Integer lampPoleId);
 }

+ 1 - 0
src/main/java/com/welampiot/service/WifiInfoLogService.java

@@ -27,4 +27,5 @@ public interface WifiInfoLogService {
 
     WifiInfoLogDTO getWifiDayTotalCom(Integer id, String startDate);
     List<WifiInfoLogDTO> getWifiLog(HashMap<String,Object> hashMap);
+    List<WifiInfoLogDTO> getList(WifiInfoLogDTO dto);
 }

+ 8 - 0
src/main/java/com/welampiot/service/impl/AllAlarmInfoLogServiceImpl.java

@@ -216,4 +216,12 @@ public class AllAlarmInfoLogServiceImpl implements AllAlarmInfoLogService {
     public void addAlarmData(AllAlarmInfoLogDTO dto){
         allAlarmInfoLogDao.addAlarmData(dto);
     }
+    @Override
+    public AllAlarmInfoLogVO getCountBySection(AllAlarmInfoLogVO vo){
+        return allAlarmInfoLogDao.getCountBySection(vo);
+    }
+    @Override
+    public List<AllAlarmInfoLogVO> alarmTOP(AllAlarmInfoLogVO vo){
+        return allAlarmInfoLogDao.alarmTOP(vo);
+    }
 }

+ 4 - 0
src/main/java/com/welampiot/service/impl/ChargeServiceImpl.java

@@ -221,4 +221,8 @@ public class ChargeServiceImpl implements ChargeService {
     public ChargeDTO getOneChargeByLampPoleId(Integer lampPoleId){
         return chargeDao.getOneChargeByLampPoleId(lampPoleId);
     }
+    @Override
+    public ChargeDTO getOne(Integer lampPoleId){
+        return chargeDao.getOne(lampPoleId);
+    }
 }

+ 4 - 0
src/main/java/com/welampiot/service/impl/EnvmonitorInfoLogServiceImpl.java

@@ -52,4 +52,8 @@ public class EnvmonitorInfoLogServiceImpl implements EnvmonitorInfoLogService {
     public void deleteEnvmonitorInfoLogData(Integer envmonitorId) {
         envmonitorInfoLogDao.deleteEnvmonitorInfoLogData(envmonitorId);
     }
+    @Override
+    public EnvmonitorInfoLogDTO getOne(Integer envmonitorId){
+        return envmonitorInfoLogDao.getOne(envmonitorId);
+    }
 }

+ 4 - 0
src/main/java/com/welampiot/service/impl/EnvmonitorServiceImpl.java

@@ -311,4 +311,8 @@ public class EnvmonitorServiceImpl implements EnvmonitorService {
     public EnvmonitorDTO getOneEnvmonitor(HashMap<String,Object> map){
         return envmonitorDao.getOneEnvmonitor(map);
     }
+    @Override
+    public EnvmonitorDTO getOne(Integer lampPoleId){
+        return envmonitorDao.getOne(lampPoleId);
+    }
 }

+ 22 - 0
src/main/java/com/welampiot/service/impl/LampInfoLogServiceImpl.java

@@ -3,6 +3,7 @@ package com.welampiot.service.impl;
 import com.welampiot.dao.LampInfoLogDao;
 import com.welampiot.dto.LampInfoLogDTO;
 import com.welampiot.service.LampInfoLogService;
+import com.welampiot.vo.AllAlarmInfoLogVO;
 import com.welampiot.vo.LampLogVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -33,4 +34,25 @@ public class LampInfoLogServiceImpl implements LampInfoLogService {
     public void deleteLampInfoLogData(LampInfoLogDTO dto) {
         lampInfoLogDao.deleteLampInfoLogData(dto);
     }
+    @Override
+    public LampInfoLogDTO getDayConsumption(LampInfoLogDTO dto){
+        return lampInfoLogDao.getDayConsumption(dto);
+    }
+
+    @Override
+    public LampInfoLogDTO consumptiontSatistics(LampInfoLogDTO dto){
+        return lampInfoLogDao.consumptiontSatistics(dto);
+    }
+    @Override
+    public List<LampInfoLogDTO> consumptionTOP(LampInfoLogDTO dto){
+        return lampInfoLogDao.consumptionTOP(dto);
+    }
+    @Override
+    public AllAlarmInfoLogVO alarmCountChart(LampInfoLogDTO dto){
+        return lampInfoLogDao.alarmCountChart(dto);
+    }
+    @Override
+    public LampInfoLogDTO getOne(Integer lampId){
+        return lampInfoLogDao.getOne(lampId);
+    }
 }

+ 4 - 0
src/main/java/com/welampiot/service/impl/LampPoleServiceImpl.java

@@ -639,4 +639,8 @@ public class LampPoleServiceImpl implements LampPoleService {
     public LampPoleDTO getSimpleOne(LampPoleDTO dto){
         return lampPoleDao.getSimpleOne(dto);
     }
+    @Override
+    public List<LampPoleDTO> getLampPoleLocation(LampPoleDTO dto){
+        return lampPoleDao.getLampPoleLocation(dto);
+    }
 }

+ 29 - 16
src/main/java/com/welampiot/service/impl/LampServiceImpl.java

@@ -693,23 +693,28 @@ public class LampServiceImpl implements LampService {
     @Override
     public LampInfoDTO getLampOfLampPoleById(Integer lampPoleId, Integer lampId) {
         LampInfoDTO lampInfoDTO = lampDao.getLampOfLampPoleById(lampPoleId, lampId);
-        String workTimeTotal = lampInfoDTO.getWorkTimeTotal();
-        int workTime = Integer.parseInt(workTimeTotal);
-        int hour = workTime / 60;
-        int min = workTime % 60;
-        String hourStr,minStr;
-        if (hour < 10) {
-            hourStr = "0" + hour;
-        } else {
-            hourStr = hour + "";
-        }
-        if (min < 10) {
-            minStr = "0" + min;
-        } else {
-            minStr = min + "";
+        if (lampInfoDTO != null){
+            String workTimeTotal = lampInfoDTO.getWorkTimeTotal();
+            int workTime = Integer.parseInt(workTimeTotal);
+            int hour = workTime / 60;
+            int min = workTime % 60;
+            String hourStr,minStr;
+            if (hour < 10) {
+                hourStr = "0" + hour;
+            } else {
+                hourStr = hour + "";
+            }
+            if (min < 10) {
+                minStr = "0" + min;
+            } else {
+                minStr = min + "";
+            }
+            workTimeTotal = hourStr + ":" + minStr;
+            lampInfoDTO.setWorkTimeTotal(workTimeTotal);
+        }else {
+            lampInfoDTO = new LampInfoDTO();
         }
-        workTimeTotal = hourStr + ":" + minStr;
-        lampInfoDTO.setWorkTimeTotal(workTimeTotal);
+
         return lampInfoDTO;
     }
 
@@ -790,4 +795,12 @@ public class LampServiceImpl implements LampService {
     public List<LampInfoDTO>getLampJoinLogList(Integer id){
         return lampDao.getLampJoinLogList(id);
     }
+    @Override
+    public List<LampInfoDTO>getLampLocaltion(LampInfoDTO dto){
+        return lampDao.getLampLocaltion(dto);
+    }
+    @Override
+    public LampInfoDTO getLampById(Integer id){
+        return lampDao.getLampById(id);
+    }
 }

+ 4 - 0
src/main/java/com/welampiot/service/impl/ScreenServiceImpl.java

@@ -276,4 +276,8 @@ public class ScreenServiceImpl implements ScreenService {
     public ScreenDTO getOneScreenByLampPoleId(Integer lampPoleId){
         return screenDao.getOneScreenByLampPoleId(lampPoleId);
     }
+    @Override
+    public ScreenDTO getScreenAndProgram(Integer lampPoleId){
+        return screenDao.getScreenAndProgram(lampPoleId);
+    }
 }

+ 12 - 0
src/main/java/com/welampiot/service/impl/TrailInfoServiceImpl.java

@@ -31,4 +31,16 @@ public class TrailInfoServiceImpl implements TrailInfoService {
     public List<TrailInfoDTO> getSmailListByVideoId(Integer videoId) {
         return trailInfoDao.getSmailListByVideoId(videoId);
     }
+    @Override
+    public List<TrailInfoDTO> getList(Integer id){
+        return trailInfoDao.getList(id);
+    }
+    @Override
+    public  TrailInfoDTO getSmaiListById(Integer id){
+        return trailInfoDao.getSmaiListById(id);
+    }
+    @Override
+    public TrailInfoDTO getSmaiList(Integer id){
+        return trailInfoDao.getSmaiListById(id);
+    }
 }

+ 8 - 0
src/main/java/com/welampiot/service/impl/VideoCarServiceImpl.java

@@ -31,4 +31,12 @@ public class VideoCarServiceImpl implements VideoCarService {
     public List<VideoCarDTO> getVideoCarListByVideoId(Integer videoId) {
         return videoCarDao.getVideoCarListByVideoId(videoId);
     }
+    @Override
+    public List<VideoCarDTO> getList(Integer id){
+        return videoCarDao.getList(id);
+    }
+    @Override
+    public Integer getTotal(VideoCarDTO dto){
+        return videoCarDao.getTotal(dto);
+    }
 }

+ 8 - 0
src/main/java/com/welampiot/service/impl/VideoFaceServiceImpl.java

@@ -26,4 +26,12 @@ public class VideoFaceServiceImpl implements VideoFaceService {
     public List<VideoFaceDTO> getVideoFaceListByVideoId(Integer videoId) {
         return videoFaceDao.getVideoFaceListByVideoId(videoId);
     }
+    @Override
+    public List<VideoFaceDTO> getList(Integer id){
+        return videoFaceDao.getList(id);
+    }
+    @Override
+    public Integer getTotal(VideoFaceDTO dto){
+        return videoFaceDao.getTotal(dto);
+    }
 }

+ 4 - 0
src/main/java/com/welampiot/service/impl/VideoMonitorServiceImpl.java

@@ -159,4 +159,8 @@ public class VideoMonitorServiceImpl implements VideoMonitorService {
     public VideoMonitorDTO geteMonitorData(Integer lampPoleId){
         return videoMonitorDao.geteMonitorData(lampPoleId);
     }
+    @Override
+    public VideoMonitorDTO getOneData(Integer lampPoleId){
+        return videoMonitorDao.getOneData(lampPoleId);
+    }
 }

+ 4 - 0
src/main/java/com/welampiot/service/impl/WifiInfoLogServiceImpl.java

@@ -57,4 +57,8 @@ public class WifiInfoLogServiceImpl implements WifiInfoLogService {
     public List<WifiInfoLogDTO> getWifiLog(HashMap<String,Object> hashMap){
         return wifiInfoLogDao.getWifiLog(hashMap);
     }
+    @Override
+    public List<WifiInfoLogDTO> getList(WifiInfoLogDTO dto){
+        return wifiInfoLogDao.getList(dto);
+    }
 }

+ 5 - 5
src/main/java/com/welampiot/utils/ToolUtils.java

@@ -1600,8 +1600,8 @@ System.out.println(res);
         String url = "http://"+ToolUtils.gbHost+":8060/index/api/getMediaList?secret=weclouds123";
         if (res == null) res = this.sendHttp("get",url,null,5,null,null);
         JSONObject parseObject = JSON.parseObject(res);
-
-        gbId = String.format("%08x", gbId);
+        int number = Integer.parseInt(gbId);
+        gbId = String.format("%08x", number);
         String address = "";
         if (gbAddress.equals("34020000001320000120")) gbId = "55667788";
         if (parseObject != null && parseObject.getInteger("code") != null && parseObject.getInteger("code") == 0){
@@ -1617,21 +1617,21 @@ System.out.println(res);
                 }
             }
             if (flag == 1){
-                this.setLog("get_gb_play_address.txt",gbAddress+" old address "+this.getUser().getUsername());
+                //this.setLog("get_gb_play_address.txt",gbAddress+" old address "+this.getUser().getUsername());
                 if (vType == null || vType.isEmpty()){
                     address = "https://gb.lampmind.com:8087/gb3/rtp/"+gbId.toUpperCase()+".live.flv";
                 }else {
                     address = "https://gb.lampmind.com:8087/gb3/rtp/"+gbId.toUpperCase()+"/hls.m3u8";
                 }
             }else {
-                this.setLog("get_gb_play_address.txt",gbAddress+" new address--- "+this.getUser().getUsername());
+                //this.setLog("get_gb_play_address.txt",gbAddress+" new address--- "+this.getUser().getUsername());
                 GbPlayDTO oneData = gbPlayService.getOneData(gbAddress);
                 long currentTimeMillis = System.currentTimeMillis();
                 long seconds = currentTimeMillis / 1000;
                 if (oneData == null || seconds - oneData.getTime() > 5){
                     Integer id =  Integer.valueOf(gbAddress.substring(gbAddress.length() - 7));
                     String resUrl = "http://"+ToolUtils.gbHost+":8089/api/play/"+gbAddress+"/"+gbAddress+"/"+id;
-                    String res2 = this.sendHttp("get", resUrl, null, 5, null, null);
+                    String res2 = this.sendHttp("get", resUrl, null, 10, null, null);
                     JSONObject jsonObject = JSON.parseObject(res2);
 
                     if (oneData == null){

+ 5 - 2
src/main/java/com/welampiot/vo/AllAlarmInfoLogVO.java

@@ -1,6 +1,5 @@
 package com.welampiot.vo;
 
-import com.welampiot.dto.AllAlarmInfoLogDTO;
 import lombok.Data;
 
 import java.util.List;
@@ -24,7 +23,11 @@ public class AllAlarmInfoLogVO {
     private Integer provinceId;
     private String alarmType;
     private String path;
-    private List<AllAlarmInfoLogDTO> list;
+//    private List<AllAlarmInfoLogDTO> list;
+    private List<?> list;
     private Integer handling;
     private Integer unAssigned;
+    private Integer type;
+    private String area;
+    private Integer alarmCount;
 }

+ 2 - 0
src/main/java/com/welampiot/vo/LampInfoVO.java

@@ -43,4 +43,6 @@ public class LampInfoVO {
     private String sectionName; // 设备路段信息
     private LampInfoDTO dev1; // 设备1
     private LampInfoDTO dev2; // 设备2
+    private List<List<LampInfoDTO>> group;
+    private List<LampInfoDTO> other;
 }

+ 1 - 1
src/main/java/com/welampiot/vo/LampPoleDataVO.java

@@ -48,7 +48,7 @@ public class LampPoleDataVO implements Serializable {
     private ScreenDTO screenData; // 屏幕数据
     private LampPoleDTO oneKeyData; // 一键报警数据
     private ChargeDTO chargeData; // 充电桩数据
-    private EnvmonitorDTO weatherData; // 气象站数据
+    private EnvmonitorInfoLogDTO weatherData; // 气象站数据
     private BroadcastDTO broadcastData; // 广播音柱数据
     private ManholeDTO tiltDevData; // 倾斜监测数据
     private LightStripDevDTO lightStripData; // 灯带数据

+ 1 - 0
src/main/java/com/welampiot/vo/LampVO.java

@@ -44,6 +44,7 @@ public class LampVO implements Serializable {
     private Integer loopId;
 
     private String lampId;
+    private Integer status;
 
     @NotNull
     @Contract("_ -> param1")

+ 18 - 0
src/main/java/com/welampiot/vo/NetworkWeather.java

@@ -0,0 +1,18 @@
+package com.welampiot.vo;
+
+import lombok.Data;
+
+@Data
+public class NetworkWeather {
+    //网络返回数据
+    private String weatherType;
+    private String code;
+    private Integer tmp;
+    private String sr;
+    private String ss;
+    private String dateStr;
+    private String date;
+    private String maxTmp;
+    private String minTmp;
+
+}

+ 74 - 0
src/main/resources/mapper/AllAlarmInfoLogMapper.xml

@@ -936,4 +936,78 @@
         values
             (#{lampId},#{strAlarmType},#{updateTime},#{devType},#{dType},#{source},#{level},#{alarmStatus})
     </insert>
+    
+    <select id="getCountBySection" parameterType="AllAlarmInfoLogVO" resultType="AllAlarmInfoLogVO">
+        SELECT count(AI.id) as total FROM all_alarm_info_log AI
+    			LEFT JOIN lampinfo as L ON L.id = AI.lampid
+            LEFT JOIN section as S ON L.sectionid = S.id
+        WHERE AI.status != 2
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            AND L.sectionid in
+            <foreach collection="sectionList"
+                     item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+    
+    <select id="alarmTOP" parameterType="AllAlarmInfoLogVO" resultType="AllAlarmInfoLogVO">
+        <choose>
+            <when test="type == 0">
+                SELECT area,alarmCount FROM (SELECT
+                <choose>
+                    <when test="version == 0">
+                        GL.chinese_name as area,
+                    </when>
+                    <when test="version == 1">
+                        GL.english_name as area,
+                    </when>
+                    <otherwise>
+                        GL.ru_name as area,
+                    </otherwise>
+                </choose>
+                 count(AI.id) AS alarmCount FROM all_alarm_info_log AS AI
+                LEFT JOIN lampinfo AS L ON L.id = AI.lampid
+                LEFT JOIN section AS S ON S.id = L.sectionid
+                LEFT JOIN global_location AS GL ON GL.id = S.pid
+                WHERE AI.status != 2
+                <if test="sectionList != null and !sectionList.isEmpty()">
+                    AND S.id in
+                    <foreach item="vo" collection="sectionList" open="(" separator="," close=")">
+                        #{vo}
+                    </foreach>
+                </if>
+                GROUP BY S.pid) AS G ORDER BY alarmCount DESC,area ASC LIMIT 5
+            </when>
+            <otherwise>
+                SELECT area,alarmCount FROM (SELECT
+                <choose>
+                    <when test="version == 0">
+                        GL.chinese_name as area,
+                    </when>
+                    <when test="version == 1">
+                        GL.english_name as area,
+                    </when>
+                    <otherwise>
+                        GL.ru_name as area,
+                    </otherwise>
+                </choose>
+                count(AI.id) AS alarmCount FROM all_alarm_info_log AS AI
+                LEFT JOIN lampinfo AS L ON L.id = AI.lampid
+                LEFT JOIN section AS S ON S.id = L.sectionid
+                LEFT JOIN global_location AS GL ON GL.id = S.pid
+                WHERE AI.status != 2
+                <if test="sectionList != null and !sectionList.isEmpty()">
+                    AND S.id in
+                    <foreach item="vo" collection="sectionList" open="(" separator="," close=")">
+                        #{vo}
+                    </foreach>
+                </if>
+                GROUP BY S.pid) AS G ORDER BY alarmCount DESC,area ASC LIMIT 1
+            </otherwise>
+        </choose>
+
+    </select>
+
+
 </mapper>

+ 5 - 0
src/main/resources/mapper/ChargeMapper.xml

@@ -303,4 +303,9 @@
         from charge
         where lamp_pole_id = #{lampPoleId} order by id desc
     </select>
+
+    <select id="getOne" resultType="ChargeDTO" parameterType="Integer">
+        select free,duration,equipmentElectricity,connectorNum
+        from charge where lamp_pole_id = #{lampPoleId}
+    </select>
 </mapper>

+ 5 - 0
src/main/resources/mapper/EnvmonitorInfoLogMapper.xml

@@ -225,4 +225,9 @@
         where envmonitorid = #{envmonitorId};
     </delete>
 
+    <select id="getOne" resultType="EnvmonitorInfoLogDTO" parameterType="integer">
+         select humidity,temperature,PM100,noise,PM25,PM10,illumination,windSpeed,rainfall,radiation,windDire,co2,co,atmospressue,tsp
+         from envmonitor_info_log
+         where envmonitorid = #{envmonitorId} order by updatetime DESC limit 1
+    </select>
 </mapper>

+ 6 - 0
src/main/resources/mapper/EnvmonitorMapper.xml

@@ -668,4 +668,10 @@
             </otherwise>
         </choose>
     </select>
+
+    <select id="getOne" parameterType="integer" resultType="EnvmonitorDTO">
+        select id,areaid as areaId,weatherUpdatetime,netType,weatherInfo
+        from envmonitor
+        where lamp_pole_id = #{lampPoleId}
+    </select>
 </mapper>

+ 4 - 0
src/main/resources/mapper/GlobalLocationMapper.xml

@@ -393,4 +393,8 @@
         left join `section` S on S.pid = G.id
         where G.id = #{pid} and S.id = #{id}
     </select>
+
+    <select id="getLoction" resultType="GlobalLocationDTO">
+        select longitude,latitude
+    </select>
 </mapper>

+ 1 - 1
src/main/resources/mapper/GroupMapper.xml

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.welampiot.dao.GroupDao">
     <select id="getListBySection" parameterType="java.util.List" resultType="com.welampiot.dto.GroupDTO">
-        select id,name from `group`
+        select id,name,lampid as lampId from `group`
         <if test="sectionList != null and !sectionList.isEmpty()">
             where sectionid in
             <foreach item="vo" collection="sectionList" open="(" separator="," close=")">

+ 79 - 0
src/main/resources/mapper/LampInfoLogMapper.xml

@@ -64,4 +64,83 @@
             and updatetime <![CDATA[ <= ]]> #{endDate}
         </if>
     </delete>
+    
+    <select id="getDayConsumption" resultType="LampInfoLogDTO" parameterType="LampInfoLogDTO">
+        select sum(day_gener_energy) as dayconsumption,sum(used_energy_total) as totalconsumption
+        from (select t1.day_gener_energy,t1.used_energy_total
+        from lamp_info_log as t1
+        join (select lampid,max(updatetime) as maxTime
+        from lamp_info_log group by lampid) as t2 on t1.lampid = t2.lampid AND t1.updatetime = t2.maxTime
+        join lampinfo as L on L.id = t1.lampid
+        <trim prefix="where" suffixOverrides="and|or">
+            <if test="sectionList != null and !sectionList.isEmpty()">
+                L.sectionid in
+                <foreach collection="sectionList"
+                         item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </trim>
+        )as LI
+    </select>
+    
+    <select id="consumptiontSatistics" resultType="LampInfoLogDTO" parameterType="LampInfoLogDTO">
+        SELECT sum(LI.day_gener_energy) as dayconsumption
+        FROM (SELECT t1.day_gener_energy
+              FROM lamp_info_log AS t1 JOIN (SELECT lampid,max(updatetime) AS maxTime
+                                             FROM lamp_info_log WHERE updatetime >= #{startDate} AND updatetime &lt;= #{endDate}
+                                                                GROUP BY lampid) AS t2 ON t1.lampid = t2.lampid AND t1.updatetime = t2.maxTime
+                  join lampinfo as L on L.id = t1.lampid
+           <trim prefix="WHERE" suffixOverrides="and|or">
+               <if test="sectionList != null and !sectionList.isEmpty()">
+                   L.sectionid in
+                   <foreach collection="sectionList"
+                            item="item" open="(" separator="," close=")">
+                       #{item}
+                   </foreach>
+               </if>
+           </trim>
+         )
+        AS LI
+    </select>
+
+    <select id="consumptionTOP" resultType="LampInfoLogDTO" parameterType="LampInfoLogDTO">
+        SELECT consumption,area,lampCount
+        FROM (SELECT sum(LI.used_energy_total) as consumption,LI.section as area,LI.lampcount as lampCount
+              FROM (SELECT L.sectionid,S.name as section,S.lampcount,t3.used_energy_total
+                    FROM lampinfo as L
+                        LEFT JOIN (SELECT t1.used_energy_total,t1.lampid
+                                   FROM lamp_info_log AS t1 JOIN (SELECT lampid,max(updatetime) AS maxTime
+                                                                  FROM lamp_info_log GROUP BY lampid) AS t2 ON t1.lampid = t2.lampid AND t1.updatetime = t2.maxTime) as t3 ON L.id = t3.lampid
+                        LEFT JOIN section as S ON L.sectionid = S.id
+                    <trim prefix="where" suffixOverrides="and|or">
+                        <if test="sectionList != null and !sectionList.isEmpty()">
+                            L.sectionid in
+                            <foreach collection="sectionList"
+                                     item="item" open="(" separator="," close=")">
+                                #{item}
+                            </foreach>
+                        </if>
+                    </trim>
+                   ) AS LI GROUP BY LI.sectionid) as G ORDER BY G.consumption DESC,G.area ASC LIMIT 5
+    </select>
+
+    <select id="alarmCountChart" parameterType="LampInfoLogDTO" resultType="AllAlarmInfoLogVO">
+        SELECT count(*) as total FROM all_alarm_info_log AS AI
+        LEFT JOIN lampinfo AS L ON L.id = AI.lampid
+        WHERE  AI.updatetime &lt;= #{endDate}
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            AND L.sectionid in
+            <foreach item="vo" collection="sectionList" open="(" separator="," close=")">
+                #{vo}
+            </foreach>
+        </if>
+    </select>
+    
+    <select id="getOne" resultType="LampInfoLogDTO">
+        select gridvolt,gridcurr,grid_active_power,gridPF,work_time_total,used_energy_total
+        from lamp_info_log
+        where lampid = #{lampId} order by updatetime DESC
+
+    </select>
 </mapper>

+ 27 - 2
src/main/resources/mapper/LampMapper.xml

@@ -588,7 +588,7 @@
         select count(l.id)
         from lampinfo l
         left join network n on l.networkid = n.id
-        where n.status = 1
+        where ((n.status = 1 and n.protocoltype != 11) or (n.protocoltype = 11 and l.online = 1 ))
         <if test="type != null and type == 2">
             and l.lamp_pole_id != 0
         </if>
@@ -611,7 +611,7 @@
         select count(l.id)
         from lampinfo l
         left join network n on l.networkid = n.id
-        where n.status = 1 and l.faultstatus != 0 and l.faultstatus != 128
+        where l.faultstatus != 0
         <if test="type != null and type == 2">
             and l.lamp_pole_id != 0
         </if>
@@ -1061,6 +1061,9 @@
                 #{vo}
             </foreach>
         </if>
+        <if test="status == 1">
+            and a.status = #{status}
+        </if>
     </select>
     <select id="getMapDataByVO" resultType="com.welampiot.dto.LampInfoDTO" parameterType="com.welampiot.vo.MapDataVO">
         select L.id,L.number,L.longitude,L.latitude,N.status as netStatus,
@@ -1347,4 +1350,26 @@
     <select id="getLampJoinLogList" parameterType="Integer" resultType="LampInfoDTO">
         select a.lighteness,a.usedEnergyTotal,a.power_save as powerSave,b.work_time_total as workTimeTotal,a.policy_type as policyType,a.policyid as policyId,a.number,a.id from lampinfo a left join lamp_info_log_new b on a.id = b.lampid where a.lamp_pole_id = #{id} order by a.id desc
     </select>
+    
+    <select id="getLampLocaltion" resultType="LampInfoDTO" parameterType="LampInfoDTO">
+        select id,longitude,latitude,number from lampinfo
+
+        <trim prefix="where" suffixOverrides="and|or">
+            <if test="lampPoleId == 0">
+                lamp_pole_id = #{lampPoleId} and
+            </if>
+            <if test="sectionList != null and !sectionList.isEmpty()">
+                 sectionid IN
+                <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </trim>
+    </select>
+
+    <select id="getLampById" resultType="LampInfoDTO">
+        select lighteness,colour_val as colourVal,power_save as powerSave,id,sectionid as sectionId
+        from lampinfo
+        where lamp_pole_id = #{id};
+    </select>
 </mapper>

+ 12 - 0
src/main/resources/mapper/LampPoleMapper.xml

@@ -1415,4 +1415,16 @@
             sn = #{sn} and
         </trim>
     </select>
+
+    <select id="getLampPoleLocation" parameterType="LampPoleDTO" resultType="LampPoleDTO">
+        select longitude,latitude from lamp_pole
+        <trim prefix="where" suffixOverrides="and|or">
+            <if test="sectionList != null and !sectionList.isEmpty()">
+                sectionid in
+                <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </trim>
+    </select>
 </mapper>

+ 6 - 0
src/main/resources/mapper/ScreenMapper.xml

@@ -248,4 +248,10 @@
         select num,light,status,netStatus,volume,playingid as playingId,maxLight,type,id
         from screen where lamp_pole_id = #{lampPoleId}
     </select>
+
+    <select id="getScreenAndProgram" resultType="ScreenDTO" parameterType="integer">
+        select S.width,S.height,P.name,S.type,S.num,S.netStatus
+        from screen as S left join program as P on S.playingid = P.id
+        where S.lamp_pole_id = #{lampPoleId}
+    </select>
 </mapper>

+ 19 - 0
src/main/resources/mapper/TrailInfoMapper.xml

@@ -21,4 +21,23 @@
         limit 1
     </select>
 
+    <select id="getList" resultType="TrailInfoDTO">
+        select T.updatetime as updateTime,S.name as location
+        from trail_info as T
+            left join video_monitor as V on T.videoid = V.id
+            left join section as S on S.id = V.sectionid
+        where T.smail >= 80 AND T.videoid = #{id} order by T.updatetime desc limit 5
+    </select>
+    
+    <select id="getSmaiListById" resultType="TrailInfoDTO">
+        select T.image as faceImage2,T.smail,V.face_image as faceImage
+        from trail_info as T left join video_monitor as V on T.videoid = V.id
+        where T.videoid = #{id} order by T.smail desc limit 1
+    </select>
+
+    <select id="getSmaiList" resultType="TrailInfoDTO">
+        select T.image as faceImage2,T.smail,V.face_image as faceImage
+        from trail_info as T left join video_monitor as V on T.videoid = V.id
+        where T.videoid = #{id} order by T.updatetime desc limit 1
+    </select>
 </mapper>

+ 11 - 0
src/main/resources/mapper/VideoCarMapper.xml

@@ -18,4 +18,15 @@
         order by vc.updatetime desc
     </select>
 
+    <select id="getList" resultType="VideoCarDTO">
+        select carNumber,image
+        from video_car
+        where videoid = #{id} order by updatetime DESC limit 6
+    </select>
+
+    <select id="getTotal" parameterType="VideoCarDTO" resultType="integer">
+        select count(*) as total
+        from video_car
+        where videoid = #{id} AND updatetime >= #{beginDate} AND updatetime &lt;= #{endDate}
+    </select>
 </mapper>

+ 11 - 0
src/main/resources/mapper/VideoFaceMapper.xml

@@ -12,4 +12,15 @@
         where vf.videoid = #{videoId}
     </select>
 
+    <select id="getList" resultType="VideoFaceDTO" parameterType="integer">
+        select image,age,expression,gender
+        from video_face
+        where videoid = #{id} order by updatetime DESC limit 4
+    </select>
+
+    <select id="getTotal" resultType="integer" parameterType="VideoFaceDTO">
+        select count(*) as total
+        from video_face
+        where videoid = #{id} AND updatetime >= #{beginDate} AND updatetime &lt;= #{endDate}
+    </select>
 </mapper>

+ 6 - 0
src/main/resources/mapper/VideoMonitorMapper.xml

@@ -450,4 +450,10 @@
     <select id="geteMonitorData" resultType="VideoMonitorDTO" parameterType="Integer">
         select gb_address as gbAddress,id from video_monitor where lamp_pole_id = #{lampPoleId} and net_type = 1 order by id desc limit 1
     </select>
+    
+    <select id="getOneData" resultType="VideoMonitorDTO" parameterType="Integer">
+        select id,peopleCountTotal,manCount,womanCount,age1Count,age2Count,age3Count,age4Count,age5Count,age6Count,rtmpHd as videoPathHd,rtmp as videoPath,age7Count,carCountTotal,devid as devId,channel,face_image as faceImage,deviceType,hlsHd,gb_address as gbAddress,net_type as netType
+        from video_monitor
+        where lamp_pole_id = #{lampPoleId}
+    </select>
 </mapper>

+ 5 - 0
src/main/resources/mapper/WifiInfoLogMapper.xml

@@ -92,4 +92,9 @@
         where id = #{id} and updatetime >= #{startdate} and updatetime &lt;= #{enddate}
         order by updatetime desc
     </select>
+
+    <select id="getList" parameterType="WifiInfoLogDTO" resultType="WifiInfoLogDTO">
+        select device_count as deviceCount,flow,updatetime as updateTime
+        from wifi_info_log where wifiid = #{wifiId} AND updatetime &lt;= #{endDate} AND updatetime >= #{startDate} order by updatetime DESC
+    </select>
 </mapper>

+ 1 - 1
src/main/resources/mapper/WifiMapper.xml

@@ -313,7 +313,7 @@
     </select>
 
     <select id="getOneWifiByLampPoleId" parameterType="integer" resultType="WifiDTO">
-        select day_flow,id from wifi where lamp_pole_id = #{id}
+        select day_flow as dayFlow,id from wifi where lamp_pole_id = #{id}
     </select>
     
     <update id="updataWifiBySn" parameterType="WifiDTO">

+ 11 - 0
src/test/java/com/welampiot/service/UserServiceTest.java

@@ -10,6 +10,7 @@ import org.springframework.test.context.junit4.SpringRunner;
 
 import javax.annotation.Resource;
 import javax.sql.DataSource;
+import java.text.SimpleDateFormat;
 
 @RunWith(SpringRunner.class)
 @SpringBootTest
@@ -31,6 +32,16 @@ public class UserServiceTest {
     @Test
     public void testConnection() throws Exception {
 
+        long l = System.currentTimeMillis();
+        long time = 1702538451;
+        String index = String.valueOf(Math.floor((l - time * 1000) / 3600 / 1000));
+        // 给定的日期
+        String fxDate = "2023-12-14";
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd");
+
+
+
+        //System.out.println(s); // 输出: Hello, world!
         //schemaParamsterInterceptor.intercept()
 //        long l = System.currentTimeMillis() - (24L * 3600 * 30*1000);
 //        Date date = new Date(l);