Эх сурвалжийг харах

feat(devices): 新增设备编码枚举并优化设备管理功能

- 新增 DeviceCodeEnum 枚举类定义环境设备编码
- 重构设备离线检查任务中的服务依赖注入
- 在 EquipmentBase 实体类中添加设备经纬度字段
- 为设备基础信息控制器添加 Swagger API 注解并移除匿名访问权限
- 优化设备基础信息服务中的模糊查询逻辑
- 为设备维护记录和设备状态控制器添加匿名访问支持
- 重命名管井服务中的设备状态相关类以避免冲突
- 更新环境实时数据接口路径并新增设备分组查询功能
林仔 1 сар өмнө
parent
commit
918afca372
16 өөрчлөгдсөн 108 нэмэгдсэн , 34 устгасан
  1. 1 1
      manhole-service/src/main/java/com/zksy/manhole/domain/EquipmentStatusManhole.java
  2. 2 2
      manhole-service/src/main/java/com/zksy/manhole/mapper/EquipmentStatusManholeMapper.java
  3. 2 2
      manhole-service/src/main/java/com/zksy/manhole/service/EquipmentStatusManholeService.java
  4. 12 0
      manhole-service/src/main/java/com/zksy/manhole/service/impl/EquipmentStatusManholeServiceImpl.java
  5. 0 12
      manhole-service/src/main/java/com/zksy/manhole/service/impl/EquipmentStatusServiceImpl.java
  6. 2 3
      manhole-service/src/main/java/com/zksy/manhole/utils/DeviceOfflineCheckTask.java
  7. 2 5
      pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/base/EquipmentBaseController.java
  8. 6 0
      pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/base/EquipmentMaintainController.java
  9. 6 0
      pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/base/EquipmentStatusController.java
  10. 6 0
      pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/base/EquipmentTypeController.java
  11. 14 4
      pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/base/environment/ERealTimeDataController.java
  12. 16 0
      pipe-network-service/zksy-system/src/main/java/com/zksy/base/alarm/domain/Enum/DeviceCodeEnum.java
  13. 12 0
      pipe-network-service/zksy-system/src/main/java/com/zksy/base/domain/EquipmentBase.java
  14. 2 0
      pipe-network-service/zksy-system/src/main/java/com/zksy/base/environment/service/ERealTimeDataService.java
  15. 12 0
      pipe-network-service/zksy-system/src/main/java/com/zksy/base/environment/service/impl/ERealTimeDataServiceImpl.java
  16. 13 5
      pipe-network-service/zksy-system/src/main/java/com/zksy/base/service/impl/EquipmentBaseServiceImpl.java

+ 1 - 1
manhole-service/src/main/java/com/zksy/manhole/domain/EquipmentStatus.java → manhole-service/src/main/java/com/zksy/manhole/domain/EquipmentStatusManhole.java

@@ -18,7 +18,7 @@ import java.util.Date;
 @AllArgsConstructor
 @NoArgsConstructor
 @TableName("equipment_status")
-public class EquipmentStatus {
+public class EquipmentStatusManhole {
 
     @TableId(value = "status_id", type = IdType.ASSIGN_UUID)
     /**

+ 2 - 2
manhole-service/src/main/java/com/zksy/manhole/mapper/EquipmentStatusMapper.java → manhole-service/src/main/java/com/zksy/manhole/mapper/EquipmentStatusManholeMapper.java

@@ -1,9 +1,9 @@
 package com.zksy.manhole.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.zksy.manhole.domain.EquipmentStatus;
+import com.zksy.manhole.domain.EquipmentStatusManhole;
 import org.apache.ibatis.annotations.Mapper;
 
 @Mapper
-public interface EquipmentStatusMapper extends BaseMapper<EquipmentStatus> {
+public interface EquipmentStatusManholeMapper extends BaseMapper<EquipmentStatusManhole> {
 }

+ 2 - 2
manhole-service/src/main/java/com/zksy/manhole/service/EquipmentStatusService.java → manhole-service/src/main/java/com/zksy/manhole/service/EquipmentStatusManholeService.java

@@ -1,9 +1,9 @@
 package com.zksy.manhole.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.zksy.manhole.domain.EquipmentStatus;
+import com.zksy.manhole.domain.EquipmentStatusManhole;
 import org.springframework.stereotype.Service;
 
 @Service
-public interface EquipmentStatusService extends IService<EquipmentStatus> {
+public interface EquipmentStatusManholeService extends IService<EquipmentStatusManhole> {
 }

+ 12 - 0
manhole-service/src/main/java/com/zksy/manhole/service/impl/EquipmentStatusManholeServiceImpl.java

@@ -0,0 +1,12 @@
+package com.zksy.manhole.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.zksy.manhole.domain.EquipmentStatusManhole;
+import com.zksy.manhole.mapper.EquipmentStatusManholeMapper;
+import com.zksy.manhole.service.EquipmentStatusManholeService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class EquipmentStatusManholeServiceImpl extends ServiceImpl<EquipmentStatusManholeMapper, EquipmentStatusManhole>
+        implements EquipmentStatusManholeService {
+}

+ 0 - 12
manhole-service/src/main/java/com/zksy/manhole/service/impl/EquipmentStatusServiceImpl.java

@@ -1,12 +0,0 @@
-package com.zksy.manhole.service.impl;
-
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.zksy.manhole.domain.EquipmentStatus;
-import com.zksy.manhole.mapper.EquipmentStatusMapper;
-import com.zksy.manhole.service.EquipmentStatusService;
-import org.springframework.stereotype.Service;
-
-@Service
-public class EquipmentStatusServiceImpl extends ServiceImpl<EquipmentStatusMapper, EquipmentStatus>
-        implements EquipmentStatusService {
-}

+ 2 - 3
manhole-service/src/main/java/com/zksy/manhole/utils/DeviceOfflineCheckTask.java

@@ -1,7 +1,6 @@
 package com.zksy.manhole.utils;
 
-import com.zksy.manhole.service.BaseDevicesService;
-import com.zksy.manhole.service.ManholeDataService;
+import com.zksy.manhole.service.BaseDevicesManholeService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -19,7 +18,7 @@ public class DeviceOfflineCheckTask {
     // 用于存储设备编号及其最后一次接收数据的时间
     public static Map<String, Date> deviceLastReceiveTimeMap = new HashMap<>();
     @Autowired
-    private BaseDevicesService baseDevicesService;
+    private BaseDevicesManholeService baseDevicesService;
 
     // 定时检查设备是否离线
     @Scheduled(fixedRate = 24 * 60 * 60 * 1000) // 每24小时执行一次

+ 2 - 5
pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/base/EquipmentBaseController.java

@@ -9,6 +9,7 @@ import com.zksy.common.annotation.Anonymous;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.enums.BusinessType;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,6 +23,7 @@ import java.util.List;
 @Slf4j
 @RestController
 @RequestMapping("/EquipmentBase")
+@Api(tags = "设备基础信息")
 public class EquipmentBaseController {
 
     @Autowired
@@ -57,7 +59,6 @@ public class EquipmentBaseController {
         return AjaxResult.success(service.list());
     }
 
-    @Anonymous
     @PostMapping("/save")
     @ApiOperation(value = "新增设备基础信息")
     @Log(title = "新增设备基础信息", businessType = BusinessType.INSERT)
@@ -67,7 +68,6 @@ public class EquipmentBaseController {
                 : AjaxResult.error("新增失败",saved);
     }
 
-    @Anonymous
     @PostMapping("/saveBatch")
     @ApiOperation(value = "设备基础信息批量新增")
     @Log(title = "批量新增设备基础信息", businessType = BusinessType.INSERT)
@@ -82,7 +82,6 @@ public class EquipmentBaseController {
                 : AjaxResult.error("新增失败",saved);
     }
 
-    @Anonymous
     @PutMapping("/updateById")
     @ApiOperation(value = "设备基础信息修改")
     @Log(title = "修改设备基础信息", businessType = BusinessType.UPDATE)
@@ -92,7 +91,6 @@ public class EquipmentBaseController {
                 : AjaxResult.error("修改失败",updated);
     }
 
-    @Anonymous
     @DeleteMapping("/deleteById")
     @ApiOperation(value = "设备基础信息删除")
     @Log(title = "删除设备基础信息", businessType = BusinessType.DELETE)
@@ -102,7 +100,6 @@ public class EquipmentBaseController {
                 : AjaxResult.error("删除失败",deleted);
     }
 
-    @Anonymous
     @DeleteMapping("/deleteBatchById")
     @ApiOperation(value = "设备基础信息批量删除")
     @Log(title = "设备基础信息批量删除", businessType = BusinessType.DELETE)

+ 6 - 0
pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/base/EquipmentMaintainController.java

@@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zksy.base.domain.EquipmentMaintain;
 import com.zksy.base.service.EquipmentMaintainService;
+import com.zksy.common.annotation.Anonymous;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.enums.BusinessType;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +22,7 @@ import java.util.List;
 @Slf4j
 @RestController
 @RequestMapping("/EquipmentMaintain")
+@Api(tags = "设备维护记录")
 public class EquipmentMaintainController {
 
     @Autowired
@@ -27,6 +30,7 @@ public class EquipmentMaintainController {
 
     @GetMapping("/getById/{id}")
     @ApiOperation(value = "设备维护记录搜索getById")
+    @Anonymous
     public AjaxResult getById(@PathVariable String id) {
         EquipmentMaintain equipmentMaintain = service.getById(id);
         if(equipmentMaintain==null){
@@ -38,6 +42,7 @@ public class EquipmentMaintainController {
     //TODO 查询条件待完善
     @GetMapping("/findByPage")
     @ApiOperation(value = "设备维护记录分页")
+    @Anonymous
     public Page findByPage(long pageNum, long pageSize,
                            @RequestParam(required = false)String maintainId,
                            @RequestParam(required = false)String equipmentId,
@@ -48,6 +53,7 @@ public class EquipmentMaintainController {
 
     @GetMapping("/getList")
     @ApiOperation(value = "查询所有设备维护记录")
+    @Anonymous
     public AjaxResult getList() throws Exception {
         return AjaxResult.success(service.list());
     }

+ 6 - 0
pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/base/EquipmentStatusController.java

@@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zksy.base.domain.EquipmentStatus;
 import com.zksy.base.service.EquipmentStatusService;
+import com.zksy.common.annotation.Anonymous;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.enums.BusinessType;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +22,7 @@ import java.util.List;
 @Slf4j
 @RestController
 @RequestMapping("/EquipmentStatus")
+@Api(tags = "设备状态")
 public class EquipmentStatusController {
 
     @Autowired
@@ -27,6 +30,7 @@ public class EquipmentStatusController {
 
     @GetMapping("/getById/{id}")
     @ApiOperation(value = "设备状态搜索getById")
+    @Anonymous
     public AjaxResult getById(@PathVariable String id) {
         EquipmentStatus equipmentStatus = service.getById(id);
         if(equipmentStatus==null){
@@ -37,6 +41,7 @@ public class EquipmentStatusController {
 
     @GetMapping("/findByPage")
     @ApiOperation(value = "设备状态分页")
+    @Anonymous
     public Page findByPage(long pageNum, long pageSize,
                            @RequestParam(required = false) String statusId,
                            @RequestParam(required = false) String equipmentId,
@@ -49,6 +54,7 @@ public class EquipmentStatusController {
 
     @GetMapping("/getList")
     @ApiOperation(value = "查询所有设备状态")
+    @Anonymous
     public AjaxResult getList() throws Exception {
         return AjaxResult.success(service.list());
     }

+ 6 - 0
pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/base/EquipmentTypeController.java

@@ -4,9 +4,11 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zksy.base.domain.EquipmentType;
 import com.zksy.base.service.EquipmentTypeService;
+import com.zksy.common.annotation.Anonymous;
 import com.zksy.common.annotation.Log;
 import com.zksy.common.core.domain.AjaxResult;
 import com.zksy.common.enums.BusinessType;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,6 +19,7 @@ import java.util.List;
 @Slf4j
 @RestController
 @RequestMapping("/EquipmentType")
+@Api(tags = "设备类别")
 public class EquipmentTypeController {
 
     @Autowired
@@ -24,6 +27,7 @@ public class EquipmentTypeController {
 
     @GetMapping("/getById/{id}")
     @ApiOperation(value = "设备类别搜索getById")
+    @Anonymous
     public AjaxResult getById(@PathVariable String id) {
         EquipmentType equipmentType = service.getById(id);
         if(equipmentType==null){
@@ -34,6 +38,7 @@ public class EquipmentTypeController {
 
     @GetMapping("/findByPage")
     @ApiOperation(value = "设备类别分页")
+    @Anonymous
     public Page findByPage(long pageNum, long pageSize,
                            @RequestParam(required = false)String typeId,
                            @RequestParam(required = false)String typeName,
@@ -43,6 +48,7 @@ public class EquipmentTypeController {
 
     @GetMapping("/getList")
     @ApiOperation(value = "查询所有设备类别")
+    @Anonymous
     public AjaxResult getList() throws Exception {
         return AjaxResult.success(service.list());
     }

+ 14 - 4
pipe-network-service/zksy-admin/src/main/java/com/zksy/web/controller/base/environment/ERealTimeDataController.java

@@ -2,7 +2,10 @@ package com.zksy.web.controller.base.environment;
 
 import com.zksy.base.environment.domain.ERealTimeData;
 import com.zksy.base.environment.service.ERealTimeDataService;
+import com.zksy.common.annotation.Anonymous;
 import com.zksy.common.core.domain.AjaxResult;
+
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -14,6 +17,8 @@ import java.util.*;
 
 @RestController
 @RequestMapping("/api/env")
+@Api(tags = "环境数据接口")
+@Anonymous
 public class ERealTimeDataController {
 
     @Autowired
@@ -22,14 +27,14 @@ public class ERealTimeDataController {
     private static final DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd");
     private static final DateTimeFormatter DATETIME_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 
-    @GetMapping("/latest")
+    @GetMapping("/visualization/latest")
     @ApiOperation("查询最新数据")
     public AjaxResult getLatest(@RequestParam Integer deviceId,
                                    @RequestParam Integer nodeId) {
         return AjaxResult.success(dataService.getLatestByDeviceNode(deviceId, nodeId));
     }
 
-    @GetMapping("/daily-stats")
+    @GetMapping("/visualization/daily-stats")
     @ApiOperation("按天统计(均值、最大值、最小值)")
     public AjaxResult getDailyStats(@RequestParam Integer deviceId,
                                              @RequestParam Integer nodeId,
@@ -38,7 +43,7 @@ public class ERealTimeDataController {
         return AjaxResult.success(dataService.getDailyStats(deviceId, nodeId, localDate));
     }
 
-    @GetMapping("/trend")
+    @GetMapping("/visualization/trend")
     @ApiOperation("设备趋势分析")
     public AjaxResult getTrend(@RequestParam Integer deviceId,
                                               @RequestParam Integer nodeId,
@@ -49,7 +54,7 @@ public class ERealTimeDataController {
         return AjaxResult.success(dataService.getTrend(deviceId, nodeId, startTime, endTime));
     }
 
-    @GetMapping("/alarms")
+    @GetMapping("/visualization/alarms")
     @ApiOperation("查询报警数据")
     public AjaxResult getAlarms(@RequestParam Integer deviceId,
                                 @RequestParam Integer nodeId,
@@ -61,4 +66,9 @@ public class ERealTimeDataController {
         return AjaxResult.success(dataService.getAlarms(deviceId, nodeId, startTime, endTime, threshold));
     }
 
+    @GetMapping("/visualization/device-group")
+    @ApiOperation("根据设备分组查询")
+    public AjaxResult getDeviceGroup() {
+        return AjaxResult.success(dataService.getDeviceGroup());
+    }
 }

+ 16 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/alarm/domain/Enum/DeviceCodeEnum.java

@@ -0,0 +1,16 @@
+package com.zksy.base.alarm.domain.Enum;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+/**
+ * 设备编码枚举(新增)
+ */
+@Getter
+@AllArgsConstructor
+public enum DeviceCodeEnum {
+    ENVIRONMENT_DEVICE("21119740", "环境设备"); // 对应数据库中的设备编码
+
+    private final String code;  // 设备编码
+    private final String name;  // 设备名称
+}

+ 12 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/domain/EquipmentBase.java

@@ -1,6 +1,7 @@
 package com.zksy.base.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -8,6 +9,7 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -71,6 +73,16 @@ public class EquipmentBase {
      */
     private Integer useLife;
 
+    /**
+     * 设备经度
+     */
+    private BigDecimal longitude;
+
+    /**
+     * 设备纬度
+     */
+    private BigDecimal latitude;
+
     /**
      * 备注信息
      */

+ 2 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/environment/service/ERealTimeDataService.java

@@ -23,4 +23,6 @@ public interface ERealTimeDataService extends IService<ERealTimeData> {
     List<Map<String, Object>> getTrend(Integer deviceId, Integer nodeId, LocalDateTime start, LocalDateTime end);
 
     List<Map<String, Object>> getAlarms(Integer deviceId, Integer nodeId, LocalDateTime start, LocalDateTime end, Double threshold);
+
+    List<String> getDeviceGroup();
 }

+ 12 - 0
pipe-network-service/zksy-system/src/main/java/com/zksy/base/environment/service/impl/ERealTimeDataServiceImpl.java

@@ -132,6 +132,18 @@ public class ERealTimeDataServiceImpl extends ServiceImpl<ERealTimeDataMapper, E
                 return 0d;
         }
     }
+
+    @Override
+    public List<String> getDeviceGroup() {
+        return lambdaQuery()
+                .select(ERealTimeData::getDeviceId)
+                .groupBy(ERealTimeData::getDeviceId)
+                .list()
+                .stream()
+                .map(ERealTimeData::getDeviceId)
+                .map(String::valueOf)
+                .collect(Collectors.toList());
+    }
 }
 
 

+ 13 - 5
pipe-network-service/zksy-system/src/main/java/com/zksy/base/service/impl/EquipmentBaseServiceImpl.java

@@ -48,11 +48,19 @@ public class EquipmentBaseServiceImpl extends ServiceImpl<EquipmentBaseMapper, E
                                           String equipmentModel,String manufacturer) {
         Page<EquipmentBase> page = new Page<>(pageNum, pageSize);
         LambdaQueryWrapper<EquipmentBase> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(EquipmentBase::getEquipmentCode,equipmentCode)
-                .eq(EquipmentBase::getEquipmentName,equipmentName)
-                .eq(EquipmentBase::getEquipmentModel,equipmentModel)
-                .eq(EquipmentBase::getManufacturer,manufacturer);
-        return this.page(page,queryWrapper);
+        if (equipmentCode != null && !equipmentCode.isEmpty()) {
+            queryWrapper.like(EquipmentBase::getEquipmentCode, equipmentCode);
+        }
+        if (equipmentName != null && !equipmentName.isEmpty()) {
+            queryWrapper.like(EquipmentBase::getEquipmentName, equipmentName);
+        }
+        if (equipmentModel != null && !equipmentModel.isEmpty()) {
+            queryWrapper.like(EquipmentBase::getEquipmentModel, equipmentModel);
+        }
+        if (manufacturer != null && !manufacturer.isEmpty()) {
+            queryWrapper.like(EquipmentBase::getManufacturer, manufacturer);
+        }
+        return this.page(page, queryWrapper);
     }
 
     /**