Browse Source

@task: dict and config

bai 3 years ago
parent
commit
b3854566cc

+ 1 - 1
demo/src/main/java/com/framework/app/Constants.kt

@@ -10,7 +10,7 @@ const val test2IP = "http://192.168.0.11:8876/"
 
 const val tencentIP = "http://82.157.28.170:8876/"
 
-const val IP = tencentIP
+const val IP = test2IP
 
 const val pathDownloadMap = "adm/downloadMap?key="
 

+ 3 - 0
demo/src/main/java/com/framework/app/api/Api.kt

@@ -13,6 +13,9 @@ interface Api {
     @POST("adm/dict")
     suspend fun getDict(@Body request: AdmRequest): Model<Dict>
 
+    @POST("adm/config")
+    suspend fun getConfig(@Body request: AdmRequest): Model<Config>
+
     /**
      * 获取框架数据
      */

+ 0 - 1
demo/src/main/java/com/framework/app/http/GzipRequestInterceptor.kt

@@ -9,7 +9,6 @@ import okio.*
 class GzipRequestInterceptor : Interceptor {
     override fun intercept(chain: Interceptor.Chain): Response {
         val originalRequest: Request = chain.request()
-        println("""originalRequest.header("Content-Encoding"):${originalRequest.header("Content-Encoding")}""")
         if (originalRequest.body == null || originalRequest.header("Content-Encoding") != "gzip") {
             return chain.proceed(originalRequest)
         }

+ 27 - 11
demo/src/main/java/com/framework/mvvm/model/repository/AdmRepository.kt

@@ -282,17 +282,33 @@ class AdmRepository(
             from = { api.getDict(request) },
             to = { dict ->
                 try {
-                    dict.pipeConfig?.let { db.pipeConfigDao().insConfigs(it) }
-                    dict.infosConfig?.let { db.infosConfigDao().insConfigs(it) }
-                    dict.config?.let { db.configDao().insConfigs(it) }
-                    dict.relConfig?.let { db.relConfigDao().insConfigs(it) }
-                    dict.component?.let { db.componentDao().insComponents(it) }
-                    dict.containerConfig?.let { db.containerConfigDao().insContainers(it) }
-                    dict.dict?.system?.let { db.systemDao().insSystems(it) }
-                    dict.dict?.equipment?.let { db.equipmentDao().insEquipments(it) }
-                    dict.dict?.relation?.let { db.relationDictDao().insRelationDicts(it) }
-                    dict.dict?.major?.let { db.majorDao().insMajors(it) }
-                    dict.dict?.infos?.let { db.infoDao().insInfos(it) }
+                    dict.system?.let { db.systemDao().insSystems(it) }
+                    dict.equipment?.let { db.equipmentDao().insEquipments(it) }
+                    dict.relation?.let { db.relationDictDao().insRelationDicts(it) }
+                    dict.major?.let { db.majorDao().insMajors(it) }
+                    dict.infos?.let { db.infoDao().insInfos(it) }
+                } catch (e: Exception) {
+                    Log.d("requestDict", "exception: $e")
+                }
+            },
+            error = { println("requestDict error: $it") }
+        )
+    }
+
+    /**
+     * 请求配置数据
+     */
+    suspend fun requestConfig(request: AdmRequest) {
+        request(
+            from = { api.getConfig(request) },
+            to = { config ->
+                try {
+                    config.pipeConfig?.let { db.pipeConfigDao().insConfigs(it) }
+                    config.infosConfig?.let { db.infosConfigDao().insConfigs(it) }
+                    config.config?.let { db.configDao().insConfigs(it) }
+                    config.relConfig?.let { db.relConfigDao().insConfigs(it) }
+                    config.component?.let { db.componentDao().insComponents(it) }
+                    config.containerConfig?.let { db.containerConfigDao().insContainers(it) }
                 } catch (e: Exception) {
                     Log.d("requestDict", "exception: $e")
                 }

+ 15 - 0
demo/src/main/java/com/framework/mvvm/model/vo/Config.kt

@@ -0,0 +1,15 @@
+package com.framework.mvvm.model.vo
+
+import com.framework.mvvm.model.db.entity.dict.*
+
+/**
+ * 配置信息
+ */
+data class Config(
+    val config: List<ConfigEntity>? = null,
+    val pipeConfig: List<PipeConfigEntity>? = null,
+    val infosConfig: List<InfosConfigEntity>? = null,
+    val relConfig: List<RelConfigEntity>? = null,
+    val component: List<ComponentEntity>? = null,
+    val containerConfig: List<ContainerConfigEntity>? = null
+)

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

@@ -3,25 +3,12 @@ package com.framework.mvvm.model.vo
 import com.framework.mvvm.model.db.entity.dict.*
 
 /**
- * 数据定义
+ * 数据字典
  */
 data class Dict(
-    val config: List<ConfigEntity>? = null,
-    val dict: Dictionary? = null,
-    val pipeConfig: List<PipeConfigEntity>? = null,
-    val infosConfig: List<InfosConfigEntity>? = null,
-    val relConfig: List<RelConfigEntity>? = null,
-    val component: List<ComponentEntity>? = null,
-    val containerConfig: List<ContainerConfigEntity>? = null
-)
-
-/**
- * Dictionary 对象
- */
-data class Dictionary(
     val system: List<SystemEntity>? = null,
     val major: List<MajorEntity>? = null,
     val equipment: List<EquipmentEntity>? = null,
     val relation: List<RelationDictEntity>? = null,
     val infos: List<InfoEntity>? = null
-)
+)

+ 12 - 33
demo/src/main/java/com/framework/mvvm/mv/AdmViewModel.kt

@@ -26,55 +26,34 @@ import kotlinx.coroutines.withContext
 class AdmViewModel(private val repository: AdmRepository) : ViewModel() {
 
     /**
-     * 请求架构数据
+     * 请求字典数据
      */
-    fun requestFrame(request: AdmRequest) {
+    fun requestDict(request: AdmRequest, block: (() -> Unit)? = null) {
         viewModelScope.launch {
-            repository.requestFrame(request)
+            repository.requestDict(request)
+            block?.invoke()
         }
     }
 
     /**
-     * 请求字典数据
+     * 请求配置信息
      */
-    fun requestDict(request: AdmRequest) {
+    fun requestConfig(request: AdmRequest, block: (() -> Unit)? = null) {
         viewModelScope.launch {
-            repository.requestDict(request)
+            repository.requestConfig(request)
+            block?.invoke()
         }
     }
 
-    fun requestFrameAndDict(request: AdmRequest, block: (() -> Unit)? = null) {
+    /**
+     * 请求框架数据
+     */
+    fun requestFrame(request: AdmRequest, block: (() -> Unit)? = null) {
         viewModelScope.launch {
             repository.requestFrame(request)
-            repository.requestDict(request)
             block?.invoke()
         }
     }
-    /* 请求建筑数据
-
-     fun requestBuilding(request: AdmRequest, block: ((Building) -> Unit)? = null) {
-         viewModelScope.launch(Dispatchers.IO) {
-             repository.requestBuilding(request, block)
-             val floors = repository.getFloors()
-             floors.forEach {
-                 val strInfo = it.strInfos
-                 if (!strInfo.isNullOrEmpty() && strInfo.contains("floorMap")) {
-                     try {
-                         val info = Json.decodeFromString<FloorInfo>(strInfo)
-                         val map = info.floorMap
-                         val floorMap =
-                             OkhttpUtil.getGzipMap("$IP$pathDownloadMap${map!!}")
-                         it.floorMap = floorMap
-                         repository.updateObject(it)
-                     } catch (e: Exception) {
-                         println("floor map Exception: $e")
-                     }
-                 }
-             }
-
-             println("floor map over !!!, floors: ${floors.size}")
-         }
-     }*/
 
     /**
      * 上传建筑数据

+ 48 - 6
demo/src/main/java/com/sybotan/android/demo/activities/PocActivity.kt

@@ -20,7 +20,6 @@ import com.sybotan.android.demo.bean.AutoUpDateBean
 import com.sybotan.android.demo.tools.CommonUtils
 import com.sybotan.android.demo.tools.DownLoadApk
 import com.sybotan.android.demo.tools.LocalDataOperation
-import com.sybotan.android.demo.tools.ToastUtils
 import com.sybotan.android.demo.viewmodel.GraphyVM
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
@@ -45,7 +44,11 @@ class PocActivity : BaseActivity(), DIAware {
 
     private lateinit var uploadBtn: Button
 
-    private lateinit var frontBtn: Button
+    private lateinit var dictBtn: Button
+
+    private lateinit var configBtn: Button
+
+    private lateinit var frameBtn: Button
 
     private lateinit var version: TextView
 
@@ -55,7 +58,10 @@ class PocActivity : BaseActivity(), DIAware {
         checkStoragePermission()
         downloadBtn = findViewById(R.id.downloadBtn)
         uploadBtn = findViewById(R.id.uploadBtn)
-        frontBtn = findViewById(R.id.frontBtn)
+        dictBtn = findViewById(R.id.dictBtn)
+        configBtn = findViewById(R.id.configBtn)
+        frameBtn = findViewById(R.id.frameBtn)
+
         version = findViewById(R.id.version)
 
         downloadBtn.setOnClickListener {
@@ -85,8 +91,25 @@ class PocActivity : BaseActivity(), DIAware {
             }
         }
 
-        frontBtn.setOnClickListener {
-            mVm.requestFrameAndDict(
+        dictBtn.setOnClickListener {
+            mVm.requestDict(
+                AdmRequest(
+                    userId = "bdtp",
+                    projectId = "0",
+                    groupCode = "JD"
+                )
+            ) {
+                val builder = AlertDialog.Builder(this)
+                val dialog = builder.setMessage("数据字典下载成功")
+                    .setPositiveButton("确定") { dialog, id ->
+                        dialog.dismiss()
+                    }.create()
+                dialog.show()
+            }
+        }
+
+        configBtn.setOnClickListener {
+            mVm.requestConfig(
                 AdmRequest(
                     userId = "bdtp",
                     projectId = "Pj0002220011",
@@ -94,13 +117,32 @@ class PocActivity : BaseActivity(), DIAware {
                 )
             ) {
                 val builder = AlertDialog.Builder(this)
-                val dialog = builder.setMessage("框架数据和数据字典下载成功")
+                val dialog = builder.setMessage("配置信息下载成功")
                     .setPositiveButton("确定") { dialog, id ->
                         dialog.dismiss()
                     }.create()
                 dialog.show()
             }
         }
+
+        frameBtn.setOnClickListener {
+            mVm.requestFrame(
+                AdmRequest(
+                    userId = "bdtp",
+                    projectId = "Pj0002220011",
+                    groupCode = "BR"
+                )
+            ) {
+                val builder = AlertDialog.Builder(this)
+                val dialog = builder.setMessage("框架数据下载成功")
+                    .setPositiveButton("确定") { dialog, id ->
+                        dialog.dismiss()
+                    }.create()
+                dialog.show()
+            }
+        }
+
+
         val spaceCL = findViewById<ConstraintLayout>(R.id.spaceCL)
         spaceCL.setOnClickListener {
             startActivity<SpaceActivity>()

+ 31 - 6
demo/src/main/res/layout/activity_poc.xml

@@ -101,9 +101,9 @@
         android:layout_marginTop="16dp"
         android:text="下载建筑数据"
         android:textSize="18sp"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/frontBtn" />
+        app:layout_constraintEnd_toEndOf="@+id/frameBtn"
+        app:layout_constraintStart_toStartOf="@+id/frameBtn"
+        app:layout_constraintTop_toBottomOf="@+id/frameBtn" />
 
     <Button
         android:id="@+id/uploadBtn"
@@ -113,6 +113,7 @@
         android:text="上传建筑数据"
         android:textSize="18sp"
         app:layout_constraintEnd_toEndOf="@+id/downloadBtn"
+        app:layout_constraintHorizontal_bias="0.0"
         app:layout_constraintStart_toStartOf="@+id/downloadBtn"
         app:layout_constraintTop_toBottomOf="@+id/downloadBtn" />
 
@@ -128,16 +129,40 @@
         app:layout_constraintTop_toBottomOf="@+id/uploadBtn" />
 
     <Button
-        android:id="@+id/frontBtn"
+        android:id="@+id/dictBtn"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:text="下载先导数据"
+        android:text="下载数据字典"
         android:textSize="18sp"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintHorizontal_bias="0.498"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintTop_toTopOf="parent" />
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintVertical_bias="0.38" />
+
+    <Button
+        android:id="@+id/configBtn"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="16dp"
+        android:text="下载配置信息"
+
+        android:textSize="18sp"
+        app:layout_constraintEnd_toEndOf="@+id/dictBtn"
+        app:layout_constraintStart_toStartOf="@+id/dictBtn"
+        app:layout_constraintTop_toBottomOf="@+id/dictBtn" />
+
+    <Button
+        android:id="@+id/frameBtn"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="16dp"
+        android:text="下载框架数据"
+        android:textSize="18sp"
+        app:layout_constraintEnd_toEndOf="@+id/configBtn"
+        app:layout_constraintStart_toStartOf="@+id/configBtn"
+        app:layout_constraintTop_toBottomOf="@+id/configBtn" />
 
 
 </androidx.constraintlayout.widget.ConstraintLayout>