Browse Source

@fun: database

bai 3 years ago
parent
commit
7b4c7e8179
33 changed files with 653 additions and 303 deletions
  1. 10 9
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/AdmDatabase.kt
  2. 34 0
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/ComponentConfigDao.kt
  3. 0 34
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/ComponentDao.kt
  4. 3 1
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/ContainerConfigDao.kt
  5. 3 1
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/InfosConfigDao.kt
  6. 3 1
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/PipeConfigDao.kt
  7. 19 0
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/ProblemInfoConfigDao.kt
  8. 0 6
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/ProblemInfoDao.kt
  9. 12 1
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/ProblemTypeDao.kt
  10. 35 0
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/RelationConfigDao.kt
  11. 0 35
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/dict/RelationConfigDictDao.kt
  12. 6 6
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/dict/RelationDictDao.kt
  13. 9 0
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/task/EquipmentDao.kt
  14. 2 2
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/config/ComponentEntity.kt
  15. 1 1
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/config/ConfigEntity.kt
  16. 24 0
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/config/ProblemInfoConfigEntity.kt
  17. 0 24
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/config/ProblemInfoEntity.kt
  18. 7 7
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/config/ProblemTypeEntity.kt
  19. 3 3
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/dict/RelationConfigDictEntity.kt
  20. 1 1
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/task/BuildingEntity.kt
  21. 3 3
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/task/CadEntity.kt
  22. 43 20
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/task/EquipmentEntity.kt
  23. 45 17
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/task/FileEntity.kt
  24. 1 1
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/task/FloorEntity.kt
  25. 25 15
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/task/WorkspaceEntity.kt
  26. 8 8
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/nt/Api.kt
  27. 4 4
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/vo/Frame.kt
  28. 5 5
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/vo/Config.kt
  29. 1 1
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/vo/Dict.kt
  30. 54 26
      app/src/main/java/com/ys/bdtp/adm/mvvm/model/vo/Object.kt
  31. 69 20
      app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/offline/OfflineSide2.kt
  32. 185 20
      app/src/main/java/com/ys/bdtp/adm/mvvm/vm/offline/OfflineRepository.kt
  33. 38 31
      app/src/main/java/com/ys/bdtp/adm/mvvm/vm/offline/OfflineViewModel.kt

+ 10 - 9
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/AdmDatabase.kt

@@ -19,18 +19,19 @@ import com.ys.bdtp.adm.mvvm.model.db.entity.task.*
 @Database(
 @Database(
     entities = [
     entities = [
         // config
         // config
-        ComponentEntity::class,
+        ComponentConfigEntity::class,
         ConfigEntity::class,
         ConfigEntity::class,
         ContainerConfigEntity::class,
         ContainerConfigEntity::class,
         InfosConfigEntity::class,
         InfosConfigEntity::class,
         PipeConfigEntity::class,
         PipeConfigEntity::class,
-        ProblemInfoEntity::class,
-        ProblemTypeEntity::class,
+        ProblemInfoConfigEntity::class,
+        ProblemTypeConfigEntity::class,
+        RelationConfigEntity::class,
+
         // dict
         // dict
         EquipmentDictEntity::class,
         EquipmentDictEntity::class,
         InfoDictEntity::class,
         InfoDictEntity::class,
         MajorDictEntity::class,
         MajorDictEntity::class,
-        RelationConfigDictEntity::class,
         RelationDictEntity::class,
         RelationDictEntity::class,
         SystemDictEntity::class,
         SystemDictEntity::class,
         // task
         // task
@@ -55,23 +56,23 @@ import com.ys.bdtp.adm.mvvm.model.db.entity.task.*
 @TypeConverters(GsonConverter::class)
 @TypeConverters(GsonConverter::class)
 abstract class AdmDatabase : RoomDatabase() {
 abstract class AdmDatabase : RoomDatabase() {
     // config
     // config
-    abstract fun componentDao(): ComponentDao
+    abstract fun componentConfigDao(): ComponentConfigDao
     abstract fun configDao(): ConfigDao
     abstract fun configDao(): ConfigDao
     abstract fun containerConfigDao(): ContainerConfigDao
     abstract fun containerConfigDao(): ContainerConfigDao
     abstract fun infosConfigDao(): InfosConfigDao
     abstract fun infosConfigDao(): InfosConfigDao
     abstract fun pipeConfigDao(): PipeConfigDao
     abstract fun pipeConfigDao(): PipeConfigDao
-    abstract fun problemInfoDao(): ProblemInfoDao
-    abstract fun problemTypeDao(): ProblemTypeDao
+    abstract fun problemInfoConfigDao(): ProblemInfoConfigDao
+    abstract fun problemTypeConfigDao(): ProblemTypeDao
+    abstract fun relationConfigDao(): RelationConfigDao
 
 
     // dict
     // dict
     abstract fun equipmentDictDao(): EquipmentDictDao
     abstract fun equipmentDictDao(): EquipmentDictDao
     abstract fun infoDictDao(): InfoDictDao
     abstract fun infoDictDao(): InfoDictDao
     abstract fun majorDictDao(): MajorDictDao
     abstract fun majorDictDao(): MajorDictDao
-    abstract fun relationConfigDictDao(): RelationConfigDictDao
     abstract fun relationDictDao(): RelationDictDao
     abstract fun relationDictDao(): RelationDictDao
     abstract fun systemDictDao(): SystemDictDao
     abstract fun systemDictDao(): SystemDictDao
 
 
-    // task
+    // mission
     abstract fun buildingDao(): BuildingDao
     abstract fun buildingDao(): BuildingDao
     abstract fun cadDao(): CadDao
     abstract fun cadDao(): CadDao
     abstract fun customInfoDao(): CustomInfoDao
     abstract fun customInfoDao(): CustomInfoDao

+ 34 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/ComponentConfigDao.kt

@@ -0,0 +1,34 @@
+package com.ys.bdtp.adm.mvvm.model.db.dao.config
+
+import androidx.room.Dao
+import androidx.room.Delete
+import androidx.room.Insert
+import androidx.room.OnConflictStrategy
+import androidx.room.Query
+import com.ys.bdtp.adm.mvvm.model.db.entity.config.ComponentConfigEntity
+
+/**
+ * component 表访问接口
+ *
+ * @author bai
+ */
+@Dao
+interface ComponentConfigDao {
+    @Query("select * from component_config")
+    suspend fun getComponents(): List<ComponentConfigEntity>
+
+    @Query("select * from component_config where id = :id")
+    suspend fun getComponentById(id: String): ComponentConfigEntity
+
+    @Query("select * from component_config where class_code = :code")
+    suspend fun getComponentByCode(code: String): List<ComponentConfigEntity>
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    suspend fun insComponent(vararg comp: ComponentConfigEntity)
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    suspend fun insComponents( comps: List<ComponentConfigEntity>)
+
+    @Delete
+    suspend fun delConfig(config: ComponentConfigEntity)
+}

+ 0 - 34
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/ComponentDao.kt

@@ -1,34 +0,0 @@
-package com.ys.bdtp.adm.mvvm.model.db.dao.config
-
-import androidx.room.Dao
-import androidx.room.Delete
-import androidx.room.Insert
-import androidx.room.OnConflictStrategy
-import androidx.room.Query
-import com.ys.bdtp.adm.mvvm.model.db.entity.config.ComponentEntity
-
-/**
- * component 表访问接口
- *
- * @author bai
- */
-@Dao
-interface ComponentDao {
-    @Query("select * from component")
-    suspend fun getComponents(): List<ComponentEntity>
-
-    @Query("select * from component where id = :id")
-    suspend fun getComponentById(id: String): ComponentEntity
-
-    @Query("select * from component where class_code = :code")
-    suspend fun getComponentByCode(code: String): List<ComponentEntity>
-
-    @Insert(onConflict = OnConflictStrategy.REPLACE)
-    suspend fun insComponent(vararg comp: ComponentEntity)
-
-    @Insert(onConflict = OnConflictStrategy.REPLACE)
-    suspend fun insComponents( comps: List<ComponentEntity>)
-
-    @Delete
-    suspend fun delConfig(config: ComponentEntity)
-}

+ 3 - 1
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/ContainerConfigDao.kt

@@ -7,7 +7,9 @@ import androidx.room.Query
 import com.ys.bdtp.adm.mvvm.model.db.entity.config.ContainerConfigEntity
 import com.ys.bdtp.adm.mvvm.model.db.entity.config.ContainerConfigEntity
 
 
 /**
 /**
- * 表 container_config Dao
+ * container_config 表访问接口
+ *
+ * @author bai
  */
  */
 @Dao
 @Dao
 interface ContainerConfigDao {
 interface ContainerConfigDao {

+ 3 - 1
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/InfosConfigDao.kt

@@ -8,7 +8,9 @@ import androidx.room.Query
 import com.ys.bdtp.adm.mvvm.model.db.entity.config.InfosConfigEntity
 import com.ys.bdtp.adm.mvvm.model.db.entity.config.InfosConfigEntity
 
 
 /**
 /**
- * 表 infos_config Dao
+ * infos_config 表访问接口
+ *
+ * @author bai
  */
  */
 @Dao
 @Dao
 interface InfosConfigDao {
 interface InfosConfigDao {

+ 3 - 1
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/PipeConfigDao.kt

@@ -4,7 +4,9 @@ import androidx.room.*
 import com.ys.bdtp.adm.mvvm.model.db.entity.config.PipeConfigEntity
 import com.ys.bdtp.adm.mvvm.model.db.entity.config.PipeConfigEntity
 
 
 /**
 /**
- * 表 pipe_config Dao
+ * pipe_config 表访问接口
+ *
+ * @author bai
  */
  */
 @Dao
 @Dao
 interface PipeConfigDao {
 interface PipeConfigDao {

+ 19 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/ProblemInfoConfigDao.kt

@@ -0,0 +1,19 @@
+package com.ys.bdtp.adm.mvvm.model.db.dao.config
+
+import androidx.room.Dao
+import androidx.room.Insert
+import androidx.room.OnConflictStrategy
+import com.ys.bdtp.adm.mvvm.model.db.entity.config.ProblemInfoConfigEntity
+
+/**
+ * problem_info 表访问接口
+ *
+ * @author bai
+ */
+@Dao
+interface ProblemInfoConfigDao {
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    fun insProblemInfos(problemInfos: List<ProblemInfoConfigEntity>)
+
+}

+ 0 - 6
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/ProblemInfoDao.kt

@@ -1,6 +0,0 @@
-package com.ys.bdtp.adm.mvvm.model.db.dao.config
-
-import androidx.room.Dao
-
-@Dao
-interface ProblemInfoDao {}

+ 12 - 1
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/ProblemTypeDao.kt

@@ -1,6 +1,17 @@
 package com.ys.bdtp.adm.mvvm.model.db.dao.config
 package com.ys.bdtp.adm.mvvm.model.db.dao.config
 
 
 import androidx.room.Dao
 import androidx.room.Dao
+import androidx.room.Insert
+import com.ys.bdtp.adm.mvvm.model.db.entity.config.ProblemTypeConfigEntity
 
 
+/**
+ * problem_type 表访问接口
+ *
+ * @author bai
+ */
 @Dao
 @Dao
-interface ProblemTypeDao {}
+interface ProblemTypeDao {
+
+    @Insert
+    fun insProblemTypes(problemTypes: List<ProblemTypeConfigEntity>)
+}

+ 35 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/config/RelationConfigDao.kt

@@ -0,0 +1,35 @@
+package com.ys.bdtp.adm.mvvm.model.db.dao.config
+
+import androidx.room.Dao
+import androidx.room.Delete
+import androidx.room.Insert
+import androidx.room.OnConflictStrategy
+import androidx.room.Query
+import com.ys.bdtp.adm.mvvm.model.db.entity.config.RelationConfigEntity
+
+/**
+ * 表 relation_config Dao
+ */
+@Dao
+interface RelationConfigDao {
+    @Query("select * from relation_config")
+    suspend fun getConfigs(): List<RelationConfigEntity>
+
+    @Query("select * from relation_config where id = :id")
+    suspend fun getConfigById(id: String): RelationConfigEntity
+
+    @Query("select * from relation_config where class_code_from = :code")
+    suspend fun getConfigByCodeFrom(code: String): List<RelationConfigEntity>
+
+    @Query("select * from relation_config where class_code_to = :code")
+    suspend fun getConfigByCodeTo(code: String): List<RelationConfigEntity>
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    suspend fun insConfig(vararg config: RelationConfigEntity)
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    suspend fun insConfigs(configs: List<RelationConfigEntity>)
+
+    @Delete
+    suspend fun delConfig(config: RelationConfigEntity)
+}

+ 0 - 35
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/dict/RelationConfigDictDao.kt

@@ -1,35 +0,0 @@
-package com.ys.bdtp.adm.mvvm.model.db.dao.dict
-
-import androidx.room.Dao
-import androidx.room.Delete
-import androidx.room.Insert
-import androidx.room.OnConflictStrategy
-import androidx.room.Query
-import com.ys.bdtp.adm.mvvm.model.db.entity.dict.RelationConfigDictEntity
-
-/**
- * 表 relation_config Dao
- */
-@Dao
-interface RelationConfigDictDao {
-    @Query("select * from relation_config_dict")
-    suspend fun getConfigs(): List<RelationConfigDictEntity>
-
-    @Query("select * from relation_config_dict where id = :id")
-    suspend fun getConfigById(id: String): RelationConfigDictEntity
-
-    @Query("select * from relation_config_dict where class_code_from = :code")
-    suspend fun getConfigByCodeFrom(code: String): List<RelationConfigDictEntity>
-
-    @Query("select * from relation_config_dict where class_code_to = :code")
-    suspend fun getConfigByCodeTo(code: String): List<RelationConfigDictEntity>
-
-    @Insert(onConflict = OnConflictStrategy.REPLACE)
-    suspend fun insConfig(vararg config: RelationConfigDictEntity)
-
-    @Insert(onConflict = OnConflictStrategy.REPLACE)
-    suspend fun insConfigs(configs: List<RelationConfigDictEntity>)
-
-    @Delete
-    suspend fun delConfig(config: RelationConfigDictEntity)
-}

+ 6 - 6
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/dict/RelationDictDao.kt

@@ -8,22 +8,22 @@ import androidx.room.Query
 import com.ys.bdtp.adm.mvvm.model.db.entity.dict.RelationDictEntity
 import com.ys.bdtp.adm.mvvm.model.db.entity.dict.RelationDictEntity
 
 
 /**
 /**
- * 表 relation_dict Dao
+ * relation_dict 表访问接口
  */
  */
 @Dao
 @Dao
 interface RelationDictDao {
 interface RelationDictDao {
     @Query("select * from relation_dict")
     @Query("select * from relation_dict")
-    suspend fun getRelationDicts(): List<RelationDictEntity>
+    suspend fun getRelations(): List<RelationDictEntity>
 
 
     @Query("select * from relation_dict where id = :id")
     @Query("select * from relation_dict where id = :id")
-    suspend fun getRelationDictById(id: String): RelationDictEntity
+    suspend fun getRelationById(id: String): RelationDictEntity
 
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     @Insert(onConflict = OnConflictStrategy.REPLACE)
-    suspend fun insRelationDict(vararg relationDict: RelationDictEntity)
+    suspend fun insRelation(vararg relation: RelationDictEntity)
 
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     @Insert(onConflict = OnConflictStrategy.REPLACE)
-    suspend fun insRelationDicts(relationDicts: List<RelationDictEntity>)
+    suspend fun insRelations(relations: List<RelationDictEntity>)
 
 
     @Delete
     @Delete
-    suspend fun delRelationDict(relationDict: RelationDictEntity)
+    suspend fun delRelation(relation: RelationDictEntity)
 }
 }

+ 9 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/dao/task/EquipmentDao.kt

@@ -1,7 +1,16 @@
 package com.ys.bdtp.adm.mvvm.model.db.dao.task
 package com.ys.bdtp.adm.mvvm.model.db.dao.task
 
 
 import androidx.room.Dao
 import androidx.room.Dao
+import androidx.room.Insert
+import androidx.room.OnConflictStrategy
+import com.ys.bdtp.adm.mvvm.model.db.entity.task.EquipmentEntity
 
 
+/**
+ * equipment 表访问接口
+ */
 @Dao
 @Dao
 interface EquipmentDao {
 interface EquipmentDao {
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    fun insEquipments(equipments: List<EquipmentEntity>)
 }
 }

+ 2 - 2
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/config/ComponentEntity.kt

@@ -15,8 +15,8 @@ import androidx.room.PrimaryKey
  * @param classCode 类型编码
  * @param classCode 类型编码
  * @param systemCode 系统编码
  * @param systemCode 系统编码
  */
  */
-@Entity(tableName = "component")
-data class ComponentEntity(
+@Entity(tableName = "component_config")
+data class ComponentConfigEntity(
     @PrimaryKey @ColumnInfo(name = "id") val id: String,
     @PrimaryKey @ColumnInfo(name = "id") val id: String,
     @ColumnInfo(name = "comp_code") val compCode: String,
     @ColumnInfo(name = "comp_code") val compCode: String,
     @ColumnInfo(name = "comp_name") val compName: String?,
     @ColumnInfo(name = "comp_name") val compName: String?,

+ 1 - 1
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/config/ConfigEntity.kt

@@ -7,7 +7,7 @@ import androidx.room.PrimaryKey
 import com.google.gson.JsonElement
 import com.google.gson.JsonElement
 
 
 /**
 /**
- * basic_config 表
+ * config 表
  *
  *
  * @author bai
  * @author bai
  *
  *

+ 24 - 0
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/config/ProblemInfoConfigEntity.kt

@@ -0,0 +1,24 @@
+package com.ys.bdtp.adm.mvvm.model.db.entity.config
+
+import androidx.room.ColumnInfo
+import androidx.room.Entity
+import androidx.room.PrimaryKey
+
+/**
+ * 问题信息表
+ *
+ * @author bai
+ */
+@Entity(tableName = "problem_info_config")
+data class ProblemInfoConfigEntity(
+    @PrimaryKey @ColumnInfo(name = "id") val id: String,
+    @ColumnInfo(name = "code") val code: String,
+    @ColumnInfo(name = "name") val name: String,
+    @ColumnInfo(name = "data_source") val dataSource: String? = "",
+    @ColumnInfo(name = "data_type") val dataType: String? = "",
+    @ColumnInfo(name = "is_multiple") val isMultiple: Int = -1,
+    @ColumnInfo(name = "problem_type_code") val problemTypeCode: String? = "",
+    @ColumnInfo(name = "unit") val unit: String? = "",
+    @ColumnInfo(name = "valid") val valid: Int = -1,
+    @ColumnInfo(name = "ts") val ts: String? = ""
+)

+ 0 - 24
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/config/ProblemInfoEntity.kt

@@ -1,24 +0,0 @@
-package com.ys.bdtp.adm.mvvm.model.db.entity.config
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-/**
- * 问题信息表
- *
- * @author bai
- */
-@Entity(tableName = "problem_info")
-data class ProblemInfoEntity(
-    @PrimaryKey @ColumnInfo(name = "id") val id: String,
-    @ColumnInfo(name = "code") val code: String,
-    @ColumnInfo(name = "name") val name: String,
-    @ColumnInfo(name = "data_source") val dataSource: String,
-    @ColumnInfo(name = "data_type") val dataType: String,
-    @ColumnInfo(name = "is_multiple") val isMultiple: Int,
-    @ColumnInfo(name = "problem_type_code") val problemTypeCode: String,
-    @ColumnInfo(name = "unit") val unit: String,
-    @ColumnInfo(name = "valid") val valid: Int,
-    @ColumnInfo(name = "ts") val ts: String
-)

+ 7 - 7
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/config/ProblemTypeEntity.kt

@@ -9,12 +9,12 @@ import androidx.room.PrimaryKey
  *
  *
  * @author bai
  * @author bai
  */
  */
-@Entity(tableName = "problem_type")
-data class ProblemTypeEntity(
+@Entity(tableName = "problem_type_config")
+data class ProblemTypeConfigEntity(
     @PrimaryKey @ColumnInfo(name = "id") val id: String,
     @PrimaryKey @ColumnInfo(name = "id") val id: String,
-    @ColumnInfo(name = "obj_type_code") val objTypeCode: String,
-    @ColumnInfo(name = "obj_type_name") val objTypeName: String,
-    @ColumnInfo(name = "problem_type_code") val problemTypeCode: String,
-    @ColumnInfo(name = "problem_type_name") val problemTypeName: String,
-    @ColumnInfo(name = "valid") val valid: Int
+    @ColumnInfo(name = "obj_type_code") val objTypeCode: String? = "",
+    @ColumnInfo(name = "obj_type_name") val objTypeName: String? = "",
+    @ColumnInfo(name = "problem_type_code") val problemTypeCode: String? = "",
+    @ColumnInfo(name = "problem_type_name") val problemTypeName: String? = "",
+    @ColumnInfo(name = "valid") val valid: Int = -1
 )
 )

+ 3 - 3
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/dict/RelationConfigDictEntity.kt

@@ -1,4 +1,4 @@
-package com.ys.bdtp.adm.mvvm.model.db.entity.dict
+package com.ys.bdtp.adm.mvvm.model.db.entity.config
 
 
 import androidx.room.ColumnInfo
 import androidx.room.ColumnInfo
 import androidx.room.Entity
 import androidx.room.Entity
@@ -20,8 +20,8 @@ import androidx.room.PrimaryKey
  * @param relName 关系的边类型名称
  * @param relName 关系的边类型名称
  * @param direction 关系方向(fixed|optional|none)
  * @param direction 关系方向(fixed|optional|none)
  */
  */
-@Entity(tableName = "relation_config_dict")
-data class RelationConfigDictEntity(
+@Entity(tableName = "relation_config")
+data class RelationConfigEntity(
     @PrimaryKey @ColumnInfo(name = "id") val id: String,
     @PrimaryKey @ColumnInfo(name = "id") val id: String,
     @ColumnInfo(name = "obj_type_from") val objTypeFrom: String?,
     @ColumnInfo(name = "obj_type_from") val objTypeFrom: String?,
     @ColumnInfo(name = "obj_type_to") val objTypeTo: String?,
     @ColumnInfo(name = "obj_type_to") val objTypeTo: String?,

+ 1 - 1
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/task/BuildingEntity.kt

@@ -12,7 +12,7 @@ import com.google.gson.JsonElement
  *
  *
  * @param id
  * @param id
  * @param name 建筑名
  * @param name 建筑名
- * @param objType 建筑类型,
+ * @param objType 建筑类型: building
  * @param classCode 建筑类型编码,
  * @param classCode 建筑类型编码,
  * @param grouping 是否对象组: 1 单个对象 2 对象组
  * @param grouping 是否对象组: 1 单个对象 2 对象组
  * @param groupCode 集团编码
  * @param groupCode 集团编码

+ 3 - 3
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/task/CadEntity.kt

@@ -18,12 +18,12 @@ import androidx.room.PrimaryKey
  * @param floorId 楼层id
  * @param floorId 楼层id
  * @param buildingId 建筑id
  * @param buildingId 建筑id
  * @param projectId 项目id
  * @param projectId 项目id
+ * @param ts 时间戳
  * @param valid 合法标识
  * @param valid 合法标识
  * @param creator 创建人
  * @param creator 创建人
  * @param creationTime 创建时间
  * @param creationTime 创建时间
  * @param modifier 最后修改人
  * @param modifier 最后修改人
  * @param modifiedTime 最后修改时间
  * @param modifiedTime 最后修改时间
- * @param ts 时间戳
  *
  *
  */
  */
 @Entity(tableName = "cad")
 @Entity(tableName = "cad")
@@ -37,10 +37,10 @@ class CadEntity(
     @ColumnInfo(name = "floor_id") val floorId: String,
     @ColumnInfo(name = "floor_id") val floorId: String,
     @ColumnInfo(name = "building_id") val buildingId: String,
     @ColumnInfo(name = "building_id") val buildingId: String,
     @ColumnInfo(name = "project_id") val projectId: String,
     @ColumnInfo(name = "project_id") val projectId: String,
+    @ColumnInfo(name = "ts") val ts: Long,
     @ColumnInfo(name = "valid") val valid: Int,
     @ColumnInfo(name = "valid") val valid: Int,
     @ColumnInfo(name = "creator") val creator: String,
     @ColumnInfo(name = "creator") val creator: String,
     @ColumnInfo(name = "creation_time") val creationTime: String,
     @ColumnInfo(name = "creation_time") val creationTime: String,
     @ColumnInfo(name = "modifier") val modifier: String,
     @ColumnInfo(name = "modifier") val modifier: String,
-    @ColumnInfo(name = "modified_time") val modifiedTime: String,
-    @ColumnInfo(name = "ts") val ts: Long
+    @ColumnInfo(name = "modified_time") val modifiedTime: String
 )
 )

+ 43 - 20
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/task/EquipmentEntity.kt

@@ -11,31 +11,54 @@ import com.ys.bdtp.adm.mvvm.model.vo.Location
  *
  *
  * @author bai
  * @author bai
  *
  *
+ * @param id
+ * @param name
+ * @param objType 设备对象类型: equipment
+ * @param classCode 设备类型
+ * @param grouping
+ * @param groupCode
+ * @param projectId
+ * @param localId
+ * @param localName
+ * @param infos
+ * @param containerId
+ * @param buildingId
+ * @param floorId
+ * @param bimId
+ * @param createApp
+ * @param updateApp
+ * @param ts
+ * @param valid
+ * @param creator
+ * @param creationTime
+ * @param modifier
+ * @param modifiedTime
+ *
  */
  */
 @Entity(tableName = "equipment")
 @Entity(tableName = "equipment")
 data class EquipmentEntity(
 data class EquipmentEntity(
     @PrimaryKey @ColumnInfo(name = "id") val id: String,
     @PrimaryKey @ColumnInfo(name = "id") val id: String,
-    @ColumnInfo(name = "name") val name: String,
-    @ColumnInfo(name = "obj_type") val objType: String,
-    @ColumnInfo(name = "class_code") val classCode: String,
-    @ColumnInfo(name = "grouping") val grouping: Int,
-    @ColumnInfo(name = "group_code") val groupCode: String,
-    @ColumnInfo(name = "project_id") val projectId: String,
-    @ColumnInfo(name = "local_id") val localId: String,
-    @ColumnInfo(name = "local_name") val localName: String,
+    @ColumnInfo(name = "name") val name: String? = "",
+    @ColumnInfo(name = "obj_type") val objType: String? = "",
+    @ColumnInfo(name = "class_code") val classCode: String? = "",
+    @ColumnInfo(name = "grouping") val grouping: Int = 1,
+    @ColumnInfo(name = "group_code") val groupCode: String?="",
+    @ColumnInfo(name = "project_id") val projectId: String?="",
+    @ColumnInfo(name = "local_id") val localId: String? = "",
+    @ColumnInfo(name = "local_name") val localName: String? = "",
     @ColumnInfo(name = "infos") val infos: JsonElement? = null,
     @ColumnInfo(name = "infos") val infos: JsonElement? = null,
-    @ColumnInfo(name = "container_id") val containerId: String,
-    @ColumnInfo(name = "building_id") val buildingId: String,
-    @ColumnInfo(name = "floor_id") val floorId: String,
-    @ColumnInfo(name = "bim_id") val bimId: String,
-    @ColumnInfo(name = "create_app") val createApp: String,
-    @ColumnInfo(name = "update_app") val updateApp: String,
-    @ColumnInfo(name = "ts") val ts: Long,
-    @ColumnInfo(name = "valid") val valid: Int,
-    @ColumnInfo(name = "creator") val creator: String,
-    @ColumnInfo(name = "creator_time") val creationTime: Long,
-    @ColumnInfo(name = "modifier") val modifier: String,
-    @ColumnInfo(name = "modifier_time") val modifiedTime: Long
+    @ColumnInfo(name = "container_id") val containerId: String? = "",
+    @ColumnInfo(name = "building_id") val buildingId: String?="",
+    @ColumnInfo(name = "floor_id") val floorId: String?="",
+    @ColumnInfo(name = "bim_id") val bimId: String? = "",
+    @ColumnInfo(name = "create_app") val createApp: String? = "",
+    @ColumnInfo(name = "update_app") val updateApp: String? = "",
+    @ColumnInfo(name = "ts") val ts: Long = 0L,
+    @ColumnInfo(name = "valid") val valid: Int = 1,
+    @ColumnInfo(name = "creator") val creator: String? = "",
+    @ColumnInfo(name = "creator_time") val creationTime: Long = 0L,
+    @ColumnInfo(name = "modifier") val modifier: String? = "",
+    @ColumnInfo(name = "modifier_time") val modifiedTime: Long = 0L
 )
 )
 
 
 /**
 /**

+ 45 - 17
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/task/FileEntity.kt

@@ -7,23 +7,51 @@ import com.ys.bdtp.adm.mvvm.model.db.entity.BaseEntity
 
 
 /**
 /**
  * 文件表
  * 文件表
+ *
+ * @author bai
+ *
+ * @param id
+ * @param projectId
+ * @param buildingId
+ * @param floorId
+ * @param fileId 文件服务中存储的id
+ * @param filePath 文件存储路径
+ * @param fileType 文件类型(photo|video|file|...)
+ * @param bizType 业务类型(object:对象附件|problem_arch:空间问题附件|problem_equip:设备问题附件)
+ * @param clientPath app端文件存储路径
+ * @param refObjId 关联的对象id
+ * @param refInfoCode 关联的对象信息点code
+ * @param remark 描述
+ * @param orderNum 文件附件(照片)的排序序号
+ * @param state
+ * @param ts
+ * @param valid
+ * @param creator
+ * @param creationTime
+ * @param modifier
+ * @param modifiedTime
+ *
  */
  */
 @Entity(tableName = "file")
 @Entity(tableName = "file")
 data class FileEntity(
 data class FileEntity(
-    @PrimaryKey @ColumnInfo(name = "id") override val id: String,
-    @ColumnInfo(name = "project_id") override val projectId: String,
-    @ColumnInfo(name = "building_id") override val buildingId: String,
-    @ColumnInfo(name = "floor_id") override val floorId: String,
-    @ColumnInfo(name = "state") override var state: Int = -1,
-    @ColumnInfo(name = "valid") override var valid: Int = 1,
-    @ColumnInfo(name = "ts") override val ts: Long = 0L,
-    @ColumnInfo(name = "biz_type") val bizType: String? = "",            // 业务类型(object:对象附件|problem_arch:空间问题附件|problem_equip:设备问题附件)
-    @ColumnInfo(name = "file_path") val filePath: String? = "",          // 文件存储路径
-    @ColumnInfo(name = "file_type") val fileType: String? = "",          // 文件类型(photo|video|file|...)
-    @ColumnInfo(name = "client_path") val clientPath: String? = "",      // app端文件存储路径
-    @ColumnInfo(name = "ref_obj_id") val refObjId: String? = "",         // 关联的对象id
-    @ColumnInfo(name = "ref_info_code") val refInfoCode: String? = "",   // 关联的对象信息点code
-    @ColumnInfo(name = "remark") val remark: String? = "",               // 描述
-    @ColumnInfo(name = "order_num") val orderNum: Int? = -1,             // 文件附件(照片)的排序序号
-    @ColumnInfo(name = "file_id") val fileId: String? = "",              // 文件服务中存储的id
-) : BaseEntity
+    @PrimaryKey @ColumnInfo(name = "id") val id: String,
+    @ColumnInfo(name = "project_id") val projectId: String,
+    @ColumnInfo(name = "building_id") val buildingId: String,
+    @ColumnInfo(name = "floor_id") val floorId: String,
+    @ColumnInfo(name = "file_id") val fileId: String? = "",
+    @ColumnInfo(name = "file_path") val filePath: String? = "",
+    @ColumnInfo(name = "file_type") val fileType: String? = "",
+    @ColumnInfo(name = "biz_type") val bizType: String? = "",
+    @ColumnInfo(name = "client_path") val clientPath: String? = "",
+    @ColumnInfo(name = "ref_obj_id") val refObjId: String? = "",
+    @ColumnInfo(name = "ref_info_code") val refInfoCode: String? = "",
+    @ColumnInfo(name = "remark") val remark: String? = "",
+    @ColumnInfo(name = "order_num") val orderNum: Int? = -1,
+    @ColumnInfo(name = "state") var state: Int = -1,
+    @ColumnInfo(name = "ts") val ts: Long = 0L,
+    @ColumnInfo(name = "valid") var valid: Int = 1,
+    @ColumnInfo(name = "creator") val creator: String? = null,
+    @ColumnInfo(name = "creation_time") val creationTime: String? = null,
+    @ColumnInfo(name = "modifier") val modifier: String? = null,
+    @ColumnInfo(name = "modified_time") val modifiedTime: String? = null
+)

+ 1 - 1
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/task/FloorEntity.kt

@@ -13,7 +13,7 @@ import com.google.gson.JsonElement
  * @param id
  * @param id
  * @param name 楼层名
  * @param name 楼层名
  * @param buildingId 所属建筑id
  * @param buildingId 所属建筑id
- * @param objType 楼层类型
+ * @param objType 楼层类型: floor
  * @param classCode 楼层类型编码
  * @param classCode 楼层类型编码
  * @param grouping 是否对象组: 1 单个对象 2 对象组
  * @param grouping 是否对象组: 1 单个对象 2 对象组
  * @param groupCode 集团编码
  * @param groupCode 集团编码

+ 25 - 15
app/src/main/java/com/ys/bdtp/adm/mvvm/model/db/entity/task/WorkspaceEntity.kt

@@ -8,21 +8,31 @@ import com.google.gson.JsonElement
 
 
 /**
 /**
  * 工作空间表
  * 工作空间表
+ *
+ * @author bai
+ *
+ * @param id
+ * @param projectId
+ * @param buildingId
+ * @param floorId
+ * @param spaceId 空间id
+ * @param archState 建筑结构核查任务状态: 0-待核查 1-核查中 2-核查完毕
+ * @param equipState 设备勘测任务状态: 0-待勘测 1-勘测中 2-勘测完毕)
  */
  */
 @Entity(tableName = "workspace")
 @Entity(tableName = "workspace")
 data class WorkspaceEntity(
 data class WorkspaceEntity(
-    @PrimaryKey @ColumnInfo(name = "id") override val id: String,
-    @ColumnInfo(name = "project_id") override val projectId: String?,
-    @ColumnInfo(name = "building_id") override val buildingId: String?,
-    @ColumnInfo(name = "floor_id") override val floorId: String?,
-    @ColumnInfo(name = "state") override var state: Int = -1,
-    @ColumnInfo(name = "valid") override var valid: Int = 1,
-    @ColumnInfo(name = "ts") override val ts: Long = 0L,
-    @ColumnInfo(name = "space_id") val spaceId: String,               // 空间id
-    @ColumnInfo(name = "work_id") val workId: String?,                // 交付工作流程id
-    @ColumnInfo(name = "space_type") val spaceType: String?,          // 任务空间类型(base|sub)
-    @ColumnInfo(name = "parent_space_id") val parentSpaceId: String?, // 父级空间id(空间类型为sub时)
-    @ColumnInfo(name = "arch_state") var archState: Int?,             // 建筑结构核查任务状态(0:待核查;1:核查中;2:核查完毕)
-    @ColumnInfo(name = "equip_state") var equipState: Int?,           // 设备勘测任务状态(0:待勘测;1:勘测中;2:勘测完毕)
-    @ColumnInfo(name = "outline") val outline: JsonElement? = null    // 空间边界,模型更新空间变化时,用来做匹配计算
-) : BaseEntity
+    @PrimaryKey @ColumnInfo(name = "id") val id: String,
+    @ColumnInfo(name = "project_id") val projectId: String?,
+    @ColumnInfo(name = "building_id") val buildingId: String?,
+    @ColumnInfo(name = "floor_id") val floorId: String?,
+    @ColumnInfo(name = "space_id") val spaceId: String,
+    @ColumnInfo(name = "arch_state") var archState: Int?,
+    @ColumnInfo(name = "equip_state") var equipState: Int?,
+    @ColumnInfo(name = "state") var state: Int = -1,
+    @ColumnInfo(name = "valid") var valid: Int = 1,
+    @ColumnInfo(name = "ts") val ts: Long = 0L,
+    @ColumnInfo(name = "creation_time") val creationTime: String? = null,
+    @ColumnInfo(name = "creator") val creator: String? = null,
+    @ColumnInfo(name = "modified_time") val modifiedTime: String? = null,
+    @ColumnInfo(name = "modifier") val modifier: String? = null
+)

+ 8 - 8
app/src/main/java/com/ys/bdtp/adm/mvvm/model/nt/Api.kt

@@ -31,37 +31,37 @@ interface Api {
     /**
     /**
      * 获取字典数据
      * 获取字典数据
      */
      */
-    @POST("adm-server/adm/dict")
+    @POST("adm/dict")
     suspend fun getDict(@Body body: Map<String, String>): Model<Dict>
     suspend fun getDict(@Body body: Map<String, String>): Model<Dict>
 
 
     /**
     /**
      * 获取配置信息
      * 获取配置信息
      */
      */
-    @POST("adm-server/adm/config")
+    @POST("adm/config")
     suspend fun getConfig(@Body map: Map<String, String>): Model<Config>
     suspend fun getConfig(@Body map: Map<String, String>): Model<Config>
 
 
     /**
     /**
-     * 获取字典数据
+     * 获取建筑和楼层数据
      */
      */
-    @POST("adm-server/adm/frame")
-    suspend fun getFrame(@Body map: Map<String, String>): Model<Frame>
+    @POST("adm/frame")
+    suspend fun getBuildingsAndFloors(@Body map: Map<String, String>): Model<BuildingsAndFloors>
 
 
     /**
     /**
      * 获取建筑数据
      * 获取建筑数据
      */
      */
-    @POST("adm-server/adm/download")
+    @POST("adm/download")
     suspend fun getMission(@Body map: Map<String, String>): Model<Mission>
     suspend fun getMission(@Body map: Map<String, String>): Model<Mission>
 
 
     /**
     /**
      * 获取关系数据
      * 获取关系数据
      */
      */
-    @POST("adm-server/adm/downloadObjRel")
+    @POST("adm/downloadObjRel")
     suspend fun getRelation(@Body map: Map<String, String>): Model<Relation>
     suspend fun getRelation(@Body map: Map<String, String>): Model<Relation>
 
 
     /**
     /**
      * 判断是否有需要更新的数据
      * 判断是否有需要更新的数据
      */
      */
-    @POST("adm-server/adm/hasUpdate")
+    @POST("adm/hasUpdate")
     suspend fun hasUpdate(): Model<Boolean>
     suspend fun hasUpdate(): Model<Boolean>
 
 
 
 

+ 4 - 4
app/src/main/java/com/ys/bdtp/adm/mvvm/model/vo/Frame.kt

@@ -3,13 +3,13 @@ package com.ys.bdtp.adm.mvvm.model.vo
 import com.google.gson.JsonElement
 import com.google.gson.JsonElement
 
 
 /**
 /**
- * 框架数据
+ * 建筑和楼层数据
  */
  */
-data class Frame(
-    val buildingsAndFloors: List<BuildingsAndFloor>,
+data class BuildingsAndFloors(
+    val buildingsAndFloors: List<BuildingAndFloor>,
 )
 )
 
 
-data class BuildingsAndFloor(
+data class BuildingAndFloor(
     val buildingId: String,
     val buildingId: String,
     val classCode: String,
     val classCode: String,
     val creationTime: Long,
     val creationTime: Long,

+ 5 - 5
app/src/main/java/com/ys/bdtp/adm/mvvm/model/vo/Config.kt

@@ -1,7 +1,7 @@
 package com.ys.bdtp.adm.mvvm.model.vo
 package com.ys.bdtp.adm.mvvm.model.vo
 
 
 import com.ys.bdtp.adm.mvvm.model.db.entity.config.*
 import com.ys.bdtp.adm.mvvm.model.db.entity.config.*
-import com.ys.bdtp.adm.mvvm.model.db.entity.dict.RelationConfigDictEntity
+import com.ys.bdtp.adm.mvvm.model.db.entity.config.RelationConfigEntity
 
 
 /**
 /**
  * 配置数据
  * 配置数据
@@ -9,12 +9,12 @@ import com.ys.bdtp.adm.mvvm.model.db.entity.dict.RelationConfigDictEntity
  * @author bai
  * @author bai
  */
  */
 data class Config(
 data class Config(
-    val admDefineProblemInfos: List<ProblemInfoEntity>,
-    val admDefineProblemTypes: List<ProblemTypeEntity>,
-    val component: List<ComponentEntity>,
+    val admDefineProblemInfos: List<ProblemInfoConfigEntity>,
+    val admDefineProblemTypes: List<ProblemTypeConfigEntity>,
+    val component: List<ComponentConfigEntity>,
     val config: List<ConfigEntity>,
     val config: List<ConfigEntity>,
     val containerConfig: List<ContainerConfigEntity>,
     val containerConfig: List<ContainerConfigEntity>,
     val infosConfig: List<InfosConfigEntity>,
     val infosConfig: List<InfosConfigEntity>,
     val pipeConfig: List<PipeConfigEntity>,
     val pipeConfig: List<PipeConfigEntity>,
-    val relConfig: List<RelationConfigDictEntity>
+    val relConfig: List<RelationConfigEntity>
 )
 )

+ 1 - 1
app/src/main/java/com/ys/bdtp/adm/mvvm/model/vo/Dict.kt

@@ -12,6 +12,6 @@ data class Dict(
     val equipment: List<EquipmentDictEntity>,
     val equipment: List<EquipmentDictEntity>,
     val infos: List<InfoDictEntity>,
     val infos: List<InfoDictEntity>,
     val major: List<MajorDictEntity>,
     val major: List<MajorDictEntity>,
-    val relation: List<RelationEntity>,
+    val relation: List<RelationDictEntity>,
     val system: List<SystemDictEntity>
     val system: List<SystemDictEntity>
 )
 )

+ 54 - 26
app/src/main/java/com/ys/bdtp/adm/mvvm/model/vo/Object.kt

@@ -9,31 +9,59 @@ import com.google.gson.JsonElement
 /**
 /**
  * 对象
  * 对象
  *
  *
- * 建筑, 楼层, 空间, 设备; 墙 , 门 , 窗, 柱, 停车位
+ * 建筑, 楼层, 空间, 设备;
+ * 墙 , 门 , 窗, 柱, 停车位:
+ * @author
+ *
+ * @param id
+ * @param name
+ * @param projectId
+ * @param buildingId
+ * @param floorId
+ * @param objType 对象类型
+ * @param classCode 对象类型编码
+ * @param groupCode 集团编码
+ * @param grouping 1 单个对象,2 对象组
+ * @param localId 对象位置编码
+ * @param localName 对象位置名称
+ * @param bimId
+ * @param containerId 信息点数据: Json 数据格式
+ * @param infos 信息点数据: Json 数据格式
+ * @param ts
+ * @param valid
+ * @param createApp
+ * @param updateApp
+ * @param creator
+ * @param creationTime
+ * @param modifier
+ * @param modifiedTime
+ * @param clientDevice 标识客户端设备
+ * @param deliveryState BDTP交付状态: 1 已交付, 0 待交付
+ *
  */
  */
-@Entity(tableName = "object")
 data class Object(
 data class Object(
-    @PrimaryKey @ColumnInfo(name = "id") override val id: String,
-    @ColumnInfo(name = "project_id") override val projectId: String?,
-    @ColumnInfo(name = "building_id") override val buildingId: String?,
-    @ColumnInfo(name = "floor_id") override val floorId: String?,
-    @ColumnInfo(name = "state") override var state: Int = -1,
-    @ColumnInfo(name = "valid") override var valid: Int = 1,
-    @ColumnInfo(name = "ts") override val ts: Long = 0L,
-    @ColumnInfo(name = "name") val name: String? = "",
-    @ColumnInfo(name = "obj_type") val objType: String? = "",                   // 对象类型
-    @ColumnInfo(name = "class_code") var classCode: String? = "",               // 对象类型编码
-    @ColumnInfo(name = "local_id") var localId: String? = "",                   // 对象位置编码
-    @ColumnInfo(name = "local_name") var localName: String? = "",               // 对象位置名称
-    @ColumnInfo(name = "group_code") val groupCode: String? = "",               // 集团编码
-    @ColumnInfo(name = "grouping") val grouping: Int = 1,                       // 1 表示单个对象,2 表示对象组
-    @ColumnInfo(name = "client_device") val clientDevice: String? = "",         // 标识客户端设备
-    @ColumnInfo(name = "client_id") val clientId: String? = "",                 // 客户端生成id
-    @ColumnInfo(name = "delivery_state") val deliveryState: Int? = null,        // BDTP交付状态: 1 已交付, 0 待交付
-    @ColumnInfo(name = "d2m_state") val d2mState: Int? = null,                  // 逆向数据的数模同步状态(0:未同步;1:已同步)
-    @ColumnInfo(name = "virtual_codes") val virtualCodes: JsonElement? = null,  // 虚点清单: Json 数据格式
-    @ColumnInfo(name = "infos") var infos: JsonElement? = null,                 // 信息点数据: Json 数据格式
-    @ColumnInfo(name = "floor_map") var floorMap: String? = "",                 // 楼层地图
-    @ColumnInfo(name = "container_id") var containerId: String? = "",           // 无模型设备的上级设备id
-    @ColumnInfo(name = "bim_id") var bimId: String? = ""                        // 无模型设备的上级设备id
-) : BaseEntity
+    val id: String,
+    val name: String,
+    val projectId: String,
+    val buildingId: String,
+    val floorId: String,
+    val objType: String,
+    val classCode: String,
+    val groupCode: String,
+    val grouping: Int,
+    val localId: String? = "",
+    val localName: String? = "",
+    val bimId: String? = "",
+    val containerId: String? = "",
+    val infos: JsonElement? = null,
+    val ts: Long = 0L,
+    val valid: Int = 1,
+    val createApp: String? = "",
+    val updateApp: String? = "",
+    val creator: String? = "",
+    val creationTime: Long? = 0L,
+    val modifier: String? = "",
+    val modifiedTime: Long = 0L,
+    val clientDevice: String? = "",
+    val deliveryState: Int? = null
+)

+ 69 - 20
app/src/main/java/com/ys/bdtp/adm/mvvm/ui/screen/offline/OfflineSide2.kt

@@ -16,7 +16,6 @@ import com.ys.bdtp.adm.app.theme.underColor
 import com.ys.bdtp.adm.app.theme.whiteColor
 import com.ys.bdtp.adm.app.theme.whiteColor
 import com.ys.bdtp.adm.mvvm.model.vo.request.requestBody
 import com.ys.bdtp.adm.mvvm.model.vo.request.requestBody
 import com.ys.bdtp.adm.mvvm.vm.offline.OfflineViewModel
 import com.ys.bdtp.adm.mvvm.vm.offline.OfflineViewModel
-import kotlinx.coroutines.launch
 import org.kodein.di.compose.rememberViewModel
 import org.kodein.di.compose.rememberViewModel
 
 
 
 
@@ -40,15 +39,17 @@ fun OfflineSide2() {
             modifier = Modifier.size(220.dp, 42.dp),
             modifier = Modifier.size(220.dp, 42.dp),
             onClick = {
             onClick = {
                 //scope.launch {
                 //scope.launch {
-                vm.getDict(
-                    body = requestBody(),
-                    success = {
-
-                    },
-                    failure = {
-
-                    }
-                )
+                /* vm.getDict(
+                     body = requestBody(
+
+                     ),
+                     success = {
+                         println("success: $it")
+                     },
+                     failure = {
+                         println("failure: $it")
+                     }
+                 )*/
                 //}
                 //}
             },
             },
             colors = ButtonDefaults.buttonColors(
             colors = ButtonDefaults.buttonColors(
@@ -60,11 +61,23 @@ fun OfflineSide2() {
             Text(text = "全部同步")
             Text(text = "全部同步")
         }
         }
 
 
-
+        Spacer(modifier = Modifier.height(32.dp))
         Button(
         Button(
             modifier = Modifier.size(220.dp, 42.dp),
             modifier = Modifier.size(220.dp, 42.dp),
             onClick = {
             onClick = {
-
+                vm.getDict(
+                    body = requestBody(
+                        userId = "17337681032",
+                        groupCode = "JDKJ",
+                        projectId = "Pj1101080665",
+                    ),
+                    success = {
+                        println("success: $it")
+                    },
+                    failure = {
+                        println("failure: $it")
+                    }
+                )
             },
             },
             colors = ButtonDefaults.buttonColors(
             colors = ButtonDefaults.buttonColors(
                 contentColor = whiteColor,
                 contentColor = whiteColor,
@@ -74,11 +87,23 @@ fun OfflineSide2() {
         ) {
         ) {
             Text(text = "字典数据")
             Text(text = "字典数据")
         }
         }
-
+        Spacer(modifier = Modifier.height(32.dp))
         Button(
         Button(
             modifier = Modifier.size(220.dp, 42.dp),
             modifier = Modifier.size(220.dp, 42.dp),
             onClick = {
             onClick = {
-
+                vm.getConfig(
+                    body = requestBody(
+                        userId = "17337681032",
+                        groupCode = "JDKJ",
+                        projectId = "Pj1101080665",
+                    ),
+                    success = {
+                        println("success: $it")
+                    },
+                    failure = {
+                        println("failure: $it")
+                    }
+                )
             },
             },
             colors = ButtonDefaults.buttonColors(
             colors = ButtonDefaults.buttonColors(
                 contentColor = whiteColor,
                 contentColor = whiteColor,
@@ -88,11 +113,23 @@ fun OfflineSide2() {
         ) {
         ) {
             Text(text = "配置数据")
             Text(text = "配置数据")
         }
         }
-
+        Spacer(modifier = Modifier.height(32.dp))
         Button(
         Button(
             modifier = Modifier.size(220.dp, 42.dp),
             modifier = Modifier.size(220.dp, 42.dp),
             onClick = {
             onClick = {
-
+                vm.getBuildingsAndFloors(
+                    body = requestBody(
+                        userId = "17337681032",
+                        groupCode = "JDKJ",
+                        projectId = "Pj1101080665",
+                    ),
+                    success = {
+                        println("success: $it")
+                    },
+                    failure = {
+                        println("failure: $it")
+                    }
+                )
             },
             },
             colors = ButtonDefaults.buttonColors(
             colors = ButtonDefaults.buttonColors(
                 contentColor = whiteColor,
                 contentColor = whiteColor,
@@ -100,14 +137,26 @@ fun OfflineSide2() {
             ),
             ),
             elevation = ButtonDefaults.elevation(0.dp)
             elevation = ButtonDefaults.elevation(0.dp)
         ) {
         ) {
-            Text(text = "框架数据")
+            Text(text = "获取建筑与楼层数据")
         }
         }
-
-
+        Spacer(modifier = Modifier.height(32.dp))
         Button(
         Button(
             modifier = Modifier.size(220.dp, 42.dp),
             modifier = Modifier.size(220.dp, 42.dp),
             onClick = {
             onClick = {
-
+                vm.getMission(
+                    body = requestBody(
+                        userId = "17337681032",
+                        groupCode = "JDKJ",
+                        projectId = "Pj1101080665",
+                        buildingId = "Bd990999000204fb9e7d54f54f43a0280b616623d91e"
+                    ),
+                    success = {
+                        println("success: $it")
+                    },
+                    failure = {
+                        println("failure: $it")
+                    }
+                )
             },
             },
             colors = ButtonDefaults.buttonColors(
             colors = ButtonDefaults.buttonColors(
                 contentColor = whiteColor,
                 contentColor = whiteColor,

+ 185 - 20
app/src/main/java/com/ys/bdtp/adm/mvvm/vm/offline/OfflineRepository.kt

@@ -1,14 +1,15 @@
 package com.ys.bdtp.adm.mvvm.vm.offline
 package com.ys.bdtp.adm.mvvm.vm.offline
 
 
 import com.ys.bdtp.adm.mvvm.model.Fail
 import com.ys.bdtp.adm.mvvm.model.Fail
-import com.ys.bdtp.adm.mvvm.model.Model
-import com.ys.bdtp.adm.mvvm.model.Response
 import com.ys.bdtp.adm.mvvm.model.request
 import com.ys.bdtp.adm.mvvm.model.request
 import com.ys.bdtp.adm.mvvm.model.db.AdmDatabase
 import com.ys.bdtp.adm.mvvm.model.db.AdmDatabase
+import com.ys.bdtp.adm.mvvm.model.db.entity.task.BuildingEntity
+import com.ys.bdtp.adm.mvvm.model.db.entity.task.EquipmentEntity
+import com.ys.bdtp.adm.mvvm.model.db.entity.task.FloorEntity
 import com.ys.bdtp.adm.mvvm.model.nt.Api
 import com.ys.bdtp.adm.mvvm.model.nt.Api
 import com.ys.bdtp.adm.mvvm.model.vo.Config
 import com.ys.bdtp.adm.mvvm.model.vo.Config
 import com.ys.bdtp.adm.mvvm.model.vo.Dict
 import com.ys.bdtp.adm.mvvm.model.vo.Dict
-import com.ys.bdtp.adm.mvvm.model.vo.Frame
+import com.ys.bdtp.adm.mvvm.model.vo.BuildingsAndFloors
 import com.ys.bdtp.adm.mvvm.model.vo.Mission
 import com.ys.bdtp.adm.mvvm.model.vo.Mission
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.withContext
 import kotlinx.coroutines.withContext
@@ -33,6 +34,21 @@ class OfflineRepository(
             request(
             request(
                 request = { api.getDict(body) },
                 request = { api.getDict(body) },
                 success = { dict ->
                 success = { dict ->
+                    val equ = dict.equipment
+                    val inf = dict.infos
+                    val maj = dict.major
+                    val rel = dict.relation
+                    val sys = dict.system
+
+                    try {
+                        equ.let { db.equipmentDictDao().insEquipments(it) }
+                        inf.let { db.infoDictDao().insInfos(it) }
+                        maj.let { db.majorDictDao().insMajors(it) }
+                        rel.let { db.relationDictDao().insRelations(it) }
+                        sys.let { db.systemDictDao().insSystems(it) }
+                    } catch (e: Exception) {
+                        failure(Fail("catch", "dict related db insert catch: ${e.message}"))
+                    }
                     success(dict)
                     success(dict)
                 },
                 },
                 failure = { fail ->
                 failure = { fail ->
@@ -42,37 +58,186 @@ class OfflineRepository(
         }
         }
     }
     }
 
 
-
     /**
     /**
      * 获取配置数据
      * 获取配置数据
      */
      */
-    suspend fun getConfig(map: Map<String, String>): Response<Config> {
-        return withContext(Dispatchers.IO) {
-            request {
-                api.getConfig(map)
-            }
+    suspend fun getConfig(
+        body: Map<String, String>,
+        success: suspend (Config) -> Unit,
+        failure: (Fail) -> Unit,
+    ) {
+        withContext(Dispatchers.IO) {
+            request(
+                request = { api.getConfig(body) },
+                success = { config ->
+                    val adpi = config.admDefineProblemInfos
+                    val adpt = config.admDefineProblemTypes
+                    val comp = config.component
+                    val conf = config.config
+                    val cont = config.containerConfig
+                    val info = config.infosConfig
+                    val pipe = config.pipeConfig
+                    val relc = config.relConfig
+
+                    try {
+                        adpi.let { db.problemInfoConfigDao().insProblemInfos(it) }
+                        adpt.let { db.problemTypeConfigDao().insProblemTypes(it) }
+                        comp.let { db.componentConfigDao().insComponents(it) }
+                        conf.let { db.configDao().insConfigs(it) }
+                        cont.let { db.containerConfigDao().insContainers(it) }
+                        info.let { db.infosConfigDao().insConfigs(it) }
+                        pipe.let { db.pipeConfigDao().insConfigs(it) }
+                        relc.let { db.relationConfigDao() }
+
+                    } catch (e: Exception) {
+                        failure(Fail("catch", "config related db insert catch: ${e.message}"))
+                    }
+
+
+                    success(config)
+                },
+                failure = { fail ->
+                    failure(fail)
+                }
+            )
         }
         }
     }
     }
 
 
     /**
     /**
      * 获取框架数据
      * 获取框架数据
      */
      */
-    suspend fun getFrame(map: Map<String, String>): Response<Frame> {
-        return withContext(Dispatchers.IO) {
-            request {
-                api.getFrame(map)
-            }
+    suspend fun getBuildingsAndFloors(
+        body: Map<String, String>,
+        success: suspend (BuildingsAndFloors) -> Unit,
+        failure: (Fail) -> Unit,
+    ) {
+        withContext(Dispatchers.IO) {
+            request(
+                request = { api.getBuildingsAndFloors(body) },
+                success = { frame ->
+                    try {
+                        val objects = frame.buildingsAndFloors
+                        // 分离 building
+                        objects.filter { it.objType == "building" }.map {
+                            BuildingEntity(
+                                id = it.id,
+                                name = it.name,
+                                objType = it.objType,
+                                classCode = it.classCode,
+                                grouping = it.grouping,
+                                groupCode = it.groupCode,
+                                projectId = it.projectId,
+                                localId = it.localId,
+                                localName = it.localName,
+                                infos = it.infos,
+                                valid = it.valid,
+                                modifier = it.modifier,
+                                modifiedTime = it.modifiedTime,
+                                creator = it.creator,
+                                creationTime = it.creationTime
+                            )
+                        }.let { buildings ->
+                            db.buildingDao().insBuildings(buildings)
+                        }
+                        // 分离 floor
+                        objects.filter {
+                            it.objType == "floor"
+                        }.map {
+                            FloorEntity(
+                                id = it.id,
+                                name = it.name,
+                                buildingId = it.buildingId,
+                                objType = it.objType,
+                                classCode = it.classCode,
+                                grouping = it.grouping,
+                                groupCode = it.groupCode,
+                                projectId = it.projectId,
+                                localId = it.localId,
+                                localName = it.localName,
+                                infos = it.infos,
+                                valid = it.valid,
+                                modifier = it.modifier,
+                                modifiedTime = it.modifiedTime,
+                                creator = it.creator,
+                                creationTime = it.creationTime
+                            )
+                        }.let { floors ->
+                            db.floorDao().insFloors(floors)
+                        }
+                    } catch (e: Exception) {
+                        failure(Fail("catch", "config related db insert catch: ${e.message}"))
+                    }
+                    success(frame)
+                },
+                failure = { fail ->
+                    failure(fail)
+                }
+            )
         }
         }
     }
     }
 
 
     /**
     /**
-     * 获取任务数据
+     * 获取任务数据, 以建筑为单位
      */
      */
-    suspend fun getMission(map: Map<String, String>): Response<Mission> {
-        return withContext(Dispatchers.IO) {
-            request {
-                api.getMission(map)
-            }
+    suspend fun getMission(
+        body: Map<String, String>,
+        success: suspend (Mission) -> Unit,
+        failure: (Fail) -> Unit,
+    ) {
+        withContext(Dispatchers.IO) {
+            request(
+                request = { api.getMission(body) },
+                success = { mission ->
+                    val bdtpTs = mission.bdtpDownloadTs
+                    val buildingId = mission.buildingId
+                    val pipes = mission.pipes
+                    val workspaces = mission.jobSpace
+                    val files = mission.file
+                    val qrCodes = mission.qrCode
+                    val serveAreas = mission.serveArea
+                    val problems = mission.problems
+                    val cads = mission.admCads
+                    val objects = mission.objects
+
+                    try {
+                        pipes.let { db.pipeDao().insPipes(pipes) }
+                        workspaces.let { db.workspaceDao().insSpaces(it) }
+                        files.let { db.fileDao().insFiles(it) }
+                        qrCodes.let { db.qrCodeDao().insQrCodes(it) }
+                        serveAreas.let { db.serveAreaDao().insertAreas(it) }
+                        problems.let { db.problemDao().insProblems(it) }
+                        cads.let { db.cadDao().insCads(it) }
+                        objects.map {
+                            EquipmentEntity(
+                                id = it.id,
+                                name = it.name,
+                                objType = it.objType,
+                                classCode = it.classCode,
+                                grouping = it.grouping,
+                                groupCode = it.groupCode,
+                                projectId = it.projectId,
+                                localId = it.localId,
+                                localName = it.localName,
+                                infos = it.infos,
+                                containerId = it.containerId,
+                                buildingId = it.buildingId,
+                                floorId = it.floorId,
+                                bimId = it.bimId,
+                                ts = it.ts,
+                                valid = it.valid
+                            )
+                        }.let {
+                            db.equipmentDao().insEquipments(it)
+                        }
+                    } catch (e: Exception) {
+                        failure(Fail("catch", "mission related db insert catch: ${e}"))
+                    }
+                    success(mission)
+                },
+                failure = { fail ->
+                    failure(fail)
+                }
+            )
         }
         }
     }
     }
 }
 }

+ 38 - 31
app/src/main/java/com/ys/bdtp/adm/mvvm/vm/offline/OfflineViewModel.kt

@@ -3,11 +3,9 @@ package com.ys.bdtp.adm.mvvm.vm.offline
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.viewModelScope
 import androidx.lifecycle.viewModelScope
 import com.ys.bdtp.adm.mvvm.model.Fail
 import com.ys.bdtp.adm.mvvm.model.Fail
-import com.ys.bdtp.adm.mvvm.model.FailureResponse
-import com.ys.bdtp.adm.mvvm.model.SuccessResponse
 import com.ys.bdtp.adm.mvvm.model.vo.Config
 import com.ys.bdtp.adm.mvvm.model.vo.Config
 import com.ys.bdtp.adm.mvvm.model.vo.Dict
 import com.ys.bdtp.adm.mvvm.model.vo.Dict
-import com.ys.bdtp.adm.mvvm.model.vo.Frame
+import com.ys.bdtp.adm.mvvm.model.vo.BuildingsAndFloors
 import com.ys.bdtp.adm.mvvm.model.vo.Mission
 import com.ys.bdtp.adm.mvvm.model.vo.Mission
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.launch
 
 
@@ -19,49 +17,54 @@ class OfflineViewModel(private val repo: OfflineRepository) : ViewModel() {
     /**
     /**
      * 获取任务
      * 获取任务
      */
      */
-    fun getMission(map: Map<String, String>, s: (Mission) -> Unit, f: (Fail) -> Unit) {
+    fun getMission(body: Map<String, String>, success: (Mission) -> Unit, failure: (Fail) -> Unit) {
         viewModelScope.launch {
         viewModelScope.launch {
-            when (val response = repo.getMission(map)) {
-                is SuccessResponse -> {
-                    s(response.data)
-
-                }
-                is FailureResponse -> {
-                    f(response.fail)
+            repo.getMission(
+                body,
+                success = {
+                    success(it)
+                },
+                failure = {
+                    failure(it)
                 }
                 }
-            }
+            )
         }
         }
     }
     }
 
 
     /**
     /**
      * 获取配置
      * 获取配置
      */
      */
-    fun getConfig(map: Map<String, String>, s: (Config) -> Unit, f: (Fail) -> Unit) {
+    fun getConfig(body: Map<String, String>, success: (Config) -> Unit, failure: (Fail) -> Unit) {
         viewModelScope.launch {
         viewModelScope.launch {
-            when (val response = repo.getConfig(map)) {
-                is SuccessResponse -> {
-                    s(response.data)
+            repo.getConfig(body,
+                success = {
+                    success(it)
+                },
+                failure = {
+                    failure(it)
                 }
                 }
-                is FailureResponse -> {
-                    f(response.fail)
-                }
-            }
+            )
         }
         }
     }
     }
 
 
     /**
     /**
-     * 获取框架数据
+     * 获取建筑和楼层数据
      */
      */
-    fun getFrame(map: Map<String, String>, s: (Frame) -> Unit, f: (Fail) -> Unit) {
+    fun getBuildingsAndFloors(
+        body: Map<String, String>,
+        success: (BuildingsAndFloors) -> Unit,
+        failure: (Fail) -> Unit
+    ) {
         viewModelScope.launch {
         viewModelScope.launch {
-            when (val response = repo.getFrame(map)) {
-                is SuccessResponse -> {
-                    s(response.data)
+            repo.getBuildingsAndFloors(body,
+                success = {
+                    success(it)
+                },
+                failure = {
+                    failure(it)
                 }
                 }
-                is FailureResponse -> {
-                    f(response.fail)
-                }
-            }
+            )
+
         }
         }
     }
     }
 
 
@@ -72,8 +75,12 @@ class OfflineViewModel(private val repo: OfflineRepository) : ViewModel() {
         viewModelScope.launch {
         viewModelScope.launch {
             repo.getDict(
             repo.getDict(
                 body = body,
                 body = body,
-                success = { success(it) },
-                failure = { failure(it) }
+                success = {
+                    success(it)
+                },
+                failure = {
+                    failure(it)
+                }
             )
             )
         }
         }
     }
     }