فهرست منبع

新增 获取告警虫情信息列表接口

zhaiyifei 9 ماه پیش
والد
کامیت
0e2ac112d7

+ 8 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/pest/service/IIotPestService.java

@@ -3,6 +3,7 @@ package com.yunfeiyun.agmp.iotm.device.pest.service;
 
 import com.yunfeiyun.agmp.iot.common.domain.IotPest;
 import com.yunfeiyun.agmp.iot.common.domain.resvo.IoPestResVo;
+import com.yunfeiyun.agmp.iotm.web.domain.IotWarnPestVo;
 
 import java.util.List;
 import java.util.Map;
@@ -88,4 +89,11 @@ public interface IIotPestService
     String selectIotPestCropsByCalarmId(String calarmId);
 
     IotPest selectIotPestByPestName(IotPest iotPest);
+
+    /**
+     * 查询告警关联的害虫信息列表
+     * @param warnPestVo
+     * @return
+     */
+    public List<IotPest> selectIotWarnPestList(IotWarnPestVo warnPestVo);
 }

+ 12 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/pest/service/impl/IotPestServiceImpl.java

@@ -5,6 +5,7 @@ import com.yunfeiyun.agmp.common.framework.manager.RedisCacheManager;
 import com.yunfeiyun.agmp.iot.common.domain.IotPest;
 import com.yunfeiyun.agmp.iot.common.domain.resvo.IoPestResVo;
 import com.yunfeiyun.agmp.iotm.device.pest.service.IIotPestService;
+import com.yunfeiyun.agmp.iotm.web.domain.IotWarnPestVo;
 import com.yunfeiyun.agmp.iotm.web.mapper.IotPestMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -174,4 +175,15 @@ public class IotPestServiceImpl implements IIotPestService
     public IotPest selectIotPestByPestName(IotPest iotPest) {
         return iotPestMapper.selectIotPestByPestName(iotPest);
     }
+
+    /**
+     * 查询告警关联的害虫信息列表
+     *
+     * @param warnPestVo
+     * @return
+     */
+    @Override
+    public List<IotPest> selectIotWarnPestList(IotWarnPestVo warnPestVo) {
+        return iotPestMapper.selectIotWarnPestList(warnPestVo);
+    }
 }

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

@@ -43,7 +43,7 @@ public class IotWarnindicatorController extends BaseController{
     }
 
     /**
-     * 查询告警要素列表
+     * 查询气象墒情告警要素列表
      */
     @PreAuthorize("@ss.hasPermi('iot:warn:indicator:list')")
     @GetMapping("/query")
@@ -51,6 +51,14 @@ public class IotWarnindicatorController extends BaseController{
         return AjaxResult.success(iotWarnindicatorService.query(iotDevice));
     }
 
+    /**
+     * 查询虫情列表
+     */
+    @GetMapping("/pest/list")
+    public AjaxResult pestList(String devBid){
+        return AjaxResult.success(iotWarnindicatorService.pestList(devBid));
+    }
+
 
     /**
      * 导出告警指标,存储所有与告警相关的指标信息列表

+ 8 - 0
src/main/java/com/yunfeiyun/agmp/iotm/web/domain/IotWarnPestVo.java

@@ -0,0 +1,8 @@
+package com.yunfeiyun.agmp.iotm.web.domain;
+
+import lombok.Data;
+
+@Data
+public class IotWarnPestVo {
+    private String devType;
+}

+ 9 - 0
src/main/java/com/yunfeiyun/agmp/iotm/web/mapper/IotPestMapper.java

@@ -3,6 +3,7 @@ package com.yunfeiyun.agmp.iotm.web.mapper;
 
 import com.yunfeiyun.agmp.iot.common.domain.IotPest;
 import com.yunfeiyun.agmp.iot.common.domain.resvo.IoPestResVo;
+import com.yunfeiyun.agmp.iotm.web.domain.IotWarnPestVo;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -74,4 +75,12 @@ public interface IotPestMapper
     IotPest selectIotPestByPestName(IotPest iotPest);
 
     IoPestResVo selectIotPestDetailByPestName(String pestName);
+
+    /**
+     * 查询预警害虫信息列表
+     *
+     * @param iotPest 害虫信息
+     * @return 害虫信息集合
+     */
+    public List<IotPest> selectIotWarnPestList(IotWarnPestVo warnPestVo);
 }

+ 8 - 0
src/main/java/com/yunfeiyun/agmp/iotm/web/service/IIotWarnindicatorService.java

@@ -1,6 +1,7 @@
 package com.yunfeiyun.agmp.iotm.web.service;
 
 import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
+import com.yunfeiyun.agmp.iot.common.domain.IotPest;
 import com.yunfeiyun.agmp.iot.common.domain.IotWarnindicator;
 
 import java.util.List;
@@ -63,4 +64,11 @@ public interface IIotWarnindicatorService {
 
     List<IotWarnindicator> query(IotDevice iotDevice);
     public List<IotWarnindicator> warnindicatorDevQuery(IotDevice iotDevice);
+
+    /**
+     * 查询虫情列表
+     * @param iotDevice
+     * @return
+     */
+    List<IotPest> pestList(String devBid);
 }

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

@@ -373,7 +373,9 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
 
     private Integer getReportIntervalByConfig(String devBid){
         Integer interval = null;
-        String[] keys = {"interval"};
+        String[] keys = {
+                "interval", "datt", "dat_f"
+        };
         IotDeviceconfig iotDeviceconfig = iotDeviceconfigMapper.selectIotDeviceConfigByDevBid(devBid);
         if (iotDeviceconfig != null) {
             String configContext = iotDeviceconfig.getDevcfgContext();

+ 43 - 4
src/main/java/com/yunfeiyun/agmp/iotm/web/service/impl/IotWarnindicatorServiceImpl.java

@@ -5,16 +5,17 @@ import com.alibaba.fastjson2.JSONObject;
 import com.yunfeiyun.agmp.common.constant.ErrorCode;
 import com.yunfeiyun.agmp.common.exception.BizException;
 import com.yunfeiyun.agmp.common.utils.StringUtils;
-import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
-import com.yunfeiyun.agmp.iot.common.domain.IotDevicelasteddata;
-import com.yunfeiyun.agmp.iot.common.domain.IotWarndataitem;
-import com.yunfeiyun.agmp.iot.common.domain.IotWarnindicator;
+import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
+import com.yunfeiyun.agmp.iot.common.domain.*;
 import com.yunfeiyun.agmp.iot.common.util.dev.QxzTypeUtil;
 import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceBaseFunReqVo;
 import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceDataListReqVo;
 import com.yunfeiyun.agmp.iotm.device.common.service.IotDeviceCommonService;
+import com.yunfeiyun.agmp.iotm.device.pest.service.IIotPestService;
+import com.yunfeiyun.agmp.iotm.web.domain.IotWarnPestVo;
 import com.yunfeiyun.agmp.iotm.web.mapper.IotWarndataitemMapper;
 import com.yunfeiyun.agmp.iotm.web.mapper.IotWarnindicatorMapper;
+import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
 import com.yunfeiyun.agmp.iotm.web.service.IIotWarnindicatorService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -40,6 +41,12 @@ public class IotWarnindicatorServiceImpl implements IIotWarnindicatorService {
     @Resource
     private IotDeviceCommonService iotDeviceCommonService;
 
+    @Autowired
+    private IIotPestService iotPestService;
+
+    @Autowired
+    private IIotDeviceService iotDeviceService;
+
     /**
      * 查询告警指标,存储所有与告警相关的指标信息
      *
@@ -175,4 +182,36 @@ public class IotWarnindicatorServiceImpl implements IIotWarnindicatorService {
         }
         return false;
     }
+
+
+    /**
+     * 查询虫情列表
+     *
+     * @param iotDevice
+     * @return
+     */
+    @Override
+    public List<IotPest> pestList(String devBid) {
+        IotDevice iotDevice = iotDeviceService.selectIotDeviceByDevBid(devBid);
+        if(null == iotDevice){
+            throw new BizException(ErrorCode.INVALID_PARAMETER.getCode(), "设备不存在");
+        }
+        String devtypeBid = iotDevice.getDevtypeBid();
+        String devType = null;
+        switch (devtypeBid){
+            case IotDeviceDictConst.TYPE_YF_CBD:
+            case IotDeviceDictConst.TYPE_YF_SDCBD:
+                devType = "CBD";
+                break;
+            case IotDeviceDictConst.TYPE_YF_XCT:
+                devType = "XCT";
+                break;
+            default:
+                throw new BizException(ErrorCode.INVALID_PARAMETER.getCode(), "暂不支持该设备类型");
+        }
+        IotWarnPestVo iotWarnPestVo = new IotWarnPestVo();
+        iotWarnPestVo.setDevType(devType);
+        return iotPestService.selectIotWarnPestList(iotWarnPestVo);
+    }
+
 }

+ 12 - 0
src/main/resources/mapper/IotPestMapper.xml

@@ -145,4 +145,16 @@ SELECT * from  IotPest where pestBid=#{pestBid}
             #{id}
         </foreach>
     </delete>
+
+    <select id="selectIotWarnPestList" parameterType="IotWarnPestVo" resultMap="IotPestResult">
+        <include refid="selectIotPestVo"/>
+        <where>
+            pestDelstatus = 0
+            <choose>
+                <when test="devType == 'CBD'">AND pestId REGEXP '^[0-9]+$'</when>
+                <when test="devType == 'XCT'">AND pestId LIKE 'xct%'</when>
+                <otherwise>AND id = -1</otherwise>
+            </choose>
+        </where>
+    </select>
 </mapper>