Explorar o código

阶段提交:测报灯业务接口

yf_zn hai 1 ano
pai
achega
418ce19922

+ 51 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/common/domin/IotDeviceDataListReqVo.java

@@ -0,0 +1,51 @@
+package com.yunfeiyun.agmp.iotm.device.common.domin;
+
+import lombok.Data;
+
+/**
+ * 设备基础对象 IotDevice
+ *
+ * @author 杨晓辉
+ * @date 2024-01-04
+ */
+@Data
+public class IotDeviceDataListReqVo
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 设备业务标识 */
+    private String devBid;
+
+    /** 客户id */
+    private String cId;
+
+    /** 开始时间 */
+    private String startTime;
+
+    /** 结束时间 */
+    private String endTime;
+
+    /** 标记类型 0 手动标记 1  机器自动标记 */
+    private String pestrecogMarktype;
+
+    /**
+     * 数据形式  1 普通列表  2 图表用
+     */
+    private String dataType;
+
+    /**
+     * 导出类型
+     */
+    private String type;
+
+    private String isAsc;
+    private String orderByColumn;
+
+    /**
+     * 测报灯识别类型
+     * 1  A模型
+     * 2  B模型
+     */
+    private String cbdRecogType;
+
+}

+ 93 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/common/domin/IotDeviceDataListResVo.java

@@ -0,0 +1,93 @@
+package com.yunfeiyun.agmp.iotm.device.common.domin;
+
+import com.yunfeiyun.agmp.common.annotation.Excel;
+import lombok.Data;
+
+/**
+ * 设备数据
+ *
+ * @author 杨晓辉
+ * @date 2024-01-04
+ */
+@Data
+public class IotDeviceDataListResVo
+{
+    private static final long serialVersionUID = 1L;
+
+
+    /** 环境温度(℃) */
+    @Excel(name = "环境温度(℃)")
+    private String at;
+
+    /** 环境湿度(%) */
+    @Excel(name = "环境湿度(%)")
+    private String ah;
+
+    /** 加热仓温度(℃) */
+    @Excel(name = "加热仓温度(℃)")
+    private String hrt;
+
+    /** 雨控状态 */
+    @Excel(name = "雨控状态")
+    private String rps;
+
+    /** 温控状态 */
+    @Excel(name = "温控状态")
+    private String tps;
+
+    /** 光控状态 */
+    @Excel(name = "光控状态")
+    private String lps;
+
+    /** 灯管状态 */
+    //@Excel(name = "灯管状态")
+    private String lamp;
+
+    /** 信号强度 */
+    @Excel(name = "信号强度")
+    private String csq;
+
+    /** 电流(mA) */
+    @Excel(name = "电流(mA)")
+    private String current;
+
+    /** 电压(v) */
+    @Excel(name = "电压(v)")
+    private String vbat;
+
+    /** 上报时间 */
+    @Excel(name = "上报时间")
+    private String stamp;
+
+//    public String getRps() {
+//        return "0".equals(rps) ? "正常" : "保护";
+//    }
+//
+//    public String getTps() {
+//        return "0".equals(tps) ? "正常" : "保护";
+//    }
+//
+//    public String getLps() {
+//        return "0".equals(lps) ? "正常" : "保护";
+//    }
+//
+//    public String getLamp() {
+//        return "0".equals(lamp) ? "工作" : "待机";
+//    }
+
+    public void setRps(String rps) {
+        this.rps = "0".equals(rps) ? "正常" : "保护";
+    }
+
+    public void setTps(String tps) {
+        this.tps = "0".equals(tps) ? "正常" : "保护";
+    }
+
+    public void setLps(String lps) {
+        this.lps = "0".equals(lps) ? "正常" : "保护";
+    }
+
+    public void setLamp(String lamp) {
+        this.lamp = "0".equals(lamp) ? "工作" : "待机";
+    }
+}

+ 95 - 72
src/main/java/com/yunfeiyun/agmp/iotm/device/pest/controller/IotDeviceCbdController.java

@@ -2,29 +2,55 @@ package com.yunfeiyun.agmp.iotm.device.pest.controller;
 
 
 import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
+import com.yunfeiyun.agmp.common.annotation.Excel;
+import com.yunfeiyun.agmp.common.annotation.Log;
 import com.yunfeiyun.agmp.common.constant.ErrorCode;
 import com.yunfeiyun.agmp.common.core.domain.AjaxResult;
 import com.yunfeiyun.agmp.common.core.page.TableDataInfo;
 import com.yunfeiyun.agmp.common.core.page.TableSupport;
+import com.yunfeiyun.agmp.common.enums.BusinessType;
+import com.yunfeiyun.agmp.common.enums.CommonEnums;
 import com.yunfeiyun.agmp.common.log.LogCore;
+import com.yunfeiyun.agmp.common.utils.StringUtils;
+import com.yunfeiyun.agmp.common.utils.poi.ExcelUtil;
+import com.yunfeiyun.agmp.common.utils.poi.SensdataExcelUtil;
 import com.yunfeiyun.agmp.common.utils.uuid.IdUtils;
-import com.yunfeiyun.agmp.iot.common.domain.IotCbddata;
+import com.yunfeiyun.agmp.iot.common.constant.IotErrorCode;
+import com.yunfeiyun.agmp.iot.common.constant.device.xmzn.XmznUtil;
+import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceDictConst;
+import com.yunfeiyun.agmp.iot.common.domain.*;
 import com.yunfeiyun.agmp.iot.common.domain.reqvo.IotCbdConfigEditReqVo;
 import com.yunfeiyun.agmp.iot.common.domain.reqvo.IotCbddataReqVo;
+import com.yunfeiyun.agmp.iot.common.domain.resvo.IotDeviceResVo;
+import com.yunfeiyun.agmp.iot.common.domain.resvo.IotSensdataResVo;
+import com.yunfeiyun.agmp.iot.common.domain.resvo.IotXmzninstaggregdataResVo;
+import com.yunfeiyun.agmp.iot.common.enums.DevType;
+import com.yunfeiyun.agmp.iot.common.exception.IotBizException;
 import com.yunfeiyun.agmp.iot.common.model.cmd.CmdGroupModel;
 import com.yunfeiyun.agmp.iot.common.model.cmd.CmdModel;
 import com.yunfeiyun.agmp.iot.common.service.MongoService;
+import com.yunfeiyun.agmp.iot.common.service.TypeCacheService;
 import com.yunfeiyun.agmp.iotm.common.controller.BaseController;
+import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceDataListReqVo;
+import com.yunfeiyun.agmp.iotm.device.common.domin.IotDeviceDataListResVo;
 import com.yunfeiyun.agmp.iotm.device.pest.service.IotCbdService;
+import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceListReqVo;
+import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotDeviceListResVo;
 import com.yunfeiyun.agmp.iotm.web.service.IIotCmdtaskService;
+import com.yunfeiyun.agmp.iotm.web.service.IIotDeviceService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.http.util.TextUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import java.util.Collections;
-import java.util.LinkedList;
-import java.util.Map;
+import javax.servlet.http.HttpServletResponse;
+import java.text.ParseException;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
 
 /**
  * 测报灯相关接口
@@ -45,6 +71,11 @@ public class IotDeviceCbdController extends BaseController {
     @Autowired
     private IotCbdService iotCbdService;
 
+    @Autowired
+    private IIotDeviceService iIotDeviceService;
+
+    @Resource
+    private TypeCacheService typeCacheService;
 
     /**
      * 下发测报灯配置指令
@@ -78,76 +109,68 @@ public class IotDeviceCbdController extends BaseController {
         Map<String, Object> cases = BeanUtil.beanToMap(reqVo);
         return getDataTable(mongoService.findListPage(IotCbddata.class, cases, TableSupport.buildPageRequest()));
     }
+    @Log(title = "设备数据", businessType = BusinessType.EXPORT)
+    @PostMapping("/data/export")
+    public void dataExport(HttpServletResponse response, @RequestBody IotDeviceDataListReqVo reqVo) {
+        String devBid = reqVo.getDevBid();
+        String startTime = reqVo.getStartTime();
+        String endTime = reqVo.getEndTime();
+        String[] params = {devBid, startTime, endTime};
+        for (String k : params) {
+            if (StringUtils.isEmpty(k)) {
+                throw new IotBizException(IotErrorCode.PARAM_INVALID.getCode(), "参数不能为空");
+            }
+        }
+
+            List<IotDeviceDataListResVo> list = new ArrayList<>();
+
+            Map<String, Object> map = new HashMap<>();
+            map.put("devBid", devBid);
+            if (StringUtils.isNotEmpty(reqVo.getStartTime()) && StringUtils.isEmpty(reqVo.getEndTime())) {
+                map.put("gte_cbddataCreatedDate", reqVo.getStartTime());
+            }
+            if (StringUtils.isEmpty(reqVo.getStartTime()) && StringUtils.isNotEmpty(reqVo.getEndTime())) {
+                map.put("lte_cbddataCreatedDate", reqVo.getEndTime());
+            }
+            if (StringUtils.isNotEmpty(reqVo.getStartTime()) && StringUtils.isNotEmpty(reqVo.getEndTime())) {
+                map.put("time_cbddataCreatedDate", reqVo.getStartTime() + "," + reqVo.getEndTime());
+            }
+
+            List<IotCbddata> all = mongoService.findAll(IotCbddata.class, map);
+
+
+            for (IotCbddata iotCbddata : all) {
+                IotDeviceDataListResVo resVo = JSONObject.parseObject(iotCbddata.getCdbdataContent().toJSONString(), IotDeviceDataListResVo.class);
+                String stamp = resVo.getStamp();
+                DateTimeFormatter dtf = DateTimeFormatter.ofPattern(CommonEnums.PATTERN_DATETIME.getCode());
+                DateTimeFormatter dtf2 = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
+                resVo.setStamp(LocalDateTime.parse(stamp, dtf2).format(dtf));
+                list.add(resVo);
+            }
+
+
+            ExcelUtil<IotDeviceDataListResVo> util = new ExcelUtil<>(IotDeviceDataListResVo.class);
+            util.exportExcel(response, list, "设备数据");
 
-    @GetMapping("/cmdTest")
-    public AjaxResult cmdTest() {
-        CmdGroupModel cmdGroupModel = new CmdGroupModel();
-        cmdGroupModel.setCId("1");
-        cmdGroupModel.setCmdModels(new LinkedList<>());
-        cmdGroupModel.setRequestId(IdUtils.fastUUID());
-
-
-        CmdModel cmdModel = new CmdModel();
-        cmdModel.setDeviceId("bidzhaiyifei123456");
-
-        CmdModel.Cmd cmd = new CmdModel.Cmd();
-        cmd.setFunc("takephoto");
-        cmd.setRetry(5L);
-        cmdModel.setFinalStatus(false);
-        cmdModel.setTimeout(10);
-        cmdModel.setNeedcheckStatus(true);
-        cmdModel.setCmdDistribution(cmd);
-
-        CmdModel err = new CmdModel();
-        err.setDeviceId("bidzhaiyifei123456");
-        err.setFinalStatus(false);
-        err.setTimeout(10);
-        err.setNeedcheckStatus(false);
-        err.setCmdDistribution(cmd);
-        CmdModel.Cmd errCmd = new CmdModel.Cmd();
-        errCmd.setFunc("err");
-        err.setCmdDistribution(errCmd);
-
-
-        //cmdGroupModel.getCmdModels().add(Collections.singletonList(err));
-
-/*        for(int i = 0;i<3;i++){
-            List<CmdModel> cmdModelList = new ArrayList<>(Collections.singleton(cmdModel));
-            cmdGroupModel.getCmdModels().add(cmdModelList);
-        }*/
-
-
-        cmdGroupModel.getCmdModels().add(Collections.singletonList(cmdModel));
-
-
-        CmdModel cmdModel2 = new CmdModel();
-        cmdModel2.setDeviceId("bidzhaiyifei123456");
-        CmdModel.Cmd cmd2 = new CmdModel.Cmd();
-        cmd2.setFunc("takephoto");
-        cmd2.setRetry(5L);
-        cmdModel2.setFinalStatus(false);
-        cmdModel2.setTimeout(10);
-        cmdModel2.setNeedcheckStatus(true);
-        cmdModel2.setCmdDistribution(cmd2);
-
-
-        cmdGroupModel.getCmdModels().add(Collections.singletonList(cmdModel2));
-
-
-        CmdModel cmdModel3 = new CmdModel();
-        cmdModel3.setDeviceId("bidzhaiyifei123456");
-        CmdModel.Cmd cmd3 = new CmdModel.Cmd();
-        cmd3.setFunc("takephoto");
-        cmd3.setRetry(5L);
-        cmdModel3.setFinalStatus(true);
-        cmdModel3.setTimeout(10);
-        cmdModel3.setNeedcheckStatus(false);
-        cmdModel3.setCmdDistribution(cmd3);
-
-        cmdGroupModel.getCmdModels().add(Collections.singletonList(cmdModel3));
+    }
 
+    @GetMapping("/refresh/{devBid}")
+    public AjaxResult refresh(@PathVariable("devBid") String devBid) {
+        iotCbdService.sendDeviceRefresh(devBid);
+        return new AjaxResult(ErrorCode.SUCCESS.getCode(), "下发成功,等待设备响应结果", null);
+    }
 
-        iIotCmdtaskService.handInternalCmd(cmdGroupModel);
-        return AjaxResult.success();
+    /**
+     * 测报灯列表
+     * @param reqVo
+     * @return
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(IotDeviceListReqVo reqVo) {
+        startPage();
+        TosDevicetype tosDevicetype= typeCacheService.getCacheObjectByDevTypeCode(IotDeviceDictConst.TYPE_YF_CBD);
+        reqVo.setDevtypeBid(tosDevicetype.getDevtypeBid());
+        List<IotDeviceListResVo> list = iIotDeviceService.selectIotDeviceListByType(reqVo);
+        return getDataTable(list);
     }
 }

+ 2 - 0
src/main/java/com/yunfeiyun/agmp/iotm/web/controller/IotDeviceCommonController.java

@@ -1,5 +1,6 @@
 package com.yunfeiyun.agmp.iotm.web.controller;
 
+import com.yunfeiyun.agmp.common.constant.ErrorCode;
 import com.yunfeiyun.agmp.common.core.domain.AjaxResult;
 import com.yunfeiyun.agmp.common.core.page.TableDataInfo;
 import com.yunfeiyun.agmp.common.utils.SecurityUtils;
@@ -45,4 +46,5 @@ public class IotDeviceCommonController extends BaseController {
     public AjaxResult info(@PathVariable("devBid") String devBid){
         return success(iotDeviceCommonService.info(devBid));
     }
+
 }

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

@@ -4,6 +4,7 @@ import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 
+import com.yunfeiyun.agmp.common.constant.ErrorCode;
 import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
 import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceAddReqVo;
 import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceEditReqVo;
@@ -30,7 +31,7 @@ import com.yunfeiyun.agmp.common.core.page.TableDataInfo;
 
 /**
  * 设备基础Controller
- * 
+ *
  * @author 杨晓辉
  * @date 2024-11-06
  */
@@ -102,4 +103,6 @@ public class IotDeviceController extends BaseController
     public AjaxResult remove(@PathVariable String devBid) {
         return toAjax(iotDeviceService.deleteIotDeviceByDevBid(devBid));
     }
+
+
 }

+ 8 - 49
src/main/java/com/yunfeiyun/agmp/iotm/web/domain/resvo/IotDeviceListResVo.java

@@ -1,64 +1,23 @@
 package com.yunfeiyun.agmp.iotm.web.domain.resvo;
 
 import com.yunfeiyun.agmp.common.annotation.Excel;
+import com.yunfeiyun.agmp.iot.common.constant.devicetype.IotDeviceTypeLv1Enum;
 import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
 import com.yunfeiyun.agmp.iot.common.enums.IotDeviceStatusTypeEnum;
 import lombok.Data;
 
 @Data
-public class IotDeviceListResVo {
-    /** 设备业务标识 */
-    @Excel(name = "设备业务标识")
-    private String devBid;
-
-    /** 设备类型标识 */
-    @Excel(name = "设备型号标识")
-    private String devtypeBid;
-
-    /** 厂商信息标识 */
-    @Excel(name = "厂商信息标识")
-    private String firmBid;
-
-    /** 设备大类标识 */
-    @Excel(name = "设备类型标识")
-    private String devclassBid;
-
-    /** 连接配置标识 */
-    @Excel(name = "连接配置标识")
-    private String devconnBid;
-
-    /** 设备编号 */
-    @Excel(name = "设备型号名称")
-    private String devtypeName;
-
-    /** 设备名称 */
-    @Excel(name = "设备类型名称")
-    private String devclassName;
-
-    /** 设备编号 */
-    @Excel(name = "设备编号")
-    private String devCode;
-
-    /** 设备名称 */
-    @Excel(name = "设备名称")
-    private String devName;
-
-    /** 设备状态 */
-    @Excel(name = "设备状态")
-    private String devStatus;
+public class IotDeviceListResVo extends IotDevice {
 
     private String devStatusName;
 
-    /** 更新时间 设备上报数据的时间 */
-    @Excel(name = "更新时间 设备上报数据的时间")
-    private String devUpdateddate;
-
-    /** 创建时间 */
-    @Excel(name = "创建时间")
-    private String devCreateddate;
-
     public String getDevStatusName() {
-        return IotDeviceStatusTypeEnum.getNameByCode(devStatus);
+        return IotDeviceStatusTypeEnum.getNameByCode(this.getDevStatus());
     }
 
+    /**
+     * 设备图片,动态从缓存拿,缓存是通过设备配置获取
+     */
+    private String devPic;
+
 }

+ 10 - 7
src/main/java/com/yunfeiyun/agmp/iotm/web/mapper/IotDeviceMapper.java

@@ -1,20 +1,22 @@
 package com.yunfeiyun.agmp.iotm.web.mapper;
 
 import com.yunfeiyun.agmp.iot.common.domain.IotDevice;
+import com.yunfeiyun.agmp.iotm.web.domain.reqvo.IotDeviceListReqVo;
+import com.yunfeiyun.agmp.iotm.web.domain.resvo.IotDeviceListResVo;
 
 import java.util.List;
 
 /**
  * 设备基础Mapper接口
- * 
+ *
  * @author 杨晓辉
  * @date 2024-11-06
  */
-public interface IotDeviceMapper 
+public interface IotDeviceMapper
 {
     /**
      * 查询设备基础
-     * 
+     *
      * @param id 设备基础主键
      * @return 设备基础
      */
@@ -22,7 +24,7 @@ public interface IotDeviceMapper
 
     /**
      * 查询设备基础列表
-     * 
+     *
      * @param iotDevice 设备基础
      * @return 设备基础集合
      */
@@ -30,7 +32,7 @@ public interface IotDeviceMapper
 
     /**
      * 新增设备基础
-     * 
+     *
      * @param iotDevice 设备基础
      * @return 结果
      */
@@ -46,7 +48,7 @@ public interface IotDeviceMapper
 
     /**
      * 修改设备基础
-     * 
+     *
      * @param iotDevice 设备基础
      * @return 结果
      */
@@ -54,10 +56,11 @@ public interface IotDeviceMapper
 
     /**
      * 删除设备基础
-     * 
+     *
      * @param id 设备基础主键
      * @return 结果
      */
     public int deleteIotDeviceByDevBid(String devBid);
 
+    List<IotDeviceListResVo> selectIotDeviceListByType(IotDeviceListReqVo reqVo);
 }

+ 11 - 7
src/main/java/com/yunfeiyun/agmp/iotm/web/service/IIotDeviceService.java

@@ -15,12 +15,11 @@ import java.util.List;
 
 /**
  * 设备基础Service接口
- * 
+ *
  * @author 杨晓辉
  * @date 2024-11-06
  */
-public interface IIotDeviceService 
-{
+public interface IIotDeviceService {
     public int addIotDevice(IotDeviceAddReqVo reqVo);
 
     public TableDataInfo seletIotDeviceList(IotDeviceListReqVo reqVo);
@@ -37,14 +36,15 @@ public interface IIotDeviceService
 
     /**
      * 查询设备基础列表
-     * 
+     *
      * @param iotDevice 设备基础
      * @return 设备基础集合
      */
     public List<IotDevice> selectIotDeviceList(IotDevice iotDevice);
+
     /**
      * 新增设备基础
-     * 
+     *
      * @param iotDevice 设备基础
      * @return 结果
      */
@@ -60,16 +60,20 @@ public interface IIotDeviceService
 
     /**
      * 修改设备基础
-     * 
+     *
      * @param iotDevice 设备基础
      * @return 结果
      */
     public int updateIotDevice(IotDevice iotDevice, IotDeviceconn oldDeviceconn, IotDeviceconn newDeviceconn);
+
     /**
      * 删除设备基础信息
-     * 
+     *
      * @param devBid 设备基础主键
      * @return 结果
      */
     public int deleteIotDeviceByDevBid(String devBid);
+
+    List<IotDeviceListResVo> selectIotDeviceListByType(IotDeviceListReqVo reqVo);
+
 }

+ 12 - 5
src/main/java/com/yunfeiyun/agmp/iotm/web/service/impl/IotDeviceServiceImpl.java

@@ -39,7 +39,7 @@ import javax.annotation.Resource;
 
 /**
  * 设备基础Service业务层处理
- * 
+ *
  * @author 杨晓辉
  * @date 2024-11-06
  */
@@ -48,6 +48,7 @@ public class IotDeviceServiceImpl implements IIotDeviceService
 {
     @Autowired
     private IotDeviceMapper iotDeviceMapper;
+
     @Resource
     private SendToTosMsgService sendToTosMsgService;
     @Resource
@@ -212,7 +213,7 @@ public class IotDeviceServiceImpl implements IIotDeviceService
 
     /**
      * 查询设备基础列表
-     * 
+     *
      * @param iotDevice 设备基础
      * @return 设备基础
      */
@@ -225,7 +226,7 @@ public class IotDeviceServiceImpl implements IIotDeviceService
 
     /**
      * 新增设备基础
-     * 
+     *
      * @param iotDevice 设备基础
      * @return 结果
      */
@@ -258,7 +259,7 @@ public class IotDeviceServiceImpl implements IIotDeviceService
 
     /**
      * 修改设备基础
-     * 
+     *
      * @param iotDevice 设备基础
      * @return 结果
      */
@@ -277,7 +278,7 @@ public class IotDeviceServiceImpl implements IIotDeviceService
 
     /**
      * 删除设备基础信息
-     * 
+     *
      * @param devBid 设备基础主键
      * @return 结果
      */
@@ -292,4 +293,10 @@ public class IotDeviceServiceImpl implements IIotDeviceService
         sendToIotsMsgService.sendIotDeviceDeleteMsg(iotDevice);
         return result;
     }
+
+    @Override
+    public List<IotDeviceListResVo> selectIotDeviceListByType(IotDeviceListReqVo reqVo) {
+        return iotDeviceMapper.selectIotDeviceListByType(reqVo);
+    }
+
 }

+ 46 - 5
src/main/resources/mapper/IotDeviceMapper.xml

@@ -3,7 +3,7 @@
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yunfeiyun.agmp.iotm.web.mapper.IotDeviceMapper">
-    
+
     <resultMap type="IotDevice" id="IotDeviceResult">
         <result property="id"    column="id"    />
         <result property="devBid"    column="devBid"    />
@@ -49,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             d.devStatus, d.devProvince, d.devCity, d.devDistrict, d.devLng, d.devLat, d.devPositionstatus, d.devPositiontype,
             d.devTag, d.devRecogtype, d.devNetworktype, d.devOfflinedate, d.devProvincealign, d.devCityalign, d.devDistrictalign,
             d.devLngalign, d.devLatalign, d.devContacts, d.devTel, d.devCreator, d.devModifier, d.devUpdateddate, d.devModifieddate,
-            d.devCreateddate, d.devDelstatus, dt.devtypeName, dc.devclassName
+            d.devCreateddate, d.devDelstatus, dt.devtypeName, dc.devclassName,dt.devtypePreview devPic
         FROM IotDevice AS d
             LEFT JOIN TosDevicetype AS dt ON dt.devtypeBid = d.devtypeBid
             LEFT JOIN TosDeviceclass AS dc ON dc.devclassBid = d.devclassBid
@@ -93,12 +93,53 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="devCreateddate != null  and devCreateddate != ''"> and d.devCreateddate = #{devCreateddate}</if>
         </where>
     </select>
-    
+
     <select id="selectIotDeviceByDevBid" parameterType="String" resultMap="IotDeviceResult">
         <include refid="selectIotDeviceVo"/>
         where devBid = #{devBid}
     </select>
-        
+
+    <!--为了区分上面那个列表,那个是被用在设备统一管理界面,这个是各个子模块的列表-->
+    <select id="selectIotDeviceListByType"
+            resultType="com.yunfeiyun.agmp.iotm.web.domain.resvo.IotDeviceListResVo">
+        <include refid="selectIotDeviceVo"/>
+        <where>
+            d.tid = #{tid} and d.devDelstatus = '0'
+            <if test="devBid != null  and devBid != ''"> and d.devBid = #{devBid}</if>
+            <if test="devtypeBid != null  and devtypeBid != ''"> and d.devtypeBid = #{devtypeBid}</if>
+            <if test="firmBid != null  and firmBid != ''"> and d.firmBid = #{firmBid}</if>
+            <if test="devclassBid != null  and devclassBid != ''"> and d.devclassBid = #{devclassBid}</if>
+            <if test="devconnBid != null  and devconnBid != ''"> and d.devconnBid = #{devconnBid}</if>
+            <if test="devCode != null  and devCode != ''"> and d.devCode = #{devCode}</if>
+            <if test="devName != null  and devName != ''"> and d.devName like concat('%', #{devName}, '%')</if>
+            <if test="devStatus != null  and devStatus != ''"> and d.devStatus = #{devStatus}</if>
+            <if test="devProvince != null  and devProvince != ''"> and d.devProvince = #{devProvince}</if>
+            <if test="devCity != null  and devCity != ''"> and d.devCity = #{devCity}</if>
+            <if test="devDistrict != null  and devDistrict != ''"> and d.devDistrict = #{devDistrict}</if>
+            <if test="devLng != null "> and d.devLng = #{devLng}</if>
+            <if test="devLat != null "> and d.devLat = #{devLat}</if>
+            <if test="devPositionstatus != null  and devPositionstatus != ''"> and d.devPositionstatus = #{devPositionstatus}</if>
+            <if test="devPositiontype != null  and devPositiontype != ''"> and d.devPositiontype = #{devPositiontype}</if>
+            <if test="devTag != null  and devTag != ''"> and d.devTag = #{devTag}</if>
+            <if test="devRecogtype != null  and devRecogtype != ''"> and d.devRecogtype = #{devRecogtype}</if>
+            <if test="devNetworktype != null  and devNetworktype != ''"> and d.devNetworktype = #{devNetworktype}</if>
+            <if test="devOfflinedate != null  and devOfflinedate != ''"> and d.devOfflinedate = #{devOfflinedate}</if>
+            <if test="devProvincealign != null  and devProvincealign != ''"> and d.devProvincealign = #{devProvincealign}</if>
+            <if test="devCityalign != null  and devCityalign != ''"> and d.devCityalign = #{devCityalign}</if>
+            <if test="devDistrictalign != null  and devDistrictalign != ''"> and d.devDistrictalign = #{devDistrictalign}</if>
+            <if test="devLngalign != null "> and d.devLngalign = #{devLngalign}</if>
+            <if test="devLatalign != null "> and d.devLatalign = #{devLatalign}</if>
+            <if test="devContacts != null  and devContacts != ''"> and d.devContacts = #{devContacts}</if>
+            <if test="devTel != null  and devTel != ''"> and d.devTel = #{devTel}</if>
+            <if test="devCreator != null  and devCreator != ''"> and d.devCreator = #{devCreator}</if>
+            <if test="devModifier != null  and devModifier != ''"> and d.devModifier = #{devModifier}</if>
+            <if test="devUpdateddate != null  and devUpdateddate != ''"> and d.devUpdateddate = #{devUpdateddate}</if>
+            <if test="devModifieddate != null  and devModifieddate != ''"> and d.devModifieddate = #{devModifieddate}</if>
+            <if test="devCreateddate != null  and devCreateddate != ''"> and d.devCreateddate = #{devCreateddate}</if>
+        </where>
+
+    </select>
+
     <insert id="insertIotDevice" parameterType="IotDevice" useGeneratedKeys="true" keyProperty="id">
         insert into IotDevice
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -241,4 +282,4 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
 
-</mapper>
+</mapper>