浏览代码

@task: update entity

bai 3 年之前
父节点
当前提交
6f3b31e233
共有 24 个文件被更改,包括 211 次插入220 次删除
  1. 3 1
      demo/src/main/java/com/framework/mvvm/model/db/AdmDatabase.kt
  2. 4 6
      demo/src/main/java/com/framework/mvvm/model/db/converter/JsonConverter.kt
  3. 5 2
      demo/src/main/java/com/framework/mvvm/model/db/dao/ConfigDao.kt
  4. 4 1
      demo/src/main/java/com/framework/mvvm/model/db/dao/ObjectDao.kt
  5. 1 1
      demo/src/main/java/com/framework/mvvm/model/db/dao/ProjectDao.kt
  6. 3 3
      demo/src/main/java/com/framework/mvvm/model/db/entity/ConfigEntity.kt
  7. 8 8
      demo/src/main/java/com/framework/mvvm/model/db/entity/EquipmentEntity.kt
  8. 17 17
      demo/src/main/java/com/framework/mvvm/model/db/entity/FileEntity.kt
  9. 6 5
      demo/src/main/java/com/framework/mvvm/model/db/entity/InfosConfigEntity.kt
  10. 0 22
      demo/src/main/java/com/framework/mvvm/model/db/entity/InfosEntity.kt
  11. 4 3
      demo/src/main/java/com/framework/mvvm/model/db/entity/M2dEquipEntity.kt
  12. 26 26
      demo/src/main/java/com/framework/mvvm/model/db/entity/ObjectEntity.kt
  13. 0 14
      demo/src/main/java/com/framework/mvvm/model/db/entity/OutlineEntity.kt
  14. 12 12
      demo/src/main/java/com/framework/mvvm/model/db/entity/ProblemArchEntity.kt
  15. 10 10
      demo/src/main/java/com/framework/mvvm/model/db/entity/ProblemEquipEntity.kt
  16. 12 7
      demo/src/main/java/com/framework/mvvm/model/db/entity/ProjectEntity.kt
  17. 9 9
      demo/src/main/java/com/framework/mvvm/model/db/entity/QrCodeEntity.kt
  18. 1 0
      demo/src/main/java/com/framework/mvvm/model/db/entity/RelConfigEntity.kt
  19. 12 12
      demo/src/main/java/com/framework/mvvm/model/db/entity/RelationDictEntity.kt
  20. 21 21
      demo/src/main/java/com/framework/mvvm/model/db/entity/RelationEntity.kt
  21. 15 15
      demo/src/main/java/com/framework/mvvm/model/db/entity/SpaceEntity.kt
  22. 14 14
      demo/src/main/java/com/framework/mvvm/model/db/entity/SystemEntity.kt
  23. 17 11
      demo/src/main/java/com/framework/mvvm/model/repository/FrameRepository.kt
  24. 7 0
      demo/src/main/java/com/sybotan/android/demo/activities/PocActivity.kt

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

@@ -4,6 +4,8 @@ import android.content.Context
 import androidx.room.Database
 import androidx.room.Room
 import androidx.room.RoomDatabase
+import androidx.room.TypeConverters
+import com.framework.mvvm.model.db.converter.JsonConverter
 import com.framework.mvvm.model.db.dao.*
 import com.framework.mvvm.model.db.entity.*
 
@@ -28,7 +30,7 @@ import com.framework.mvvm.model.db.entity.*
         ProblemEquipEntity::class,
     ], version = 1, exportSchema = true
 )
-
+@TypeConverters(JsonConverter::class)
 abstract class AdmDatabase : RoomDatabase() {
     abstract fun configDao(): ConfigDao
     abstract fun equipmentDao(): EquipmentDao

+ 4 - 6
demo/src/main/java/com/framework/mvvm/model/db/converter/JsonConverter.kt

@@ -1,22 +1,20 @@
 package com.framework.mvvm.model.db.converter
 
 import androidx.room.TypeConverter
-import kotlinx.serialization.decodeFromString
-import kotlinx.serialization.json.Json
-import kotlinx.serialization.json.JsonObject
+import org.json.JSONObject
 
 /**
  * JsonObject 与 String 转换器
  */
 class JsonConverter {
     @TypeConverter
-    fun jsonToString(json: JsonObject?): String? {
+    fun jsonToString(json: JSONObject?): String? {
         return json?.toString()
     }
 
     @TypeConverter
-    fun stringToJson(string: String?): JsonObject? {
+    fun stringToJson(string: String?): JSONObject? {
         if (string == null) return null
-        return Json.decodeFromString<JsonObject>(string)
+        return JSONObject("""$string""")
     }
 }

+ 5 - 2
demo/src/main/java/com/framework/mvvm/model/db/dao/ConfigDao.kt

@@ -14,8 +14,11 @@ interface ConfigDao {
     @Query("select * from config where id = :id")
     suspend fun getConfigById(id: String): ConfigEntity
 
-    @Insert(onConflict = OnConflictStrategy.REPLACE)
-    suspend fun insConfig(config: ConfigEntity)
+    /*@Insert(onConflict = OnConflictStrategy.REPLACE)
+    suspend fun insConfig(config: ConfigEntity)*/
+
+ @Insert(onConflict = OnConflictStrategy.REPLACE)
+    suspend fun insConfig(vararg config: ConfigEntity)
 
     @Delete
     suspend fun delConfig(config: ConfigEntity)

+ 4 - 1
demo/src/main/java/com/framework/mvvm/model/db/dao/ObjectDao.kt

@@ -15,7 +15,10 @@ interface ObjectDao {
     suspend fun getObjectById(id: String): ObjectEntity
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
-    suspend fun insObject(obj: ObjectEntity)
+    suspend fun insObject(vararg obj: ObjectEntity)
+
+    @Insert(onConflict = OnConflictStrategy.REPLACE)
+    suspend fun insObjects(objs: List<ObjectEntity>)
 
     @Delete
     suspend fun delObject(obj: ObjectEntity)

+ 1 - 1
demo/src/main/java/com/framework/mvvm/model/db/dao/ProjectDao.kt

@@ -16,7 +16,7 @@ interface ProjectDao {
     suspend fun getProjectById(id: String): ProjectEntity
 
     @Insert(onConflict = OnConflictStrategy.REPLACE)
-    suspend fun insProject(project: ProjectEntity)
+    suspend fun insProject(projects: List<ProjectEntity>)
 
     @Delete
     suspend fun delProject(project: ProjectEntity)

+ 3 - 3
demo/src/main/java/com/framework/mvvm/model/db/entity/ConfigEntity.kt

@@ -4,16 +4,16 @@ package com.framework.mvvm.model.db.entity
 import androidx.room.ColumnInfo
 import androidx.room.Entity
 import androidx.room.PrimaryKey
-import kotlinx.serialization.Serializable
+import org.json.JSONObject
 
 /**
  * 基本配置 表
  */
 @Entity(tableName = "config")
-@Serializable
 data class ConfigEntity(
     @PrimaryKey val id: String,
     @ColumnInfo(name = "name") val name: String,   // 配置项名名称
     @ColumnInfo(name = "code") val code: String,   // 配置项代码
-    @ColumnInfo(name = "data") val data: String    // 配置项的具体内容, 内容是 Json 格式,
+    @ColumnInfo(name = "data") val data: JSONObject?,    // 配置项的具体内容, 内容是 Json 格式,
+    @ColumnInfo(name = "project_id") val project_id: String?
 )

+ 8 - 8
demo/src/main/java/com/framework/mvvm/model/db/entity/EquipmentEntity.kt

@@ -19,12 +19,12 @@ data class EquipmentEntity(
     @ColumnInfo(name = "major_code") val majorCode: String,      // 专业编码
     @ColumnInfo(name = "system_code") val systemCode: String,       // 系统编码
     @ColumnInfo(name = "parent_code") val parentCode: String,    // 父编码
-    @ColumnInfo(name = "equipment_code") val equipmentCode: String, // 设备编码
-    @ColumnInfo(name = "creator") val creator: String,           // 创建人
-    @ColumnInfo(name = "creation_time") val creationTime: Long,  // 创建时间
-    @ColumnInfo(name = "modifier") val modifier: String,            // 修改人
-    @ColumnInfo(name = "modified_time") val modifiedTime: String,   // 修改时间
-    @ColumnInfo(name = "alias_code") val aliasCode: String,      // 编码别名
-    @ColumnInfo(name = "alias_name") val aliasName: String,      // 名称别名
-    @ColumnInfo(name = "version") val version: String,              // 版本
+    @ColumnInfo(name = "equipment_code") val equipmentCode: String?, // 设备编码
+    @ColumnInfo(name = "creator") val creator: String?,           // 创建人
+    @ColumnInfo(name = "creation_time") val creationTime: Long?,  // 创建时间
+    @ColumnInfo(name = "modifier") val modifier: String?,            // 修改人
+    @ColumnInfo(name = "modified_time") val modifiedTime: String?,   // 修改时间
+    @ColumnInfo(name = "alias_code") val aliasCode: String?,      // 编码别名
+    @ColumnInfo(name = "alias_name") val aliasName: String?,      // 名称别名
+    @ColumnInfo(name = "version") val version: String?,              // 版本
 )

+ 17 - 17
demo/src/main/java/com/framework/mvvm/model/db/entity/FileEntity.kt

@@ -12,21 +12,21 @@ import kotlinx.serialization.Serializable
 @Serializable
 data class FileEntity(
     @PrimaryKey(autoGenerate = false) val id: String,
-    @ColumnInfo(name = "file_type") val fileType: String,          // 文件类型(photo|video|file|...)
-    @ColumnInfo(name = "biz_type") val bizType: String,            // 业务类型(object:对象附件|problem_arch:空间问题附件|problem_equip:设备问题附件)
-    @ColumnInfo(name = "file_path") val filePath: String,          // 文件存储路径
-    @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,             // 文件附件(照片)的排序序号
-    @ColumnInfo(name = "project_id") val projectId: String,        // 项目id
-    @ColumnInfo(name = "building_id") val buildingId: String,      // 建筑id
-    @ColumnInfo(name = "floor_id") val floorId: String,            // 楼层id
-    @ColumnInfo(name = "creator") val creator: String,             // 创建人
-    @ColumnInfo(name = "creation_time") val creationTime: String,  // 创建时间
-    @ColumnInfo(name = "modifier") val modifier: String,           // 修改人
-    @ColumnInfo(name = "modified_time") val modifiedTime: String,  // 修改时间
-    @ColumnInfo(name = "valid") val valid: Int,                    // 合法标识
-    @ColumnInfo(name = "upload_flag") val uploadFlag: String,      // app端上传数据标记
+    @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?,             // 文件附件(照片)的排序序号
+    @ColumnInfo(name = "project_id") val projectId: String?,        // 项目id
+    @ColumnInfo(name = "building_id") val buildingId: String?,      // 建筑id
+    @ColumnInfo(name = "floor_id") val floorId: String?,            // 楼层id
+    @ColumnInfo(name = "creator") val creator: String?,             // 创建人
+    @ColumnInfo(name = "creation_time") val creationTime: String?,  // 创建时间
+    @ColumnInfo(name = "modifier") val modifier: String?,           // 修改人
+    @ColumnInfo(name = "modified_time") val modifiedTime: String?,  // 修改时间
+    @ColumnInfo(name = "valid") val valid: Int?,                    // 合法标识
+    @ColumnInfo(name = "upload_flag") val uploadFlag: String?,      // app端上传数据标记
 )

+ 6 - 5
demo/src/main/java/com/framework/mvvm/model/db/entity/InfosConfigEntity.kt

@@ -13,9 +13,10 @@ import kotlinx.serialization.Serializable
 data class InfosConfigEntity(
     @PrimaryKey(autoGenerate = false) val id: String,
     @ColumnInfo(name = "name") val name: String,               // 对象类型名称
-    @ColumnInfo(name = "obj_type") val objType: String,        // 对象类型(space|equipment)
-    @ColumnInfo(name = "class_code") val classCode: String,    // 对象class_code
-    @ColumnInfo(name = "major_code") val majorCode: String,    // 专业代码(类型为设备时)
-    @ColumnInfo(name = "system_code") val systemCode: String,  // 系统代码(类型为设备时)
-    @ColumnInfo(name = "infos") val infos: String,             // 对象类型的信息详情点配置
+    @ColumnInfo(name = "obj_type") val objType: String?,        // 对象类型(space|equipment)
+    @ColumnInfo(name = "class_code") val classCode: String?,    // 对象class_code
+    @ColumnInfo(name = "major_code") val majorCode: String?,    // 专业代码(类型为设备时)
+    @ColumnInfo(name = "system_code") val systemCode: String?,  // 系统代码(类型为设备时)
+    @ColumnInfo(name = "infos") val infos: String?,             // 对象类型的信息详情点配置
+    @ColumnInfo(name = "project_id") val projectId: String?,             // 对象类型的信息详情点配置
 )

+ 0 - 22
demo/src/main/java/com/framework/mvvm/model/db/entity/InfosEntity.kt

@@ -1,22 +0,0 @@
-package com.framework.mvvm.model.db.entity
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-/**
- * Object 对象中的 infos 字段
- */
-@Entity(tableName = "info")
-class InfosEntity(
-    @PrimaryKey(autoGenerate = true) var id: Int = 0,
-    @ColumnInfo(name = "bim_id_pre") val bimIdPre: String,
-    @ColumnInfo(name = "count") val count: String,
-    @ColumnInfo(name = "floor_elevation") val floorElevation: Double,
-    @ColumnInfo(name = "floor_map") val floorMap: String,
-    @ColumnInfo(name = "floor_sequence_id") val floorSequenceID: Int,
-    @ColumnInfo(name = "model_id") val modelId: String,
-    @ColumnInfo(name = "building_id") val buildingId: String,
-    @ColumnInfo(name = "floor_id") val floorId: String,
-    @ColumnInfo(name = "object_id") val objectId: String,
-)

+ 4 - 3
demo/src/main/java/com/framework/mvvm/model/db/entity/M2dEquipEntity.kt

@@ -13,7 +13,8 @@ import kotlinx.serialization.Serializable
 data class M2dEquipEntity(
     @PrimaryKey(autoGenerate = false) val id: String,
     @ColumnInfo(name = "name") val name: String,              //范围定义名称
-    @ColumnInfo(name = "major_code") val majorCode: String,   //专业代码
-    @ColumnInfo(name = "system_code") val systemCode: String, //系统代码
-    @ColumnInfo(name = "class_code") val classCode: String,   //设备类代码
+    @ColumnInfo(name = "major_code") val majorCode: String?,   //专业代码
+    @ColumnInfo(name = "system_code") val systemCode: String?, //系统代码
+    @ColumnInfo(name = "class_code") val classCode: String?,   //设备类代码
+    @ColumnInfo(name = "project_id") val projectId: String?,
 )

+ 26 - 26
demo/src/main/java/com/framework/mvvm/model/db/entity/ObjectEntity.kt

@@ -4,47 +4,47 @@ import androidx.annotation.NonNull
 import androidx.room.ColumnInfo
 import androidx.room.Entity
 import androidx.room.PrimaryKey
-import androidx.room.TypeConverters
-import com.framework.mvvm.model.db.converter.JsonConverter
+import kotlinx.serialization.Contextual
 import kotlinx.serialization.Serializable
-import kotlinx.serialization.json.JsonObject
+import org.json.JSONObject
 
 /**
  * 对象表
  * 建筑,楼层,空间, 设备
  */
-@Serializable
+
 @Entity(tableName = "object")
-@TypeConverters(JsonConverter::class)
+@Serializable
 data class ObjectEntity(
     @NonNull
     @PrimaryKey val id: String,
     @ColumnInfo(name = "name") val name: String,
-    @ColumnInfo(name = "local_id") val localId: String,            // 对象位置编码
-    @ColumnInfo(name = "local_name") val localName: String,        // 对象位置名称
-    @ColumnInfo(name = "group_code") val groupCode: String,        // 集团编码
-    @ColumnInfo(name = "grouping") val grouping: Int,              // 1 表示单个对象,2 表示对象组
     @ColumnInfo(name = "project_id") val projectId: String,        // 项目id
-    @ColumnInfo(name = "building_id") val buildingId: String,      // 建筑id
-    @ColumnInfo(name = "floor_id") val floorId: String,            // 建筑id
     @ColumnInfo(name = "obj_type") val objType: String,            // 对象类型
     @ColumnInfo(name = "class_code") val classCode: String,        // 对象类型编码
-    @ColumnInfo(name = "creator") val creator: String,             // 创建人
-    @ColumnInfo(name = "create_app") val createApp: String,        // 创建对象的应用
-    @ColumnInfo(name = "creation_time") val creationTime: Long,  // 创建时间
-    @ColumnInfo(name = "modifier") val modifier: String,           // 修改人
-    @ColumnInfo(name = "modified_time") val modifiedTime: Long,  // 修改时间
-    @ColumnInfo(name = "client_device") val clientDevice: String,  // 标识客户端设备
-    @ColumnInfo(name = "client_id") val clientId: String,          // 客户端生成id
-    @ColumnInfo(name = "update_app") val updateApp: String,        // 更新对象的应用
-    @ColumnInfo(name = "upload_flag") val uploadFlag: String,      // app端上传数据标记
-    @ColumnInfo(name = "valid") val valid: Int,                    // 合法标识: 1 合法, 0 非法
-    @ColumnInfo(name = "delivery_state") val deliveryState: Int,   // BDTP交付状态: 1 已交付, 0 待交付
-    @ColumnInfo(name = "d2m_state") val d2mState: Int,             // 逆向数据的数模同步状态(0:未同步;1:已同步)
-    @ColumnInfo(name = "virtual_codes") val virtualCodes: String,   // 虚点清单: Json 数据格式
-    @ColumnInfo(name = "infos") val infos: JsonObject?                   // 信息点数据: Json 数据格式
-    // @ColumnInfo(name = "parent_id") val parentId: String,          // 上级对象id,为数据操作提供便利(设备:楼层;空间:楼层;楼层:建筑;竖井:建筑;)
+    @ColumnInfo(name = "local_id") val localId: String?,            // 对象位置编码
+    @ColumnInfo(name = "local_name") val localName: String?,        // 对象位置名称
+    @ColumnInfo(name = "group_code") val groupCode: String?,        // 集团编码
+    @ColumnInfo(name = "grouping") val grouping: Int?,              // 1 表示单个对象,2 表示对象组
+    @ColumnInfo(name = "building_id") val buildingId: String?,      // 建筑id
+    @ColumnInfo(name = "floor_id") val floorId: String?,            // 建筑id
+    @ColumnInfo(name = "creator") val creator: String?,             // 创建人
+    @ColumnInfo(name = "create_app") val createApp: String?,        // 创建对象的应用
+    @ColumnInfo(name = "creation_time") val creationTime: Long?,  // 创建时间
+    @ColumnInfo(name = "modifier") val modifier: String?,           // 修改人
+    @ColumnInfo(name = "modified_time") val modifiedTime: Long?,  // 修改时间
+    @ColumnInfo(name = "client_device") val clientDevice: String?,  // 标识客户端设备
+    @ColumnInfo(name = "client_id") val clientId: String?,          // 客户端生成id
+    @ColumnInfo(name = "update_app") val updateApp: String?,        // 更新对象的应用
+    @ColumnInfo(name = "upload_flag") val uploadFlag: String?,      // app端上传数据标记
+    @ColumnInfo(name = "valid") val valid: Int?,                    // 合法标识: 1 合法, 0 非法
+    @ColumnInfo(name = "delivery_state") val deliveryState: Int?,   // BDTP交付状态: 1 已交付, 0 待交付
+    @ColumnInfo(name = "d2m_state") val d2mState: Int?,             // 逆向数据的数模同步状态(0:未同步;1:已同步)
+    @ColumnInfo(name = "virtual_codes") val virtualCodes: String?,   // 虚点清单: Json 数据格式
+    @ColumnInfo(name = "infos")
+    @Contextual var infos: JSONObject?               // 信息点数据: Json 数据格式
 )
+
 /*
 data class Infos(
     val bimId: String,

+ 0 - 14
demo/src/main/java/com/framework/mvvm/model/db/entity/OutlineEntity.kt

@@ -1,14 +0,0 @@
-package com.framework.mvvm.model.db.entity
-
-import androidx.room.ColumnInfo
-import androidx.room.Entity
-import androidx.room.PrimaryKey
-
-@Entity(tableName = "outline")
-data class OutlineEntity(
-    @PrimaryKey(autoGenerate = true) var id: Int = 0,
-    @ColumnInfo(name = "x") val x: Double,
-    @ColumnInfo(name = "y") val y: Double,
-    @ColumnInfo(name = "z") val z: Double,
-    @ColumnInfo(name = "infos_id") val infosId: String,
-)

+ 12 - 12
demo/src/main/java/com/framework/mvvm/model/db/entity/ProblemArchEntity.kt

@@ -10,19 +10,19 @@ import androidx.room.PrimaryKey
 @Entity(tableName = "problem_arch")
 data class ProblemArchEntity(
     @PrimaryKey val id: String,
-    @ColumnInfo(name = "work_id") val workId: String,              // 交付工作流程id
     @ColumnInfo(name = "floor_id") val floorId: String,            // 问题所在楼层id
     @ColumnInfo(name = "project_id") val projectId: String,        // 项目id
     @ColumnInfo(name = "building_id") val buildingId: String,      // 建筑id
-    @ColumnInfo(name = "geom_type") val geomType: String,          // 问题记录的几何类型(point|line|polygon)
-    @ColumnInfo(name = "geom") val geom: String,                   // 问题记录的几何数据(Json)
-    @ColumnInfo(name = "problem_type") val problemType: String,    // 问题类型
-    @ColumnInfo(name = "problem_state") val problemState: Int,     // 建筑结构核查任务状态(0:删除;1:有效;2:已解决)
-    @ColumnInfo(name = "message") val message: String,             // 问题描述
-    @ColumnInfo(name = "creator") val creator: String,             // 创建人
-    @ColumnInfo(name = "creation_time") val creationTime: String,  // 创建时间
-    @ColumnInfo(name = "modifier") val modifier: String,           // 修改人
-    @ColumnInfo(name = "modified_time") val modifiedTime: String,  // 修改时间
-    @ColumnInfo(name = "upload_flag") val uploadFlag: String,      // app端上传数据标记
-    @ColumnInfo(name = "valid") val valid: Int                     // 1 有效,2 无效
+    @ColumnInfo(name = "geom_type") val geomType: String?,          // 问题记录的几何类型(point|line|polygon)
+    @ColumnInfo(name = "geom") val geom: String?,                   // 问题记录的几何数据(Json)
+    @ColumnInfo(name = "work_id") val workId: String?,              // 交付工作流程id
+    @ColumnInfo(name = "problem_type") val problemType: String?,    // 问题类型
+    @ColumnInfo(name = "problem_state") val problemState: Int?,     // 建筑结构核查任务状态(0:删除;1:有效;2:已解决)
+    @ColumnInfo(name = "message") val message: String?,             // 问题描述
+    @ColumnInfo(name = "creator") val creator: String?,             // 创建人
+    @ColumnInfo(name = "creation_time") val creationTime: String?,  // 创建时间
+    @ColumnInfo(name = "modifier") val modifier: String?,           // 修改人
+    @ColumnInfo(name = "modified_time") val modifiedTime: String?,  // 修改时间
+    @ColumnInfo(name = "upload_flag") val uploadFlag: String?,      // app端上传数据标记
+    @ColumnInfo(name = "valid") val valid: Int?                    // 1 有效,2 无效
 )

+ 10 - 10
demo/src/main/java/com/framework/mvvm/model/db/entity/ProblemEquipEntity.kt

@@ -10,19 +10,19 @@ import androidx.room.PrimaryKey
 @Entity(tableName = "problem_equip")
 data class ProblemEquipEntity(
     @PrimaryKey val id: String,
-    @ColumnInfo(name = "work_id") val workId: String,              // 交付工作流程id
     @ColumnInfo(name = "floor_id") val floorId: String,            // 问题所在楼层id
     @ColumnInfo(name = "project_id") val projectId: String,        // 项目id
     @ColumnInfo(name = "building_id") val buildingId: String,      // 建筑id
     @ColumnInfo(name = "equip_id") val equipId: String,            // 设备id
-    @ColumnInfo(name = "problem_type") val problemType: String,    // 问题类型
-    @ColumnInfo(name = "problem_state") val problemState: Int,     // 建筑结构核查任务状态(0:删除;1:有效;2:已解决)
-    @ColumnInfo(name = "message") val message: String,             // 问题描述
-    @ColumnInfo(name = "creator") val creator: String,             // 创建人
-    @ColumnInfo(name = "creation_time") val creationTime: String,  // 创建时间
-    @ColumnInfo(name = "modifier") val modifier: String,           // 修改人
-    @ColumnInfo(name = "modified_time") val modifiedTime: String,  // 修改时间
-    @ColumnInfo(name = "upload_flag") val uploadFlag: String,      // app端上传数据标记
-    @ColumnInfo(name = "valid") val valid: Int                     // 1 有效,2 无效
+    @ColumnInfo(name = "work_id") val workId: String?,              // 交付工作流程id
+    @ColumnInfo(name = "problem_type") val problemType: String?,    // 问题类型
+    @ColumnInfo(name = "problem_state") val problemState: Int?,     // 建筑结构核查任务状态(0:删除;1:有效;2:已解决)
+    @ColumnInfo(name = "message") val message: String?,             // 问题描述
+    @ColumnInfo(name = "creator") val creator: String?,             // 创建人
+    @ColumnInfo(name = "creation_time") val creationTime: String?,  // 创建时间
+    @ColumnInfo(name = "modifier") val modifier: String?,           // 修改人
+    @ColumnInfo(name = "modified_time") val modifiedTime: String?,  // 修改时间
+    @ColumnInfo(name = "upload_flag") val uploadFlag: String?,      // app端上传数据标记
+    @ColumnInfo(name = "valid") val valid: Int?                    // 1 有效,2 无效
 
 )

+ 12 - 7
demo/src/main/java/com/framework/mvvm/model/db/entity/ProjectEntity.kt

@@ -3,7 +3,9 @@ package com.framework.mvvm.model.db.entity
 import androidx.room.ColumnInfo
 import androidx.room.Entity
 import androidx.room.PrimaryKey
+import kotlinx.serialization.Contextual
 import kotlinx.serialization.Serializable
+import org.json.JSONObject
 
 /**
  * 项目表(远程无对应表)
@@ -14,13 +16,16 @@ data class ProjectEntity(
     @PrimaryKey val id: String,
     @ColumnInfo(name = "name") val name: String,
     @ColumnInfo(name = "object_type") val objectType: String,
-    @ColumnInfo(name = "group_code") val groupCode: String,
-    @ColumnInfo(name = "local_id") val localId: String,
-    @ColumnInfo(name = "local_name") val localName: String,
     @ColumnInfo(name = "create_time") val createTime: String,
     @ColumnInfo(name = "last_update") val lastUpdate: String,
-    @ColumnInfo(name = "introduction") val introduction: String,
-    @ColumnInfo(name = "business_floor_num") val businessFloorNum: String,
-    @ColumnInfo(name = "office_floor_num") val officeFloorNum: String
-    // @ColumnInfo(name = "infos") val infos: String,
+    @ColumnInfo(name = "group_code") val groupCode: String,
+
+    @ColumnInfo(name = "local_id") val localId: String?,
+    @ColumnInfo(name = "local_name") val localName: String?,
+    @ColumnInfo(name = "introduction") val introduction: String?,
+    @ColumnInfo(name = "business_floor_num") val businessFloorNum: String?,
+    @ColumnInfo(name = "office_floor_num") val officeFloorNum: String?,
+    @ColumnInfo(name = "infos")
+    @Contextual
+    val infos: JSONObject?
 )

+ 9 - 9
demo/src/main/java/com/framework/mvvm/model/db/entity/QrCodeEntity.kt

@@ -14,17 +14,17 @@ data class QrCodeEntity(
     @PrimaryKey val id: String,
     @ColumnInfo(name = "qr_code") val qrCode: String,              // 二维码数据值
     @ColumnInfo(name = "obj_id") val objId: String,                // 二维码对应的对象id
-    @ColumnInfo(name = "floor_id") val floorId: String,            // 楼层id
-    @ColumnInfo(name = "location") val location: String,           // 位置坐标({x:1,y:1,z:1})
-    @ColumnInfo(name = "remark") val remark: String,               // 描述信息
     @ColumnInfo(name = "project_id") val projectId: String,        // 项目id
     @ColumnInfo(name = "building_id") val buildingId: String,      // 建筑id
-    @ColumnInfo(name = "creator") val creator: String,             // 创建人
-    @ColumnInfo(name = "creation_time") val creationTime: String,  // 创建时间
-    @ColumnInfo(name = "modifier") val modifier: String,           // 修改人
-    @ColumnInfo(name = "modified_time") val modifiedTime: String,  // 修改时间
-    @ColumnInfo(name = "valid") val valid: String,                 // 合法标识
-    @ColumnInfo(name = "upload_flag") val uploadFlag: String,      // app端上传数据标记
+    @ColumnInfo(name = "floor_id") val floorId: String,            // 楼层id
+    @ColumnInfo(name = "location") val location: String?,           // 位置坐标({x:1,y:1,z:1})
+    @ColumnInfo(name = "remark") val remark: String?,               // 描述信息
+    @ColumnInfo(name = "creator") val creator: String?,             // 创建人
+    @ColumnInfo(name = "creation_time") val creationTime: String?,  // 创建时间
+    @ColumnInfo(name = "modifier") val modifier: String?,           // 修改人
+    @ColumnInfo(name = "modified_time") val modifiedTime: String?,  // 修改时间
+    @ColumnInfo(name = "valid") val valid: Int?,                 // 合法标识
+    @ColumnInfo(name = "upload_flag") val uploadFlag: String?,      // app端上传数据标记
 
 
 )

+ 1 - 0
demo/src/main/java/com/framework/mvvm/model/db/entity/RelConfigEntity.kt

@@ -18,5 +18,6 @@ data class RelConfigEntity(
     @ColumnInfo(name = "class_code_to") val classCodeTo: String,      //  to  端对象class_code
     @ColumnInfo(name = "graph_code") val graphCode: String,           // 关系的图类型代码
     @ColumnInfo(name = "rel_code") val relCode: String,               // 关系的边类型代码
+    @ColumnInfo(name = "project_id") val projectId: String?,               // 关系的边类型代码
 
 )

+ 12 - 12
demo/src/main/java/com/framework/mvvm/model/db/entity/RelationDictEntity.kt

@@ -16,16 +16,16 @@ class RelationDictEntity(
     @ColumnInfo(name = "name") val name: String,                 // 关系名
     @ColumnInfo(name = "graph_code") val graphCode: String,       // 图编码
     @ColumnInfo(name = "valid") val valid: Int,                  // 有效标识
-    @ColumnInfo(name = "creator") val creator: String,           // 创建人
-    @ColumnInfo(name = "creation_time") val creationTime: String, // 创建时间
-    @ColumnInfo(name = "modifier") val modifier: String,         // 修改人
-    @ColumnInfo(name = "modified_time") val modifiedTime: String, // 修改时间
-    @ColumnInfo(name = "directional") val directional: Int,      // 方向
-    @ColumnInfo(name = "target_Objs") val targetObjs: String,     // 目标对象
-    @ColumnInfo(name = "attribute") val attribute: String,          // 属性
-    @ColumnInfo(name = "before_cal_rels") val beforeCalRels: String,
-    @ColumnInfo(name = "calRules") val calRules: String,
-    @ColumnInfo(name = "fromObjType") val fromObjType: String,
-    @ColumnInfo(name = "toObjType") val toObjType: String,
-    @ColumnInfo(name = "remark") val remark: String
+    @ColumnInfo(name = "creator") val creator: String?,           // 创建人
+    @ColumnInfo(name = "creation_time") val creationTime: String?, // 创建时间
+    @ColumnInfo(name = "modifier") val modifier: String?,         // 修改人
+    @ColumnInfo(name = "modified_time") val modifiedTime: String?, // 修改时间
+    @ColumnInfo(name = "directional") val directional: Int?,      // 方向
+    @ColumnInfo(name = "target_Objs") val targetObjs: String?,     // 目标对象
+    @ColumnInfo(name = "attribute") val attribute: String?,          // 属性
+    @ColumnInfo(name = "before_cal_rels") val beforeCalRels: String?,
+    @ColumnInfo(name = "calRules") val calRules: String?,
+    @ColumnInfo(name = "fromObjType") val fromObjType: String?,
+    @ColumnInfo(name = "toObjType") val toObjType: String?,
+    @ColumnInfo(name = "remark") val remark: String?
 )

+ 21 - 21
demo/src/main/java/com/framework/mvvm/model/db/entity/RelationEntity.kt

@@ -16,26 +16,26 @@ data class RelationEntity(
     @PrimaryKey(autoGenerate = false)
     @ColumnInfo(name = "id") val id: String,                        // uuid
     @ColumnInfo(name = "project_id") val projectId: String,         // 项目id
-    @ColumnInfo(name = "building_id") val buildingId: String,         // 项目id
-    @ColumnInfo(name = "floor_id") val floorId: String,             // 楼层id
-    @ColumnInfo(name = "group_code") val groupCode: String,         // 集团代码
-    @ColumnInfo(name = "graph_id") val graphId: String,             // 图id
-    @ColumnInfo(name = "graph_code") val graphCode: String,         // 图编码
-    @ColumnInfo(name = "rel_code") val relCode: String,             // 关系编码
-    @ColumnInfo(name = "rel_value") val relValue: String,           // 关系值
-    @ColumnInfo(name = "obj_from") val objFrom: String,             // 关系源对象
-    @ColumnInfo(name = "obj_to") val objTo: String,                 // 关系目标对象
-    @ColumnInfo(name = "create_app") val createApp: String,         // 创建关系的App
-    @ColumnInfo(name = "update_app") val updateApp: String,         // 更新关系的App
-    @ColumnInfo(name = "creator") val creator: String,              // 创建人
-    @ColumnInfo(name = "creation_time") val creationTime: String,   // 创建时间
-    @ColumnInfo(name = "modifier") val modifier: String,            // 更新人
-    @ColumnInfo(name = "modified_time") val modifiedTime: String,   // 修改时间
-    @ColumnInfo(name = "client_id") val clientId: String,           // 客户端生成id
-    @ColumnInfo(name = "client_device") val clientDevice: String,   // 标识客户端设备
-    @ColumnInfo(name = "upload_flag") val uploadFlag: String,       // app端上传数据标记
-    @ColumnInfo(name = "delivery_state") val deliveryState: Int,    // BDTP交付状态: 1 已交付, 0 待交付
-    @ColumnInfo(name = "valid") val valid: String,                  // 合法标识: 1 合法, 0 非法
-    @ColumnInfo(name = "d2m_state") val d2mState: String,           // 逆向数据的数模同步状态(0:未同步;1:已同步)
+    @ColumnInfo(name = "building_id") val buildingId: String?,         // 项目id
+    @ColumnInfo(name = "floor_id") val floorId: String?,             // 楼层id
+    @ColumnInfo(name = "group_code") val groupCode: String?,         // 集团代码
+    @ColumnInfo(name = "graph_id") val graphId: String?,             // 图id
+    @ColumnInfo(name = "graph_code") val graphCode: String?,         // 图编码
+    @ColumnInfo(name = "rel_code") val relCode: String?,             // 关系编码
+    @ColumnInfo(name = "rel_value") val relValue: String?,           // 关系值
+    @ColumnInfo(name = "obj_from") val objFrom: String?,             // 关系源对象
+    @ColumnInfo(name = "obj_to") val objTo: String?,                 // 关系目标对象
+    @ColumnInfo(name = "create_app") val createApp: String?,         // 创建关系的App
+    @ColumnInfo(name = "update_app") val updateApp: String?,         // 更新关系的App
+    @ColumnInfo(name = "creator") val creator: String?,              // 创建人
+    @ColumnInfo(name = "creation_time") val creationTime: String?,   // 创建时间
+    @ColumnInfo(name = "modifier") val modifier: String?,            // 更新人
+    @ColumnInfo(name = "modified_time") val modifiedTime: String?,   // 修改时间
+    @ColumnInfo(name = "client_id") val clientId: String?,           // 客户端生成id
+    @ColumnInfo(name = "client_device") val clientDevice: String?,   // 标识客户端设备
+    @ColumnInfo(name = "upload_flag") val uploadFlag: String?,       // app端上传数据标记
+    @ColumnInfo(name = "delivery_state") val deliveryState: Int?,    // BDTP交付状态: 1 已交付, 0 待交付
+    @ColumnInfo(name = "valid") val valid: Int?,                  // 合法标识: 1 合法, 0 非法
+    @ColumnInfo(name = "d2m_state") val d2mState: Int?,           // 逆向数据的数模同步状态(0:未同步;1:已同步)
 
 )

+ 15 - 15
demo/src/main/java/com/framework/mvvm/model/db/entity/SpaceEntity.kt

@@ -12,22 +12,22 @@ import kotlinx.serialization.Serializable
 @Serializable
 data class SpaceEntity(
     @PrimaryKey val id: String,
-    @ColumnInfo(name = "work_id") val workId: String,                // 交付工作流程id
-    @ColumnInfo(name = "outline") val outline: String,               // 空间边界,模型更新空间变化时,用来做匹配计算
     @ColumnInfo(name = "space_id") val spaceId: 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") val archState: Int,             // 建筑结构核查任务状态(0:待核查;1:核查中;2:核查完毕)
-    @ColumnInfo(name = "equip_state") val equipState: Int,           // 设备勘测任务状态(0:待勘测;1:勘测中;2:勘测完毕)
-    @ColumnInfo(name = "project_id") val projectId: String,          // 项目id
-    @ColumnInfo(name = "building_id") val buildingId: String,        // 建筑id
-    @ColumnInfo(name = "floor_id") val floorId: String,              // 楼层id
-    @ColumnInfo(name = "creator") val creator: String,               // 创建人
-    @ColumnInfo(name = "creation_time") val creationTime: String,    // 创建时间
-    @ColumnInfo(name = "modifier") val modifier: String,             // 修改人
-    @ColumnInfo(name = "modified_time") val modifiedTime: String,    // 修改时间
-    @ColumnInfo(name = "valid") val valid: Int,                      // 合法标识
-    @ColumnInfo(name = "upload_flag") val uploadFlag: Int,           // app端上传数据标记
+    @ColumnInfo(name = "work_id") val workId: String,                // 交付工作流程id
+    @ColumnInfo(name = "outline") val outline: String?,               // 空间边界,模型更新空间变化时,用来做匹配计算
+    @ColumnInfo(name = "space_type") val spaceType: String?,          // 任务空间类型(base|sub)
+    @ColumnInfo(name = "parent_space_id") val parentSpaceId: String?, // 父级空间id(空间类型为sub时)
+    @ColumnInfo(name = "arch_state") val archState: Int?,             // 建筑结构核查任务状态(0:待核查;1:核查中;2:核查完毕)
+    @ColumnInfo(name = "equip_state") val equipState: Int?,           // 设备勘测任务状态(0:待勘测;1:勘测中;2:勘测完毕)
+    @ColumnInfo(name = "project_id") val projectId: String?,          // 项目id
+    @ColumnInfo(name = "building_id") val buildingId: String?,        // 建筑id
+    @ColumnInfo(name = "floor_id") val floorId: String?,              // 楼层id
+    @ColumnInfo(name = "creator") val creator: String?,               // 创建人
+    @ColumnInfo(name = "creation_time") val creationTime: String?,    // 创建时间
+    @ColumnInfo(name = "modifier") val modifier: String?,             // 修改人
+    @ColumnInfo(name = "modified_time") val modifiedTime: String?,    // 修改时间
+    @ColumnInfo(name = "valid") val valid: Int?,                      // 合法标识
+    @ColumnInfo(name = "upload_flag") val uploadFlag: Int?,           // app端上传数据标记
 )
 
 /*

+ 14 - 14
demo/src/main/java/com/framework/mvvm/model/db/entity/SystemEntity.kt

@@ -14,19 +14,19 @@ data class SystemEntity(
     @PrimaryKey val id: String,
     @ColumnInfo(name = "code") val code: String,                    // 系统编码
     @ColumnInfo(name = "name") val name: String,                    // 系统名称
-    @ColumnInfo(name = "valid") val valid: Int,                     // 1 正常 0 删除
-    @ColumnInfo(name = "alias_code") val aliasCode: String,         // 编码别名
-    @ColumnInfo(name = "alias_name") val aliasName: String,         // 名称别名
-    @ColumnInfo(name = "project_id") val projectId: String,         // 项目 id
+    @ColumnInfo(name = "valid") val valid: Int?,                     // 1 正常 0 删除
+    @ColumnInfo(name = "alias_code") val aliasCode: String?,         // 编码别名
+    @ColumnInfo(name = "alias_name") val aliasName: String?,         // 名称别名
+    @ColumnInfo(name = "project_id") val projectId: String?,         // 项目 id
     @ColumnInfo(name = "obj_type") val objType: String,             // 对象类型 "system"
-    @ColumnInfo(name = "group_code") val groupCode: String,         // 集团编码
-    @ColumnInfo(name = "major_code") val majorCode: String,         // 专业编码
-    @ColumnInfo(name = "system_code") val systemCode: String,       // 系统编码
-    @ColumnInfo(name = "parent_code") val parentCode: String,       // 父编码
-    @ColumnInfo(name = "equipment_code") val equipmentCode: String, // 设备编码
-    @ColumnInfo(name = "version") val version: String,              // 版本
-    @ColumnInfo(name = "creator") val creator: String,              // 创建人
-    @ColumnInfo(name = "creation_time") val creationTime: Long,     // 创建时间
-    @ColumnInfo(name = "modifier") val modifier: String,               // 修改人
-    @ColumnInfo(name = "modified_time") val modifiedTime: String,      // 修改时间
+    @ColumnInfo(name = "group_code") val groupCode: String?,         // 集团编码
+    @ColumnInfo(name = "major_code") val majorCode: String?,         // 专业编码
+    @ColumnInfo(name = "system_code") val systemCode: String?,       // 系统编码
+    @ColumnInfo(name = "parent_code") val parentCode: String?,       // 父编码
+    @ColumnInfo(name = "equipment_code") val equipmentCode: String?, // 设备编码
+    @ColumnInfo(name = "version") val version: String?,              // 版本
+    @ColumnInfo(name = "creator") val creator: String?,              // 创建人
+    @ColumnInfo(name = "creation_time") val creationTime: Long?,     // 创建时间
+    @ColumnInfo(name = "modifier") val modifier: String?,               // 修改人
+    @ColumnInfo(name = "modified_time") val modifiedTime: String?,      // 修改时间
 )

+ 17 - 11
demo/src/main/java/com/framework/mvvm/model/repository/FrameRepository.kt

@@ -1,5 +1,6 @@
 package com.framework.mvvm.model.repository
 
+import android.util.Log
 import androidx.lifecycle.LiveData
 import com.framework.app.api.Api
 import com.framework.app.base.IRepository
@@ -15,24 +16,29 @@ class FrameRepository(
     private val db: AdmDatabase
 ) : IRepository {
 
-    fun getProjects(): LiveData<Data<List<ProjectEntity>>> {
-        return dataSource(
-            fromDb = { db.projectDao().getProjects() },
-            fromNt = { request { api.getFrame() } },
-            onSuccess = {
-                // TODO 拆分 api.getFrame()  返回的结果
-            }
-        )
-    }
-
     fun getProjects(request: FrameRequest): LiveData<Data<List<ProjectEntity>>> {
         return dataSource(
             fromDb = { db.projectDao().getProjects() },
             fromNt = { request { api.getFrame(request) } },
             onSuccess = { frame ->
-                println("frame: $frame")
+                val projects = frame.projects
+                val bafs = frame.buildingsAndFloors
+                try {
+                    db.projectDao().insProject(projects)
+                    db.objectDao().insObjects(bafs)
+                } catch (e: Exception) {
+                    Log.d("IRepository:${FrameRepository::class.simpleName}", e.message!!)
+                }
+            },
+            onFailure = {
+                println("onFailure: ${it.msg}")
             }
         )
     }
 
+    fun getProjectsFromDB(): LiveData<List<ProjectEntity>> {
+        return db.projectDao().getProjects()
+    }
+
+
 }

+ 7 - 0
demo/src/main/java/com/sybotan/android/demo/activities/PocActivity.kt

@@ -1,6 +1,7 @@
 package com.sybotan.android.demo.activities
 
 import android.Manifest
+import android.accounts.AccountManager
 import android.os.Bundle
 import androidx.appcompat.app.AppCompatActivity
 import androidx.constraintlayout.widget.ConstraintLayout
@@ -15,12 +16,17 @@ import org.kodein.di.DI
 import org.kodein.di.DIAware
 import org.kodein.di.android.closestDI
 import org.kodein.di.android.x.viewmodel.viewModel
+import org.kodein.di.instance
 
 class PocActivity : AppCompatActivity(), DIAware {
 
     override val di: DI by closestDI()
+
     private val mVm: FrameViewModel by viewModel()
 
+    private val mVm1 by instance<AccountManager>()
+
+
     private val tag = "PocActivity"
     private val REQUEST_EXTERNAL_STORAGE = 1 // 不可改
 
@@ -49,6 +55,7 @@ class PocActivity : AppCompatActivity(), DIAware {
                 groupCode = "BR"
             )
         )
+
     }
 
     private fun checkStoragePermission() {