Quellcode durchsuchen

环境监控列表及详情、添加编辑删除环境监控设备,光照传感器列表及详情、添加编辑删除光照传感器

zhj vor 2 Jahren
Ursprung
Commit
d471bbc495

+ 5 - 0
src/main/java/com/welampiot/common/InterfaceResultEnum.java

@@ -174,6 +174,11 @@ public enum InterfaceResultEnum {
     LACK_VIDEO_TYPE_ERROR("0363","请选择监控类型","Select a monitoring type","Пожалуйста, выберите тип слежки"),
     LACK_DEV_CODE_ERROR("0364","设备验证码不能为空","The device verification code cannot be empty","Идентификационный код устройства не может быть пустым"),
     DEV_SN_UNIQUE_ERROR("0365","设备序列号已存在","The device serial number already exists","Серийный номер устройства уже существует"),
+    DEV_NUMBER_UNIQUE_ERROR("0366","设备编号已存在","The device number already exists","Номер устройства уже существует"),
+    DEV_NAME_UNIQUE_ERROR("0367","设备名称已存在","The device name already exists","Имя устройства уже существует"),
+    LACK_REMARK_ERROR("0368","请填写备注","Please fill in remarks","Пожалуйста, заполните заявление"),
+    LACK_FACTOR_ERROR("0369","请填写厂家","Please fill in manufacturer","Пожалуйста, заполните это для производителя"),
+    DEV_ADDRESS_UNIQUE_ERROR("0370","设备地址重复","Device address duplication","Повторение адреса оборудования"),
     ;
     private String code;
     private String msgCn;

+ 226 - 0
src/main/java/com/welampiot/controller/IlluminanceController.java

@@ -0,0 +1,226 @@
+package com.welampiot.controller;
+
+import com.welampiot.common.BaseResult;
+import com.welampiot.common.InterfaceResultEnum;
+import com.welampiot.dto.EnvmonitorDTO;
+import com.welampiot.dto.NetworkDTO;
+import com.welampiot.dto.UserDTO;
+import com.welampiot.service.EnvmonitorInfoLogService;
+import com.welampiot.service.EnvmonitorService;
+import com.welampiot.service.NetworkService;
+import com.welampiot.service.UserService;
+import com.welampiot.utils.ToolUtils;
+import com.welampiot.vo.EnvmonitorDetailVO;
+import com.welampiot.vo.EnvmonitorVO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.text.SimpleDateFormat;
+import java.util.List;
+
+/**
+ * ClassName: IlluminanceController
+ * Package: com.welampiot.controller
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/22 - 18:02
+ * @Version: v1.0
+ */
+@RestController
+@CrossOrigin
+@RequestMapping("/illuminance")
+public class IlluminanceController {
+    @Autowired
+    private EnvmonitorService envmonitorService;
+    @Autowired
+    private EnvmonitorInfoLogService envmonitorInfoLogService;
+    @Autowired
+    private UserService userService;
+    @Autowired
+    private NetworkService networkService;
+    @Autowired
+    private ToolUtils toolUtils;
+
+    /**
+     * 添加编辑光照度传感器
+     * @param vo 环境监控属性
+     * @return 添加编辑光照度传感器
+     */
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    public BaseResult<?> save(EnvmonitorDetailVO vo) {
+        if (vo.getVersion() == null) vo.setVersion(0);
+        Integer version = vo.getVersion();
+        Integer id = vo.getId();
+        if (vo.getUsername() == null || vo.getUsername().isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        if (vo.getModel() == null || vo.getModel().trim().isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_NAME_ERROR,version);
+        if (vo.getName() == null || vo.getName().trim().isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_NAME_ERROR,version);
+        if (vo.getAreaId() == null || vo.getAreaId() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_AREA_ERROR,version);
+        if (vo.getSectionId() == null || vo.getSectionId() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR,version);
+        if (vo.getAddress() == null || vo.getAddress().isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_DEV_ADDRESS_ERROR,version);
+        if (vo.getRemarks() == null || vo.getRemarks().trim().isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_REMARK_ERROR,version);
+        if (vo.getManuFactor() == null || vo.getManuFactor().trim().isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_FACTOR_ERROR,version);
+        if (vo.getLongitude() == null)
+            return toolUtils.response(InterfaceResultEnum.LACK_LOCATION_ERROR,version);
+        if (vo.getLatitude() == null)
+            return toolUtils.response(InterfaceResultEnum.LACK_LOCATION_ERROR,version);
+        if (vo.getProtocolType() == null)
+            return toolUtils.response(InterfaceResultEnum.LACK_PROTOCOL_TYPE_ERROR,version);
+
+        EnvmonitorDTO envmonitorDTO = new EnvmonitorDTO();
+        BeanUtils.copyProperties(vo,envmonitorDTO);
+        EnvmonitorDTO dto = new EnvmonitorDTO();
+        UserDTO userDTO = userService.queryUserIdByUsername(vo.getUsername());
+        if (userDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        if (id == null || id == 0) { // 添加
+            dto.setSectionId(vo.getSectionId());
+            dto.setName(vo.getName());
+            if (envmonitorService.findDataByEnvmonitorDTO(dto) > 0)
+                return toolUtils.response(InterfaceResultEnum.DEV_NAME_UNIQUE_ERROR,version);
+            dto = new EnvmonitorDTO();
+            dto.setAddress(vo.getAddress());
+            if (envmonitorService.findDataByEnvmonitorDTO(dto) > 0)
+                return toolUtils.response(InterfaceResultEnum.DEV_ADDRESS_UNIQUE_ERROR,version);
+            long l = System.currentTimeMillis();
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String format = simpleDateFormat.format(l);
+            envmonitorDTO.setCreateTime(format);
+            envmonitorDTO.setUpdateTime(format);
+
+            // 添加网络
+            NetworkDTO networkDTO = new NetworkDTO();
+            networkDTO.setUserId(userDTO.getId());
+            networkDTO.setCreateTime(format);
+            networkDTO.setAreaId(vo.getAreaId());
+            networkDTO.setSectionId(vo.getSectionId());
+            networkDTO.setNetworkName(vo.getAddress());
+            networkDTO.setDeviceSn(vo.getAddress());
+            networkDTO.setProtocolType(vo.getProtocolType());
+            networkDTO.setDeviceType(2);
+            networkDTO.setNetType(1);
+            networkDTO.setGatewayType("direct");
+            networkService.add(networkDTO);
+            Integer networkId = networkDTO.getId();
+            envmonitorDTO.setNetworkId(networkId);
+            envmonitorService.addIlluminanceData(envmonitorDTO);
+        } else { // 编辑
+            dto = new EnvmonitorDTO();
+            dto.setId(vo.getId());
+            dto.setSectionId(vo.getSectionId());
+            dto.setName(vo.getName());
+            if (envmonitorService.findDataByEnvmonitorDTO(dto) > 0)
+                return toolUtils.response(InterfaceResultEnum.DEV_NAME_UNIQUE_ERROR,version);
+            dto = new EnvmonitorDTO();
+            dto.setId(vo.getId());
+            dto.setAddress(vo.getAddress());
+            if (envmonitorService.findDataByEnvmonitorDTO(dto) > 0)
+                return toolUtils.response(InterfaceResultEnum.DEV_ADDRESS_UNIQUE_ERROR,version);
+            long l = System.currentTimeMillis();
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String format = simpleDateFormat.format(l);
+            envmonitorDTO.setUpdateTime(format);
+
+            // 编辑网络
+            NetworkDTO networkDTO = new NetworkDTO();
+            networkDTO.setAreaId(vo.getAreaId());
+            networkDTO.setSectionId(vo.getSectionId());
+            networkDTO.setNetworkName(vo.getAddress());
+            networkDTO.setDeviceSn(vo.getAddress());
+            networkDTO.setProtocolType(vo.getProtocolType());
+            networkDTO.setDeviceType(2);
+            networkService.update(networkDTO);
+            envmonitorService.updateIlluminanceData(envmonitorDTO);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 光照传感器列表
+     * @param request 路段,关键字搜索,分页
+     * @return 光照传感器列表
+     */
+    @RequestMapping(value = "/getList", method = RequestMethod.POST)
+    public BaseResult<?> getList(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer page = (Integer) toolUtils.getRequestContent(request,"page",1);
+        Integer count = (Integer) toolUtils.getRequestContent(request,"count",1);
+        Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
+        Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
+        String keyword = (String) toolUtils.getRequestContent(request,"keyword",2);
+        if (page == 0) page = 1;
+        if (count == 0) count = 16;
+        EnvmonitorVO vo = new EnvmonitorVO();
+        vo.setPage(count * (page - 1));
+        vo.setCount(count);
+        vo.setAreaId(areaId);
+        vo.setSectionId(sectionId);
+        vo.setKeyword(keyword);
+        vo.setVersion(version);
+        vo.setSectionList(toolUtils.getSectionList(request));
+        List<EnvmonitorDTO> weatherList = envmonitorService.getIlluminanceListByVO(vo);
+        EnvmonitorVO envmonitorVO = new EnvmonitorVO();
+        envmonitorVO.setList(weatherList);
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,envmonitorVO);
+    }
+
+    /**
+     * 光照传感器详情
+     * @param vo 环境监控id
+     * @return 光照传感器详情
+     */
+    @RequestMapping(value = "/details", method = RequestMethod.POST)
+    public BaseResult<?> details(EnvmonitorDetailVO vo) {
+        if (vo.getVersion() == null) vo.setVersion(0);
+        Integer version = vo.getVersion();
+        Integer id = vo.getId();
+        if (id == null || id == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        EnvmonitorDTO envmonitorDTO = envmonitorService.getIlluminanceDetailByVO(vo);
+        if (envmonitorDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        EnvmonitorDetailVO envmonitorDetailVO = new EnvmonitorDetailVO();
+        BeanUtils.copyProperties(envmonitorDTO,envmonitorDetailVO);
+        if (envmonitorDTO.getProtocolType() != null && envmonitorDTO.getProtocolType() == 4) {
+            envmonitorDetailVO.setProtocolTypeStr("NBIoT");
+        } else if (envmonitorDTO.getProtocolType() != null && envmonitorDTO.getProtocolType() == 3) {
+            envmonitorDetailVO.setProtocolTypeStr("LoraWan");
+        } else if (envmonitorDTO.getProtocolType() != null && envmonitorDTO.getProtocolType() == 2) {
+            envmonitorDetailVO.setProtocolTypeStr("4G");
+        } else {
+            envmonitorDetailVO.setProtocolTypeStr("GPRS");
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,envmonitorDetailVO);
+    }
+
+    /**
+     * 删除光照传感器
+     * @param request id
+     * @return 删除光照传感器
+     */
+    @RequestMapping(value = "/del", method = RequestMethod.POST)
+    public BaseResult<?> del(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        String id = (String) toolUtils.getRequestContent(request,"id",2);
+        if (id == null || id.isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        String[] split = id.split(",");
+        for (String s : split) {
+            Integer integer = Integer.valueOf(s);
+            envmonitorService.deleteEnvmonitorById(integer);
+            envmonitorInfoLogService.deleteEnvmonitorInfoLogData(integer);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+}

+ 183 - 6
src/main/java/com/welampiot/controller/WeatherController.java

@@ -3,13 +3,10 @@ package com.welampiot.controller;
 import com.welampiot.common.BaseResult;
 import com.welampiot.common.DevInfoEnum;
 import com.welampiot.common.InterfaceResultEnum;
-import com.welampiot.dto.EnvmonitorDTO;
-import com.welampiot.dto.WeatherRS485DevInfoDTO;
-import com.welampiot.dto.WifiDTO;
-import com.welampiot.service.EnvmonitorService;
-import com.welampiot.service.WeatherRS485DevInfoService;
-import com.welampiot.service.WifiService;
+import com.welampiot.dto.*;
+import com.welampiot.service.*;
 import com.welampiot.utils.ToolUtils;
+import com.welampiot.vo.EnvmonitorDetailVO;
 import com.welampiot.vo.EnvmonitorVO;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -19,6 +16,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletRequest;
+import java.text.SimpleDateFormat;
 import java.util.List;
 
 /**
@@ -42,6 +40,12 @@ public class WeatherController {
     private WifiService wifiService;
     @Autowired
     private WeatherRS485DevInfoService weatherRS485DevInfoService;
+    @Autowired
+    private EnvmonitorInfoLogService envmonitorInfoLogService;
+    @Autowired
+    private UserService userService;
+    @Autowired
+    private NetworkService networkService;
 
     /**
      * 设置plc气象站开、关灯时间
@@ -239,4 +243,177 @@ public class WeatherController {
         }
         return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
     }
+
+    /**
+     * 环境监控列表
+     * @param request 路段,关键字搜索,分页
+     * @return 环境监控列表
+     */
+    @RequestMapping(value = "/getList", method = RequestMethod.POST)
+    public BaseResult<?> getList(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        Integer page = (Integer) toolUtils.getRequestContent(request,"page",1);
+        Integer count = (Integer) toolUtils.getRequestContent(request,"count",1);
+        Integer areaId = (Integer) toolUtils.getRequestContent(request,"areaId",1);
+        Integer sectionId = (Integer) toolUtils.getRequestContent(request,"sectionId",1);
+        String keyword = (String) toolUtils.getRequestContent(request,"keyword",2);
+        if (page == 0) page = 1;
+        if (count == 0) count = 16;
+        EnvmonitorVO vo = new EnvmonitorVO();
+        vo.setPage(count * (page - 1));
+        vo.setCount(count);
+        vo.setAreaId(areaId);
+        vo.setSectionId(sectionId);
+        vo.setKeyword(keyword);
+        vo.setSectionList(toolUtils.getSectionList(request));
+        List<EnvmonitorDTO> weatherList = envmonitorService.getEnvmonitorListByVO(vo);
+        Integer total = envmonitorService.getEnvmonitorTotalByVO(vo);
+        EnvmonitorVO envmonitorVO = new EnvmonitorVO();
+        envmonitorVO.setList(weatherList);
+        envmonitorVO.setTotal((int) Math.ceil(total / (double) count));
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,envmonitorVO);
+    }
+
+    /**
+     * 添加/编辑环境监控
+     * @param vo 环境监控属性
+     * @return 添加/编辑环境监控
+     */
+    @RequestMapping(value = "/save", method = RequestMethod.POST)
+    public BaseResult<?> save(EnvmonitorDetailVO vo) {
+        if (vo.getVersion() == null) vo.setVersion(0);
+        Integer version = vo.getVersion();
+        Integer id = vo.getId();
+        if (vo.getUsername() == null || vo.getUsername().isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        if (vo.getNumber() == null || vo.getNumber().isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_NUMBER_ERROR,version);
+        if (vo.getAreaId() == null || vo.getAreaId() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_AREA_ERROR,version);
+        if (vo.getSectionId() == null || vo.getSectionId() == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_SECTION_ERROR,version);
+        if (vo.getSn() == null || vo.getSn().isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_DEV_SN_ERROR,version);
+        if (vo.getProtocolType() == null)
+            return toolUtils.response(InterfaceResultEnum.LACK_PROTOCOL_TYPE_ERROR,version);
+
+        EnvmonitorDTO envmonitorDTO = new EnvmonitorDTO();
+        BeanUtils.copyProperties(vo,envmonitorDTO);
+        envmonitorDTO.setNum(vo.getSn());
+        EnvmonitorDTO dto = new EnvmonitorDTO();
+        UserDTO userDTO = userService.queryUserIdByUsername(vo.getUsername());
+        if (userDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        if (id == null || id == 0) { // 添加
+            dto.setSectionId(vo.getSectionId());
+            dto.setNumber(vo.getNumber());
+            if (envmonitorService.findDataByEnvmonitorDTO(dto) > 0)
+                return toolUtils.response(InterfaceResultEnum.DEV_NUMBER_UNIQUE_ERROR,version);
+            dto = new EnvmonitorDTO();
+            dto.setNum(vo.getSn());
+            if (envmonitorService.findDataByEnvmonitorDTO(dto) > 0)
+                return toolUtils.response(InterfaceResultEnum.DEV_SN_UNIQUE_ERROR,version);
+            long l = System.currentTimeMillis();
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String format = simpleDateFormat.format(l);
+            envmonitorDTO.setCreateTime(format);
+            envmonitorDTO.setUpdateTime(format);
+
+            // 添加网络
+            NetworkDTO networkDTO = new NetworkDTO();
+            networkDTO.setUserId(userDTO.getId());
+            networkDTO.setCreateTime(format);
+            networkDTO.setAreaId(vo.getAreaId());
+            networkDTO.setSectionId(vo.getSectionId());
+            networkDTO.setNetworkName(vo.getSn());
+            networkDTO.setDeviceSn(vo.getSn());
+            networkDTO.setProtocolType(vo.getProtocolType());
+            networkDTO.setDeviceType(1);
+            networkDTO.setNetType(1);
+            networkDTO.setGatewayType("direct");
+            networkService.add(networkDTO);
+            Integer networkId = networkDTO.getId();
+            envmonitorDTO.setNetworkId(networkId);
+            envmonitorService.addEnvmonitorData(envmonitorDTO);
+        } else { // 编辑
+            dto = new EnvmonitorDTO();
+            dto.setId(vo.getId());
+            dto.setSectionId(vo.getSectionId());
+            dto.setNumber(vo.getNumber());
+            if (envmonitorService.findDataByEnvmonitorDTO(dto) > 0)
+                return toolUtils.response(InterfaceResultEnum.DEV_NUMBER_UNIQUE_ERROR,version);
+            dto = new EnvmonitorDTO();
+            dto.setId(vo.getId());
+            dto.setNum(vo.getSn());
+            if (envmonitorService.findDataByEnvmonitorDTO(dto) > 0)
+                return toolUtils.response(InterfaceResultEnum.DEV_SN_UNIQUE_ERROR,version);
+            long l = System.currentTimeMillis();
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            String format = simpleDateFormat.format(l);
+            envmonitorDTO.setUpdateTime(format);
+
+            // 编辑网络
+            NetworkDTO networkDTO = new NetworkDTO();
+            networkDTO.setAreaId(vo.getAreaId());
+            networkDTO.setSectionId(vo.getSectionId());
+            networkDTO.setNetworkName(vo.getSn());
+            networkDTO.setDeviceSn(vo.getSn());
+            networkDTO.setProtocolType(vo.getProtocolType());
+            networkDTO.setDeviceType(1);
+            networkService.update(networkDTO);
+            envmonitorService.updateEnvmonitorData(envmonitorDTO);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
+
+    /**
+     * 环境监控详情
+     * @param vo 环境监控id
+     * @return 环境监控详情
+     */
+    @RequestMapping(value = "/info", method = RequestMethod.POST)
+    public BaseResult<?> info(EnvmonitorDetailVO vo) {
+        if (vo.getVersion() == null) vo.setVersion(0);
+        Integer version = vo.getVersion();
+        Integer id = vo.getId();
+        if (id == null || id == 0)
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        EnvmonitorDTO envmonitorDTO = envmonitorService.getEnvmonitorDetailByVO(vo);
+        if (envmonitorDTO == null) return toolUtils.response(InterfaceResultEnum.PARAM_FAIL,version);
+        EnvmonitorDetailVO envmonitorDetailVO = new EnvmonitorDetailVO();
+        BeanUtils.copyProperties(envmonitorDTO,envmonitorDetailVO);
+        if (envmonitorDTO.getProtocolType() != null && envmonitorDTO.getProtocolType() == 5) {
+            envmonitorDetailVO.setProtocolTypeStr("zigbee");
+        } else if (envmonitorDTO.getProtocolType() != null && envmonitorDTO.getProtocolType() == 4) {
+            envmonitorDetailVO.setProtocolTypeStr("gprs_direct");
+        } else if (envmonitorDTO.getProtocolType() != null && envmonitorDTO.getProtocolType() == 3) {
+            envmonitorDetailVO.setProtocolTypeStr("nbIot");
+        } else if (envmonitorDTO.getProtocolType() != null && envmonitorDTO.getProtocolType() == 2) {
+            envmonitorDetailVO.setProtocolTypeStr("rf mesh");
+        } else if (envmonitorDTO.getProtocolType() != null && envmonitorDTO.getProtocolType() == 1) {
+            envmonitorDetailVO.setProtocolTypeStr("lora mesh");
+        } else {
+            envmonitorDetailVO.setProtocolTypeStr("lorawan");
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version,envmonitorDetailVO);
+    }
+
+    /**
+     * 删除环境监控
+     * @param request id
+     * @return 删除环境监控
+     */
+    @RequestMapping(value = "/del", method = RequestMethod.POST)
+    public BaseResult<?> del(HttpServletRequest request) {
+        Integer version = (Integer) toolUtils.getRequestContent(request,"version",1);
+        String id = (String) toolUtils.getRequestContent(request,"id",2);
+        if (id == null || id.isEmpty())
+            return toolUtils.response(InterfaceResultEnum.LACK_PARAM_ERROR,version);
+        String[] split = id.split(",");
+        for (String s : split) {
+            Integer integer = Integer.valueOf(s);
+            envmonitorService.deleteEnvmonitorById(integer);
+            envmonitorInfoLogService.deleteEnvmonitorInfoLogData(integer);
+        }
+        return toolUtils.response(InterfaceResultEnum.OPERATION_SUCCESS,version);
+    }
 }

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

@@ -1,6 +1,8 @@
 package com.welampiot.dao;
 
 import com.welampiot.dto.EnvmonitorDTO;
+import com.welampiot.vo.EnvmonitorDetailVO;
+import com.welampiot.vo.EnvmonitorVO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -47,4 +49,22 @@ public interface EnvmonitorDao {
     void updateEnvmonitorMpData(EnvmonitorDTO dto);
 
     EnvmonitorDTO getEnvmonitorMpDataById(@Param("id") Integer id);
+
+    List<EnvmonitorDTO> getEnvmonitorListByVO(EnvmonitorVO vo);
+
+    Integer getEnvmonitorTotalByVO(EnvmonitorVO vo);
+
+    void addEnvmonitorData(EnvmonitorDTO dto);
+
+    void updateEnvmonitorData(EnvmonitorDTO dto);
+
+    EnvmonitorDTO getEnvmonitorDetailByVO(EnvmonitorDetailVO vo);
+
+    void addIlluminanceData(EnvmonitorDTO dto);
+
+    void updateIlluminanceData(EnvmonitorDTO dto);
+
+    EnvmonitorDTO getIlluminanceDetailByVO(EnvmonitorDetailVO vo);
+
+    List<EnvmonitorDTO> getIlluminanceListByVO(EnvmonitorVO vo);
 }

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

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

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

@@ -20,7 +20,7 @@ public class EnvmonitorDTO implements Serializable {
     private Integer id;
 
     /** 监控器编号 **/
-    private Integer number;
+    private String number;
 
     /** 网络id **/
     private Integer networkId;
@@ -208,5 +208,7 @@ public class EnvmonitorDTO implements Serializable {
 
     private Integer protocolType;
 
+    private String area;
+
     private static final long serialVersionUID = 1L;
 }

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

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

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

@@ -1,6 +1,7 @@
 package com.welampiot.service;
 
 import com.welampiot.dto.EnvmonitorDTO;
+import com.welampiot.vo.EnvmonitorDetailVO;
 import com.welampiot.vo.EnvmonitorVO;
 
 import java.util.List;
@@ -45,4 +46,22 @@ public interface EnvmonitorService {
     void updateEnvmonitorMpData(EnvmonitorDTO dto);
 
     EnvmonitorDTO getEnvmonitorMpDataById(Integer id);
+
+    List<EnvmonitorDTO> getEnvmonitorListByVO(EnvmonitorVO vo);
+
+    Integer getEnvmonitorTotalByVO(EnvmonitorVO vo);
+
+    void addEnvmonitorData(EnvmonitorDTO dto);
+
+    void updateEnvmonitorData(EnvmonitorDTO dto);
+
+    EnvmonitorDTO getEnvmonitorDetailByVO(EnvmonitorDetailVO vo);
+
+    void addIlluminanceData(EnvmonitorDTO dto);
+
+    void updateIlluminanceData(EnvmonitorDTO dto);
+
+    EnvmonitorDTO getIlluminanceDetailByVO(EnvmonitorDetailVO vo);
+
+    List<EnvmonitorDTO> getIlluminanceListByVO(EnvmonitorVO vo);
 }

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

@@ -47,4 +47,9 @@ public class EnvmonitorInfoLogServiceImpl implements EnvmonitorInfoLogService {
     public List<EnvmonitorInfoLogDTO> getEnvStatisticsListByDTO(EnvmonitorDTO dto) {
         return envmonitorInfoLogDao.getEnvStatisticsListByDTO(dto);
     }
+
+    @Override
+    public void deleteEnvmonitorInfoLogData(Integer envmonitorId) {
+        envmonitorInfoLogDao.deleteEnvmonitorInfoLogData(envmonitorId);
+    }
 }

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

@@ -3,6 +3,7 @@ package com.welampiot.service.impl;
 import com.welampiot.dao.EnvmonitorDao;
 import com.welampiot.dto.EnvmonitorDTO;
 import com.welampiot.service.EnvmonitorService;
+import com.welampiot.vo.EnvmonitorDetailVO;
 import com.welampiot.vo.EnvmonitorVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -254,4 +255,49 @@ public class EnvmonitorServiceImpl implements EnvmonitorService {
     public EnvmonitorDTO getEnvmonitorMpDataById(Integer id) {
         return envmonitorDao.getEnvmonitorMpDataById(id);
     }
+
+    @Override
+    public List<EnvmonitorDTO> getEnvmonitorListByVO(EnvmonitorVO vo) {
+        return envmonitorDao.getEnvmonitorListByVO(vo);
+    }
+
+    @Override
+    public Integer getEnvmonitorTotalByVO(EnvmonitorVO vo) {
+        return envmonitorDao.getEnvmonitorTotalByVO(vo);
+    }
+
+    @Override
+    public void addEnvmonitorData(EnvmonitorDTO dto) {
+        envmonitorDao.addEnvmonitorData(dto);
+    }
+
+    @Override
+    public void updateEnvmonitorData(EnvmonitorDTO dto) {
+        envmonitorDao.updateEnvmonitorData(dto);
+    }
+
+    @Override
+    public EnvmonitorDTO getEnvmonitorDetailByVO(EnvmonitorDetailVO vo) {
+        return envmonitorDao.getEnvmonitorDetailByVO(vo);
+    }
+
+    @Override
+    public void addIlluminanceData(EnvmonitorDTO dto) {
+        envmonitorDao.addIlluminanceData(dto);
+    }
+
+    @Override
+    public void updateIlluminanceData(EnvmonitorDTO dto) {
+        envmonitorDao.updateIlluminanceData(dto);
+    }
+
+    @Override
+    public EnvmonitorDTO getIlluminanceDetailByVO(EnvmonitorDetailVO vo) {
+        return envmonitorDao.getIlluminanceDetailByVO(vo);
+    }
+
+    @Override
+    public List<EnvmonitorDTO> getIlluminanceListByVO(EnvmonitorVO vo) {
+        return envmonitorDao.getIlluminanceListByVO(vo);
+    }
 }

+ 80 - 0
src/main/java/com/welampiot/vo/EnvmonitorDetailVO.java

@@ -0,0 +1,80 @@
+package com.welampiot.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * ClassName: EnvmonitorDetailVO
+ * Package: com.welampiot.vo
+ * Description:
+ *
+ * @Author: zhj_Start
+ * @Create: 2023/8/22 - 14:56
+ * @Version: v1.0
+ */
+@Data
+public class EnvmonitorDetailVO implements Serializable {
+    private Integer id;
+
+    private String number;
+
+    private String username;
+
+    private Integer areaId;
+
+    private Integer sectionId;
+
+    private String sn;
+
+    private String name;
+
+    private Double longitude;
+
+    private Double latitude;
+
+    private String manuFactor;
+
+    private String remarks;
+
+    private String model;
+
+    private String monitorType;
+
+    private String batteryAh;
+
+    private Integer lampPoleId;
+
+    private Integer version;
+
+    private String address;
+
+    private String area;
+
+    private String section;
+
+    /** 湿度 **/
+    private Float humidity;
+
+    /** 温度 **/
+    private Float temperature;
+
+    private Float PM100;
+
+    private Float PM10;
+
+    private Float PM25;
+
+    /** 噪声 **/
+    private Float noise;
+
+    /** 大气压强 **/
+    private Float atmosPressue;
+
+    private Integer protocolType;
+
+    /** 最新光照强度 **/
+    private Integer illumination;
+
+    private String protocolTypeStr;
+}

+ 8 - 0
src/main/java/com/welampiot/vo/EnvmonitorVO.java

@@ -19,6 +19,14 @@ import java.util.List;
 public class EnvmonitorVO implements Serializable {
     private Integer total;
 
+    private Integer version;
+    private Integer page;
+    private Integer count;
+    private String keyword;
+    private Integer areaId;
+    private Integer sectionId;
+    private List<String> sectionList;
+
     private Integer deviceCount;
 
     private Integer onlineCount;

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

@@ -219,4 +219,10 @@
         ORDER BY e.updatetime DESC
     </select>
 
+    <delete id="deleteEnvmonitorInfoLogData">
+        delete
+        from envmonitor_info_log
+        where envmonitorid = #{envmonitorId};
+    </delete>
+
 </mapper>

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

@@ -92,9 +92,18 @@
         <if test="model != null and model != ''">
             and e.model = #{model}
         </if>
+        <if test="name != null and name != ''">
+            and e.name = #{name}
+        </if>
         <if test="address != null and address != ''">
             and e.address = #{address}
         </if>
+        <if test="num != null and num != ''">
+            and e.num = #{num}
+        </if>
+        <if test="number != null and number != ''">
+            and e.number = #{number}
+        </if>
         <if test="id != null and id != 0">
             and e.id != #{id}
         </if>
@@ -254,4 +263,316 @@
             e.id = #{id}
     </select>
 
+    <select id="getEnvmonitorListByVO" resultType="EnvmonitorDTO">
+        select
+        e.id,e.model as `name`,
+        e.number,
+        eil.updatetime as updateTime,
+        eil.humidity,
+        eil.temperature,
+        eil.noise,
+        eil.PM10,
+        eil.PM25,
+        eil.atmospressue
+        from envmonitor e
+        left join (
+            SELECT t1.*
+            FROM envmonitor_info_log t1
+            INNER JOIN ( SELECT
+                             envmonitorid,
+                             MAX( updatetime ) AS maxDateTime
+                         FROM envmonitor_info_log
+                         GROUP BY envmonitorid ) t2
+        ON t1.envmonitorid = t2.envmonitorid
+        AND t1.updatetime = t2.maxDateTime) as eil on e.id = eil.envmonitorid
+        where e.lamp_pole_id = 0 and e.type = 0
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and e.sectionid in
+            <foreach collection="sectionList" item="dto" open="(" separator="," close=")">
+                #{dto}
+            </foreach>
+        </if>
+        <if test="keyword != null and keyword != ''">
+            and e.number like '%${keyword}%'
+        </if>
+        <if test="areaId != null and areaId != 0">
+            and e.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and e.sectionid = #{sectionId}
+        </if>
+        order by convert(e.model using gbk) asc,e.id desc
+        <if test="page >= 0 and count > 0">
+            limit #{page},#{count}
+        </if>
+    </select>
+
+    <select id="getEnvmonitorTotalByVO" resultType="Integer">
+        select count(*)
+        from envmonitor e
+        where e.type = 0 and e.lamp_pole_id = 0
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and e.sectionid in
+            <foreach collection="sectionList" item="dto" open="(" separator="," close=")">
+                #{dto}
+            </foreach>
+        </if>
+        <if test="areaId != null and areaId != 0">
+            and e.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and e.sectionid = #{sectionId}
+        </if>
+    </select>
+    
+    <insert id="addEnvmonitorData" parameterType="EnvmonitorDTO" useGeneratedKeys="true" keyProperty="id">
+        insert into envmonitor(`number`,
+        areaid,
+        sectionid,
+        networkid,
+        <if test="longitude != null and longitude != ''">
+            longitude,
+        </if>
+        <if test="latitude != null and latitude != ''">
+            latitude,
+        </if>
+        <if test="monitorType != null and monitorType != ''">
+            monitortype,
+        </if>
+        <if test="batteryAh != null and batteryAh != ''">
+            batteryah,
+        </if>
+        <if test="lampPoleId != null and lampPoleId != 0">
+            lamp_pole_id,
+        </if>
+        num,
+        createtime,
+        updatetime)
+        values (#{number},
+        #{areaId},
+        #{sectionId},
+        #{networkId},
+        <if test="longitude != null and longitude != ''">
+            #{longitude},
+        </if>
+        <if test="latitude != null and latitude != ''">
+            #{latitude},
+        </if>
+        <if test="monitorType != null and monitorType != ''">
+            #{monitorType},
+        </if>
+        <if test="batteryAh != null and batteryAh != ''">
+            #{batteryAh},
+        </if>
+        <if test="lampPoleId != null and lampPoleId != 0">
+            #{lampPoleId},
+        </if>
+        #{num},
+        #{createTime},
+        #{updateTime})
+    </insert>
+
+    <update id="updateEnvmonitorData" parameterType="EnvmonitorDTO">
+        update envmonitor e
+        set
+            e.number = #{number},
+            e.areaid = #{areaId},
+            e.sectionid = #{sectionId},
+            <if test="longitude != null and longitude != ''">
+                e.longitude = #{longitude},
+            </if>
+            <if test="latitude != null and latitude != ''">
+                e.latitude = #{latitude},
+            </if>
+            <if test="monitorType != null and monitorType != ''">
+                e.monitortype = #{monitorType},
+            </if>
+            <if test="batteryAh != null and batteryAh != ''">
+                e.batteryah = #{batteryAh},
+            </if>
+            <if test="lampPoleId != null and lampPoleId != 0">
+                e.lamp_pole_id = #{lampPoleId},
+            </if>
+            e.num = #{num},
+            e.updatetime = #{updateTime}
+        where
+            e.id = #{id}
+    </update>
+
+    <select id="getEnvmonitorDetailByVO" resultType="EnvmonitorDTO">
+        select
+            e.id,
+            e.number,
+            e.areaid as areaId,
+            e.sectionid as sectionId,
+            e.address,
+            e.longitude,
+            e.latitude,
+            e.monitortype as monitorType,
+            e.batteryah as batteryAh,
+            eil.PM10,
+            eil.PM25,
+            eil.temperature,
+            eil.humidity,
+            eil.noise,
+            eil.atmospressue as atmosPressue,
+            eil.illumination,
+            n.protocoltype as protocolType,
+            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 envmonitor e
+        left join section s on s.id = e.sectionid
+        left join global_location gl on s.pid = gl.id
+        left join network n on e.networkid = n.id
+        left join (
+        SELECT t1.*
+        FROM envmonitor_info_log t1
+        INNER JOIN ( SELECT
+        envmonitorid,
+        MAX( updatetime ) AS maxDateTime
+        FROM envmonitor_info_log
+        GROUP BY envmonitorid ) t2
+        ON t1.envmonitorid = t2.envmonitorid
+        AND t1.updatetime = t2.maxDateTime) as eil on e.id = eil.envmonitorid
+        where e.id = #{id} and e.type = 0
+    </select>
+
+    <insert id="addIlluminanceData" parameterType="EnvmonitorDTO" useGeneratedKeys="true" keyProperty="id">
+        insert into envmonitor(`model`,
+        areaid,
+        sectionid,
+        networkid,
+        remarks,
+        manufactor,
+        `name`,
+        longitude,
+        latitude,
+        address,
+        createtime,
+        updatetime)
+        values (#{model},
+        #{areaId},
+        #{sectionId},
+        #{networkId},
+        #{remarks},
+        #{manuFactor},
+        #{name},
+        #{longitude},
+        #{latitude},
+        #{address},
+        #{createTime},
+        #{updateTime})
+    </insert>
+
+    <update id="updateIlluminanceData" parameterType="EnvmonitorDTO">
+        update envmonitor e
+        set
+        e.model = #{model},
+        e.areaid = #{areaId},
+        e.sectionid = #{sectionId},
+        e.longitude = #{longitude},
+        e.latitude = #{latitude},
+        e.address = #{address},
+        e.name = #{name},
+        e.remarks = #{remarks},
+        e.manufactor = #{manuFactor},
+        e.updatetime = #{updateTime}
+        where
+        e.id = #{id}
+    </update>
+
+    <select id="getIlluminanceDetailByVO" resultType="EnvmonitorDTO">
+        select
+        e.id,
+        e.name,
+        e.areaid as areaId,
+        e.sectionid as sectionId,
+        e.address,
+        e.longitude,
+        e.latitude,
+        e.model,
+        e.remarks,
+        e.manufactor as manuFactor,
+        n.protocoltype as protocolType,
+        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 envmonitor e
+        left join section s on s.id = e.sectionid
+        left join global_location gl on s.pid = gl.id
+        left join network n on e.networkid = n.id
+        where e.id = #{id} and e.type = 1
+    </select>
+
+    <select id="getIlluminanceListByVO" resultType="EnvmonitorDTO">
+        select
+        e.id,
+        e.name,
+        e.areaid as areaId,
+        e.sectionid as sectionId,
+        e.address,
+        e.longitude,
+        e.latitude,
+        e.model,
+        e.remarks,
+        e.manufactor as manuFactor,
+        n.protocoltype as protocolType,
+        s.name as section,
+        e.illumination
+        <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 envmonitor e
+        left join section s on s.id = e.sectionid
+        left join global_location gl on s.pid = gl.id
+        left join network n on e.networkid = n.id
+        where e.type = 1
+        <if test="sectionList != null and !sectionList.isEmpty()">
+            and e.sectionid in
+            <foreach collection="sectionList" item="dto" open="(" separator="," close=")">
+                #{dto}
+            </foreach>
+        </if>
+        <if test="keyword != null and keyword != ''">
+            and e.name like '%${keyword}%'
+        </if>
+        <if test="areaId != null and areaId != 0">
+            and e.areaid = #{areaId}
+        </if>
+        <if test="sectionId != null and sectionId != 0">
+            and e.sectionid = #{sectionId}
+        </if>
+        order by convert(e.name using gbk) asc,e.id desc
+        <if test="page >= 0 and count > 0">
+            limit #{page},#{count}
+        </if>
+    </select>
+
 </mapper>