zhj 2 роки тому
батько
коміт
b4e505c8f7
35 змінених файлів з 671 додано та 16 видалено
  1. 279 4
      src/main/java/com/welampiot/controller/BigScreenController.java
  2. 88 0
      src/main/java/com/welampiot/controller/MapController.java
  3. 1 0
      src/main/java/com/welampiot/controller/WeatherController.java
  4. 4 0
      src/main/java/com/welampiot/dao/AllAlarmInfoLogDao.java
  5. 4 0
      src/main/java/com/welampiot/dao/ChargeDao.java
  6. 2 0
      src/main/java/com/welampiot/dao/EmergencyInfoLogDao.java
  7. 4 0
      src/main/java/com/welampiot/dto/AllAlarmInfoLogDTO.java
  8. 14 1
      src/main/java/com/welampiot/dto/ChargeDTO.java
  9. 2 0
      src/main/java/com/welampiot/dto/EmergencyInfoLogDTO.java
  10. 4 0
      src/main/java/com/welampiot/dto/EnvmonitorDTO.java
  11. 1 0
      src/main/java/com/welampiot/dto/LampInfoDTO.java
  12. 2 0
      src/main/java/com/welampiot/dto/TrailInfoDTO.java
  13. 4 0
      src/main/java/com/welampiot/service/AllAlarmInfoLogService.java
  14. 6 0
      src/main/java/com/welampiot/service/ChargeService.java
  15. 5 3
      src/main/java/com/welampiot/service/EmergencyInfoLogService.java
  16. 1 0
      src/main/java/com/welampiot/service/LampService.java
  17. 10 0
      src/main/java/com/welampiot/service/impl/AllAlarmInfoLogServiceImpl.java
  18. 23 0
      src/main/java/com/welampiot/service/impl/ChargeServiceImpl.java
  19. 22 0
      src/main/java/com/welampiot/service/impl/EmergencyInfoLogServiceImpl.java
  20. 14 0
      src/main/java/com/welampiot/service/impl/LampServiceImpl.java
  21. 4 0
      src/main/java/com/welampiot/utils/WeatherUtil.java
  22. 3 0
      src/main/java/com/welampiot/vo/EnvmonitorInfoLogVO.java
  23. 1 1
      src/main/java/com/welampiot/vo/EnvmonitorVO.java
  24. 44 0
      src/main/java/com/welampiot/vo/LampDetailVO.java
  25. 1 0
      src/main/java/com/welampiot/vo/LampPoleDataVO.java
  26. 7 1
      src/main/java/com/welampiot/vo/LampPoleInfoVO.java
  27. 14 0
      src/main/resources/mapper/AllAlarmInfoLogMapper.xml
  28. 1 1
      src/main/resources/mapper/BroadcastMapper.xml
  29. 63 0
      src/main/resources/mapper/ChargeMapper.xml
  30. 8 0
      src/main/resources/mapper/EmergencyInfoLogMapper.xml
  31. 3 0
      src/main/resources/mapper/EmergencyMapper.xml
  32. 23 1
      src/main/resources/mapper/EnvmonitorMapper.xml
  33. 3 2
      src/main/resources/mapper/LampMapper.xml
  34. 1 1
      src/main/resources/mapper/TrailInfoMapper.xml
  35. 5 1
      src/main/resources/mapper/VideoMonitorMapper.xml

+ 279 - 4
src/main/java/com/welampiot/controller/BigScreenController.java

@@ -6,10 +6,7 @@ import com.welampiot.dto.*;
 import com.welampiot.service.*;
 import com.welampiot.utils.ToolUtils;
 import com.welampiot.utils.WeatherUtil;
-import com.welampiot.vo.LampInfoCacheByDayVO;
-import com.welampiot.vo.LampInfoVO;
-import com.welampiot.vo.LampPoleDataVO;
-import com.welampiot.vo.LampPoleInfoVO;
+import com.welampiot.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -64,6 +61,12 @@ public class BigScreenController {
     private WifiService wifiService;
     @Autowired
     private WifiInfoLogService wifiInfoLogService;
+    @Autowired
+    private EmergencyService emergencyService;
+    @Autowired
+    private BroadcastService broadcastService;
+    @Autowired
+    private AllAlarmInfoLogService allAlarmInfoLogService;
 
     /**
      * 用电量统计
@@ -370,4 +373,276 @@ public class BigScreenController {
         lampPoleDataVO.setWifiData(wifi);
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampPoleDataVO);
     }
+
+    /**
+     * 灯杆大屏灯杆视屏列表
+     * @param request sectionList
+     * @return 灯杆视屏列表
+     */
+    @RequestMapping(value = "/videoList", method = RequestMethod.POST)
+    public BaseResult<?> videoList(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer page = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer count = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer areaId = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer sectionId = (Integer) toolUtils.getRequestContent(request,"version",1);
+        if (page == 0) page = 1;
+        if (count == 0) count = 16;
+        VideoMonitorVO videoMonitorVO = new VideoMonitorVO();
+        videoMonitorVO.setLimit(count * (page - 1));
+        videoMonitorVO.setOffset(count);
+        videoMonitorVO.setAreaId(areaId);
+        videoMonitorVO.setSectionId(sectionId);
+        videoMonitorVO.setSectionList(toolUtils.getSectionList(request));
+        List<VideoMonitorDTO> list = videoMonitorService.getVideoListByVO(videoMonitorVO);
+        Integer videoTotal = videoMonitorService.getVideoTotal(videoMonitorVO);
+        VideoMonitorVO videoMonitorVO1 = new VideoMonitorVO();
+        videoMonitorVO1.setList(list);
+        videoMonitorVO1.setTotal(videoTotal);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,videoMonitorVO1);
+    }
+
+    /**
+     * 灯杆大屏视屏监控模块数据
+     * @param request 灯杆id
+     * @return 视屏监控模块数据
+     */
+    @RequestMapping(value = "/lampPoleVideoData", method = RequestMethod.POST)
+    public BaseResult<?> lampPoleVideoData(HttpServletRequest request) {
+        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);
+        // 监控数据
+        LampPoleDataVO lampPoleDataVO = new LampPoleDataVO();
+        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);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampPoleDataVO);
+    }
+
+    /**
+     * 灯杆大屏灯杆气象站列表
+     * @param request sectionList
+     * @return 灯杆气象站列表
+     */
+    @RequestMapping(value = "/weatherList", method = RequestMethod.POST)
+    public BaseResult<?> weatherList(HttpServletRequest request) throws Exception {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer page = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer count = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer areaId = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer sectionId = (Integer) toolUtils.getRequestContent(request,"version",1);
+        if (page == 0) page = 1;
+        if (count == 0) count = 16;
+        EnvmonitorVO envmonitorVO = new EnvmonitorVO();
+        envmonitorVO.setPage(count * (page - 1));
+        envmonitorVO.setCount(count);
+        envmonitorVO.setAreaId(areaId);
+        envmonitorVO.setSectionId(sectionId);
+        envmonitorVO.setSectionList(toolUtils.getSectionList(request));
+        List<EnvmonitorDTO> list = envmonitorService.getEnvmonitorListByVO(envmonitorVO);
+        for (EnvmonitorDTO dto : list) {
+            if (dto.getProvince() == null) dto.setProvince("");
+            if (dto.getCity() == null) dto.setCity("");
+            if (dto.getArea() == null) dto.setArea("");
+            if (dto.getSection() == null) dto.setSection("");
+            dto.setLocation(dto.getProvince() + dto.getCity() + dto.getArea() + dto.getSection());
+            Double longitude = dto.getLongitude();
+            Double latitude = dto.getLatitude();
+            if (longitude != null && latitude != null) {
+                WeatherDTO weatherInfo = WeatherUtil.getNowWeatherInfo(longitude.toString(), latitude.toString());
+                dto.setWeatherData(weatherInfo);
+            }
+        }
+        Integer total = envmonitorService.getEnvmonitorTotalByVO(envmonitorVO);
+        EnvmonitorVO envmonitorVO1 = new EnvmonitorVO();
+        envmonitorVO1.setList(list);
+        envmonitorVO1.setTotal(total);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,envmonitorVO1);
+    }
+
+    /**
+     * 灯杆大屏充电桩列表
+     * @param request sectionList
+     * @return 充电桩列表
+     */
+    @RequestMapping(value = "/chargeList", method = RequestMethod.POST)
+    public BaseResult<?> chargeList(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer page = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer count = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer areaId = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer sectionId = (Integer) toolUtils.getRequestContent(request,"version",1);
+        if (page == 0) page = 1;
+        if (count == 0) count = 16;
+        ChargeDTO chargeDTO = new ChargeDTO();
+        chargeDTO.setVersion(version);
+        chargeDTO.setPage(count * (page - 1));
+        chargeDTO.setCount(count);
+        chargeDTO.setAreaId(areaId);
+        chargeDTO.setSectionId(sectionId);
+        chargeDTO.setSectionList(toolUtils.getSectionList(request));
+        List<ChargeDTO> list = chargeService.getChargeListByDTO(chargeDTO);
+        Integer total = chargeService.getChargeTotalByDTO(chargeDTO);
+        ChargeVO chargeVO = new ChargeVO();
+        chargeVO.setList(list);
+        chargeVO.setTotal(total);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,chargeVO);
+    }
+
+    /**
+     * 灯杆大屏2数据
+     * @param request 灯杆id
+     * @return 灯杆数据
+     */
+    @RequestMapping(value = "/lampPoleData2", method = RequestMethod.POST)
+    public BaseResult<?> lampPoleData2(HttpServletRequest request) throws Exception {
+        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);
+        long startTime = System.currentTimeMillis() - 24L * 3600 * 1000 * 29;
+        long endTime = System.currentTimeMillis();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        DecimalFormat decimalFormat = new DecimalFormat("0.00");
+        String startDate = simpleDateFormat.format(startTime);
+        String endDate = simpleDateFormat.format(endTime);
+        LampInfoCacheByDayDTO dto = new LampInfoCacheByDayDTO();
+        dto.setLampPoleId(lampPoleId);
+        dto.setStartDate(startDate);
+        dto.setEndDate(endDate);
+
+        List<Object> dateList = new ArrayList<>();
+        List<Object> eleList = new ArrayList<>();
+        List<Object> saveList = new ArrayList<>();
+        HashMap<String, Integer> objectObjectHashMap = new HashMap<>();
+        long timeT = startTime;
+        int i = 0;
+        while (timeT <= endTime) {
+            objectObjectHashMap.put(simpleDateFormat.format(new Date(timeT)), i);
+            dateList.add(simpleDateFormat.format(new Date(timeT)));
+            eleList.add(0);
+            saveList.add(0);
+            timeT += 3600 * 1000 * 24;
+            i++;
+        }
+
+        List<LampInfoCacheByDayDTO> list = lampInfoCacheByDayService.getNearSaveAndEleList(dto);
+        for (LampInfoCacheByDayDTO dayDTO : 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);
+            }
+
+            // 用电量列表
+            if (dayDTO.getConSum() != null && !dayDTO.getConSum().equals("0") && integer != null) {
+                Float ele = Float.parseFloat(dto.getConSum());
+                eleList.set(integer,Float.parseFloat(decimalFormat.format(ele)));
+            }
+            // 省电量列表
+            if (dayDTO.getPowerSave() != null && !dayDTO.getPowerSave().equals("0") && integer != null) {
+                Float save = Float.parseFloat(dto.getPowerSave());
+                saveList.set(integer,Float.parseFloat(decimalFormat.format(save)));
+            }
+        }
+        lampInfoDTO.setUpdateTimeList(dateList);
+        lampInfoDTO.setPowerSaveList(saveList);
+        lampInfoDTO.setEnergyList(eleList);
+        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) {
+            WeatherDTO weatherInfo = WeatherUtil.getNowWeatherInfo(longitude.toString(), latitude.toString());
+            envmonitor.setWeatherData(weatherInfo);
+        }
+        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("");
+        lampPoleDataVO.setVideoData(video);
+        // 充电桩数据
+        ChargeDTO chargeDTO = chargeService.getChargeInfoByLampPoleId(lampPoleId);
+        lampPoleDataVO.setChargeData(chargeDTO);
+        // wifi数据
+        WifiDTO wifi = wifiService.getWifiByLampPoleId(lampPoleId);
+        lampPoleDataVO.setWifiData(wifi);
+        // 报警数据
+        EmergencyDTO emergency = emergencyService.getEmergencyByLampPoleId(lampPoleId);
+        lampPoleDataVO.setEmerData(emergency);
+        // 广播数据
+        BroadcastDTO broadcastDTO = broadcastService.getBroadcastDTOByLampPoleId(lampPoleId);
+        lampPoleDataVO.setBroadcastData(broadcastDTO);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampPoleDataVO);
+    }
+
+    /**
+     * 灯杆大屏运维管理
+     * @param request 灯杆id
+     * @return 运维管理
+     */
+    @RequestMapping(value = "/operation", method = RequestMethod.POST)
+    public BaseResult<?> operation(HttpServletRequest request) throws ParseException {
+        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);
+        String usedEnergyTotal = lampInfoDTO.getUsedEnergyTotal(); // 累计用电量
+        String createTime = lampInfoDTO.getCreateTime();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        long startTime = format.parse(createTime).getTime();
+        long now = System.currentTimeMillis();
+        long dayNumber = (now - startTime) / (1000 * 3600 * 24); // 运行天数
+        VideoMonitorDTO video = videoMonitorService.getVideoMonitorByLampPoleId(lampPoleId);
+        Integer carTotal,peopleTotal;
+        if (video != null) { // 总人流量,总车流量
+            carTotal = video.getCarCountTotal();
+            peopleTotal = video.getPeopleCountTotal();
+        } else {
+            carTotal = 0;
+            peopleTotal = 0;
+        }
+        WifiDTO wifi = wifiService.getWifiByLampPoleId(lampPoleId);
+        Integer wifiTotal;
+        if (wifi != null) { // 总WiFi连接次数
+            wifiTotal = wifi.getDeviceCount();
+        } else {
+            wifiTotal = 0;
+        }
+        Integer alarmTotal = allAlarmInfoLogService.getOneLampPoleAlarmTotal(lampPoleId); // 故障次数
+        List<AllAlarmInfoLogDTO> alarmList = allAlarmInfoLogService.getOneLampPoleAlarmList(lampPoleId);
+        LampPoleInfoVO lampPoleInfoVO = new LampPoleInfoVO();
+        lampPoleInfoVO.setRunDay((int) dayNumber);
+        lampPoleInfoVO.setTotalConsumption(usedEnergyTotal);
+        lampPoleInfoVO.setTotalFaultCount(alarmTotal);
+        lampPoleInfoVO.setTotalPeopleCount(peopleTotal);
+        lampPoleInfoVO.setTotalCarCount(carTotal);
+        lampPoleInfoVO.setTotalWifiLinkCount(wifiTotal);
+        lampPoleInfoVO.setAlarmList(alarmList);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampPoleInfoVO);
+    }
 }

+ 88 - 0
src/main/java/com/welampiot/controller/MapController.java

@@ -86,6 +86,8 @@ public class MapController{
     private LampInfoLogService lampInfoLogService;
     @Autowired
     private WifiService wifiService;
+    @Autowired
+    private EmergencyInfoLogService emergencyInfoLogService;
 
     @PostMapping("/getIlluminance")
     private BaseResult getIlluminance(HttpServletRequest request){
@@ -2121,4 +2123,90 @@ public class MapController{
         System.out.println("resCmd:" + resCmd);
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
     }
+
+    /**
+     * 一键报警历史列表
+     * @param request 设备序列号
+     * @return 一键报警历史列表
+     */
+    @RequestMapping(value = "/emergencyLogList", method = RequestMethod.POST)
+    public BaseResult<?> emergencyLogList(HttpServletRequest request) throws ParseException {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        String deviceId = (String) toolUtils.getRequestContent(request,"deviceId",2);
+        List<EmergencyInfoLogDTO> list = emergencyInfoLogService.getEmergencyListByDevNum(deviceId);
+        EnvmonitorInfoLogVO envmonitorInfoLogVO = new EnvmonitorInfoLogVO();
+        envmonitorInfoLogVO.setList(list);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,envmonitorInfoLogVO);
+    }
+
+    /**
+     * 照明设备信息
+     * @param request 灯杆id
+     * @return 照明设备信息
+     */
+    @RequestMapping(value = "/lampDeviceInfo", method = RequestMethod.POST)
+    public BaseResult<?> lampDeviceInfo(HttpServletRequest request) throws ParseException {
+        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);
+        // 用电量和省电量列表
+        long startTime = System.currentTimeMillis() - 24L * 3600 * 1000 * 29;
+        long endTime = System.currentTimeMillis();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        DecimalFormat decimalFormat = new DecimalFormat("0.00");
+        String startDate = simpleDateFormat.format(startTime);
+        String endDate = simpleDateFormat.format(endTime);
+        LampInfoCacheByDayDTO dto = new LampInfoCacheByDayDTO();
+        dto.setLampPoleId(lampPoleId);
+        dto.setStartDate(startDate);
+        dto.setEndDate(endDate);
+
+        List<Object> dateList = new ArrayList<>();
+        List<Object> eleList = new ArrayList<>();
+        List<Object> saveList = new ArrayList<>();
+        HashMap<String, Integer> objectObjectHashMap = new HashMap<>();
+        long timeT = startTime;
+        int i = 0;
+        while (timeT <= endTime) {
+            objectObjectHashMap.put(simpleDateFormat.format(new Date(timeT)), i);
+            dateList.add(simpleDateFormat.format(new Date(timeT)));
+            eleList.add(0);
+            saveList.add(0);
+            timeT += 3600 * 1000 * 24;
+            i++;
+        }
+
+        List<LampInfoCacheByDayDTO> list = lampInfoCacheByDayService.getNearSaveAndEleList(dto);
+        for (LampInfoCacheByDayDTO dayDTO : 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);
+            }
+
+            // 用电量列表
+            if (dayDTO.getConSum() != null && !dayDTO.getConSum().equals("0") && integer != null) {
+                Float ele = Float.parseFloat(dto.getConSum());
+                eleList.set(integer,Float.parseFloat(decimalFormat.format(ele)));
+            }
+            // 省电量列表
+            if (dayDTO.getPowerSave() != null && !dayDTO.getPowerSave().equals("0") && integer != null) {
+                Float save = Float.parseFloat(dto.getPowerSave());
+                saveList.set(integer,Float.parseFloat(decimalFormat.format(save)));
+            }
+        }
+
+        LampInfoDTO lampInfoDTO1 = new LampInfoDTO();
+        lampInfoDTO1.setSectionList(toolUtils.getSectionList(request));
+        lampInfoDTO1.setType(2);
+        LampDetailVO lampDetailVO = lampService.getLampCountByDTO(lampInfoDTO1);
+        BeanUtils.copyProperties(lampInfoDTO,lampDetailVO);
+        lampDetailVO.setUpdateTimeList(dateList);
+        lampDetailVO.setPowerSaveList(saveList);
+        lampDetailVO.setEnergyList(eleList);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampDetailVO);
+    }
 }

+ 1 - 0
src/main/java/com/welampiot/controller/WeatherController.java

@@ -260,6 +260,7 @@ public class WeatherController {
         if (page == 0) page = 1;
         if (count == 0) count = 16;
         EnvmonitorVO vo = new EnvmonitorVO();
+        vo.setVersion(version);
         vo.setPage(count * (page - 1));
         vo.setCount(count);
         vo.setAreaId(areaId);

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

@@ -48,4 +48,8 @@ public interface AllAlarmInfoLogDao {
     List<AllAlarmInfoLogDTO> getAlarmOperationList(AllAlarmInfoLogVO vo);
 
     List<AllAlarmInfoLogDTO> getLampAlarmInfoList(AllAlarmInfoLogVO vo);
+
+    Integer getOneLampPoleAlarmTotal(@Param("lampPoleId") Integer lampPoleId);
+
+    List<AllAlarmInfoLogDTO> getOneLampPoleAlarmList(@Param("lampPoleId") Integer lampPoleId);
 }

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

@@ -44,4 +44,8 @@ public interface ChargeDao {
     Integer checkChargeData(ChargeDTO chargeDTO);
 
     ChargeDTO getTotalChargeEleAndFree(ChargeDTO dto);
+
+    List<ChargeDTO> getChargeListByDTO(ChargeDTO dto);
+
+    Integer getChargeTotalByDTO(ChargeDTO dto);
 }

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

@@ -25,4 +25,6 @@ public interface EmergencyInfoLogDao {
     List<EmergencyInfoLogDTO> getNowLogListByLampPoleId(@Param("lampPoleId") Integer lampPoleId);
 
     List<EmergencyInfoLogDTO> getHisLogListByLampPoleId(@Param("lampPoleId") Integer lampPoleId);
+
+    List<EmergencyInfoLogDTO> getEmergencyListByDevNum(@Param("num") String num);
 }

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

@@ -13,6 +13,7 @@ public class AllAlarmInfoLogDTO {
     private Integer lampId;
     private Integer status;
     private Integer alarmType;
+    private Integer alarmStatus;
     private Integer devType;
     private Integer dType;
     private Integer isSend;
@@ -27,4 +28,7 @@ public class AllAlarmInfoLogDTO {
     private String city;
     private String province;
     private Integer dayCount;
+    private String alarmInfo;
+    private String beginDate;
+    private String endDate;
 }

+ 14 - 1
src/main/java/com/welampiot/dto/ChargeDTO.java

@@ -118,6 +118,19 @@ public class ChargeDTO implements Serializable {
     /** 过期时间 **/
     private String expirationDate;
 
+    private String province;
+    private String city;
+    private String area;
+    private String section;
+    private String location;
+    private String userNumber;   // 用户编号
+    private String chargeCode;   // 充电编码
+    private String tradeInfo;    // 交易标识
+    private String surplusMoney; // 剩余金额
+    private String startChargeSeq; // 订单号
+
+    private Integer version;
+
     private String lampPoleName;
 
     private Integer timezone;
@@ -134,7 +147,7 @@ public class ChargeDTO implements Serializable {
 
     private Integer sectionId;
 
-    private List<Integer> sectionList;
+    private List<?> sectionList;
 
     private static final long serialVersionUID = 1L;
 }

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

@@ -28,4 +28,6 @@ public class EmergencyInfoLogDTO implements Serializable {
     private String section;
 
     private String updateTime;
+
+    private String time;
 }

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

@@ -209,7 +209,11 @@ public class EnvmonitorDTO implements Serializable {
     private Integer protocolType;
 
     private String area;
+    private String city;
+    private String province;
+    private String location;
 
+    private WeatherDTO weatherData;
     private List<WeatherDTO> weatherList;
     List<WeatherRS485DevInfoDTO> devList;
 

+ 1 - 0
src/main/java/com/welampiot/dto/LampInfoDTO.java

@@ -92,6 +92,7 @@ public class LampInfoDTO {
     private String startDate;
     private String endDate;
     private Integer total;
+    private List<Object> updateTimeList;
     private List<Object> dateList; // 日期列表
     private List<Object> energyList; // 用电量列表
     private List<Object> powerSaveList; // 省电量列表

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

@@ -30,4 +30,6 @@ public class TrailInfoDTO implements Serializable {
     private String location; // 路段名
 
     private String faceImage;
+
+    private Integer isAuto;
 }

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

@@ -47,4 +47,8 @@ public interface AllAlarmInfoLogService {
     List<AllAlarmInfoLogDTO> getAlarmOperationList(AllAlarmInfoLogVO vo);
 
     List<AllAlarmInfoLogDTO> getLampAlarmInfoList(AllAlarmInfoLogVO vo);
+
+    Integer getOneLampPoleAlarmTotal(Integer lampPoleId);
+
+    List<AllAlarmInfoLogDTO> getOneLampPoleAlarmList(Integer lampPoleId);
 }

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

@@ -3,6 +3,8 @@ package com.welampiot.service;
 import com.welampiot.dto.ChargeDTO;
 import com.welampiot.vo.ChargeVO;
 
+import java.util.List;
+
 /**
  * ClassName: ChargeService
  * Package: com.welampiot.service
@@ -30,4 +32,8 @@ public interface ChargeService {
     Integer checkChargeData(ChargeDTO chargeDTO);
 
     ChargeDTO getTotalChargeEleAndFree(ChargeDTO dto);
+
+    List<ChargeDTO> getChargeListByDTO(ChargeDTO dto);
+
+    Integer getChargeTotalByDTO(ChargeDTO dto);
 }

+ 5 - 3
src/main/java/com/welampiot/service/EmergencyInfoLogService.java

@@ -2,8 +2,8 @@ package com.welampiot.service;
 
 import com.welampiot.dto.EmergencyInfoLogDTO;
 import com.welampiot.vo.EmergencyInfoLogVO;
-import org.apache.ibatis.annotations.Param;
 
+import java.text.ParseException;
 import java.util.List;
 
 /**
@@ -22,7 +22,9 @@ public interface EmergencyInfoLogService {
 
     List<EmergencyInfoLogDTO> getHistoryEmergencyInfoLogList(EmergencyInfoLogVO vo);
 
-    List<EmergencyInfoLogDTO> getNowLogListByLampPoleId(@Param("lampPoleId") Integer lampPoleId);
+    List<EmergencyInfoLogDTO> getNowLogListByLampPoleId(Integer lampPoleId);
 
-    List<EmergencyInfoLogDTO> getHisLogListByLampPoleId(@Param("lampPoleId") Integer lampPoleId);
+    List<EmergencyInfoLogDTO> getHisLogListByLampPoleId(Integer lampPoleId);
+
+    List<EmergencyInfoLogDTO> getEmergencyListByDevNum(String num) throws ParseException;
 }

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

@@ -58,4 +58,5 @@ public interface LampService {
     int getOnlineCountByVO(LampVO lampVO);
     List<LampInfoDTO> getLampSectionAlarmCountTop(LampVO vo);
     LampInfoDTO getLampOfLampPoleById(Integer lampPoleId, Integer lampId);
+    LampDetailVO getLampCountByDTO(LampInfoDTO dto);
 }

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

@@ -197,4 +197,14 @@ public class AllAlarmInfoLogServiceImpl implements AllAlarmInfoLogService {
     public List<AllAlarmInfoLogDTO> getLampAlarmInfoList(AllAlarmInfoLogVO vo) {
         return allAlarmInfoLogDao.getLampAlarmInfoList(vo);
     }
+
+    @Override
+    public Integer getOneLampPoleAlarmTotal(Integer lampPoleId) {
+        return allAlarmInfoLogDao.getOneLampPoleAlarmTotal(lampPoleId);
+    }
+
+    @Override
+    public List<AllAlarmInfoLogDTO> getOneLampPoleAlarmList(Integer lampPoleId) {
+        return allAlarmInfoLogDao.getOneLampPoleAlarmList(lampPoleId);
+    }
 }

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

@@ -189,4 +189,27 @@ public class ChargeServiceImpl implements ChargeService {
     public ChargeDTO getTotalChargeEleAndFree(ChargeDTO dto) {
         return chargeDao.getTotalChargeEleAndFree(dto);
     }
+
+    @Override
+    public List<ChargeDTO> getChargeListByDTO(ChargeDTO dto) {
+        List<ChargeDTO> list = chargeDao.getChargeListByDTO(dto);
+        for (ChargeDTO chargeDTO : list) {
+            if (chargeDTO.getProvince() == null) chargeDTO.setProvince("");
+            if (chargeDTO.getCity() == null) chargeDTO.setCity("");
+            if (chargeDTO.getArea() == null) chargeDTO.setArea("");
+            if (chargeDTO.getSection() == null) chargeDTO.setSection("");
+            chargeDTO.setLocation(chargeDTO.getProvince() + chargeDTO.getCity() + chargeDTO.getArea() + chargeDTO.getSection());
+            chargeDTO.setStartChargeSeq("");
+            chargeDTO.setChargeCode("");
+            chargeDTO.setTradeInfo("");
+            chargeDTO.setUserNumber("");
+            chargeDTO.setSurplusMoney("");
+        }
+        return list;
+    }
+
+    @Override
+    public Integer getChargeTotalByDTO(ChargeDTO dto) {
+        return chargeDao.getChargeTotalByDTO(dto);
+    }
 }

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

@@ -7,6 +7,9 @@ import com.welampiot.vo.EmergencyInfoLogVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -47,4 +50,23 @@ public class EmergencyInfoLogServiceImpl implements EmergencyInfoLogService {
     public List<EmergencyInfoLogDTO> getHisLogListByLampPoleId(Integer lampPoleId) {
         return emergencyInfoLogDao.getHisLogListByLampPoleId(lampPoleId);
     }
+
+    @Override
+    public List<EmergencyInfoLogDTO> getEmergencyListByDevNum(String num) throws ParseException {
+        List<EmergencyInfoLogDTO> list = emergencyInfoLogDao.getEmergencyListByDevNum(num);
+        for (EmergencyInfoLogDTO dto : list) {
+            String beginDate = dto.getBeginDate();
+            String endDate = dto.getEndDate();
+            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            Date begin = format.parse(beginDate);
+            Date end = format.parse(endDate);
+            long diff = end.getTime() - begin.getTime();
+            long seconds = diff / 1000 % 60; // 秒
+            long minutes = diff / (1000 * 60) % 60; // 分
+            long hours = diff / (1000 * 60 * 60); // 时
+            String time = String.format("%02d:%02d:%02d",hours,minutes,seconds);
+            dto.setTime(time);
+        }
+        return list;
+    }
 }

+ 14 - 0
src/main/java/com/welampiot/service/impl/LampServiceImpl.java

@@ -713,6 +713,20 @@ public class LampServiceImpl implements LampService {
         return lampInfoDTO;
     }
 
+    @Override
+    public LampDetailVO getLampCountByDTO(LampInfoDTO dto) {
+        LampDetailVO lampDetailVO = new LampDetailVO();
+        Integer total = lampDao.getLampInstallTotalByDTO(dto);
+        Integer lightCount = lampDao.getLampLightTotalByDTO(dto);
+        Integer faultCount = lampDao.getLampFaultTotalByDTO(dto);
+        Integer onlineCount = lampDao.getLampOnlineTotalByDTO(dto);
+        lampDetailVO.setTotalCount(total);
+        lampDetailVO.setLightCount(lightCount);
+        lampDetailVO.setFaultCount(faultCount);
+        lampDetailVO.setOnlineCount(onlineCount);
+        return lampDetailVO;
+    }
+
     @Override
     public LampInfoLogNewDTO getComBySectionList(LampVO vo) {
         return lampDao.getComBySectionList(vo);

+ 4 - 0
src/main/java/com/welampiot/utils/WeatherUtil.java

@@ -70,9 +70,13 @@ public class WeatherUtil {
         String fxDate = object2.getString("fxDate"); // 更新日期
         String tempMax = object2.getString("tempMax"); // 当天最高气温
         String tempMin = object2.getString("tempMin"); // 当天最低气温
+        String sunrise = object2.getString("sunrise"); // 日出时间
+        String sunset = object2.getString("sunset");   // 日落时间
         weatherDTO.setTempMax(tempMax);
         weatherDTO.setTempMin(tempMin);
         weatherDTO.setUpdateTime(fxDate);
+        weatherDTO.setSunrise(sunrise);
+        weatherDTO.setSunset(sunset);
 
         // 实时空气指数
         url = "https://devapi.qweather.com/v7/air/now?location=" + longitude + "," + latitude +

+ 3 - 0
src/main/java/com/welampiot/vo/EnvmonitorInfoLogVO.java

@@ -1,5 +1,6 @@
 package com.welampiot.vo;
 
+import com.welampiot.dto.EmergencyInfoLogDTO;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -22,5 +23,7 @@ public class EnvmonitorInfoLogVO implements Serializable {
 
     private List<Object> dataAvgList;
 
+    private List<EmergencyInfoLogDTO> list;
+
     private static final long serialVersionUID = 1L;
 }

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

@@ -25,7 +25,7 @@ public class EnvmonitorVO implements Serializable {
     private String keyword;
     private Integer areaId;
     private Integer sectionId;
-    private List<String> sectionList;
+    private List<?> sectionList;
 
     private Integer deviceCount;
 

+ 44 - 0
src/main/java/com/welampiot/vo/LampDetailVO.java

@@ -0,0 +1,44 @@
+package com.welampiot.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * ClassName: LampDetailVO
+ * Package: com.welampiot.vo
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/9/12 - 16:48
+ * @Version: v1.0
+ */
+@Data
+public class LampDetailVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private Integer id;
+
+    private Integer totalCount;
+    private Integer faultCount;
+    private Integer lightCount;
+    private Integer onlineCount;
+
+    private String gridVolt;
+    private String girdCurr;
+    private String gridActivePower;
+    private String workTimeTotal;
+    private String usedEnergyTotal;
+    private String powerSave;
+    private String gridPF;
+    private Integer lighteness;
+    private String colourVal;
+    private Integer status;
+    private Integer controlType;
+
+    private List<Object> updateTimeList;
+    private List<Object> dateList; // 日期列表
+    private List<Object> energyList; // 用电量列表
+    private List<Object> powerSaveList; // 省电量列表
+}

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

@@ -52,4 +52,5 @@ public class LampPoleDataVO implements Serializable {
     private BroadcastDTO broadcastData; // 广播音柱数据
     private ManholeDTO tiltDevData; // 倾斜监测数据
     private LightStripDevDTO lightStripData; // 灯带数据
+    private EmergencyDTO emerData; // 报警数据
 }

+ 7 - 1
src/main/java/com/welampiot/vo/LampPoleInfoVO.java

@@ -49,6 +49,12 @@ public class LampPoleInfoVO {
     private Integer carRoadCount; // 车路协同数量
     private Integer cloudCount; // 云盒数量
     private List<OperationLogDTO> actionList; // 事件监控
-    private List<LampPoleDTO> alarmList; // 故障列表
+    private List<?> alarmList; // 故障列表
     private List<LampPoleDTO> lampPoleList; // 灯杆列表
+    private Integer runDay; // 运行天数
+    private String totalConsumption; // 总用电量
+    private Integer totalFaultCount; // 总故障次数
+    private Integer totalPeopleCount; // 总人流量
+    private Integer totalCarCount; // 总车流量
+    private Integer totalWifiLinkCount; // 总wifi连接次数
 }

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

@@ -877,4 +877,18 @@
         limit 100
     </select>
 
+    <!-- 单个灯杆故障次数 -->
+    <select id="getOneLampPoleAlarmTotal" resultType="Integer">
+        select count(*)
+        from all_alarm_info_log a
+        where a.devType = 1 and a.lampid = #{lampPoleId} and a.status != 2
+    </select>
+
+    <select id="getOneLampPoleAlarmList" resultType="Integer">
+        select a.id,a.stralarmtype as alarmInfo,a.status as alarmStatus,a.updatetime as beginDate,a.free_time as endDate
+        from all_alarm_info_log a
+        where a.devType = 1 and a.lampid = #{lampPoleId} and a.status != 2
+        order by a.updatetime desc
+    </select>
+
 </mapper>

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

@@ -95,7 +95,7 @@
 
     <select id="getBroadcastDTOByLampPoleId" resultType="BroadcastDTO">
         select b.lamp_pole_id,lp.sectionid as sectionId,b.id,b.itemId as proId,
-               b2.name as proName,b3.time
+               b2.name as proName,b3.time,b.online
         from broadcast b
         left join lamp_pole lp on lp.id = b.lamp_pole_id
         left join broadcast_pro_list b3 on b3.id = b.proId

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

@@ -217,4 +217,67 @@
         </if>
     </select>
 
+    <select id="getChargeListByDTO" resultType="ChargeDTO">
+        select
+            c.id,
+            c.current,
+            c.voltage,
+            c.free,
+            c.equipmentElectricity,
+            c.duration,
+            c.status
+            <choose>
+                <when test="version == 0">
+                    ,g1.chinese_name as area,g2.chinese_name as city,g3.chinese_name as province
+                </when>
+                <when test="version == 1">
+                    ,g1.english_name as area,g2.english_name as city,g3.english_name as province
+                </when>
+                <otherwise>
+                    ,g1.ru_name as area,g2.ru_name as city,g3.ru_name as province
+                </otherwise>
+            </choose>
+        from charge c
+        left join lamp_pole lp on lp.id = c.lamp_pole_id
+        left join section s on lp.sectionid = s.id
+        left join global_location g1 on s.pid = g1.id
+        left join global_location g2 on g1.pid = g2.id
+        left join global_location g3 on g2.pid = g3.id
+        where c.lamp_pole_id != 0
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and lp.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and lp.sectionid = #{sectionId}
+        </if>
+        <if test="areaId != null and areaId != 0">
+            and lp.areaid = #{areaId}
+        </if>
+        <if test="page >= 0 and count > 0">
+            limit #{page},#{count}
+        </if>
+    </select>
+
+    <select id="getChargeTotalByDTO" resultType="Integer">
+        select count(*)
+        from charge c
+        left join lamp_pole lp on lp.id = c.lamp_pole_id
+        where c.lamp_pole_id != 0
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and lp.sectionid in
+            <foreach collection="sectionList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and lp.sectionid = #{sectionId}
+        </if>
+        <if test="areaId != null and areaId != 0">
+            and lp.areaid = #{areaId}
+        </if>
+    </select>
+
 </mapper>

+ 8 - 0
src/main/resources/mapper/EmergencyInfoLogMapper.xml

@@ -87,4 +87,12 @@
         limit 20
     </select>
 
+    <select id="getEmergencyListByDevNum" resultType="EmergencyInfoLogDTO">
+        select e.id,e1.beginDate,e1.endDate
+        from emergency e
+        left join emergency_info_log e1 on e1.deviceid = e.id
+        where e.num = #{num}
+        order by e1.beginDate desc
+    </select>
+
 </mapper>

+ 3 - 0
src/main/resources/mapper/EmergencyMapper.xml

@@ -7,6 +7,9 @@
             e.id,
             e.num,
             e.model,
+            e.devType,
+            e.gb_address as gbAddress,
+            e.status,
             e.remarks,
             lp.sectionid as sectionId
         from

+ 23 - 1
src/main/resources/mapper/EnvmonitorMapper.xml

@@ -278,10 +278,27 @@
         eil.updatetime as updateTime,
         eil.humidity,
         eil.temperature,
+        eil.illumination,
+        eil.windSpeed,
+        eil.windDire,
         eil.noise,
         eil.PM10,
         eil.PM25,
-        eil.atmospressue
+        eil.atmospressue,
+        e.longitude,
+        e.latitude,
+        s.name as section
+        <choose>
+            <when test="version == 0">
+                ,g1.chinese_name as area,g2.chinese_name as city,g3.chinese_name as province
+            </when>
+            <when test="version == 1">
+                ,g1.english_name as area,g2.english_name as city,g3.english_name as province
+            </when>
+            <otherwise>
+                ,g1.ru_name as area,g2.ru_name as city,g3.ru_name as province
+            </otherwise>
+        </choose>
         from envmonitor e
         left join (
             SELECT t1.*
@@ -293,6 +310,11 @@
                          GROUP BY envmonitorid ) t2
         ON t1.envmonitorid = t2.envmonitorid
         AND t1.updatetime = t2.maxDateTime) as eil on e.id = eil.envmonitorid
+        left join lamp_pole lp on e.lamp_pole_id = lp.id
+        left join section s on lp.sectionid = s.id
+        left join global_location g1 on s.pid = g1.id
+        left join global_location g2 on g1.pid = g2.id
+        left join global_location g3 on g2.pid = g3.id
         where e.lamp_pole_id = 0 and e.type = 0
         <if test="sectionList != null and !sectionList.isEmpty()">
             and e.sectionid in

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

@@ -1105,11 +1105,12 @@
 
     <!-- 智诺云·智慧灯杆-设备组件:灯控设备组件 -->
     <select id="getLampOfLampPoleById" resultType="lampInfoDTO">
-        select l.id as lampId,l2.gridvolt as gridVolt,l2.gridcurr as gridCurr,
+        select l.id as lampId,l2.gridvolt as gridVolt,l2.gridcurr as gridCurr,l.id,lp.createtime as createTime,
                l2.grid_active_power as gridActivePower,l2.gridPF,l2.work_time_total as workTimeTotal,
                l2.total_gener_energy_cache as usedEnergyTotal,l2.total_ele_save_cache as powerSave,
-               p.name as policyName,l.lighteness,l.colour_val as colourVal
+               p.name as policyName,l.lighteness,l.colour_val as colourVal,l.status,l.control_type as controlType
         from lampinfo l
+        left join lamp_pole lp on l.lamp_pole_id = lp.id
         left join lamp_info_log_new l2 on l2.lampid = l.id
         left join policy p on p.id = l.policyid
         where l.lamp_pole_id = #{lampPoleId}

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

@@ -13,7 +13,7 @@
     </select>
 
     <select id="getSmailListByVideoId" resultType="TrailInfoDTO">
-        select t.image,vm.face_image as faceImage,t.smail
+        select t.image,vm.face_image as faceImage,t.smail,vm.is_auto as isAuto
         from trail_info t
         left join video_monitor vm on vm.id = t.videoid
         where t.videoid = #{videoId}

+ 5 - 1
src/main/resources/mapper/VideoMonitorMapper.xml

@@ -226,7 +226,11 @@
             v.image,
             v.deviceType,
             v.devid as devId,
-            v.netStatus
+            v.netStatus,
+            v.rtmp,
+            v.rtmpHd,
+            v.hlsHd,
+            v.channel
         from video_monitor v
         where 1=1
         <if test="sectionList != null and !sectionList.isEmpty()">