Ver Fonte

设置保存告警

Zimo há 7 horas atrás
pai
commit
03142d4935

+ 4 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/ThingsModelDTO.java

@@ -117,4 +117,8 @@ public class ThingsModelDTO {
     private Integer canSend;
 
     private String ifAlarm;
+
+    private Long alarmSettingId;
+    private String maxValue;
+    private String minValue;
 }

+ 12 - 0
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/IotDeviceController.java

@@ -23,10 +23,12 @@ import cn.iocoder.yudao.module.pms.controller.admin.vo.excel.DeviceImportExcelVO
 import cn.iocoder.yudao.module.pms.controller.admin.yanfan.vo.DevicePageReqVO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.IotProductClassifyDO;
+import cn.iocoder.yudao.module.pms.dal.dataobject.alarm.IotAlarmSettingDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.failure.IotFailureReportDO;
 import cn.iocoder.yudao.module.pms.dal.dataobject.yanfan.YfDeviceDO;
 import cn.iocoder.yudao.module.pms.dal.mysql.IotDeviceMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.TDDeviceMapper;
+import cn.iocoder.yudao.module.pms.dal.mysql.alarm.IotAlarmSettingMapper;
 import cn.iocoder.yudao.module.pms.enums.common.IotDeviceStatusEnum;
 import cn.iocoder.yudao.module.pms.oa.OaFlow;
 import cn.iocoder.yudao.module.pms.service.DeviceServiceImpl;
@@ -111,6 +113,8 @@ public class IotDeviceController {
     private DeptUtil deptUtil;
     @Autowired
     private IotDeviceMapper iotDeviceMapper;
+    @Autowired
+    private IotAlarmSettingMapper iotAlarmSettingMapper;
 
     @GetMapping(value = {"/company"})
     @Operation(summary = "获取设备属于哪个公司", description = "获取设备属于哪个公司")
@@ -200,6 +204,14 @@ public class IotDeviceController {
     public CommonResult<List<ThingsModelDTO>> getIotDeviceTdZhbd(@RequestParam("id") Long id) {
         IotDeviceDO iotDevice = iotDeviceService.getIotDevice(id);
         List<ThingsModelDTO> tdParams = iotDeviceService.getTdZhbdParams(iotDevice);
+        List<IotAlarmSettingDO> settings = iotAlarmSettingMapper.selectList("device_id", id);
+        tdParams.forEach(e ->{
+            settings.stream().filter(f -> f.getPropertyCode().equals(e.getIdentifier())).findFirst().ifPresent(g ->{
+                e.setAlarmSettingId(g.getId());
+                e.setMaxValue(g.getMaxValue());
+                e.setMinValue(g.getMinValue());
+            });
+        });
         return success(tdParams);
     }
 

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

@@ -1,41 +1,33 @@
 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.framework.apilog.core.annotation.ApiAccessLog;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 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;
-import org.springframework.security.access.prepost.PreAuthorize;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
 
-import javax.validation.constraints.*;
-import javax.validation.*;
-import javax.servlet.http.*;
-import java.util.*;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
 import java.io.IOException;
+import java.util.List;
+import java.util.Objects;
 
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 
-import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
-
-import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
-import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
-
 
 @Tag(name = "管理后台 - 告警设置")
 @RestController
@@ -53,6 +45,13 @@ public class IotAlarmSettingController {
         return success(iotAlarmSettingService.createIotAlarmSetting(createReqVO));
     }
 
+    @PostMapping("/save")
+    @Operation(summary = "创建告警设置")
+    @PreAuthorize("@ss.hasPermission('rq:iot-alarm-setting:create')")
+    public CommonResult<IotAlarmSettingDO> saveIotAlarmSetting(@Valid @RequestBody IotAlarmSettingSaveReqVO createReqVO) {
+        return success(iotAlarmSettingService.saveIotAlarmSetting(createReqVO));
+    }
+
     @PostMapping("/batch/update")
     @Operation(summary = "创建告警设置")
     @PreAuthorize("@ss.hasPermission('rq:iot-alarm-setting:create')")

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

@@ -1,13 +1,12 @@
 package cn.iocoder.yudao.module.pms.service.alarm;
 
-import java.util.*;
-import javax.validation.*;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
 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.alarm.IotAlarmSettingDO;
 
+import javax.validation.Valid;
+
 /**
  * 告警设置 Service 接口
  *
@@ -15,6 +14,7 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.alarm.IotAlarmSettingDO;
  */
 public interface IotAlarmSettingService {
     IotAlarmSettingDO getDeviceRange(String deviceCode, String identifier);
+    IotAlarmSettingDO saveIotAlarmSetting(@Valid IotAlarmSettingSaveReqVO createReqVO);
     /**
      * 创建告警设置
      *

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

@@ -3,26 +3,26 @@ 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.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 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.IotProductClassifyDO;
 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.IotProductClassifyMapper;
 import cn.iocoder.yudao.module.pms.dal.mysql.alarm.IotAlarmSettingMapper;
 import com.google.common.collect.ImmutableMap;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import javax.annotation.Resource;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.transaction.annotation.Transactional;
 
-import java.util.*;
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-
-
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 
 /**
@@ -38,6 +38,8 @@ public class IotAlarmSettingServiceImpl implements IotAlarmSettingService {
     private IotAlarmSettingMapper iotAlarmSettingMapper;
     @Resource
     private IotDeviceMapper iotDeviceMapper;
+    @Autowired
+    private IotProductClassifyMapper iotProductClassifyMapper;
 
     @Override
     public IotAlarmSettingDO getDeviceRange(String deviceCode, String identifier) {
@@ -63,6 +65,28 @@ public class IotAlarmSettingServiceImpl implements IotAlarmSettingService {
         }
     }
 
+    @Override
+    public IotAlarmSettingDO saveIotAlarmSetting(IotAlarmSettingSaveReqVO createReqVO) {
+        // 插入
+        IotAlarmSettingDO iotAlarmSetting = BeanUtils.toBean(createReqVO, IotAlarmSettingDO.class);
+        IotDeviceDO iotDeviceDO = iotDeviceMapper.selectById(iotAlarmSetting.getDeviceId());
+        if (Objects.nonNull(iotDeviceDO)) {
+            IotProductClassifyDO iotProductClassifyDO = iotProductClassifyMapper.selectById(iotDeviceDO.getAssetClass());
+            if (Objects.nonNull(iotProductClassifyDO)) {
+                iotAlarmSetting.setClassifyName(iotProductClassifyDO.getName());
+            }
+        }
+        iotAlarmSetting.setDeleted(false);
+        if (Objects.isNull(createReqVO.getId())) {
+            iotAlarmSettingMapper.insert(iotAlarmSetting);
+        } else {
+            iotAlarmSettingMapper.updateById(iotAlarmSetting);
+        }
+        // 返回
+        return iotAlarmSetting;
+    }
+
+
     @Override
     public Long createIotAlarmSetting(IotAlarmSettingSaveReqVO createReqVO) {
         // 插入