Просмотр исходного кода

智慧灯杆:灯杆相关数据、新建分组选择灯杆、RS485设备信息列表、云盒sn批量授权接口

zhj 2 лет назад
Родитель
Сommit
ade49940e6
37 измененных файлов с 714 добавлено и 54 удалено
  1. 75 0
      src/main/java/com/welampiot/common/DevInfoEnum.java
  2. 59 4
      src/main/java/com/welampiot/controller/LampController.java
  3. 41 14
      src/main/java/com/welampiot/controller/LampPoleController.java
  4. 39 34
      src/main/java/com/welampiot/controller/NewLampPoleController.java
  5. 17 0
      src/main/java/com/welampiot/dao/EmergencyDao.java
  6. 2 0
      src/main/java/com/welampiot/dao/EnvmonitorDao.java
  7. 1 0
      src/main/java/com/welampiot/dao/GroupDao.java
  8. 2 0
      src/main/java/com/welampiot/dao/LampPoleDao.java
  9. 18 0
      src/main/java/com/welampiot/dao/LampPoleSnDao.java
  10. 2 0
      src/main/java/com/welampiot/dao/ScreenDao.java
  11. 51 0
      src/main/java/com/welampiot/dto/EmergencyDTO.java
  12. 2 0
      src/main/java/com/welampiot/dto/EnvmonitorDTO.java
  13. 1 0
      src/main/java/com/welampiot/dto/LampPoleDTO.java
  14. 23 0
      src/main/java/com/welampiot/dto/LampPoleSnDTO.java
  15. 16 0
      src/main/java/com/welampiot/service/EmergencyService.java
  16. 2 0
      src/main/java/com/welampiot/service/EnvmonitorService.java
  17. 1 0
      src/main/java/com/welampiot/service/GroupService.java
  18. 2 0
      src/main/java/com/welampiot/service/LampPoleService.java
  19. 18 0
      src/main/java/com/welampiot/service/LampPoleSnService.java
  20. 2 0
      src/main/java/com/welampiot/service/ScreenService.java
  21. 27 0
      src/main/java/com/welampiot/service/impl/EmergencyServiceImpl.java
  22. 5 0
      src/main/java/com/welampiot/service/impl/EnvmonitorServiceImpl.java
  23. 5 0
      src/main/java/com/welampiot/service/impl/GroupServiceImpl.java
  24. 10 0
      src/main/java/com/welampiot/service/impl/LampPoleServiceImpl.java
  25. 32 0
      src/main/java/com/welampiot/service/impl/LampPoleSnServiceImpl.java
  26. 5 0
      src/main/java/com/welampiot/service/impl/ScreenServiceImpl.java
  27. 30 0
      src/main/java/com/welampiot/utils/ToolUtils.java
  28. 33 0
      src/main/java/com/welampiot/vo/DevEnumVO.java
  29. 28 0
      src/main/java/com/welampiot/vo/LampPoleDataVO.java
  30. 2 1
      src/main/resources/mapper/ChargeMapper.xml
  31. 17 0
      src/main/resources/mapper/EmergencyMapper.xml
  32. 27 0
      src/main/resources/mapper/EnvmonitorMapper.xml
  33. 9 0
      src/main/resources/mapper/GroupMapper.xml
  34. 58 0
      src/main/resources/mapper/LampPoleMapper.xml
  35. 19 0
      src/main/resources/mapper/LampPoleSnMapper.xml
  36. 25 0
      src/main/resources/mapper/ScreenMapper.xml
  37. 8 1
      src/main/resources/mapper/WifiMapper.xml

+ 75 - 0
src/main/java/com/welampiot/common/DevInfoEnum.java

@@ -0,0 +1,75 @@
+package com.welampiot.common;
+
+/**
+ * ClassName: DevInfoEnum
+ * Package: com.welampiot.common
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/1 - 16:40
+ * @Version: v1.0
+ */
+public enum DevInfoEnum {
+    LOUVER_BOX6(1,"百叶箱 X 6","Louver box X 6","жалюзийная коробка X 6","030000000D"),
+    LOUVER_BOX10(6,"百叶箱 X 10","Louver box X 10","жалюзийная коробка X 10","030000000D"),
+    WIND_DIRECTION(2,"风向","Wind direction","направление ветра","0300000001"),
+    WIND_SPEED(3,"风速","Wind speed","скорость ветра","0300000001"),
+    RAINFALL(4,"雨量","Rainfall","осадки","0301050001"),
+    SOLAR_RADIATION(5,"太阳辐射","Solar radiation","солнечное излучение","0300000001"),
+    SOLAR_WIND_SPEED_DIRT(7,"超声波风速风向","Solar Wind speed and direction","направление ветра","0300000002"),
+    ;
+
+    private Integer id;
+    private String nameCh;
+    private String nameEn;
+    private String nameRu;
+    private String cmd;
+
+    DevInfoEnum(Integer id, String nameCh, String nameEn, String nameRu, String cmd) {
+        this.id = id;
+        this.nameCh = nameCh;
+        this.nameEn = nameEn;
+        this.nameRu = nameRu;
+        this.cmd = cmd;
+    }
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getNameCh() {
+        return nameCh;
+    }
+
+    public void setNameCh(String nameCh) {
+        this.nameCh = nameCh;
+    }
+
+    public String getNameEn() {
+        return nameEn;
+    }
+
+    public void setNameEn(String nameEn) {
+        this.nameEn = nameEn;
+    }
+
+    public String getNameRu() {
+        return nameRu;
+    }
+
+    public void setNameRu(String nameRu) {
+        this.nameRu = nameRu;
+    }
+
+    public String getCmd() {
+        return cmd;
+    }
+
+    public void setCmd(String cmd) {
+        this.cmd = cmd;
+    }
+}

+ 59 - 4
src/main/java/com/welampiot/controller/LampController.java

@@ -18,10 +18,7 @@ import javax.servlet.http.HttpServletRequest;
 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.util.*;
 
 @RestController
 @CrossOrigin
@@ -45,6 +42,8 @@ public class LampController {
 
     @Autowired
     private SolarInfoLogService solarInfoLogService;
+    @Autowired
+    private LampPoleService lampPoleService;
 
     /**
      * 灯控列表
@@ -484,4 +483,60 @@ public class LampController {
         solarInfoLogVO.setTotalEle(totalEle);
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,solarInfoLogVO);
     }
+
+    /**
+     * 新建分组下选择灯杆
+     * @param request sectionList,groupId,sectionId,type
+     * @return 新建分组下选择灯杆
+     */
+    @RequestMapping(value = "/selectLampPole", method = RequestMethod.POST)
+    public BaseResult<?> lampPoleData(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer type = (Integer) toolUtils.getRequestContent(request,"type",1);
+        Integer groupId = (Integer) toolUtils.getRequestContent(request,"groupId",1);
+        List<LampPoleDTO> lampPoleList;
+        if (type == 1) { // 查询分组下的灯杆
+            if (groupId == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+            GroupDTO groupDTO = groupService.getGroupDTOById(groupId);
+            if (groupDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+            if (groupDTO.getDevType() == 0) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+            String lampId = groupDTO.getLampId();
+            List<String> lampIds = Arrays.asList(lampId.split(","));
+            lampPoleList = lampPoleService.getLampPoleByLampIds(lampIds);
+            lampPoleList.forEach(dto -> dto.setSelect(1));
+        } else { //根据路段查询灯杆,分组可选
+            Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
+            LampPoleVO lampPoleVO = new LampPoleVO();
+            lampPoleVO.setVersion(version);
+            lampPoleVO.setSectionList(toolUtils.getSectionList(request));
+            lampPoleVO.setSectionId(sectionId);
+            if (groupId == 0) {
+                lampPoleList = lampPoleService.getSectionLampPoleList(lampPoleVO);
+                lampPoleList.forEach(dto -> dto.setSelect(0));
+            } else {
+                GroupDTO groupDTO = groupService.getGroupDTOById(groupId);
+                if (groupDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+                if (groupDTO.getDevType() == 0) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+                lampPoleList = lampPoleService.getSectionLampPoleList(lampPoleVO);
+                String lampId = groupDTO.getLampId();
+                String[] lampIds = lampId.split(",");
+                for (LampPoleDTO l : lampPoleList) {
+                    boolean isFlag = false;
+                    for (String s : lampIds) {
+                        if (l.getId().equals(Integer.valueOf(s))) {
+                            l.setSelect(1);
+                            isFlag = true;
+                            break;
+                        }
+                    }
+                    if (!isFlag) {
+                        l.setSelect(0);
+                    }
+                }
+            }
+        }
+        LampPoleVO lampPoleVO = new LampPoleVO();
+        lampPoleVO.setList(lampPoleList);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampPoleVO);
+    }
 }

+ 41 - 14
src/main/java/com/welampiot/controller/LampPoleController.java

@@ -2,19 +2,10 @@ package com.welampiot.controller;
 
 import com.welampiot.common.BaseResult;
 import com.welampiot.common.InterfaceResultEnum;
-import com.welampiot.dto.LampInfoDTO;
-import com.welampiot.dto.LampPoleDTO;
-import com.welampiot.dto.ScreenDTO;
-import com.welampiot.dto.WifiDTO;
-import com.welampiot.service.LampPoleService;
-import com.welampiot.service.LampService;
-import com.welampiot.service.ScreenService;
-import com.welampiot.service.WifiService;
+import com.welampiot.dto.*;
+import com.welampiot.service.*;
 import com.welampiot.utils.ToolUtils;
-import com.welampiot.vo.LampPoleVO;
-import com.welampiot.vo.ListResponseVO;
-import com.welampiot.vo.ScreenDetailsVO;
-import com.welampiot.vo.ScreenVO;
+import com.welampiot.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
@@ -24,7 +15,6 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
-import java.text.ParseException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -54,6 +44,12 @@ public class LampPoleController {
     private WifiService wifiService;
     @Autowired
     private LampService lampService;
+    @Autowired
+    private EmergencyService emergencyService;
+    @Autowired
+    private ChargeService chargeService;
+    @Autowired
+    private EnvmonitorService envmonitorService;
 
     /**
      * 获取屏幕详情
@@ -181,7 +177,7 @@ public class LampPoleController {
      * @return 屏幕列表
      */
     @RequestMapping(value = "/screenList", method = RequestMethod.POST)
-    public BaseResult<?> screenList(HttpServletRequest request) throws ParseException {
+    public BaseResult<?> screenList(HttpServletRequest request) {
         Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
         Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
         if (id == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
@@ -199,4 +195,35 @@ public class LampPoleController {
         screenVO.setList(list);
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,screenVO);
     }
+
+    /**
+     * 灯杆相关数据
+     * @param request 灯杆id,设备类型
+     * @return 灯杆相关数据
+     */
+    @RequestMapping(value = "/lampPoleData", method = RequestMethod.POST)
+    public BaseResult<?> lampPoleData(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer id = (Integer) toolUtils.getRequestContent(request,"id",1);
+        Integer type = (Integer) toolUtils.getRequestContent(request,"type",1);
+        if (id == 0 || type == 0) return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        LampPoleDataVO lampPoleDataVO = new LampPoleDataVO();
+        if (type == 2) { // WIFI
+            WifiDTO wifiDTO = wifiService.getWifiInfoByLampPoleId(id);
+            lampPoleDataVO.setWifiDev(wifiDTO);
+        } else if (type == 4) { // 屏幕
+            ScreenDTO screenDTO = screenService.getScreenByLampPoleId(id);
+            lampPoleDataVO.setScreenDev(screenDTO);
+        } else if (type == 5) { // 一键报警
+            EmergencyDTO emergencyDTO = emergencyService.getEmergencyByLampPoleId(id);
+            lampPoleDataVO.setEmergencyDev(emergencyDTO);
+        } else if (type == 6) { // 充电桩
+            ChargeDTO chargeDTO = chargeService.getChargeInfoByLampPoleId(id);
+            lampPoleDataVO.setChargeDev(chargeDTO);
+        } else if (type == 7) { // 气象站
+            EnvmonitorDTO envmonitorDTO = envmonitorService.getEnvmonitorByLampPoleId(id);
+            lampPoleDataVO.setWeatherDev(envmonitorDTO);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampPoleDataVO);
+    }
 }

+ 39 - 34
src/main/java/com/welampiot/controller/NewLampPoleController.java

@@ -1,8 +1,8 @@
 package com.welampiot.controller;
 
 import com.welampiot.common.BaseResult;
+import com.welampiot.common.DevInfoEnum;
 import com.welampiot.common.InterfaceResultEnum;
-import com.welampiot.dto.GWRSDevDTO;
 import com.welampiot.dto.*;
 import com.welampiot.service.*;
 import com.welampiot.utils.ExcelUtil;
@@ -66,6 +66,10 @@ public class NewLampPoleController {
     private VideoMonitorService videoMonitorService;
     @Autowired
     private AllAlarmInfoLogService allAlarmInfoLogService;
+    @Autowired
+    private LampPoleSnService lampPoleSnService;
+    @Autowired
+    private UserService userService;
 
     @RequestMapping(value = "/info",method = RequestMethod.POST)
     public BaseResult info(HttpServletRequest request){
@@ -885,40 +889,13 @@ public class NewLampPoleController {
      * @return
      */
     @RequestMapping(value = "/GWRS485DevList",method = RequestMethod.POST)
-    public BaseResult GWRS485DevList(HttpServletRequest request) {
+    public BaseResult<?> GWRS485DevList(HttpServletRequest request) {
         Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
-        ArrayList<GWRSDevDTO> gWRSDevDTOS = new ArrayList<>();
-        GWRSDevDTO gWRSDevDTO = new GWRSDevDTO();
-        gWRSDevDTO.setId(1);
-        gWRSDevDTO.setName("百叶箱 X 6");
-        gWRSDevDTOS.add(gWRSDevDTO);
-        gWRSDevDTO = new GWRSDevDTO();
-        gWRSDevDTO.setId(2);
-        gWRSDevDTO.setName("风向");
-        gWRSDevDTOS.add(gWRSDevDTO);
-        gWRSDevDTO = new GWRSDevDTO();
-        gWRSDevDTO.setId(3);
-        gWRSDevDTO.setName("风速");
-        gWRSDevDTOS.add(gWRSDevDTO);
-        gWRSDevDTO = new GWRSDevDTO();
-        gWRSDevDTO.setId(4);
-        gWRSDevDTO.setName("雨量");
-        gWRSDevDTOS.add(gWRSDevDTO);
-        gWRSDevDTO = new GWRSDevDTO();
-        gWRSDevDTO.setId(5);
-        gWRSDevDTO.setName("太阳辐射");
-        gWRSDevDTOS.add(gWRSDevDTO);
-        gWRSDevDTO = new GWRSDevDTO();
-        gWRSDevDTO.setId(6);
-        gWRSDevDTO.setName("百叶箱 X 10");
-        gWRSDevDTOS.add(gWRSDevDTO);
-        gWRSDevDTO = new GWRSDevDTO();
-        gWRSDevDTO.setId(7);
-        gWRSDevDTO.setName("超声波风速风向");
-        gWRSDevDTOS.add(gWRSDevDTO);
-        ListResponseVO listResponseVO = new ListResponseVO();
-        listResponseVO.setList(gWRSDevDTOS);
-        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,listResponseVO);
+        List<DevInfoEnum> enumList = ToolUtils.addAllEnum();
+        List<DevEnumVO> list = ToolUtils.getDevEnum(enumList, version);
+        DevEnumVO devEnumVO = new DevEnumVO();
+        devEnumVO.setList(list);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,devEnumVO);
     }
 
     /**
@@ -1185,4 +1162,32 @@ public class NewLampPoleController {
         lampPoleVO1.setFaultCount(lampPoleAlarmTotal);
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,lampPoleVO1);
     }
+
+    /**
+     * 云盒sn批量授权接口
+     * @param request sn
+     * @return 云盒sn批量授权接口
+     */
+    @RequestMapping(value = "/registerSn", method = RequestMethod.POST)
+    public BaseResult<?> registerSn(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request, "version", 1);
+        String username = (String) toolUtils.getRequestContent(request, "username", 2);
+        String sn = (String) toolUtils.getRequestContent(request, "sn", 2);
+        if (username.length() == 0 || sn.length() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        UserDTO userDTO = userService.queryUserIdByUsername(username);
+        if (userDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        if (userDTO.getRole() == 1) {
+            String[] split = sn.split(",");
+            for (String s : split) {
+                LampPoleSnDTO lampPoleSnDTO = new LampPoleSnDTO();
+                lampPoleSnDTO.setSn(s);
+                if (lampPoleSnService.checkLampPoleSnData(lampPoleSnDTO) > 0) continue;
+                lampPoleSnService.addLampPoleSn(lampPoleSnDTO);
+            }
+        } else {
+            return toolUtils.response(InterfaceResultEnum.PERMISSION_DENIED,version);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
 }

+ 17 - 0
src/main/java/com/welampiot/dao/EmergencyDao.java

@@ -0,0 +1,17 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.EmergencyDTO;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * ClassName: EmergencyDao
+ * Package: com.welampiot.dao
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/1 - 10:44
+ * @Version: v1.0
+ */
+public interface EmergencyDao {
+    EmergencyDTO getEmergencyByLampPoleId(@Param("lampPoleId") Integer lampPoleId);
+}

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

@@ -31,4 +31,6 @@ public interface EnvmonitorDao {
     List<EnvmonitorDTO> getEnvmonitorListByDTO(@Param("sectionList") List<Integer> sectionList);
 
     void changeEnvmonitorLocationById(EnvmonitorDTO dto);
+
+    EnvmonitorDTO getEnvmonitorByLampPoleId(@Param("lampPoleId") Integer lampPoleId);
 }

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

@@ -18,4 +18,5 @@ public interface GroupDao {
     List<GroupDTO> getGroupListByDTO(GroupVO vo);
     String findPolicyNameByValue(@Param("id") Integer id);
     Integer getGroupTotalByDTO(GroupDTO dto);
+    GroupDTO getGroupDTOById(@Param("id") Integer id);
 }

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

@@ -35,4 +35,6 @@ public interface LampPoleDao {
     Integer getNewCreateLampPoleCount(LampPoleVO vo);
     Integer getLampPoleInstallTotal(LampPoleVO vo);
     void updateLampPoleDevType(LampPoleDTO dto);
+    List<LampPoleDTO> getSectionLampPoleList(LampPoleVO vo);
+    List<LampPoleDTO> getLampPoleByLampIds(@Param("lampIds") List<String> lampIds);
 }

+ 18 - 0
src/main/java/com/welampiot/dao/LampPoleSnDao.java

@@ -0,0 +1,18 @@
+package com.welampiot.dao;
+
+import com.welampiot.dto.LampPoleSnDTO;
+
+/**
+ * ClassName: LampPoleSnDao
+ * Package: com.welampiot.dao
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/1 - 18:49
+ * @Version: v1.0
+ */
+public interface LampPoleSnDao {
+    void addLampPoleSn(LampPoleSnDTO dto);
+
+    Integer checkLampPoleSnData(LampPoleSnDTO dto);
+}

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

@@ -26,4 +26,6 @@ public interface ScreenDao {
     ScreenDTO getScreenDetailsByDTO(ScreenDTO dto);
 
     List<ScreenDTO> getAllScreenListBySectionId(@Param("sectionId") Integer sectionId);
+
+    ScreenDTO getScreenByLampPoleId(@Param("lampPoleId") Integer lampPoleId);
 }

+ 51 - 0
src/main/java/com/welampiot/dto/EmergencyDTO.java

@@ -0,0 +1,51 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: EmergencyDTO
+ * Package: com.welampiot.dto
+ * Description: 紧急呼叫
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/1 - 10:22
+ * @Version: v1.0
+ */
+@Data
+public class EmergencyDTO implements Serializable {
+    private Integer id;
+
+    private String model;
+
+    private String num;
+
+    private String remarks;
+
+    private Integer status;
+
+    private Integer lampPoleId;
+
+    private Integer userid;
+
+    private Integer devType;
+
+    private Integer type;
+
+    private Integer devId;
+
+    private String pwd;
+
+    private String gbAddress;
+
+    private Integer netType;
+
+    private String ipAddr;
+
+    private String installDate;
+
+    private String expirationDate;
+
+    private static final long serialVersionUID = 1L;
+}

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

@@ -206,5 +206,7 @@ public class EnvmonitorDTO implements Serializable {
 
     private Integer dayNumber;
 
+    private Integer protocolType;
+
     private static final long serialVersionUID = 1L;
 }

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

@@ -61,4 +61,5 @@ public class LampPoleDTO {
     private List<Map> videoList;
     private List<Map> broadcastList;
     private WifiDTO cloudDev; // 云盒
+    private Integer select;
 }

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

@@ -0,0 +1,23 @@
+package com.welampiot.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: LampPoleSnDTO
+ * Package: com.welampiot.dto
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/1 - 18:46
+ * @Version: v1.0
+ */
+@Data
+public class LampPoleSnDTO implements Serializable {
+    private Integer id;
+
+    private String sn;
+
+    private static final long serialVersionUID = 1L;
+}

+ 16 - 0
src/main/java/com/welampiot/service/EmergencyService.java

@@ -0,0 +1,16 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.EmergencyDTO;
+
+/**
+ * ClassName: EmergencyService
+ * Package: com.welampiot.service
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/1 - 10:45
+ * @Version: v1.0
+ */
+public interface EmergencyService {
+    EmergencyDTO getEmergencyByLampPoleId(Integer lampPoleId);
+}

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

@@ -29,4 +29,6 @@ public interface EnvmonitorService {
     EnvmonitorVO getEnvmonitorListByDTO(List<Integer> sectionList);
 
     void changeEnvmonitorLocationById(EnvmonitorDTO dto);
+
+    EnvmonitorDTO getEnvmonitorByLampPoleId(Integer lampPoleId);
 }

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

@@ -20,4 +20,5 @@ public interface GroupService {
     List<GroupDTO> getGroupListByDTO(GroupVO vo);
     String findPolicyNameByValue(Integer id);
     Integer getGroupTotalByDTO(GroupDTO dto);
+    GroupDTO getGroupDTOById(Integer id);
 }

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

@@ -29,4 +29,6 @@ public interface LampPoleService {
     Integer getNewCreateLampPoleCount(LampPoleVO vo);
     Integer getLampPoleInstallTotal(LampPoleVO vo);
     void updateLampPoleDevType(LampPoleDTO dto);
+    List<LampPoleDTO> getSectionLampPoleList(LampPoleVO vo);
+    List<LampPoleDTO> getLampPoleByLampIds(List<String> lampIds);
 }

+ 18 - 0
src/main/java/com/welampiot/service/LampPoleSnService.java

@@ -0,0 +1,18 @@
+package com.welampiot.service;
+
+import com.welampiot.dto.LampPoleSnDTO;
+
+/**
+ * ClassName: LampPoleSnService
+ * Package: com.welampiot.service
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/1 - 18:50
+ * @Version: v1.0
+ */
+public interface LampPoleSnService {
+    void addLampPoleSn(LampPoleSnDTO dto);
+
+    Integer checkLampPoleSnData(LampPoleSnDTO dto);
+}

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

@@ -23,4 +23,6 @@ public interface ScreenService {
     ScreenDetailsVO getScreenDetails(ScreenDTO dto);
 
     List<ScreenDTO> getAllScreenListBySectionId(Integer sectionId);
+
+    ScreenDTO getScreenByLampPoleId(Integer lampPoleId);
 }

+ 27 - 0
src/main/java/com/welampiot/service/impl/EmergencyServiceImpl.java

@@ -0,0 +1,27 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.dao.EmergencyDao;
+import com.welampiot.dto.EmergencyDTO;
+import com.welampiot.service.EmergencyService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * ClassName: EmergencyServiceImpl
+ * Package: com.welampiot.service.impl
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/1 - 10:45
+ * @Version: v1.0
+ */
+@Service
+public class EmergencyServiceImpl implements EmergencyService {
+    @Autowired
+    private EmergencyDao emergencyDao;
+
+    @Override
+    public EmergencyDTO getEmergencyByLampPoleId(Integer lampPoleId) {
+        return emergencyDao.getEmergencyByLampPoleId(lampPoleId);
+    }
+}

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

@@ -214,4 +214,9 @@ public class EnvmonitorServiceImpl implements EnvmonitorService {
     public void changeEnvmonitorLocationById(EnvmonitorDTO dto) {
         envmonitorDao.changeEnvmonitorLocationById(dto);
     }
+
+    @Override
+    public EnvmonitorDTO getEnvmonitorByLampPoleId(Integer lampPoleId) {
+        return envmonitorDao.getEnvmonitorByLampPoleId(lampPoleId);
+    }
 }

+ 5 - 0
src/main/java/com/welampiot/service/impl/GroupServiceImpl.java

@@ -175,4 +175,9 @@ public class GroupServiceImpl implements GroupService {
     public Integer getGroupTotalByDTO(GroupDTO dto) {
         return groupDao.getGroupTotalByDTO(dto);
     }
+
+    @Override
+    public GroupDTO getGroupDTOById(Integer id) {
+        return groupDao.getGroupDTOById(id);
+    }
 }

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

@@ -428,4 +428,14 @@ public class LampPoleServiceImpl implements LampPoleService {
     public void updateLampPoleDevType(LampPoleDTO dto) {
         lampPoleDao.updateLampPoleDevType(dto);
     }
+
+    @Override
+    public List<LampPoleDTO> getSectionLampPoleList(LampPoleVO vo) {
+        return lampPoleDao.getSectionLampPoleList(vo);
+    }
+
+    @Override
+    public List<LampPoleDTO> getLampPoleByLampIds(List<String> lampIds) {
+        return lampPoleDao.getLampPoleByLampIds(lampIds);
+    }
 }

+ 32 - 0
src/main/java/com/welampiot/service/impl/LampPoleSnServiceImpl.java

@@ -0,0 +1,32 @@
+package com.welampiot.service.impl;
+
+import com.welampiot.dao.LampPoleSnDao;
+import com.welampiot.dto.LampPoleSnDTO;
+import com.welampiot.service.LampPoleSnService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+/**
+ * ClassName: LampPoleSnServiceImpl
+ * Package: com.welampiot.service.impl
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/1 - 18:50
+ * @Version: v1.0
+ */
+@Service
+public class LampPoleSnServiceImpl implements LampPoleSnService {
+    @Autowired
+    private LampPoleSnDao lampPoleSnDao;
+
+    @Override
+    public void addLampPoleSn(LampPoleSnDTO dto) {
+        lampPoleSnDao.addLampPoleSn(dto);
+    }
+
+    @Override
+    public Integer checkLampPoleSnData(LampPoleSnDTO dto) {
+        return lampPoleSnDao.checkLampPoleSnData(dto);
+    }
+}

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

@@ -222,4 +222,9 @@ public class ScreenServiceImpl implements ScreenService {
     public List<ScreenDTO> getAllScreenListBySectionId(Integer sectionId) {
         return screenDao.getAllScreenListBySectionId(sectionId);
     }
+
+    @Override
+    public ScreenDTO getScreenByLampPoleId(Integer lampPoleId) {
+        return screenDao.getScreenByLampPoleId(lampPoleId);
+    }
 }

+ 30 - 0
src/main/java/com/welampiot/utils/ToolUtils.java

@@ -2,6 +2,7 @@ package com.welampiot.utils;
 
 import com.alibaba.fastjson.JSON;
 import com.welampiot.common.BaseResult;
+import com.welampiot.common.DevInfoEnum;
 import com.welampiot.common.InterfaceResultEnum;
 import com.welampiot.common.LampControlTypeEnum;
 import com.welampiot.configuration.MqttConfig;
@@ -12,6 +13,7 @@ import com.welampiot.handle.MqttHandler;
 import com.welampiot.service.GlobalLocationService;
 import com.welampiot.service.SectionService;
 import com.welampiot.service.UserService;
+import com.welampiot.vo.DevEnumVO;
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.methods.PostMethod;
 import org.eclipse.paho.client.mqttv3.MqttClient;
@@ -557,4 +559,32 @@ public class ToolUtils {
         }
         return isFlag;
     }
+
+    public static List<DevEnumVO> getDevEnum(List<DevInfoEnum> devInfoEnum, Integer version) {
+        List<DevEnumVO> list = new ArrayList<>();
+        for (DevInfoEnum d : devInfoEnum) {
+            String name;
+            if (version == 0) {
+                name = d.getNameCh();
+            } else if (version == 1) {
+                name = d.getNameEn();
+            } else {
+                name = d.getNameRu();
+            }
+            list.add(new DevEnumVO(d.getId(), name));
+        }
+        return list;
+    }
+
+    public static List<DevInfoEnum> addAllEnum() {
+        List<DevInfoEnum> list = new ArrayList<>();
+        list.add(DevInfoEnum.LOUVER_BOX6);
+        list.add(DevInfoEnum.WIND_DIRECTION);
+        list.add(DevInfoEnum.WIND_SPEED);
+        list.add(DevInfoEnum.RAINFALL);
+        list.add(DevInfoEnum.SOLAR_RADIATION);
+        list.add(DevInfoEnum.LOUVER_BOX10);
+        list.add(DevInfoEnum.SOLAR_WIND_SPEED_DIRT);
+        return list;
+    }
 }

+ 33 - 0
src/main/java/com/welampiot/vo/DevEnumVO.java

@@ -0,0 +1,33 @@
+package com.welampiot.vo;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * ClassName: DevEnumVO
+ * Package: com.welampiot.vo
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/1 - 17:38
+ * @Version: v1.0
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class DevEnumVO implements Serializable {
+    private Integer id;
+
+    private String name;
+
+    private List<DevEnumVO> list;
+
+    public DevEnumVO(Integer id, String name) {
+        this.id = id;
+        this.name = name;
+    }
+}

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

@@ -0,0 +1,28 @@
+package com.welampiot.vo;
+
+import com.welampiot.dto.*;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: LampPoleDataVO
+ * Package: com.welampiot.vo
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/1 - 10:16
+ * @Version: v1.0
+ */
+@Data
+public class LampPoleDataVO implements Serializable {
+    private ScreenDTO screenDev;
+
+    private WifiDTO wifiDev;
+
+    private EnvmonitorDTO weatherDev;
+
+    private ChargeDTO chargeDev;
+
+    private EmergencyDTO emergencyDev;
+}

+ 2 - 1
src/main/resources/mapper/ChargeMapper.xml

@@ -135,10 +135,11 @@
     </select>
     
     <select id="getChargeInfoByLampPoleId" resultType="ChargeDTO">
-        select c.type,c.macVoltage,c.power,c.macCurrent,c.voltage,c.current,
+        select c.type,c.macVoltage,c.power,c.macCurrent,c.voltage,c.current,c.model,c.num,c.chargeModel,
                c.electricityFee,c.serviceFee,c.connectorCode,c.stationCode,c.createtime as createTime
         from charge c
         where c.lamp_pole_id = #{lampPoleId}
+        limit 1
     </select>
 
 </mapper>

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

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.welampiot.dao.EmergencyDao">
+
+    <select id="getEmergencyByLampPoleId" resultType="EmergencyDTO">
+        select
+            e.id,
+            e.num,
+            e.model,
+            e.remarks
+        from
+            emergency e
+        where
+            e.lamp_pole_id = #{lampPoleId}
+    </select>
+
+</mapper>

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

@@ -136,5 +136,32 @@
             e.latitude = #{latitude}
         where e.id = #{id}
     </update>
+
+    <select id="getEnvmonitorByLampPoleId" resultType="EnvmonitorDTO">
+        select
+            e.id,
+            e.model,
+            e.num,
+            e.address,
+            e.importPra,
+            e1.temperature,
+            e1.humidity,
+            e1.PM25,
+            e1.PM10,
+            e1.noise,
+            e1.atmospressue,
+            e1.illumination,
+            e1.windSpeed,
+            e1.windDire,
+            e1.updatetime as updateTime,
+            n.protocoltype as protocolType
+        from
+            envmonitor e
+        left join envmonitor_info_log e1 on e1.envmonitorid = e.id
+        left join network n on e.networkid = n.id
+        where
+            e.lamp_pole_id = #{lampPoleId}
+        limit 1
+    </select>
     
 </mapper>

+ 9 - 0
src/main/resources/mapper/GroupMapper.xml

@@ -182,4 +182,13 @@
         </if>
     </select>
 
+    <select id="getGroupDTOById" resultType="GroupDTO">
+        select
+            g.id,
+            g.lampid as lampId,
+            g.devType
+        from `group` g
+        where g.id = #{id}
+    </select>
+
 </mapper>

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

@@ -527,4 +527,62 @@
             l.id = #{id}
     </update>
     
+    <select id="getSectionLampPoleList" resultType="LampPoleDTO">
+        select
+            lp.id,
+            lp.name,
+            lp.sn,
+            s.name as section
+            <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>
+        from lamp_pole lp
+        left join section s on lp.sectionid = s.id
+        left join global_location gl on s.pid = gl.id
+        where 1=1
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and lp.sectionid in
+            <foreach collection="sectionList" item="item" close=")" separator="," open="(">
+                #{item}
+            </foreach>
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and lp.sectionid = #{sectionId}
+        </if>
+    </select>
+
+    <select id="getLampPoleByLampIds" resultType="LampPoleDTO">
+        select
+        lp.id,
+        lp.name,
+        lp.sn,
+        s.name as section
+        <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>
+        from lamp_pole lp
+        left join section s on lp.sectionid = s.id
+        left join global_location gl on s.pid = gl.id
+        where lp.id in
+        <foreach collection="lampIds" open="(" separator="," close=")" item="item">
+            #{item}
+        </foreach>
+    </select>
+    
 </mapper>

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

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.welampiot.dao.LampPoleSnDao">
+
+    <insert id="addLampPoleSn" parameterType="LampPoleSnDTO" useGeneratedKeys="true" keyProperty="id">
+        insert into lamp_pole_sn(lamp_pole_sn)
+        values (#{sn})
+    </insert>
+
+    <select id="checkLampPoleSnData" resultType="Integer">
+        select
+            count(*)
+        from lamp_pole_sn l
+        <if test="sn != null and sn != ''">
+            where l.lamp_pole_sn = #{sn}
+        </if>
+    </select>
+
+</mapper>

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

@@ -110,4 +110,29 @@
         WHERE lp.sectionid = #{sectionId}
     </select>
 
+    <!-- 查询灯杆绑定的一个屏幕 -->
+    <select id="getScreenByLampPoleId" resultType="ScreenDTO">
+        select
+            s.id,
+            s.model,
+            s.num,
+            s.resolve,
+            s.role,
+            s.powerModel,
+            s.comModel,
+            s.netStatus,
+            s.status,
+            s.light,
+            s.volume,
+            s.width,
+            s.height,
+            s.playingid as playingId,
+            p.name as play,
+            s.type
+        from screen s
+        LEFT JOIN program p ON s.playingid = p.id
+        where s.lamp_pole_id = #{lampPoleId}
+        limit 1
+    </select>
+
 </mapper>

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

@@ -158,7 +158,14 @@
     </delete>
 
     <select id="getWifiInfoByLampPoleId" resultType="WifiDTO">
-        select w.num,w.net_type as netType,w.model
+        select
+            w.num,
+            w.net_type as netType,
+            w.model,
+            w.powerModel,
+            w.powerWaste,
+            protectLevel,
+            w.freq
         from wifi w
         where w.lamp_pole_id = #{lampPoleId}
     </select>