Parcourir la source

添加告警配置编辑接口

liuyaowen il y a 9 mois
Parent
commit
cda674c4e8

+ 4 - 4
src/main/java/com/yunfeiyun/agmp/iotm/web/controller/IotWarnconfigController.java

@@ -8,6 +8,7 @@ import com.yunfeiyun.agmp.common.enums.BusinessType;
 import com.yunfeiyun.agmp.common.utils.SecurityUtils;
 import com.yunfeiyun.agmp.common.utils.poi.ExcelUtil;
 import com.yunfeiyun.agmp.iot.common.domain.IotWarnconfig;
+import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotWarnconfigEditReqVo;
 import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotWarnconfigAddReqVo;
 import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotWarnconfigResVo;
 import com.yunfeiyun.agmp.iotm.web.service.IIotWarnconfigService;
@@ -72,7 +73,6 @@ public class IotWarnconfigController extends BaseController{
     @Log(title = "告警配置", businessType = BusinessType.INSERT)
     @PostMapping("/add")
     public AjaxResult add(@Valid @RequestBody IotWarnconfigAddReqVo iotWarnconfigAddReqVo){
-
         return toAjax(iotWarnconfigService.add(iotWarnconfigAddReqVo));
     }
 
@@ -82,9 +82,9 @@ public class IotWarnconfigController extends BaseController{
     @PreAuthorize("@ss.hasPermi('iot:warn:config:edit')")
     @Log(title = "告警配置", businessType = BusinessType.UPDATE)
     @PostMapping("/edit")
-    public AjaxResult edit(@Valid @RequestBody IotWarnconfig iotWarnconfig){
-        iotWarnconfig.setTid(SecurityUtils.getTid());
-        return toAjax(iotWarnconfigService.updateIotWarnconfig(iotWarnconfig));
+    public AjaxResult edit(@Valid @RequestBody IotWarnconfigEditReqVo iotWarnconfigEditReqVo){
+        iotWarnconfigEditReqVo.setTid(SecurityUtils.getTid());
+        return toAjax(iotWarnconfigService.edit(iotWarnconfigEditReqVo));
     }
 
     /**

+ 16 - 0
src/main/java/com/yunfeiyun/agmp/iotm/web/domain/reqvo/IotWarnconfigEditReqVo.java

@@ -0,0 +1,16 @@
+package com.yunfeiyun.agmp.iotm.web.domain.reqvo;
+
+import com.yunfeiyun.agmp.iot.common.domain.IotWarnconfig;
+import com.yunfeiyun.agmp.iot.common.domain.IotWarnindicator;
+import com.yunfeiyun.agmp.iot.common.domain.IotWarnobject;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class IotWarnconfigEditReqVo extends IotWarnconfig {
+    // 告警对象
+    private List<IotWarnobject> iotWarnobjectList;
+    // 告警指标
+    private List<IotWarnindicator> iotWarnindicatorList;
+}

+ 4 - 1
src/main/java/com/yunfeiyun/agmp/iotm/web/service/IIotWarnconfigService.java

@@ -2,6 +2,7 @@ package com.yunfeiyun.agmp.iotm.web.service;
 
 import com.yunfeiyun.agmp.iot.common.domain.IotWarnconfig;
 import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotWarnconfigAddReqVo;
+import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotWarnconfigEditReqVo;
 import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotWarnconfigResVo;
 
 import javax.validation.Valid;
@@ -63,7 +64,9 @@ public interface IIotWarnconfigService {
      */
     public int deleteIotWarnconfigByWcBid(String wcBid, String tid);
 
-    int add(@Valid IotWarnconfigAddReqVo iotWarnconfigAddReqVo);
 
     List<IotWarnconfigResVo> selectIotWarnconfigResVoList(IotWarnconfig iotWarnconfig);
+    int add(@Valid IotWarnconfigAddReqVo iotWarnconfigAddReqVo);
+
+    int edit(@Valid IotWarnconfigEditReqVo iotWarnconfigEditReqVo);
 }

+ 33 - 0
src/main/java/com/yunfeiyun/agmp/iotm/web/service/impl/IotWarnconfigServiceImpl.java

@@ -1,12 +1,16 @@
 package com.yunfeiyun.agmp.iotm.web.service.impl;
 
+import com.yunfeiyun.agmp.common.constant.ErrorCode;
+import com.yunfeiyun.agmp.common.exception.BizException;
 import com.yunfeiyun.agmp.common.utils.DateUtils;
 import com.yunfeiyun.agmp.common.utils.SecurityUtils;
+import com.yunfeiyun.agmp.common.utils.StringUtils;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictEnum;
 import com.yunfeiyun.agmp.iot.common.domain.IotWarnconfig;
 import com.yunfeiyun.agmp.iot.common.domain.IotWarnindicator;
 import com.yunfeiyun.agmp.iot.common.domain.IotWarnobject;
 import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotWarnconfigAddReqVo;
+import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotWarnconfigEditReqVo;
 import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotWarnconfigResVo;
 import com.yunfeiyun.agmp.iotm.web.mapper.IotWarnconfigMapper;
 import com.yunfeiyun.agmp.iotm.web.mapper.IotWarnindicatorMapper;
@@ -18,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 告警配置Service业务层处理
@@ -139,4 +144,32 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
         }
         return iotWarnconfigMapper.insertIotWarnconfig(iotWarnconfigAddReqVo);
     }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public int edit(IotWarnconfigEditReqVo iotWarnconfigEditReqVo) {
+        if(StringUtils.isEmpty(iotWarnconfigEditReqVo.getWcBid())){
+            throw new BizException(ErrorCode.INVALID_PARAMETER.getCode(),"告警规则标识不能为空");
+        }
+        // 告警对象全量编辑
+        // 获取告警对象
+        IotWarnobject iotWarnobjectQuery = new IotWarnobject();
+        iotWarnobjectQuery.setTid(SecurityUtils.getTid());
+        iotWarnobjectQuery.setWcBid(iotWarnconfigEditReqVo.getWcBid());
+        List<IotWarnobject> iotWarnobjectList = iotWarnobjectMapper.selectIotWarnobjectList(iotWarnobjectQuery);
+        List<String> oldWarnObjIds = iotWarnobjectList.stream().map(IotWarnobject::getWoBid).collect(Collectors.toList());
+        iotWarnobjectMapper.deleteIotWarnobjectByWoBids(oldWarnObjIds.toArray(new String[0]), SecurityUtils.getTid());
+
+        List<IotWarnobject> warnobjects = iotWarnconfigEditReqVo.getIotWarnobjectList();
+        for(IotWarnobject iotWarnobject : warnobjects){
+            iotWarnobject.setWoBid(iotWarnobject.getUUId());
+            iotWarnobject.setWcBid(iotWarnconfigEditReqVo.getWcBid());
+            iotWarnobject.setTid(SecurityUtils.getTid());
+            iotWarnobjectMapper.insertIotWarnobject(iotWarnobject);
+        }
+        for(IotWarnindicator iotWarnindicator : iotWarnconfigEditReqVo.getIotWarnindicatorList()){
+            iotWarnindicatorMapper.updateIotWarnindicator(iotWarnindicator);
+        }
+        return iotWarnconfigMapper.updateIotWarnconfig(iotWarnconfigEditReqVo);
+    }
 }

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

@@ -103,9 +103,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="wcCreateddate != null">wcCreateddate = #{wcCreateddate},</if>
             <if test="wcModifieddate != null">wcModifieddate = #{wcModifieddate},</if>
             <if test="wcModifier != null">wcModifier = #{wcModifier},</if>
-            <if test="tid != null and tid != ''">tid = #{tid},</if>
         </trim>
-        where wcBid = #{wcBid}
+        where wcBid = #{wcBid} and tid = #{tid}
     </update>
 
     <delete id="deleteIotWarnconfigByWcBid" parameterType="java.lang.String">