Bläddra i källkod

Merge branch 'V0.0.6-iot' of http://10.87.21.221:8000/jzyd_yyds/soc into V0.0.6-iot

jiawuxian 1 år sedan
förälder
incheckning
6bbd9ca55b

+ 7 - 2
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/controller/IotSensorController.java

@@ -26,11 +26,16 @@ public class IotSensorController {
     IIotCommonSensorService sensorService;
 
 
-    @ApiOperation("分页")
+    @ApiOperation("动环设备分页")
     @PostMapping({"/find"})
     TableDataInfo<SensorPageVo> webPage(@RequestBody final SensorPageDto request) {
         TableDataInfo<SensorPageVo> page = this.sensorService.selectSensorDataPage(request);
         return page;
     }
-
+    @ApiOperation("动环设备上报历史数据分页")
+    @PostMapping({"/find/log"})
+    TableDataInfo<SensorPageVo> webLogPage(@RequestBody final SensorPageDto request) {
+        TableDataInfo<SensorPageVo> page = this.sensorService.selectSensorLogDataPage(request);
+        return page;
+    }
 }

+ 12 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/dto/sensor/SensorPageDto.java

@@ -3,6 +3,8 @@ package com.xunmei.iot.dto.sensor;
 import com.xunmei.common.core.web.domain.PageRequest;
 import lombok.Data;
 
+import java.util.Date;
+
 /**
  * @author jingyuanchao
  * @date 2024/2/26 14:32
@@ -11,4 +13,14 @@ import lombok.Data;
 public class SensorPageDto extends PageRequest {
 
     private String deviceName;
+
+    private String deviceCode;
+
+    private Date[] dateRange;
+
+    private Date startTime;
+
+    private Date endTime;
+
+
 }

+ 3 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/mapper/IotCommonSensorMapper.java

@@ -19,4 +19,7 @@ import org.apache.ibatis.annotations.Param;
 public interface IotCommonSensorMapper extends BaseMapper<IotSensor> {
 
     Page<SensorPageVo> selectPageData(Page<SensorPageVo> pageRequest, @Param("request") SensorPageDto request);
+
+    Page<SensorPageVo> selectSensorLogDataPage(Page<SensorPageVo> pageRequest, @Param("request") SensorPageDto request);
+
 }

+ 2 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/IIotCommonSensorService.java

@@ -18,4 +18,6 @@ public interface IIotCommonSensorService extends IService<IotSensor> {
 
     TableDataInfo<SensorPageVo> selectSensorDataPage(SensorPageDto request);
 
+    TableDataInfo<SensorPageVo> selectSensorLogDataPage(SensorPageDto request);
+
 }

+ 45 - 17
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotCommonSensorServiceImpl.java

@@ -1,5 +1,6 @@
 package com.xunmei.iot.service.impl;
 
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -22,7 +23,7 @@ import java.util.Map;
 
 /**
  * <p>
- *  服务实现类
+ * 服务实现类
  * </p>
  *
  * @author test
@@ -39,28 +40,55 @@ public class IotCommonSensorServiceImpl extends ServiceImpl<IotCommonSensorMappe
 
     @Override
     public TableDataInfo<SensorPageVo> selectSensorDataPage(SensorPageDto request) {
-        final SysOrg sysOrg = orgService.selectOrgById(request.getOrgId(), SecurityConstants.INNER);
+        dealPageParam(request);
 
-        if (ObjectUtil.equal(Boolean.TRUE,request.getCheckSub())){
-            request.setOrgPath(sysOrg.getPath());
-            request.setOrgId(null);
+        Page<SensorPageVo> page = sensorMapper.selectPageData(request.getPageRequest(), request);
+        for (SensorPageVo record : page.getRecords()) {
+            final String info = record.getInfo();
+            record.setInfo(dealInfoData(info));
         }
+        return TableDataInfo.build(page);
+    }
+
+    private String dealInfoData(String info) {
+        final List<Map> list = JSON.parseArray(info, Map.class);
+        List<String> dataList = new ArrayList<>();
+        for (Map map : list) {
+            final String name = (String) map.get("name");
+            final String res = (String) map.get("res");
+            if (ObjectUtil.hasEmpty(name, res)) {
+                continue;
+            }
+            dataList.add(name + ":" + res);
+        }
+        return String.join(";", dataList);
+    }
 
-        Page<SensorPageVo> page=  sensorMapper.selectPageData(request.getPageRequest(),request);
+    @Override
+    public TableDataInfo<SensorPageVo> selectSensorLogDataPage(SensorPageDto request) {
+        dealPageParam(request);
+        if (ObjectUtil.isEmpty(request.getDeviceCode())) {
+            throw new RuntimeException("设备编码不能为空!");
+        }
+        Page<SensorPageVo> page = sensorMapper.selectSensorLogDataPage(request.getPageRequest(), request);
         for (SensorPageVo record : page.getRecords()) {
             final String info = record.getInfo();
-            final List<Map> list = JSON.parseArray(info, Map.class);
-            List<String> dataList = new ArrayList<>();
-            for (Map map : list) {
-                final String name = (String) map.get("name");
-                final String res = (String) map.get("res");
-                if (ObjectUtil.hasEmpty(name,res)){
-                    continue;
-                }
-                dataList.add(name+":"+res);
-            }
-            record.setInfo(String.join(";",dataList));
+            record.setInfo(dealInfoData(info));
         }
         return TableDataInfo.build(page);
     }
+
+
+    private void dealPageParam(SensorPageDto request) {
+        final SysOrg sysOrg = orgService.selectOrgById(request.getOrgId(), SecurityConstants.INNER);
+        if (ObjectUtil.equal(Boolean.TRUE, request.getCheckSub())) {
+            request.setOrgPath(sysOrg.getPath());
+            request.setOrgId(null);
+        }
+        if (ObjectUtil.isNotEmpty(request.getDateRange())) {
+            //web的查询
+            request.setStartTime(DateUtil.beginOfDay(request.getDateRange()[0]));
+            request.setEndTime(DateUtil.endOfDay(request.getDateRange()[1]));
+        }
+    }
 }

+ 3 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/vo/sensor/SensorPageVo.java

@@ -34,6 +34,9 @@ public class SensorPageVo {
     @ApiModelProperty("设备类型")
     private String categoryType;
 
+    @ApiModelProperty("设备code")
+    private String deviceCode;
+
     @ApiModelProperty("上报内容")
     private String info;
 

+ 32 - 1
soc-modules/soc-modules-iot/src/main/resources/mapper/IotSensorMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="com.xunmei.iot.mapper.IotCommonSensorMapper">
 
     <select id="selectPageData" resultType="com.xunmei.iot.vo.sensor.SensorPageVo">
-        select s.id, org_id, org_name, device_name, category_id, infos as info, update_time from iot_sensor s
+        select s.id, org_id, org_name, device_name, category_id, infos as info,device_code, update_time from iot_sensor s
         <where>
             <if test="request.orgId!= null">
                 and s.org_id=#{request.orgId}
@@ -14,6 +14,37 @@
             <if test="request.deviceName != null and request.deviceName!= ''">
                 and s.device_name like CONCAT('%',#{request.deviceName},'%')
             </if>
+            <if test="request.startTime!= null">
+                and s.state_update_time >=#{request.startTime}
+            </if>
+            <if test="request.endTime!= null">
+                and s.state_update_time <![CDATA[<=]]>  #{request.endTime}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectSensorLogDataPage" resultType="com.xunmei.iot.vo.sensor.SensorPageVo">
+        select s.id, org_id, org_name, device_name, category_id, infos as info,device_code, update_time from iot_sensor_log s
+        <where>
+            <if test="request.orgId!= null">
+                and s.org_id=#{request.orgId}
+            </if>
+            <if test="request.orgPath!= null">
+                and s.org_path like CONCAT(#{request.orgPath}, '%')
+            </if>
+            <if test="request.deviceName != null and request.deviceName!= ''">
+                and s.device_name like CONCAT('%',#{request.deviceName},'%')
+            </if>
+            <if test="request.deviceCode != null and request.deviceCode!= ''">
+                and s.device_code =#{request.deviceCode}
+            </if>
+            <if test="request.startTime!= null">
+                and s.state_update_time >=#{request.startTime}
+            </if>
+            <if test="request.endTime!= null">
+                and s.state_update_time <![CDATA[<=]]>  #{request.endTime}
+            </if>
         </where>
+        order by s.state_update_time desc
     </select>
 </mapper>