Ver código fonte

创建td对应的数据表

xucaiqin 1 ano atrás
pai
commit
fe5c947149

+ 0 - 4
iot-framework/iot-starter-redis/src/main/java/com/middle/platform/redis/constant/CacheConstant.java

@@ -16,10 +16,6 @@ public interface CacheConstant {
     String MOD_CACHE = "mod:%s";
     String CLOUD_CACHE = "cloud:%s";
 
-    //td源数据,是否建子表缓存
-    String TD_ORG_CACHE = "org:%s:%s";
-    //td转换后的数据,是否建子表缓存
-    String TD_CACHE = "td:%s:%s";
 
     //设备属性实时数据
     String D_DATA_CACHE = "data:%s";

+ 19 - 9
iot-module/iot-module-data/iot-module-data-biz/src/main/resources/mapper/TaosMapper.xml

@@ -9,16 +9,25 @@
         CREATE TABLE IF NOT EXISTS device_${code}_${guid} using product_${code} TAGS (#{guid})
     </update>
 
-    <insert id="insert">
+    <insert id="insertDevice">
         INSERT INTO device_${code}_${guid} (ts, line, val, msg_id,reserve, origin_time)
         VALUES (#{ts}, #{line}, #{val}, #{msgId}, #{reserve}, #{originTime})
     </insert>
-    <insert id="batchInsert">
-        INSERT INTO device_${code}_${guid} (ts, line, val, msg_id, reserve, origin_time) VALUES
-        <foreach collection='list' item='item' index='index' separator=','>
+    <insert id="batchDeviceInsert">
+        INSERT INTO device_${data.table} (ts, line, val, msg_id, reserve, origin_time) VALUES
+        <foreach collection='data.data' item='item' index='index' separator=','>
             (#{item.ts}, #{item.line}, #{item.val}, #{item.msgId}, #{item.reserve}, #{item.originTime})
         </foreach>
     </insert>
+    <insert id="batchDeviceInsertMore">
+        INSERT INTO
+        <foreach collection="list" item="item" index="index" separator=" ">
+            device_${item.table}  (ts, line, val, msg_id, reserve, origin_time) VALUES
+            <foreach collection="item.data" item="d" index="didx" separator=" ">
+                (#{d.ts}, #{d.line}, #{d.val}, #{d.msgId}, #{d.reserve}, #{d.originTime})
+            </foreach>
+        </foreach>
+    </insert>
 
     <!--源数据-->
     <select id="createOriginal" >
@@ -33,13 +42,14 @@
         INSERT INTO original_${code}_${guid} (ts, raw_str,msg_id)
         VALUES (#{ts}, #{rawStr}, #{msgId})
     </insert>
-
-    <select id="batchInsertOriginal" resultType="int">
-        INSERT INTO original_${code}_${guid} (ts, raw_str,msg_id) VALUES
-        <foreach collection='list' item='item' index='index' separator=',' >
+    <insert id="batchInsertOriginal">
+        INSERT INTO
+        <foreach collection="list" item="item" index="index" separator=" ">
+            original_${item.code}_${item.guid} (ts, raw_str,msg_id)
+            VALUES
             (#{item.ts}, #{item.rawStr}, #{item.msgId})
         </foreach>
-    </select>
+    </insert>
 
     <select id="query" resultType="com.middle.platform.data.biz.pojo.PropertyVo">
         select line, val, ts as date

+ 8 - 1
iot-module/iot-module-manage/iot-module-manage-biz/src/main/java/com/middle/platform/manage/biz/service/IotDeviceService.java

@@ -8,6 +8,7 @@ import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
 import com.middle.platform.common.constant.Global;
 import com.middle.platform.common.exception.BusinessException;
+import com.middle.platform.data.api.feign.TdApi;
 import com.middle.platform.excel.core.util.ExcelUtils;
 import com.middle.platform.manage.api.pojo.DeviceVo;
 import com.middle.platform.manage.biz.domain.req.DevicePage;
@@ -55,6 +56,7 @@ public class IotDeviceService {
     private final CacheService cacheService;
     private final DictApi dictApi;
     private final UserApi userApi;
+    private final TdApi tdApi;
 
     /**
      * 设备分页查询
@@ -97,7 +99,10 @@ public class IotDeviceService {
         //校验sn
         checkDeviceSn(iotDevicePara.getSn());
         //校验产品
-        checkProduct(iotDevicePara.getProductId());
+        IotProduct iotProduct = iotProductMapper.selectOne(new LambdaQueryWrapper<IotProduct>().eq(IotProduct::getId, iotDevicePara.getProductId()).eq(IotProduct::getDelFlag, Global.UN_DEL).last("limit 1"));
+        if (Objects.isNull(iotProduct)) {
+            throw new BusinessException("当前产品不存在");
+        }
         IotDevice iotDevice = new IotDevice();
         iotDevice.setProductId(iotDevicePara.getProductId());
         iotDevice.setName(iotDevicePara.getName());
@@ -109,6 +114,8 @@ public class IotDeviceService {
         iotDevice.setRemark(iotDevicePara.getRemark());
         iotDeviceMapper.insert(iotDevice);
         iotProductMapper.updateSize(iotDevicePara.getProductId(), 1);
+        //创建td 产品和设备表的子表
+        tdApi.createDevice(iotProduct.getCode(), iotDevice.getGuid());
         return true;
     }
 

+ 2 - 1
iot-module/iot-module-manage/iot-module-manage-biz/src/main/resources/mapper/IotProductMapper.xml

@@ -78,7 +78,8 @@
         select ip.id,
                ip.code,
                ip.data_format,
-               id.guid
+               id.guid,
+               ip.report_protocol
         from iot_product ip
                  inner join iot_device id on ip.id = id.product_id and id.del_flag = 0
         <where>