فهرست منبع

@task: add info entity

bai 3 سال پیش
والد
کامیت
733c009e87

+ 3 - 1
demo/src/main/java/com/framework/mvvm/model/db/AdmDatabase.kt

@@ -33,7 +33,8 @@ import com.framework.mvvm.model.db.entity.task.*
         ComponentEntity::class,
         PipeEntity::class,
         ServeAreaEntity::class,
-        ContainerConfigEntity::class
+        ContainerConfigEntity::class,
+        InfoEntity::class
     ], version = 1, exportSchema = true
 )
 @TypeConverters(GsonConverter::class)
@@ -59,6 +60,7 @@ abstract class AdmDatabase : RoomDatabase() {
     abstract fun pipeDao(): PipeDao
     abstract fun serveAreaDao(): ServeAreaDao
     abstract fun containerConfigDao(): ContainerConfigDao
+    abstract fun infoDao(): InfoDao
 
     companion object {
         @Volatile

+ 27 - 0
demo/src/main/java/com/framework/mvvm/model/db/dao/InfoDao.kt

@@ -0,0 +1,27 @@
+package com.framework.mvvm.model.db.dao
+
+import androidx.room.*
+import com.framework.mvvm.model.db.entity.dict.InfoEntity
+import com.framework.mvvm.model.db.entity.task.FileEntity
+
+/**
+ * 表 info dao
+ */
+@Dao
+interface InfoDao {
+    @Query("select * from info")
+    suspend fun getInfos(): List<InfoEntity>
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    suspend fun insInfo(vararg info: InfoEntity)
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    suspend fun insInfos(infos: List<InfoEntity>)
+
+    @Update
+    suspend fun updateInfo(vararg info: InfoEntity)
+
+    @Query("select * from info where class_code = :classCode and code = :code")
+    suspend fun getInfoByClassCodeAndCode(classCode: String, code: String): InfoEntity
+
+}

+ 35 - 0
demo/src/main/java/com/framework/mvvm/model/db/entity/dict/InfoEntity.kt

@@ -0,0 +1,35 @@
+package com.framework.mvvm.model.db.entity.dict
+
+import androidx.room.ColumnInfo
+import androidx.room.Entity
+import androidx.room.PrimaryKey
+import com.google.gson.JsonElement
+
+/**
+ * info 表
+ * 通过 code 和 classCode 的各种组合来使用
+ * code : Info 本身编码,
+ * classCode : 设备编码,对应多个 info
+ * 关系:一个 classCode 下有多个 code;不同 classCode 下的 code 可能相同
+ */
+@Entity(tableName = "info")
+data class InfoEntity(
+    @PrimaryKey(autoGenerate = true) val id: Int = 0,
+    @ColumnInfo(name = "group_code") val groupCode: String? = null,
+    @ColumnInfo(name = "project_id") val projectId: String? = null,
+    @ColumnInfo(name = "code") val code: String? = null,              // Info 编码
+    @ColumnInfo(name = "name") val name: String? = null,
+    @ColumnInfo(name = "alias_code") val aliasCode: String? = null,
+    @ColumnInfo(name = "class_code") val classCode: String? = null,   // 类型编码
+    @ColumnInfo(name = "first_tag") val firstTag: String? = null,
+    @ColumnInfo(name = "second_tag") val secondTag: String? = null,
+    @ColumnInfo(name = "input_mode") val inputMode: String? = null,
+    @ColumnInfo(name = "unit") val unit: String? = null,
+    @ColumnInfo(name = "data_type") val dataType: String? = null,
+    @ColumnInfo(name = "data_source") val dataSource: JsonElement? = null,
+    @ColumnInfo(name = "show_order") val showOrder: Long? = null,
+    @ColumnInfo(name = "version") val version: String? = null
+    // String aliasName;
+    // Boolean isMultiple = false;
+    // Boolean isRegion = false;
+)

+ 1 - 0
demo/src/main/java/com/framework/mvvm/model/repository/AdmRepository.kt

@@ -292,6 +292,7 @@ class AdmRepository(
                     dict.dict?.equipment?.let { db.equipmentDao().insEquipments(it) }
                     dict.dict?.relation?.let { db.relationDictDao().insRelationDicts(it) }
                     dict.dict?.major?.let { db.majorDao().insMajors(it) }
+                    dict.dict?.infos?.let { db.infoDao().insInfos(it) }
                 } catch (e: Exception) {
                     Log.d("requestDict", "exception: $e")
                 }

+ 2 - 1
demo/src/main/java/com/framework/mvvm/model/vo/Dict.kt

@@ -22,5 +22,6 @@ data class Dictionary(
     val system: List<SystemEntity>? = null,
     val major: List<MajorEntity>? = null,
     val equipment: List<EquipmentEntity>? = null,
-    val relation: List<RelationDictEntity>? = null
+    val relation: List<RelationDictEntity>? = null,
+    val infos: List<InfoEntity>? = null
 )