Преглед изворни кода

新增 获取虫情配置信息接口

zhaiyifei пре 9 месеци
родитељ
комит
087dd83c60

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

@@ -81,7 +81,7 @@ public class IotWarnconfigController extends BaseController{
     @PreAuthorize("@ss.hasPermi('iot:warn:config:query')")
     @GetMapping(value = "/info/{wcBid}")
     public AjaxResult getInfo(@PathVariable("wcBid") String wcBid){
-        return success(iotWarnconfigService.info(wcBid,SecurityUtils.getTid()));
+        return success(iotWarnconfigService.info(wcBid));
     }
 
     /**

+ 2 - 2
src/main/java/com/yunfeiyun/agmp/iotm/web/domain/reqvo/IotWarnconfigAddReqVo.java

@@ -1,8 +1,8 @@
 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 com.yunfeiyun.agmp.iot.common.domain.dto.IotWarnindicatorDto;
 import lombok.Data;
 
 import java.util.List;
@@ -12,6 +12,6 @@ public class IotWarnconfigAddReqVo extends IotWarnconfig {
     /**告警对象*/
     private List<IotWarnobject> iotWarnobjectList;
     /**告警指标(告警条件)*/
-    private List<IotWarnindicatorDto> iotWarnindicatorList;
+    private List<IotWarnindicator> iotWarnindicatorList;
 
 }

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

@@ -72,7 +72,7 @@ public interface IIotWarnconfigService {
 
     int edit(@Valid IotWarnconfigEditReqVo iotWarnconfigEditReqVo);
 
-    IotWarnconfigInfoResVo info(String wcBid, String tid);
+    IotWarnconfigInfoResVo info(String wcBid);
 
     public JSONObject devInterval(String devBid);
 

+ 71 - 18
src/main/java/com/yunfeiyun/agmp/iotm/web/service/impl/IotWarnconfigServiceImpl.java

@@ -14,7 +14,6 @@ import com.yunfeiyun.agmp.common.utils.StringUtils;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
 import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictEnum;
 import com.yunfeiyun.agmp.iot.common.domain.*;
-import com.yunfeiyun.agmp.iot.common.domain.dto.IotWarnindicatorDto;
 import com.yunfeiyun.agmp.iot.common.enums.warn.IotWarnTouchTypeEnum;
 import com.yunfeiyun.agmp.iot.common.enums.warn.IotWarnlevelEnum;
 import com.yunfeiyun.agmp.iot.common.util.dev.DevTypeUtil;
@@ -28,6 +27,7 @@ import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotWarnconfigResVo;
 import com.yunfeiyun.agmp.iotm.web.mapper.*;
 import com.yunfeiyun.agmp.iotm.web.service.IIotWarnconfigService;
 import com.yunfeiyun.agmp.iotm.web.service.IIotWarnindicatorService;
+import com.yunfeiyun.agmp.iotm.web.service.IIotWarnobjectService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -67,6 +67,9 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
     @Resource
     private IotDeviceCommonService iotDeviceCommonService;
 
+    @Autowired
+    private IIotWarnobjectService iotWarnobjectService;
+
 
     /**
      * 查询告警配置
@@ -195,11 +198,11 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
         }
 
         // 获取告警规则
-        List<IotWarnindicatorDto> iotWarnindicatorList = iotWarnconfigAddReqVo.getIotWarnindicatorList();
+        List<IotWarnindicator> iotWarnindicatorList = iotWarnconfigAddReqVo.getIotWarnindicatorList();
         String createDate = DateUtils.dateTimeNow();
         List<IotWarnindicator> insertList = new ArrayList<>();
 
-        for(IotWarnindicatorDto item : iotWarnindicatorList){
+        for(IotWarnindicator item : iotWarnindicatorList){
             String wiBid = item.getUUId();
             String tid = SecurityUtils.getTid();
             String wcBid = iotWarnconfigAddReqVo.getWcBid();
@@ -277,21 +280,15 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
         return iotWarnconfigMapper.updateIotWarnconfig(iotWarnconfigEditReqVo);
     }
 
-    @Override
-    public IotWarnconfigInfoResVo info(String wcBid, String tid) {
-        IotWarnconfig iotWarnconfig = iotWarnconfigMapper.selectIotWarnconfigByWcBid(wcBid,SecurityUtils.getTid());
-        if(null == iotWarnconfig){
-            return null;
-        }
-        IotWarnobject iotWarnobjectQuery = new IotWarnobject();
-        iotWarnobjectQuery.setWcBid(wcBid);
-        iotWarnobjectQuery.setTid(SecurityUtils.getTid());
-        List<IotWarnobject> iotWarnobjectList = iotWarnobjectMapper.selectIotWarnobjectList(iotWarnobjectQuery);
+    private void setInfoByQxz(IotWarnconfig iotWarnconfig, List<IotWarnobject> iotWarnobjectList, List<IotWarnindicator> resultIotWarnIndicatorList){
+        String wcBid = iotWarnconfig.getWcBid();
+        String tid = SecurityUtils.getTid();
+
         IotWarnindicator iotWarnindicatorQuery = new IotWarnindicator();
         iotWarnindicatorQuery.setWcBid(wcBid);
-        iotWarnindicatorQuery.setTid(SecurityUtils.getTid());
+        iotWarnindicatorQuery.setTid(tid);
         // 获取已经配置的设备要素
-        List<IotWarnindicator> iotWarnindicatorList = iotWarnindicatorMapper.selectIotWarnindicatorList(iotWarnindicatorQuery);
+        List<IotWarnindicator> iotWarnindicatorList = iotWarnindicatorService.selectIotWarnindicatorList(iotWarnindicatorQuery);
         Set<String> wiCodeSet = new HashSet<>();
         if(iotWarnobjectList.size() ==1){
             IotDevice deviceQuery = new IotDevice();
@@ -300,16 +297,72 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
             List<IotWarnindicator> devNowWarnIndicator = iotWarnindicatorService.warnindicatorDevQueryByQxSq(deviceQuery);
             wiCodeSet.addAll(devNowWarnIndicator.stream().map(IotWarnindicator::getWiCode).collect(Collectors.toList()));
         }
-        List<IotWarnindicator> resultIotWarnIndicatorList = new ArrayList<>();
+
         for(IotWarnindicator iotWarnindicator : iotWarnindicatorList){
             if(wiCodeSet.contains(iotWarnindicator.getWiCode())){
                 resultIotWarnIndicatorList.add(iotWarnindicator);
             }
         }
+    }
+
+    private void setInfoByCbd(IotWarnconfig iotWarnconfig, List<IotWarnobject> iotWarnobjectList, List<IotWarnindicator> resultIotWarnIndicatorList){
+        String wcBid = iotWarnconfig.getWcBid();
+        String tid = SecurityUtils.getTid();
+
+        IotWarnindicator iotWarnindicatorQuery = new IotWarnindicator();
+        iotWarnindicatorQuery.setWcBid(wcBid);
+        iotWarnindicatorQuery.setTid(tid);
+        // 获取已经配置的设备要素
+        List<IotWarnindicator> iotWarnindicatorList = iotWarnindicatorService.selectIotWarnindicatorList(iotWarnindicatorQuery);
+        Map<String, IotWarnindicator> iotWarnindicatorMap = new LinkedHashMap<>();
+        for(IotWarnindicator iotWarnindicator : iotWarnindicatorList){
+            String wiBid = iotWarnindicator.getWiBid();
+            String wiParentbid = iotWarnindicator.getWiParentbid();
+            if(iotWarnindicatorMap.containsKey(wiParentbid)){
+                List<IotWarnindicator> childrenList = iotWarnindicatorMap.get(wiParentbid).getChildrenList();
+                if(childrenList == null){
+                    childrenList = new ArrayList<>();
+                }
+                childrenList.add(iotWarnindicator);
+                iotWarnindicatorMap.get(wiParentbid).setChildrenList(childrenList);
+            }else{
+                iotWarnindicatorMap.put(wiBid, iotWarnindicator);
+            }
+        }
+        resultIotWarnIndicatorList.addAll(iotWarnindicatorMap.values());
+    }
+
+    @Override
+    public IotWarnconfigInfoResVo info(String wcBid) {
+        String tid = SecurityUtils.getTid();
+        IotWarnconfig iotWarnconfig = selectIotWarnconfigByWcBid(wcBid, tid);
+        if(null == iotWarnconfig){
+            return null;
+        }
+
+        IotWarnobject iotWarnobjectQuery = new IotWarnobject();
+        iotWarnobjectQuery.setWcBid(wcBid);
+        iotWarnobjectQuery.setTid(tid);
+        List<IotWarnobject> iotWarnobjectList = iotWarnobjectService.selectIotWarnobjectList(iotWarnobjectQuery);
+
+        List<IotWarnindicator> resultIotWarnIndicatorList = new ArrayList<>();
+
         IotWarnconfigInfoResVo iotWarnconfigInfoResVo = new IotWarnconfigInfoResVo();
         BeanUtils.copyProperties(iotWarnconfig,iotWarnconfigInfoResVo);
         iotWarnconfigInfoResVo.setIotWarnindicatorList(resultIotWarnIndicatorList);
         iotWarnconfigInfoResVo.setIotWarnobjectList(iotWarnobjectList);
+
+        String devtypeBid = iotWarnconfig.getDevtypeBid();
+
+        if(DevTypeUtil.isQxSq(devtypeBid)){
+            setInfoByQxz(iotWarnconfig, iotWarnobjectList, resultIotWarnIndicatorList);
+        }else if(DevTypeUtil.isYfCbd(devtypeBid)){
+            setInfoByCbd(iotWarnconfig, iotWarnobjectList, resultIotWarnIndicatorList);
+        }
+
+        BeanUtils.copyProperties(iotWarnconfig,iotWarnconfigInfoResVo);
+        iotWarnconfigInfoResVo.setIotWarnindicatorList(resultIotWarnIndicatorList);
+        iotWarnconfigInfoResVo.setIotWarnobjectList(iotWarnobjectList);
         return iotWarnconfigInfoResVo;
     }
 
@@ -340,7 +393,7 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
     @Transactional(rollbackFor = Exception.class)
     public IotWarnconfig copy(String wcBid) {
         // 查询告警规则
-        IotWarnconfig iotWarnconfig = iotWarnconfigMapper.selectIotWarnconfigByWcBid(wcBid,SecurityUtils.getTid());
+        IotWarnconfig iotWarnconfig = selectIotWarnconfigByWcBid(wcBid,SecurityUtils.getTid());
         if(null == iotWarnconfig){
             throw new BizException(ErrorCode.INVALID_PARAMETER.getCode(),"告警规则不存在");
         }
@@ -353,7 +406,7 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
         IotWarnindicator iotWarnindicatorQuery = new IotWarnindicator();
         iotWarnindicatorQuery.setTid(SecurityUtils.getTid());
         iotWarnindicatorQuery.setWcBid(wcBid);
-        List<IotWarnindicator> iotWarnindicatorList = iotWarnindicatorMapper.selectIotWarnindicatorList(iotWarnindicatorQuery);
+        List<IotWarnindicator> iotWarnindicatorList = iotWarnindicatorService.selectIotWarnindicatorList(iotWarnindicatorQuery);
         // 重新赋值
         iotWarnconfig.setWcBid(iotWarnconfig.getUUId());
         iotWarnconfig.setWcCreateddate(DateUtils.dateTimeNow());

+ 3 - 1
src/main/java/com/yunfeiyun/agmp/iotm/web/service/impl/IotWarnindicatorServiceImpl.java

@@ -22,7 +22,9 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;