Bladeren bron

上下限阈值

lipenghui 5 dagen geleden
bovenliggende
commit
73ced51f2e

+ 16 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/alarm/IotAlarmSettingController.java

@@ -1,10 +1,16 @@
 package cn.iocoder.yudao.module.pms.controller.admin.alarm;
 
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.yudao.framework.common.exception.ErrorCode;
+import cn.iocoder.yudao.framework.common.exception.ServiceException;
 import cn.iocoder.yudao.module.pms.controller.admin.alarm.vo.IotAlarmSettingPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.alarm.vo.IotAlarmSettingRespVO;
 import cn.iocoder.yudao.module.pms.controller.admin.alarm.vo.IotAlarmSettingSaveReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.alarm.IotAlarmSettingDO;
+import cn.iocoder.yudao.module.pms.dal.mysql.IotDeviceMapper;
 import cn.iocoder.yudao.module.pms.service.alarm.IotAlarmSettingService;
+import com.google.common.collect.ImmutableMap;
 import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -102,4 +108,14 @@ public class IotAlarmSettingController {
                         BeanUtils.toBean(list, IotAlarmSettingRespVO.class));
     }
 
+    @GetMapping("/get-device-range")
+    @Operation(summary = "获取设备标识")
+    public CommonResult<IotAlarmSettingRespVO> getDeviceIdentifier(@RequestParam("deviceName") String deviceName, @RequestParam("identifier") String identifier) {
+        IotAlarmSettingDO deviceRange = iotAlarmSettingService.getDeviceRange(deviceName, identifier);
+        if (Objects.isNull(deviceRange)) {
+            return success(new IotAlarmSettingRespVO());
+        }
+        return success(BeanUtils.toBean(deviceRange, IotAlarmSettingRespVO.class));
+    }
+
 }

+ 2 - 2
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/alarm/vo/IotAlarmSettingSaveReqVO.java

@@ -25,11 +25,11 @@ public class IotAlarmSettingSaveReqVO {
     private String deviceName;
 
     @Schema(description = "上限", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotEmpty(message = "上限不能为空")
+//    @NotEmpty(message = "上限不能为空")
     private String maxValue;
 
     @Schema(description = "下限", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotEmpty(message = "下限不能为空")
+//    @NotEmpty(message = "下限不能为空")
     private String minValue;
 
     @Schema(description = "告警属性")

+ 1 - 1
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/alarm/IotAlarmSettingService.java

@@ -14,7 +14,7 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.alarm.IotAlarmSettingDO;
  * @author 超级管理员
  */
 public interface IotAlarmSettingService {
-
+    IotAlarmSettingDO getDeviceRange(String deviceCode, String identifier);
     /**
      * 创建告警设置
      *

+ 26 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/alarm/IotAlarmSettingServiceImpl.java

@@ -1,10 +1,15 @@
 package cn.iocoder.yudao.module.pms.service.alarm;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.iocoder.yudao.framework.common.exception.ErrorCode;
+import cn.iocoder.yudao.framework.common.exception.ServiceException;
 import cn.iocoder.yudao.module.pms.controller.admin.alarm.vo.IotAlarmSettingPageReqVO;
 import cn.iocoder.yudao.module.pms.controller.admin.alarm.vo.IotAlarmSettingSaveReqVO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.alarm.IotAlarmSettingDO;
+import cn.iocoder.yudao.module.pms.dal.mysql.IotDeviceMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.alarm.IotAlarmSettingMapper;
+import com.google.common.collect.ImmutableMap;
 import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
@@ -29,6 +34,27 @@ public class IotAlarmSettingServiceImpl implements IotAlarmSettingService {
 
     @Resource
     private IotAlarmSettingMapper iotAlarmSettingMapper;
+    @Resource
+    private IotDeviceMapper iotDeviceMapper;
+
+    @Override
+    public IotAlarmSettingDO getDeviceRange(String deviceCode, String identifier) {
+        List<IotDeviceDO> iotDeviceDOS = iotDeviceMapper.selectList("device_code", deviceCode);
+        if (CollUtil.isEmpty(iotDeviceDOS)) {
+            throw new ServiceException(new ErrorCode(1111,"设备不存在"));
+        }
+        Long deviceId = iotDeviceDOS.get(0).getId();
+        //获取某个设备的特定属性的区间
+        List<IotAlarmSettingDO> deviceSettings = iotAlarmSettingMapper.selectByMap(ImmutableMap.of("device_id", deviceId,"property_code", identifier));
+        List<IotAlarmSettingDO> classSettings = iotAlarmSettingMapper.selectByMap(ImmutableMap.of("classify_id", iotDeviceDOS.get(0).getAssetClass(),"property_code", identifier));
+        if (CollUtil.isNotEmpty(deviceSettings)) {
+            return deviceSettings.get(0);
+        } else if (CollUtil.isNotEmpty(classSettings)) {
+            return classSettings.get(0);
+        } else {
+            return null;
+        }
+    }
 
     @Override
     public Long createIotAlarmSetting(IotAlarmSettingSaveReqVO createReqVO) {