Prechádzať zdrojové kódy

新增 获取虫情预警要素列表接口

zhaiyifei 9 mesiacov pred
rodič
commit
9173001b53

+ 6 - 6
src/main/java/com/yunfeiyun/agmp/iotm/device/qxsqz/controller/IotDeviceQxzController.java

@@ -12,7 +12,7 @@ import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
 import com.yunfeiyun.agmp.iot.common.domain.IotQxzDataListRseVo;
 import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
 import com.yunfeiyun.agmp.iot.common.util.dev.DevOperateUtil;
-import com.yunfeiyun.agmp.iot.common.util.dev.QxzTypeUtil;
+import com.yunfeiyun.agmp.iot.common.util.dev.DevTypeUtil;
 import com.yunfeiyun.agmp.iotm.common.controller.BaseController;
 import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceBaseFunReqVo;
 import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceDataListReqVo;
@@ -75,15 +75,15 @@ public class IotDeviceQxzController extends BaseController {
         String[] devTypeList = null;
 
         if(reqUri.endsWith("/qxz/list")){
-            devTypeList = QxzTypeUtil.getAllQxzTypes();
+            devTypeList = DevTypeUtil.getAllQxzTypes();
         }else if(reqUri.endsWith("/qxz/pt/list")){
-            devTypeList = QxzTypeUtil.getPtQxzTypes();
+            devTypeList = DevTypeUtil.getPtQxzTypes();
         } else if (reqUri.endsWith("/sqz/list")) {
-            devTypeList = QxzTypeUtil.getAllSqzTypes();
+            devTypeList = DevTypeUtil.getAllSqzTypes();
         } else if (reqUri.endsWith("/sqz/pt/list")) {
-            devTypeList = QxzTypeUtil.getPtSqzTypes();
+            devTypeList = DevTypeUtil.getPtSqzTypes();
         } else if (reqUri.endsWith("/sqz/gssq/list")) {
-            devTypeList = QxzTypeUtil.getGssqTypes();
+            devTypeList = DevTypeUtil.getGssqTypes();
         }
         List<IotDeviceListResVo> list = null;
         if (devTypeList != null) {

+ 3 - 3
src/main/java/com/yunfeiyun/agmp/iotm/device/qxsqz/service/IIotQxzCommService.java

@@ -20,7 +20,7 @@ import com.yunfeiyun.agmp.iot.common.domain.*;
 import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
 import com.yunfeiyun.agmp.iot.common.model.cmd.CmdGroupModel;
 import com.yunfeiyun.agmp.iot.common.service.MongoService;
-import com.yunfeiyun.agmp.iot.common.util.dev.QxzTypeUtil;
+import com.yunfeiyun.agmp.iot.common.util.dev.DevTypeUtil;
 import com.yunfeiyun.agmp.iotm.device.common.domin.DeviceRefreshDto;
 import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceDataListReqVo;
 import com.yunfeiyun.agmp.iotm.device.common.service.IotDeviceBaseService;
@@ -66,9 +66,9 @@ public class IIotQxzCommService extends IotDeviceBaseServiceImpl implements IotD
 
     public Class getTableClass(String devtypeBid) {
         Class tableClass = null;
-        if(QxzTypeUtil.isXphYfQxSq(devtypeBid)){
+        if(DevTypeUtil.isXphYfQxSq(devtypeBid)){
             tableClass = IotXphYfqxzdata.class;
-        }else if(QxzTypeUtil.isYfQxSq(devtypeBid)){
+        }else if(DevTypeUtil.isYfQxSq(devtypeBid)){
             tableClass = IotYfqxzdata.class;
         }else if (devtypeBid.equals(IotDeviceDictConst.TYPE_ADZN_GSSQ)) {
             tableClass = IotAdznGssqdata.class;

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

@@ -63,7 +63,19 @@ public interface IIotWarnindicatorService {
     public int deleteIotWarnindicatorByWiBid(String wiBid, String tid);
 
     List<IotWarnindicator> query(IotDevice iotDevice);
-    public List<IotWarnindicator> warnindicatorDevQuery(IotDevice iotDevice);
+    /**
+     * 查询气象墒情告警要素列表
+     * @param iotDevice
+     * @return
+     */
+    public List<IotWarnindicator> warnindicatorDevQueryByQxSq(IotDevice iotDevice);
+
+    /**
+     * 查询测报灯告警要素列表
+     * @param iotDevice
+     * @return
+     */
+    public List<IotWarnindicator> warnindicatorDevQueryByCbd(IotDevice iotDevice);
 
     /**
      * 查询虫情列表

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

@@ -16,7 +16,7 @@ import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictEnum;
 import com.yunfeiyun.agmp.iot.common.domain.*;
 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.QxzTypeUtil;
+import com.yunfeiyun.agmp.iot.common.util.dev.DevTypeUtil;
 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;
@@ -269,7 +269,7 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
             IotDevice deviceQuery = new IotDevice();
             deviceQuery.setDevBid(iotWarnobjectList.get(0).getDevBid());
             deviceQuery.setDevtypeBid(iotWarnconfig.getDevtypeBid());
-            List<IotWarnindicator> devNowWarnIndicator = iotWarnindicatorService.warnindicatorDevQuery(deviceQuery);
+            List<IotWarnindicator> devNowWarnIndicator = iotWarnindicatorService.warnindicatorDevQueryByQxSq(deviceQuery);
             wiCodeSet.addAll(devNowWarnIndicator.stream().map(IotWarnindicator::getWiCode).collect(Collectors.toList()));
         }
         List<IotWarnindicator> resultIotWarnIndicatorList = new ArrayList<>();
@@ -422,7 +422,7 @@ public class IotWarnconfigServiceImpl implements IIotWarnconfigService {
         }
         JSONArray dataList = JSONArray.from(result);
         String devtypeBid = iotDevice.getDevtypeBid();
-        if(QxzTypeUtil.isQxSq(devtypeBid)){
+        if(DevTypeUtil.isQxSq(devtypeBid)){
             interval = getQxZReportInterval(dataList);
         }
         return interval;

+ 66 - 39
src/main/java/com/yunfeiyun/agmp/iotm/web/service/impl/IotWarnindicatorServiceImpl.java

@@ -7,7 +7,7 @@ import com.yunfeiyun.agmp.common.exception.BizException;
 import com.yunfeiyun.agmp.common.utils.StringUtils;
 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.iot.common.util.dev.DevTypeUtil;
 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;
@@ -115,43 +115,82 @@ public class IotWarnindicatorServiceImpl implements IIotWarnindicatorService {
 
     @Override
     public List<IotWarnindicator> query(IotDevice iotDevice) {
-        if (StringUtils.isEmpty(iotDevice.getDevtypeBid())) {
+        String devTypeBid = iotDevice.getDevtypeBid();
+        String devBid = iotDevice.getDevBid();
+        if (StringUtils.isEmpty(devTypeBid)) {
             throw new BizException(ErrorCode.INVALID_PARAMETER.getCode(), "设备类型不能为空");
         }
+        if (StringUtils.isEmpty(devBid)) {
+            throw new BizException(ErrorCode.INVALID_PARAMETER.getCode(), "设备标识不能为空");
+        }
+
         List<IotWarnindicator> result = new ArrayList<>();
         // 暂时只支持针对设备的告警要素查询
-        if (StringUtils.isNotEmpty(iotDevice.getDevBid())) {
-            result = warnindicatorDevQuery(iotDevice);
+        if(DevTypeUtil.isQxSq(devTypeBid)){
+            result = warnindicatorDevQueryByQxSq(iotDevice);
+        }else if(DevTypeUtil.isYfRecogCbd(devTypeBid)){
+            result = warnindicatorDevQueryByCbd(iotDevice);
         }
         return result;
     }
+
+    /**
+     * 查询气象墒情告警要素列表
+     * @param iotDevice
+     * @return
+     */
     @Override
-    public List<IotWarnindicator> warnindicatorDevQuery(IotDevice iotDevice){
+    public List<IotWarnindicator> warnindicatorDevQueryByQxSq(IotDevice iotDevice){
         // 暂不支持根据类型查询要素
         // 查询当前设备是否存在预设要素
         List<IotWarnindicator> result = new ArrayList<>();
-        if (isFactorDevice(iotDevice.getDevtypeBid())) {
-            IotDeviceDataListReqVo iotDeviceDataListReqVo = new IotDeviceDataListReqVo();
-            BeanUtils.copyProperties(iotDevice,iotDeviceDataListReqVo);
-            IotDeviceBaseFunReqVo iotDeviceBaseFunReqVo = new IotDeviceBaseFunReqVo();
-            iotDeviceBaseFunReqVo.setDevBid(iotDevice.getDevBid());
-            iotDeviceBaseFunReqVo.setMethodName("warnDataLatest");
-            iotDeviceBaseFunReqVo.setParam(iotDeviceDataListReqVo);
-            IotDevicelasteddata iotDevicelasteddata = iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
-            if(null == iotDevicelasteddata){
-                return result;
-            }
-            JSONArray jsonArray = JSONArray.parseArray(iotDevicelasteddata.getDevldContent());
-            // 直接返回设备上报的数据
-            for (int i = 0; i < jsonArray.size(); i++) {
-                JSONObject dataItem = jsonArray.getJSONObject(i);
-                IotWarnindicator iotWarnindicator = new IotWarnindicator();
-                iotWarnindicator.setWiAddress(dataItem.getString("address"));
-                iotWarnindicator.setWiCode(dataItem.getString("factorCode"));
-                iotWarnindicator.setWiName(dataItem.getString("factorName"));
-                iotWarnindicator.setWiUnit(dataItem.getString("factorUnit"));
-                result.add(iotWarnindicator);
-            }
+        IotDeviceDataListReqVo iotDeviceDataListReqVo = new IotDeviceDataListReqVo();
+        BeanUtils.copyProperties(iotDevice,iotDeviceDataListReqVo);
+        IotDeviceBaseFunReqVo iotDeviceBaseFunReqVo = new IotDeviceBaseFunReqVo();
+        iotDeviceBaseFunReqVo.setDevBid(iotDevice.getDevBid());
+        iotDeviceBaseFunReqVo.setMethodName("warnDataLatest");
+        iotDeviceBaseFunReqVo.setParam(iotDeviceDataListReqVo);
+        IotDevicelasteddata iotDevicelasteddata = iotDeviceCommonService.func(iotDeviceBaseFunReqVo);
+        if(null == iotDevicelasteddata){
+            return result;
+        }
+        JSONArray jsonArray = JSONArray.parseArray(iotDevicelasteddata.getDevldContent());
+        // 直接返回设备上报的数据
+        for (int i = 0; i < jsonArray.size(); i++) {
+            JSONObject dataItem = jsonArray.getJSONObject(i);
+            IotWarnindicator iotWarnindicator = new IotWarnindicator();
+            iotWarnindicator.setWiAddress(dataItem.getString("address"));
+            iotWarnindicator.setWiCode(dataItem.getString("factorCode"));
+            iotWarnindicator.setWiName(dataItem.getString("factorName"));
+            iotWarnindicator.setWiUnit(dataItem.getString("factorUnit"));
+            result.add(iotWarnindicator);
+        }
+        return result;
+    }
+
+    /**
+     * 查询测报灯告警要素列表
+     *
+     * @param iotDevice
+     * @return
+     */
+    @Override
+    public List<IotWarnindicator> warnindicatorDevQueryByCbd(IotDevice iotDevice) {
+
+        List<String[]> factorList = new ArrayList<>();
+        factorList.add(new String[]{"pestType", "害虫种类", "类", "0"});
+        factorList.add(new String[]{"pestNum", "害虫数量", "头", "0"});
+        factorList.add(new String[]{"pestDetail", "指定害虫", "头", "1"});
+
+        List<IotWarnindicator> result = new ArrayList<>();
+        for(String[] factor : factorList){
+            IotWarnindicator iotWarnindicator = new IotWarnindicator();
+            iotWarnindicator.setWiAddress(factor[0]);
+            iotWarnindicator.setWiCode(factor[0]);
+            iotWarnindicator.setWiName(factor[1]);
+            iotWarnindicator.setWiUnit(factor[2]);
+            iotWarnindicator.setWiOptiontype(factor[3]);
+            result.add(iotWarnindicator);
         }
         return result;
     }
@@ -171,18 +210,6 @@ public class IotWarnindicatorServiceImpl implements IIotWarnindicatorService {
         return iotWarndataitemList.stream().collect(Collectors.toMap(IotWarndataitem::getWdCode, item -> item));
     }
 
-    private boolean isFactorDevice(String devTypeBid) {
-        List<String> devTypeList = new ArrayList<>();
-        devTypeList.addAll(Arrays.asList(QxzTypeUtil.getAllQxzTypes()));
-        devTypeList.addAll(Arrays.asList(QxzTypeUtil.getAllSqzTypes()));
-
-        Set<String> devTypeSet = new HashSet<>(devTypeList);
-        if(devTypeSet.contains(devTypeBid)){
-            return true;
-        }
-        return false;
-    }
-
 
     /**
      * 查询虫情列表