diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index d14814c..6683d37 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -136,10 +136,10 @@ suspend fun uploadImage(@Header("token") token: String, @Part file: MultipartBody.Part): String /** - * 新增事件 + * 安装管盯 */ - @POST("/event/add") - suspend fun addEvent(@Header("token") token: String, @Body requestBody: RequestBody): String + @POST("/v3/device/installTube") + suspend fun install(@Header("token") token: String, @Body requestBody: RequestBody): String /** * 人员申请入场 diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index d14814c..6683d37 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -136,10 +136,10 @@ suspend fun uploadImage(@Header("token") token: String, @Part file: MultipartBody.Part): String /** - * 新增事件 + * 安装管盯 */ - @POST("/event/add") - suspend fun addEvent(@Header("token") token: String, @Body requestBody: RequestBody): String + @POST("/v3/device/installTube") + suspend fun install(@Header("token") token: String, @Body requestBody: RequestBody): String /** * 人员申请入场 diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 5c6a86b..b7a584e 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -1,12 +1,10 @@ package com.casic.br.operationsite.retrofit import android.util.Log -import com.casic.br.operationsite.model.ImageModel import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LocaleConstant import com.google.gson.Gson import com.google.gson.JsonObject -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -108,35 +106,31 @@ } /** - * 新增事件 + * 安装管盯 */ - private val typeToken = object : TypeToken>() {}.type - suspend fun addEvent( - eventTitle: String, - phoneNumber: String, - lng: String, - createTime: String, - eventDescription: String, - id: String, - uploadName: String, - imageList: Array, - lat: String + suspend fun install( + latGPS: String, + latGCJ02: String, + operationUserId: String, + imageUrl: String, + lngGCJ02: String, + lngGPS: String, + deviceId: String, + projectId: String ): String { val param = JsonObject() - param.addProperty("eventTitle", eventTitle) - param.addProperty("phoneNumber", phoneNumber) - param.addProperty("lng", lng) - param.addProperty("createTime", createTime) - param.addProperty("eventDescription", eventDescription) - param.addProperty("id", id) - param.addProperty("uploadName", uploadName) - param.add("imageList", gson.toJsonTree(imageList, typeToken).asJsonArray) - param.addProperty("lat", lat) - + param.addProperty("latGPS", latGPS) + param.addProperty("latGCJ02", latGCJ02) + param.addProperty("operationUserId", operationUserId) + param.addProperty("imageUrl", imageUrl) + param.addProperty("lngGCJ02", lngGCJ02) + param.addProperty("lngGPS", lngGPS) + param.addProperty("deviceId", deviceId) + param.addProperty("projectId", projectId) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) - return api.addEvent(AuthenticationHelper.token!!, requestBody) + return api.install(AuthenticationHelper.token!!, requestBody) } /** diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index d14814c..6683d37 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -136,10 +136,10 @@ suspend fun uploadImage(@Header("token") token: String, @Part file: MultipartBody.Part): String /** - * 新增事件 + * 安装管盯 */ - @POST("/event/add") - suspend fun addEvent(@Header("token") token: String, @Body requestBody: RequestBody): String + @POST("/v3/device/installTube") + suspend fun install(@Header("token") token: String, @Body requestBody: RequestBody): String /** * 人员申请入场 diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 5c6a86b..b7a584e 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -1,12 +1,10 @@ package com.casic.br.operationsite.retrofit import android.util.Log -import com.casic.br.operationsite.model.ImageModel import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LocaleConstant import com.google.gson.Gson import com.google.gson.JsonObject -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -108,35 +106,31 @@ } /** - * 新增事件 + * 安装管盯 */ - private val typeToken = object : TypeToken>() {}.type - suspend fun addEvent( - eventTitle: String, - phoneNumber: String, - lng: String, - createTime: String, - eventDescription: String, - id: String, - uploadName: String, - imageList: Array, - lat: String + suspend fun install( + latGPS: String, + latGCJ02: String, + operationUserId: String, + imageUrl: String, + lngGCJ02: String, + lngGPS: String, + deviceId: String, + projectId: String ): String { val param = JsonObject() - param.addProperty("eventTitle", eventTitle) - param.addProperty("phoneNumber", phoneNumber) - param.addProperty("lng", lng) - param.addProperty("createTime", createTime) - param.addProperty("eventDescription", eventDescription) - param.addProperty("id", id) - param.addProperty("uploadName", uploadName) - param.add("imageList", gson.toJsonTree(imageList, typeToken).asJsonArray) - param.addProperty("lat", lat) - + param.addProperty("latGPS", latGPS) + param.addProperty("latGCJ02", latGCJ02) + param.addProperty("operationUserId", operationUserId) + param.addProperty("imageUrl", imageUrl) + param.addProperty("lngGCJ02", lngGCJ02) + param.addProperty("lngGPS", lngGPS) + param.addProperty("deviceId", deviceId) + param.addProperty("projectId", projectId) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) - return api.addEvent(AuthenticationHelper.token!!, requestBody) + return api.install(AuthenticationHelper.token!!, requestBody) } /** diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt index e0b3c49..fad777c 100644 --- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt @@ -59,6 +59,7 @@ const val ACCOUNT = "account" const val PASSWORD = "password" const val USER_NAME_KEY = "USER_NAME_KEY" + const val USER_ID_KEY = "USER_ID_KEY" const val HELMET_VIDEO_APP_KEY = "fe80b2f021644b1b8c77fda743a83670" const val HELMET_VIDEO_SECRET_KEY = "8771ea6e931d4db646a26f67bcb89909" diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index d14814c..6683d37 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -136,10 +136,10 @@ suspend fun uploadImage(@Header("token") token: String, @Part file: MultipartBody.Part): String /** - * 新增事件 + * 安装管盯 */ - @POST("/event/add") - suspend fun addEvent(@Header("token") token: String, @Body requestBody: RequestBody): String + @POST("/v3/device/installTube") + suspend fun install(@Header("token") token: String, @Body requestBody: RequestBody): String /** * 人员申请入场 diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 5c6a86b..b7a584e 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -1,12 +1,10 @@ package com.casic.br.operationsite.retrofit import android.util.Log -import com.casic.br.operationsite.model.ImageModel import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LocaleConstant import com.google.gson.Gson import com.google.gson.JsonObject -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -108,35 +106,31 @@ } /** - * 新增事件 + * 安装管盯 */ - private val typeToken = object : TypeToken>() {}.type - suspend fun addEvent( - eventTitle: String, - phoneNumber: String, - lng: String, - createTime: String, - eventDescription: String, - id: String, - uploadName: String, - imageList: Array, - lat: String + suspend fun install( + latGPS: String, + latGCJ02: String, + operationUserId: String, + imageUrl: String, + lngGCJ02: String, + lngGPS: String, + deviceId: String, + projectId: String ): String { val param = JsonObject() - param.addProperty("eventTitle", eventTitle) - param.addProperty("phoneNumber", phoneNumber) - param.addProperty("lng", lng) - param.addProperty("createTime", createTime) - param.addProperty("eventDescription", eventDescription) - param.addProperty("id", id) - param.addProperty("uploadName", uploadName) - param.add("imageList", gson.toJsonTree(imageList, typeToken).asJsonArray) - param.addProperty("lat", lat) - + param.addProperty("latGPS", latGPS) + param.addProperty("latGCJ02", latGCJ02) + param.addProperty("operationUserId", operationUserId) + param.addProperty("imageUrl", imageUrl) + param.addProperty("lngGCJ02", lngGCJ02) + param.addProperty("lngGPS", lngGPS) + param.addProperty("deviceId", deviceId) + param.addProperty("projectId", projectId) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) - return api.addEvent(AuthenticationHelper.token!!, requestBody) + return api.install(AuthenticationHelper.token!!, requestBody) } /** diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt index e0b3c49..fad777c 100644 --- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt @@ -59,6 +59,7 @@ const val ACCOUNT = "account" const val PASSWORD = "password" const val USER_NAME_KEY = "USER_NAME_KEY" + const val USER_ID_KEY = "USER_ID_KEY" const val HELMET_VIDEO_APP_KEY = "fe80b2f021644b1b8c77fda743a83670" const val HELMET_VIDEO_SECRET_KEY = "8771ea6e931d4db646a26f67bcb89909" diff --git a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt index 5f03cfa..21507db 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt @@ -42,7 +42,7 @@ class DeviceControlActivity : KotlinBaseActivity() { - private val kTag = "DeviceControlByNativeActivity" + private val kTag = "DeviceControlActivity" private val context = this private val gson by lazy { Gson() } private val connectivityManager by lazy { getSystemService() } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index d14814c..6683d37 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -136,10 +136,10 @@ suspend fun uploadImage(@Header("token") token: String, @Part file: MultipartBody.Part): String /** - * 新增事件 + * 安装管盯 */ - @POST("/event/add") - suspend fun addEvent(@Header("token") token: String, @Body requestBody: RequestBody): String + @POST("/v3/device/installTube") + suspend fun install(@Header("token") token: String, @Body requestBody: RequestBody): String /** * 人员申请入场 diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 5c6a86b..b7a584e 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -1,12 +1,10 @@ package com.casic.br.operationsite.retrofit import android.util.Log -import com.casic.br.operationsite.model.ImageModel import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LocaleConstant import com.google.gson.Gson import com.google.gson.JsonObject -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -108,35 +106,31 @@ } /** - * 新增事件 + * 安装管盯 */ - private val typeToken = object : TypeToken>() {}.type - suspend fun addEvent( - eventTitle: String, - phoneNumber: String, - lng: String, - createTime: String, - eventDescription: String, - id: String, - uploadName: String, - imageList: Array, - lat: String + suspend fun install( + latGPS: String, + latGCJ02: String, + operationUserId: String, + imageUrl: String, + lngGCJ02: String, + lngGPS: String, + deviceId: String, + projectId: String ): String { val param = JsonObject() - param.addProperty("eventTitle", eventTitle) - param.addProperty("phoneNumber", phoneNumber) - param.addProperty("lng", lng) - param.addProperty("createTime", createTime) - param.addProperty("eventDescription", eventDescription) - param.addProperty("id", id) - param.addProperty("uploadName", uploadName) - param.add("imageList", gson.toJsonTree(imageList, typeToken).asJsonArray) - param.addProperty("lat", lat) - + param.addProperty("latGPS", latGPS) + param.addProperty("latGCJ02", latGCJ02) + param.addProperty("operationUserId", operationUserId) + param.addProperty("imageUrl", imageUrl) + param.addProperty("lngGCJ02", lngGCJ02) + param.addProperty("lngGPS", lngGPS) + param.addProperty("deviceId", deviceId) + param.addProperty("projectId", projectId) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) - return api.addEvent(AuthenticationHelper.token!!, requestBody) + return api.install(AuthenticationHelper.token!!, requestBody) } /** diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt index e0b3c49..fad777c 100644 --- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt @@ -59,6 +59,7 @@ const val ACCOUNT = "account" const val PASSWORD = "password" const val USER_NAME_KEY = "USER_NAME_KEY" + const val USER_ID_KEY = "USER_ID_KEY" const val HELMET_VIDEO_APP_KEY = "fe80b2f021644b1b8c77fda743a83670" const val HELMET_VIDEO_SECRET_KEY = "8771ea6e931d4db646a26f67bcb89909" diff --git a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt index 5f03cfa..21507db 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt @@ -42,7 +42,7 @@ class DeviceControlActivity : KotlinBaseActivity() { - private val kTag = "DeviceControlByNativeActivity" + private val kTag = "DeviceControlActivity" private val context = this private val gson by lazy { Gson() } private val connectivityManager by lazy { getSystemService() } diff --git a/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt index 840f1de..1f411c0 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt @@ -20,6 +20,8 @@ import com.casic.br.operationsite.extensions.initImmersionBar import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.utils.QrConfigCreator +import com.casic.br.operationsite.utils.RuntimeCache +import com.casic.br.operationsite.vm.TubeViewModel import com.casic.br.operationsite.vm.UploadFileViewModel import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType @@ -50,6 +52,7 @@ private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集 private val recyclerViewImages: ArrayList = ArrayList() //真实图片路径 private lateinit var uploadFileViewModel: UploadFileViewModel + private lateinit var tubeViewModel: TubeViewModel private lateinit var imageAdapter: EditableImageAdapter override fun initViewBinding(): ActivityInstallEquipmentBinding { @@ -83,6 +86,8 @@ } } + tubeViewModel = ViewModelProvider(this)[TubeViewModel::class.java] + val userName = SaveKeyValues.getValue(LocaleConstant.USER_NAME_KEY, "") as String if (userName.isNotBlank()) { binding.operatorView.setText(userName) @@ -104,6 +109,20 @@ else -> LoadingDialog.dismiss() } } + + tubeViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialog.show(this, "安装中,请稍后...") + + LoadState.Success -> { + LoadingDialog.dismiss() + "安装成功".show(this) + finish() + } + + else -> LoadingDialog.dismiss() + } + } } private val selectLocationLauncher = registerForActivityResult( @@ -162,6 +181,29 @@ "请输入设备编号".show(this) return@setOnClickListener } + + if (binding.longitudeView.text.isNullOrBlank() || binding.latitudeView.text.isNullOrBlank()) { + "请先选择设备安装位置".show(this) + return@setOnClickListener + } + + val userId = SaveKeyValues.getValue(LocaleConstant.USER_ID_KEY, "") as String + val imageUrl = if (imagePaths.isEmpty()) { + "" + } else { + imagePaths.first() + } + tubeViewModel.install( + this, + "", + binding.latitudeView.text.toString(), + userId, + imageUrl, + binding.longitudeView.text.toString(), + "", + binding.deviceCodeView.text.toString(), + RuntimeCache.projectId + ) } } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index d14814c..6683d37 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -136,10 +136,10 @@ suspend fun uploadImage(@Header("token") token: String, @Part file: MultipartBody.Part): String /** - * 新增事件 + * 安装管盯 */ - @POST("/event/add") - suspend fun addEvent(@Header("token") token: String, @Body requestBody: RequestBody): String + @POST("/v3/device/installTube") + suspend fun install(@Header("token") token: String, @Body requestBody: RequestBody): String /** * 人员申请入场 diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 5c6a86b..b7a584e 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -1,12 +1,10 @@ package com.casic.br.operationsite.retrofit import android.util.Log -import com.casic.br.operationsite.model.ImageModel import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LocaleConstant import com.google.gson.Gson import com.google.gson.JsonObject -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -108,35 +106,31 @@ } /** - * 新增事件 + * 安装管盯 */ - private val typeToken = object : TypeToken>() {}.type - suspend fun addEvent( - eventTitle: String, - phoneNumber: String, - lng: String, - createTime: String, - eventDescription: String, - id: String, - uploadName: String, - imageList: Array, - lat: String + suspend fun install( + latGPS: String, + latGCJ02: String, + operationUserId: String, + imageUrl: String, + lngGCJ02: String, + lngGPS: String, + deviceId: String, + projectId: String ): String { val param = JsonObject() - param.addProperty("eventTitle", eventTitle) - param.addProperty("phoneNumber", phoneNumber) - param.addProperty("lng", lng) - param.addProperty("createTime", createTime) - param.addProperty("eventDescription", eventDescription) - param.addProperty("id", id) - param.addProperty("uploadName", uploadName) - param.add("imageList", gson.toJsonTree(imageList, typeToken).asJsonArray) - param.addProperty("lat", lat) - + param.addProperty("latGPS", latGPS) + param.addProperty("latGCJ02", latGCJ02) + param.addProperty("operationUserId", operationUserId) + param.addProperty("imageUrl", imageUrl) + param.addProperty("lngGCJ02", lngGCJ02) + param.addProperty("lngGPS", lngGPS) + param.addProperty("deviceId", deviceId) + param.addProperty("projectId", projectId) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) - return api.addEvent(AuthenticationHelper.token!!, requestBody) + return api.install(AuthenticationHelper.token!!, requestBody) } /** diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt index e0b3c49..fad777c 100644 --- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt @@ -59,6 +59,7 @@ const val ACCOUNT = "account" const val PASSWORD = "password" const val USER_NAME_KEY = "USER_NAME_KEY" + const val USER_ID_KEY = "USER_ID_KEY" const val HELMET_VIDEO_APP_KEY = "fe80b2f021644b1b8c77fda743a83670" const val HELMET_VIDEO_SECRET_KEY = "8771ea6e931d4db646a26f67bcb89909" diff --git a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt index 5f03cfa..21507db 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt @@ -42,7 +42,7 @@ class DeviceControlActivity : KotlinBaseActivity() { - private val kTag = "DeviceControlByNativeActivity" + private val kTag = "DeviceControlActivity" private val context = this private val gson by lazy { Gson() } private val connectivityManager by lazy { getSystemService() } diff --git a/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt index 840f1de..1f411c0 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt @@ -20,6 +20,8 @@ import com.casic.br.operationsite.extensions.initImmersionBar import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.utils.QrConfigCreator +import com.casic.br.operationsite.utils.RuntimeCache +import com.casic.br.operationsite.vm.TubeViewModel import com.casic.br.operationsite.vm.UploadFileViewModel import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType @@ -50,6 +52,7 @@ private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集 private val recyclerViewImages: ArrayList = ArrayList() //真实图片路径 private lateinit var uploadFileViewModel: UploadFileViewModel + private lateinit var tubeViewModel: TubeViewModel private lateinit var imageAdapter: EditableImageAdapter override fun initViewBinding(): ActivityInstallEquipmentBinding { @@ -83,6 +86,8 @@ } } + tubeViewModel = ViewModelProvider(this)[TubeViewModel::class.java] + val userName = SaveKeyValues.getValue(LocaleConstant.USER_NAME_KEY, "") as String if (userName.isNotBlank()) { binding.operatorView.setText(userName) @@ -104,6 +109,20 @@ else -> LoadingDialog.dismiss() } } + + tubeViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialog.show(this, "安装中,请稍后...") + + LoadState.Success -> { + LoadingDialog.dismiss() + "安装成功".show(this) + finish() + } + + else -> LoadingDialog.dismiss() + } + } } private val selectLocationLauncher = registerForActivityResult( @@ -162,6 +181,29 @@ "请输入设备编号".show(this) return@setOnClickListener } + + if (binding.longitudeView.text.isNullOrBlank() || binding.latitudeView.text.isNullOrBlank()) { + "请先选择设备安装位置".show(this) + return@setOnClickListener + } + + val userId = SaveKeyValues.getValue(LocaleConstant.USER_ID_KEY, "") as String + val imageUrl = if (imagePaths.isEmpty()) { + "" + } else { + imagePaths.first() + } + tubeViewModel.install( + this, + "", + binding.latitudeView.text.toString(), + userId, + imageUrl, + binding.longitudeView.text.toString(), + "", + binding.deviceCodeView.text.toString(), + RuntimeCache.projectId + ) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index d1e830d..c292dc5 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -10,7 +10,7 @@ import com.casic.br.operationsite.utils.RSAUtils import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel -import com.casic.br.operationsite.vm.UserDetailViewModel +import com.casic.br.operationsite.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -23,7 +23,7 @@ private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel - private lateinit var userDetailViewModel: UserDetailViewModel + private lateinit var userViewModel: UserViewModel override fun initViewBinding(): ActivityLoginBinding { return ActivityLoginBinding.inflate(layoutInflater) @@ -42,7 +42,7 @@ ) authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] - userDetailViewModel = ViewModelProvider(this)[UserDetailViewModel::class.java] + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] } override fun observeRequestState() { @@ -89,7 +89,7 @@ loginViewModel.enterResultModel.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) - userDetailViewModel.getUserDetail() + userViewModel.getUserDetail() navigatePageTo() finish() } diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index d14814c..6683d37 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -136,10 +136,10 @@ suspend fun uploadImage(@Header("token") token: String, @Part file: MultipartBody.Part): String /** - * 新增事件 + * 安装管盯 */ - @POST("/event/add") - suspend fun addEvent(@Header("token") token: String, @Body requestBody: RequestBody): String + @POST("/v3/device/installTube") + suspend fun install(@Header("token") token: String, @Body requestBody: RequestBody): String /** * 人员申请入场 diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 5c6a86b..b7a584e 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -1,12 +1,10 @@ package com.casic.br.operationsite.retrofit import android.util.Log -import com.casic.br.operationsite.model.ImageModel import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LocaleConstant import com.google.gson.Gson import com.google.gson.JsonObject -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -108,35 +106,31 @@ } /** - * 新增事件 + * 安装管盯 */ - private val typeToken = object : TypeToken>() {}.type - suspend fun addEvent( - eventTitle: String, - phoneNumber: String, - lng: String, - createTime: String, - eventDescription: String, - id: String, - uploadName: String, - imageList: Array, - lat: String + suspend fun install( + latGPS: String, + latGCJ02: String, + operationUserId: String, + imageUrl: String, + lngGCJ02: String, + lngGPS: String, + deviceId: String, + projectId: String ): String { val param = JsonObject() - param.addProperty("eventTitle", eventTitle) - param.addProperty("phoneNumber", phoneNumber) - param.addProperty("lng", lng) - param.addProperty("createTime", createTime) - param.addProperty("eventDescription", eventDescription) - param.addProperty("id", id) - param.addProperty("uploadName", uploadName) - param.add("imageList", gson.toJsonTree(imageList, typeToken).asJsonArray) - param.addProperty("lat", lat) - + param.addProperty("latGPS", latGPS) + param.addProperty("latGCJ02", latGCJ02) + param.addProperty("operationUserId", operationUserId) + param.addProperty("imageUrl", imageUrl) + param.addProperty("lngGCJ02", lngGCJ02) + param.addProperty("lngGPS", lngGPS) + param.addProperty("deviceId", deviceId) + param.addProperty("projectId", projectId) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) - return api.addEvent(AuthenticationHelper.token!!, requestBody) + return api.install(AuthenticationHelper.token!!, requestBody) } /** diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt index e0b3c49..fad777c 100644 --- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt @@ -59,6 +59,7 @@ const val ACCOUNT = "account" const val PASSWORD = "password" const val USER_NAME_KEY = "USER_NAME_KEY" + const val USER_ID_KEY = "USER_ID_KEY" const val HELMET_VIDEO_APP_KEY = "fe80b2f021644b1b8c77fda743a83670" const val HELMET_VIDEO_SECRET_KEY = "8771ea6e931d4db646a26f67bcb89909" diff --git a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt index 5f03cfa..21507db 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt @@ -42,7 +42,7 @@ class DeviceControlActivity : KotlinBaseActivity() { - private val kTag = "DeviceControlByNativeActivity" + private val kTag = "DeviceControlActivity" private val context = this private val gson by lazy { Gson() } private val connectivityManager by lazy { getSystemService() } diff --git a/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt index 840f1de..1f411c0 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt @@ -20,6 +20,8 @@ import com.casic.br.operationsite.extensions.initImmersionBar import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.utils.QrConfigCreator +import com.casic.br.operationsite.utils.RuntimeCache +import com.casic.br.operationsite.vm.TubeViewModel import com.casic.br.operationsite.vm.UploadFileViewModel import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType @@ -50,6 +52,7 @@ private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集 private val recyclerViewImages: ArrayList = ArrayList() //真实图片路径 private lateinit var uploadFileViewModel: UploadFileViewModel + private lateinit var tubeViewModel: TubeViewModel private lateinit var imageAdapter: EditableImageAdapter override fun initViewBinding(): ActivityInstallEquipmentBinding { @@ -83,6 +86,8 @@ } } + tubeViewModel = ViewModelProvider(this)[TubeViewModel::class.java] + val userName = SaveKeyValues.getValue(LocaleConstant.USER_NAME_KEY, "") as String if (userName.isNotBlank()) { binding.operatorView.setText(userName) @@ -104,6 +109,20 @@ else -> LoadingDialog.dismiss() } } + + tubeViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialog.show(this, "安装中,请稍后...") + + LoadState.Success -> { + LoadingDialog.dismiss() + "安装成功".show(this) + finish() + } + + else -> LoadingDialog.dismiss() + } + } } private val selectLocationLauncher = registerForActivityResult( @@ -162,6 +181,29 @@ "请输入设备编号".show(this) return@setOnClickListener } + + if (binding.longitudeView.text.isNullOrBlank() || binding.latitudeView.text.isNullOrBlank()) { + "请先选择设备安装位置".show(this) + return@setOnClickListener + } + + val userId = SaveKeyValues.getValue(LocaleConstant.USER_ID_KEY, "") as String + val imageUrl = if (imagePaths.isEmpty()) { + "" + } else { + imagePaths.first() + } + tubeViewModel.install( + this, + "", + binding.latitudeView.text.toString(), + userId, + imageUrl, + binding.longitudeView.text.toString(), + "", + binding.deviceCodeView.text.toString(), + RuntimeCache.projectId + ) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index d1e830d..c292dc5 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -10,7 +10,7 @@ import com.casic.br.operationsite.utils.RSAUtils import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel -import com.casic.br.operationsite.vm.UserDetailViewModel +import com.casic.br.operationsite.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -23,7 +23,7 @@ private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel - private lateinit var userDetailViewModel: UserDetailViewModel + private lateinit var userViewModel: UserViewModel override fun initViewBinding(): ActivityLoginBinding { return ActivityLoginBinding.inflate(layoutInflater) @@ -42,7 +42,7 @@ ) authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] - userDetailViewModel = ViewModelProvider(this)[UserDetailViewModel::class.java] + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] } override fun observeRequestState() { @@ -89,7 +89,7 @@ loginViewModel.enterResultModel.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) - userDetailViewModel.getUserDetail() + userViewModel.getUserDetail() navigatePageTo() finish() } diff --git a/app/src/main/java/com/casic/br/operationsite/vm/EventViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/EventViewModel.kt deleted file mode 100644 index 6a25667..0000000 --- a/app/src/main/java/com/casic/br/operationsite/vm/EventViewModel.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.br.operationsite.vm - -import android.content.Context -import androidx.lifecycle.MutableLiveData -import com.casic.br.operationsite.extensions.getResponseCode -import com.casic.br.operationsite.extensions.getResponseMessage -import com.casic.br.operationsite.model.CommonResultModel -import com.casic.br.operationsite.model.ImageModel -import com.casic.br.operationsite.retrofit.RetrofitServiceManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.base.BaseViewModel -import com.pengxh.kt.lite.extensions.launch -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState - -class EventViewModel : BaseViewModel() { - private val gson = Gson() - val resultModel = MutableLiveData() - - fun addEvent( - context: Context, - eventTitle: String, - phoneNumber: String, - lng: String, - createTime: String, - eventDescription: String, - id: String, - uploadName: String, - imageList: Array, - lat: String - ) = launch({ - loadState.value = LoadState.Loading - val response = RetrofitServiceManager.addEvent( - eventTitle, - phoneNumber, - lng, - createTime, - eventDescription, - id, - uploadName, - imageList, - lat - ) - when (response.getResponseCode()) { - 200 -> { - loadState.value = LoadState.Success - resultModel.value = gson.fromJson( - response, object : TypeToken() {}.type - ) - } - - else -> { - loadState.value = LoadState.Fail - response.getResponseMessage().show(context) - } - } - }, { - loadState.value = LoadState.Fail - it.printStackTrace() - }) -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index d14814c..6683d37 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -136,10 +136,10 @@ suspend fun uploadImage(@Header("token") token: String, @Part file: MultipartBody.Part): String /** - * 新增事件 + * 安装管盯 */ - @POST("/event/add") - suspend fun addEvent(@Header("token") token: String, @Body requestBody: RequestBody): String + @POST("/v3/device/installTube") + suspend fun install(@Header("token") token: String, @Body requestBody: RequestBody): String /** * 人员申请入场 diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 5c6a86b..b7a584e 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -1,12 +1,10 @@ package com.casic.br.operationsite.retrofit import android.util.Log -import com.casic.br.operationsite.model.ImageModel import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LocaleConstant import com.google.gson.Gson import com.google.gson.JsonObject -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -108,35 +106,31 @@ } /** - * 新增事件 + * 安装管盯 */ - private val typeToken = object : TypeToken>() {}.type - suspend fun addEvent( - eventTitle: String, - phoneNumber: String, - lng: String, - createTime: String, - eventDescription: String, - id: String, - uploadName: String, - imageList: Array, - lat: String + suspend fun install( + latGPS: String, + latGCJ02: String, + operationUserId: String, + imageUrl: String, + lngGCJ02: String, + lngGPS: String, + deviceId: String, + projectId: String ): String { val param = JsonObject() - param.addProperty("eventTitle", eventTitle) - param.addProperty("phoneNumber", phoneNumber) - param.addProperty("lng", lng) - param.addProperty("createTime", createTime) - param.addProperty("eventDescription", eventDescription) - param.addProperty("id", id) - param.addProperty("uploadName", uploadName) - param.add("imageList", gson.toJsonTree(imageList, typeToken).asJsonArray) - param.addProperty("lat", lat) - + param.addProperty("latGPS", latGPS) + param.addProperty("latGCJ02", latGCJ02) + param.addProperty("operationUserId", operationUserId) + param.addProperty("imageUrl", imageUrl) + param.addProperty("lngGCJ02", lngGCJ02) + param.addProperty("lngGPS", lngGPS) + param.addProperty("deviceId", deviceId) + param.addProperty("projectId", projectId) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) - return api.addEvent(AuthenticationHelper.token!!, requestBody) + return api.install(AuthenticationHelper.token!!, requestBody) } /** diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt index e0b3c49..fad777c 100644 --- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt @@ -59,6 +59,7 @@ const val ACCOUNT = "account" const val PASSWORD = "password" const val USER_NAME_KEY = "USER_NAME_KEY" + const val USER_ID_KEY = "USER_ID_KEY" const val HELMET_VIDEO_APP_KEY = "fe80b2f021644b1b8c77fda743a83670" const val HELMET_VIDEO_SECRET_KEY = "8771ea6e931d4db646a26f67bcb89909" diff --git a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt index 5f03cfa..21507db 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt @@ -42,7 +42,7 @@ class DeviceControlActivity : KotlinBaseActivity() { - private val kTag = "DeviceControlByNativeActivity" + private val kTag = "DeviceControlActivity" private val context = this private val gson by lazy { Gson() } private val connectivityManager by lazy { getSystemService() } diff --git a/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt index 840f1de..1f411c0 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt @@ -20,6 +20,8 @@ import com.casic.br.operationsite.extensions.initImmersionBar import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.utils.QrConfigCreator +import com.casic.br.operationsite.utils.RuntimeCache +import com.casic.br.operationsite.vm.TubeViewModel import com.casic.br.operationsite.vm.UploadFileViewModel import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType @@ -50,6 +52,7 @@ private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集 private val recyclerViewImages: ArrayList = ArrayList() //真实图片路径 private lateinit var uploadFileViewModel: UploadFileViewModel + private lateinit var tubeViewModel: TubeViewModel private lateinit var imageAdapter: EditableImageAdapter override fun initViewBinding(): ActivityInstallEquipmentBinding { @@ -83,6 +86,8 @@ } } + tubeViewModel = ViewModelProvider(this)[TubeViewModel::class.java] + val userName = SaveKeyValues.getValue(LocaleConstant.USER_NAME_KEY, "") as String if (userName.isNotBlank()) { binding.operatorView.setText(userName) @@ -104,6 +109,20 @@ else -> LoadingDialog.dismiss() } } + + tubeViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialog.show(this, "安装中,请稍后...") + + LoadState.Success -> { + LoadingDialog.dismiss() + "安装成功".show(this) + finish() + } + + else -> LoadingDialog.dismiss() + } + } } private val selectLocationLauncher = registerForActivityResult( @@ -162,6 +181,29 @@ "请输入设备编号".show(this) return@setOnClickListener } + + if (binding.longitudeView.text.isNullOrBlank() || binding.latitudeView.text.isNullOrBlank()) { + "请先选择设备安装位置".show(this) + return@setOnClickListener + } + + val userId = SaveKeyValues.getValue(LocaleConstant.USER_ID_KEY, "") as String + val imageUrl = if (imagePaths.isEmpty()) { + "" + } else { + imagePaths.first() + } + tubeViewModel.install( + this, + "", + binding.latitudeView.text.toString(), + userId, + imageUrl, + binding.longitudeView.text.toString(), + "", + binding.deviceCodeView.text.toString(), + RuntimeCache.projectId + ) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index d1e830d..c292dc5 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -10,7 +10,7 @@ import com.casic.br.operationsite.utils.RSAUtils import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel -import com.casic.br.operationsite.vm.UserDetailViewModel +import com.casic.br.operationsite.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -23,7 +23,7 @@ private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel - private lateinit var userDetailViewModel: UserDetailViewModel + private lateinit var userViewModel: UserViewModel override fun initViewBinding(): ActivityLoginBinding { return ActivityLoginBinding.inflate(layoutInflater) @@ -42,7 +42,7 @@ ) authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] - userDetailViewModel = ViewModelProvider(this)[UserDetailViewModel::class.java] + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] } override fun observeRequestState() { @@ -89,7 +89,7 @@ loginViewModel.enterResultModel.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) - userDetailViewModel.getUserDetail() + userViewModel.getUserDetail() navigatePageTo() finish() } diff --git a/app/src/main/java/com/casic/br/operationsite/vm/EventViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/EventViewModel.kt deleted file mode 100644 index 6a25667..0000000 --- a/app/src/main/java/com/casic/br/operationsite/vm/EventViewModel.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.br.operationsite.vm - -import android.content.Context -import androidx.lifecycle.MutableLiveData -import com.casic.br.operationsite.extensions.getResponseCode -import com.casic.br.operationsite.extensions.getResponseMessage -import com.casic.br.operationsite.model.CommonResultModel -import com.casic.br.operationsite.model.ImageModel -import com.casic.br.operationsite.retrofit.RetrofitServiceManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.base.BaseViewModel -import com.pengxh.kt.lite.extensions.launch -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState - -class EventViewModel : BaseViewModel() { - private val gson = Gson() - val resultModel = MutableLiveData() - - fun addEvent( - context: Context, - eventTitle: String, - phoneNumber: String, - lng: String, - createTime: String, - eventDescription: String, - id: String, - uploadName: String, - imageList: Array, - lat: String - ) = launch({ - loadState.value = LoadState.Loading - val response = RetrofitServiceManager.addEvent( - eventTitle, - phoneNumber, - lng, - createTime, - eventDescription, - id, - uploadName, - imageList, - lat - ) - when (response.getResponseCode()) { - 200 -> { - loadState.value = LoadState.Success - resultModel.value = gson.fromJson( - response, object : TypeToken() {}.type - ) - } - - else -> { - loadState.value = LoadState.Fail - response.getResponseMessage().show(context) - } - } - }, { - loadState.value = LoadState.Fail - it.printStackTrace() - }) -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/vm/TubeViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/TubeViewModel.kt new file mode 100644 index 0000000..3849d2e --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/vm/TubeViewModel.kt @@ -0,0 +1,40 @@ +package com.casic.br.operationsite.vm + +import android.content.Context +import com.casic.br.operationsite.extensions.getResponseCode +import com.casic.br.operationsite.extensions.getResponseMessage +import com.casic.br.operationsite.retrofit.RetrofitServiceManager +import com.pengxh.kt.lite.base.BaseViewModel +import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.LoadState + +class TubeViewModel : BaseViewModel() { + fun install( + context: Context, + latGPS: String, + latGCJ02: String, + operationUserId: String, + imageUrl: String, + lngGCJ02: String, + lngGPS: String, + deviceId: String, + projectId: String + ) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.install( + latGPS, latGCJ02, operationUserId, imageUrl, lngGCJ02, lngGPS, deviceId, projectId + ) + when (response.getResponseCode()) { + 200 -> loadState.value = LoadState.Success + + else -> { + loadState.value = LoadState.Fail + response.getResponseMessage().show(context) + } + } + }, { + loadState.value = LoadState.Fail + it.printStackTrace() + }) +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index d14814c..6683d37 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -136,10 +136,10 @@ suspend fun uploadImage(@Header("token") token: String, @Part file: MultipartBody.Part): String /** - * 新增事件 + * 安装管盯 */ - @POST("/event/add") - suspend fun addEvent(@Header("token") token: String, @Body requestBody: RequestBody): String + @POST("/v3/device/installTube") + suspend fun install(@Header("token") token: String, @Body requestBody: RequestBody): String /** * 人员申请入场 diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 5c6a86b..b7a584e 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -1,12 +1,10 @@ package com.casic.br.operationsite.retrofit import android.util.Log -import com.casic.br.operationsite.model.ImageModel import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LocaleConstant import com.google.gson.Gson import com.google.gson.JsonObject -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -108,35 +106,31 @@ } /** - * 新增事件 + * 安装管盯 */ - private val typeToken = object : TypeToken>() {}.type - suspend fun addEvent( - eventTitle: String, - phoneNumber: String, - lng: String, - createTime: String, - eventDescription: String, - id: String, - uploadName: String, - imageList: Array, - lat: String + suspend fun install( + latGPS: String, + latGCJ02: String, + operationUserId: String, + imageUrl: String, + lngGCJ02: String, + lngGPS: String, + deviceId: String, + projectId: String ): String { val param = JsonObject() - param.addProperty("eventTitle", eventTitle) - param.addProperty("phoneNumber", phoneNumber) - param.addProperty("lng", lng) - param.addProperty("createTime", createTime) - param.addProperty("eventDescription", eventDescription) - param.addProperty("id", id) - param.addProperty("uploadName", uploadName) - param.add("imageList", gson.toJsonTree(imageList, typeToken).asJsonArray) - param.addProperty("lat", lat) - + param.addProperty("latGPS", latGPS) + param.addProperty("latGCJ02", latGCJ02) + param.addProperty("operationUserId", operationUserId) + param.addProperty("imageUrl", imageUrl) + param.addProperty("lngGCJ02", lngGCJ02) + param.addProperty("lngGPS", lngGPS) + param.addProperty("deviceId", deviceId) + param.addProperty("projectId", projectId) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) - return api.addEvent(AuthenticationHelper.token!!, requestBody) + return api.install(AuthenticationHelper.token!!, requestBody) } /** diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt index e0b3c49..fad777c 100644 --- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt @@ -59,6 +59,7 @@ const val ACCOUNT = "account" const val PASSWORD = "password" const val USER_NAME_KEY = "USER_NAME_KEY" + const val USER_ID_KEY = "USER_ID_KEY" const val HELMET_VIDEO_APP_KEY = "fe80b2f021644b1b8c77fda743a83670" const val HELMET_VIDEO_SECRET_KEY = "8771ea6e931d4db646a26f67bcb89909" diff --git a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt index 5f03cfa..21507db 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt @@ -42,7 +42,7 @@ class DeviceControlActivity : KotlinBaseActivity() { - private val kTag = "DeviceControlByNativeActivity" + private val kTag = "DeviceControlActivity" private val context = this private val gson by lazy { Gson() } private val connectivityManager by lazy { getSystemService() } diff --git a/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt index 840f1de..1f411c0 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt @@ -20,6 +20,8 @@ import com.casic.br.operationsite.extensions.initImmersionBar import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.utils.QrConfigCreator +import com.casic.br.operationsite.utils.RuntimeCache +import com.casic.br.operationsite.vm.TubeViewModel import com.casic.br.operationsite.vm.UploadFileViewModel import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType @@ -50,6 +52,7 @@ private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集 private val recyclerViewImages: ArrayList = ArrayList() //真实图片路径 private lateinit var uploadFileViewModel: UploadFileViewModel + private lateinit var tubeViewModel: TubeViewModel private lateinit var imageAdapter: EditableImageAdapter override fun initViewBinding(): ActivityInstallEquipmentBinding { @@ -83,6 +86,8 @@ } } + tubeViewModel = ViewModelProvider(this)[TubeViewModel::class.java] + val userName = SaveKeyValues.getValue(LocaleConstant.USER_NAME_KEY, "") as String if (userName.isNotBlank()) { binding.operatorView.setText(userName) @@ -104,6 +109,20 @@ else -> LoadingDialog.dismiss() } } + + tubeViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialog.show(this, "安装中,请稍后...") + + LoadState.Success -> { + LoadingDialog.dismiss() + "安装成功".show(this) + finish() + } + + else -> LoadingDialog.dismiss() + } + } } private val selectLocationLauncher = registerForActivityResult( @@ -162,6 +181,29 @@ "请输入设备编号".show(this) return@setOnClickListener } + + if (binding.longitudeView.text.isNullOrBlank() || binding.latitudeView.text.isNullOrBlank()) { + "请先选择设备安装位置".show(this) + return@setOnClickListener + } + + val userId = SaveKeyValues.getValue(LocaleConstant.USER_ID_KEY, "") as String + val imageUrl = if (imagePaths.isEmpty()) { + "" + } else { + imagePaths.first() + } + tubeViewModel.install( + this, + "", + binding.latitudeView.text.toString(), + userId, + imageUrl, + binding.longitudeView.text.toString(), + "", + binding.deviceCodeView.text.toString(), + RuntimeCache.projectId + ) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index d1e830d..c292dc5 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -10,7 +10,7 @@ import com.casic.br.operationsite.utils.RSAUtils import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel -import com.casic.br.operationsite.vm.UserDetailViewModel +import com.casic.br.operationsite.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -23,7 +23,7 @@ private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel - private lateinit var userDetailViewModel: UserDetailViewModel + private lateinit var userViewModel: UserViewModel override fun initViewBinding(): ActivityLoginBinding { return ActivityLoginBinding.inflate(layoutInflater) @@ -42,7 +42,7 @@ ) authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] - userDetailViewModel = ViewModelProvider(this)[UserDetailViewModel::class.java] + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] } override fun observeRequestState() { @@ -89,7 +89,7 @@ loginViewModel.enterResultModel.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) - userDetailViewModel.getUserDetail() + userViewModel.getUserDetail() navigatePageTo() finish() } diff --git a/app/src/main/java/com/casic/br/operationsite/vm/EventViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/EventViewModel.kt deleted file mode 100644 index 6a25667..0000000 --- a/app/src/main/java/com/casic/br/operationsite/vm/EventViewModel.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.br.operationsite.vm - -import android.content.Context -import androidx.lifecycle.MutableLiveData -import com.casic.br.operationsite.extensions.getResponseCode -import com.casic.br.operationsite.extensions.getResponseMessage -import com.casic.br.operationsite.model.CommonResultModel -import com.casic.br.operationsite.model.ImageModel -import com.casic.br.operationsite.retrofit.RetrofitServiceManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.base.BaseViewModel -import com.pengxh.kt.lite.extensions.launch -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState - -class EventViewModel : BaseViewModel() { - private val gson = Gson() - val resultModel = MutableLiveData() - - fun addEvent( - context: Context, - eventTitle: String, - phoneNumber: String, - lng: String, - createTime: String, - eventDescription: String, - id: String, - uploadName: String, - imageList: Array, - lat: String - ) = launch({ - loadState.value = LoadState.Loading - val response = RetrofitServiceManager.addEvent( - eventTitle, - phoneNumber, - lng, - createTime, - eventDescription, - id, - uploadName, - imageList, - lat - ) - when (response.getResponseCode()) { - 200 -> { - loadState.value = LoadState.Success - resultModel.value = gson.fromJson( - response, object : TypeToken() {}.type - ) - } - - else -> { - loadState.value = LoadState.Fail - response.getResponseMessage().show(context) - } - } - }, { - loadState.value = LoadState.Fail - it.printStackTrace() - }) -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/vm/TubeViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/TubeViewModel.kt new file mode 100644 index 0000000..3849d2e --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/vm/TubeViewModel.kt @@ -0,0 +1,40 @@ +package com.casic.br.operationsite.vm + +import android.content.Context +import com.casic.br.operationsite.extensions.getResponseCode +import com.casic.br.operationsite.extensions.getResponseMessage +import com.casic.br.operationsite.retrofit.RetrofitServiceManager +import com.pengxh.kt.lite.base.BaseViewModel +import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.LoadState + +class TubeViewModel : BaseViewModel() { + fun install( + context: Context, + latGPS: String, + latGCJ02: String, + operationUserId: String, + imageUrl: String, + lngGCJ02: String, + lngGPS: String, + deviceId: String, + projectId: String + ) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.install( + latGPS, latGCJ02, operationUserId, imageUrl, lngGCJ02, lngGPS, deviceId, projectId + ) + when (response.getResponseCode()) { + 200 -> loadState.value = LoadState.Success + + else -> { + loadState.value = LoadState.Fail + response.getResponseMessage().show(context) + } + } + }, { + loadState.value = LoadState.Fail + it.printStackTrace() + }) +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/vm/UserDetailViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/UserDetailViewModel.kt deleted file mode 100644 index 10e9a26..0000000 --- a/app/src/main/java/com/casic/br/operationsite/vm/UserDetailViewModel.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.casic.br.operationsite.vm - -import com.casic.br.operationsite.extensions.getResponseCode -import com.casic.br.operationsite.model.UserDetailModel -import com.casic.br.operationsite.retrofit.RetrofitServiceManager -import com.casic.br.operationsite.utils.LocaleConstant -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.base.BaseViewModel -import com.pengxh.kt.lite.extensions.launch -import com.pengxh.kt.lite.utils.LoadState -import com.pengxh.kt.lite.utils.SaveKeyValues - -class UserDetailViewModel : BaseViewModel() { - - private val gson = Gson() - - fun getUserDetail() = launch({ - loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getUserDetail() - val responseCode = response.getResponseCode() - if (responseCode == 200) { - val userDetail = gson.fromJson( - response, object : TypeToken() {}.type - ) - SaveKeyValues.putValue(LocaleConstant.USER_NAME_KEY, userDetail.data.name) - loadState.value = LoadState.Success - } else { - loadState.value = LoadState.Fail - } - }, { - loadState.value = LoadState.Fail - it.printStackTrace() - }) -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt index d14814c..6683d37 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitService.kt @@ -136,10 +136,10 @@ suspend fun uploadImage(@Header("token") token: String, @Part file: MultipartBody.Part): String /** - * 新增事件 + * 安装管盯 */ - @POST("/event/add") - suspend fun addEvent(@Header("token") token: String, @Body requestBody: RequestBody): String + @POST("/v3/device/installTube") + suspend fun install(@Header("token") token: String, @Body requestBody: RequestBody): String /** * 人员申请入场 diff --git a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt index 5c6a86b..b7a584e 100644 --- a/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt +++ b/app/src/main/java/com/casic/br/operationsite/retrofit/RetrofitServiceManager.kt @@ -1,12 +1,10 @@ package com.casic.br.operationsite.retrofit import android.util.Log -import com.casic.br.operationsite.model.ImageModel import com.casic.br.operationsite.utils.AuthenticationHelper import com.casic.br.operationsite.utils.LocaleConstant import com.google.gson.Gson import com.google.gson.JsonObject -import com.google.gson.reflect.TypeToken import com.pengxh.kt.lite.extensions.toJson import com.pengxh.kt.lite.utils.RetrofitFactory import com.pengxh.kt.lite.utils.SaveKeyValues @@ -108,35 +106,31 @@ } /** - * 新增事件 + * 安装管盯 */ - private val typeToken = object : TypeToken>() {}.type - suspend fun addEvent( - eventTitle: String, - phoneNumber: String, - lng: String, - createTime: String, - eventDescription: String, - id: String, - uploadName: String, - imageList: Array, - lat: String + suspend fun install( + latGPS: String, + latGCJ02: String, + operationUserId: String, + imageUrl: String, + lngGCJ02: String, + lngGPS: String, + deviceId: String, + projectId: String ): String { val param = JsonObject() - param.addProperty("eventTitle", eventTitle) - param.addProperty("phoneNumber", phoneNumber) - param.addProperty("lng", lng) - param.addProperty("createTime", createTime) - param.addProperty("eventDescription", eventDescription) - param.addProperty("id", id) - param.addProperty("uploadName", uploadName) - param.add("imageList", gson.toJsonTree(imageList, typeToken).asJsonArray) - param.addProperty("lat", lat) - + param.addProperty("latGPS", latGPS) + param.addProperty("latGCJ02", latGCJ02) + param.addProperty("operationUserId", operationUserId) + param.addProperty("imageUrl", imageUrl) + param.addProperty("lngGCJ02", lngGCJ02) + param.addProperty("lngGPS", lngGPS) + param.addProperty("deviceId", deviceId) + param.addProperty("projectId", projectId) val requestBody = param.toString().toRequestBody( "application/json;charset=UTF-8".toMediaType() ) - return api.addEvent(AuthenticationHelper.token!!, requestBody) + return api.install(AuthenticationHelper.token!!, requestBody) } /** diff --git a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt index e0b3c49..fad777c 100644 --- a/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/br/operationsite/utils/LocaleConstant.kt @@ -59,6 +59,7 @@ const val ACCOUNT = "account" const val PASSWORD = "password" const val USER_NAME_KEY = "USER_NAME_KEY" + const val USER_ID_KEY = "USER_ID_KEY" const val HELMET_VIDEO_APP_KEY = "fe80b2f021644b1b8c77fda743a83670" const val HELMET_VIDEO_SECRET_KEY = "8771ea6e931d4db646a26f67bcb89909" diff --git a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt index 5f03cfa..21507db 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/DeviceControlActivity.kt @@ -42,7 +42,7 @@ class DeviceControlActivity : KotlinBaseActivity() { - private val kTag = "DeviceControlByNativeActivity" + private val kTag = "DeviceControlActivity" private val context = this private val gson by lazy { Gson() } private val connectivityManager by lazy { getSystemService() } diff --git a/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt index 840f1de..1f411c0 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/InstallEquipmentActivity.kt @@ -20,6 +20,8 @@ import com.casic.br.operationsite.extensions.initImmersionBar import com.casic.br.operationsite.utils.LocaleConstant import com.casic.br.operationsite.utils.QrConfigCreator +import com.casic.br.operationsite.utils.RuntimeCache +import com.casic.br.operationsite.vm.TubeViewModel import com.casic.br.operationsite.vm.UploadFileViewModel import com.luck.picture.lib.basic.PictureSelector import com.luck.picture.lib.config.SelectMimeType @@ -50,6 +52,7 @@ private val imagePaths: ArrayList = ArrayList() //服务器返回的拍照数据集 private val recyclerViewImages: ArrayList = ArrayList() //真实图片路径 private lateinit var uploadFileViewModel: UploadFileViewModel + private lateinit var tubeViewModel: TubeViewModel private lateinit var imageAdapter: EditableImageAdapter override fun initViewBinding(): ActivityInstallEquipmentBinding { @@ -83,6 +86,8 @@ } } + tubeViewModel = ViewModelProvider(this)[TubeViewModel::class.java] + val userName = SaveKeyValues.getValue(LocaleConstant.USER_NAME_KEY, "") as String if (userName.isNotBlank()) { binding.operatorView.setText(userName) @@ -104,6 +109,20 @@ else -> LoadingDialog.dismiss() } } + + tubeViewModel.loadState.observe(this) { + when (it) { + LoadState.Loading -> LoadingDialog.show(this, "安装中,请稍后...") + + LoadState.Success -> { + LoadingDialog.dismiss() + "安装成功".show(this) + finish() + } + + else -> LoadingDialog.dismiss() + } + } } private val selectLocationLauncher = registerForActivityResult( @@ -162,6 +181,29 @@ "请输入设备编号".show(this) return@setOnClickListener } + + if (binding.longitudeView.text.isNullOrBlank() || binding.latitudeView.text.isNullOrBlank()) { + "请先选择设备安装位置".show(this) + return@setOnClickListener + } + + val userId = SaveKeyValues.getValue(LocaleConstant.USER_ID_KEY, "") as String + val imageUrl = if (imagePaths.isEmpty()) { + "" + } else { + imagePaths.first() + } + tubeViewModel.install( + this, + "", + binding.latitudeView.text.toString(), + userId, + imageUrl, + binding.longitudeView.text.toString(), + "", + binding.deviceCodeView.text.toString(), + RuntimeCache.projectId + ) } } diff --git a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt index d1e830d..c292dc5 100644 --- a/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt +++ b/app/src/main/java/com/casic/br/operationsite/view/LoginActivity.kt @@ -10,7 +10,7 @@ import com.casic.br.operationsite.utils.RSAUtils import com.casic.br.operationsite.vm.AuthenticateViewModel import com.casic.br.operationsite.vm.LoginViewModel -import com.casic.br.operationsite.vm.UserDetailViewModel +import com.casic.br.operationsite.vm.UserViewModel import com.pengxh.kt.lite.base.KotlinBaseActivity import com.pengxh.kt.lite.extensions.navigatePageTo import com.pengxh.kt.lite.extensions.show @@ -23,7 +23,7 @@ private lateinit var authenticateViewModel: AuthenticateViewModel private lateinit var loginViewModel: LoginViewModel - private lateinit var userDetailViewModel: UserDetailViewModel + private lateinit var userViewModel: UserViewModel override fun initViewBinding(): ActivityLoginBinding { return ActivityLoginBinding.inflate(layoutInflater) @@ -42,7 +42,7 @@ ) authenticateViewModel = ViewModelProvider(this)[AuthenticateViewModel::class.java] loginViewModel = ViewModelProvider(this)[LoginViewModel::class.java] - userDetailViewModel = ViewModelProvider(this)[UserDetailViewModel::class.java] + userViewModel = ViewModelProvider(this)[UserViewModel::class.java] } override fun observeRequestState() { @@ -89,7 +89,7 @@ loginViewModel.enterResultModel.observe(this) { loginResult -> if (loginResult.code == 200) { AuthenticationHelper.saveToken(loginResult.data!!.token!!) - userDetailViewModel.getUserDetail() + userViewModel.getUserDetail() navigatePageTo() finish() } diff --git a/app/src/main/java/com/casic/br/operationsite/vm/EventViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/EventViewModel.kt deleted file mode 100644 index 6a25667..0000000 --- a/app/src/main/java/com/casic/br/operationsite/vm/EventViewModel.kt +++ /dev/null @@ -1,62 +0,0 @@ -package com.casic.br.operationsite.vm - -import android.content.Context -import androidx.lifecycle.MutableLiveData -import com.casic.br.operationsite.extensions.getResponseCode -import com.casic.br.operationsite.extensions.getResponseMessage -import com.casic.br.operationsite.model.CommonResultModel -import com.casic.br.operationsite.model.ImageModel -import com.casic.br.operationsite.retrofit.RetrofitServiceManager -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.base.BaseViewModel -import com.pengxh.kt.lite.extensions.launch -import com.pengxh.kt.lite.extensions.show -import com.pengxh.kt.lite.utils.LoadState - -class EventViewModel : BaseViewModel() { - private val gson = Gson() - val resultModel = MutableLiveData() - - fun addEvent( - context: Context, - eventTitle: String, - phoneNumber: String, - lng: String, - createTime: String, - eventDescription: String, - id: String, - uploadName: String, - imageList: Array, - lat: String - ) = launch({ - loadState.value = LoadState.Loading - val response = RetrofitServiceManager.addEvent( - eventTitle, - phoneNumber, - lng, - createTime, - eventDescription, - id, - uploadName, - imageList, - lat - ) - when (response.getResponseCode()) { - 200 -> { - loadState.value = LoadState.Success - resultModel.value = gson.fromJson( - response, object : TypeToken() {}.type - ) - } - - else -> { - loadState.value = LoadState.Fail - response.getResponseMessage().show(context) - } - } - }, { - loadState.value = LoadState.Fail - it.printStackTrace() - }) -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/vm/TubeViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/TubeViewModel.kt new file mode 100644 index 0000000..3849d2e --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/vm/TubeViewModel.kt @@ -0,0 +1,40 @@ +package com.casic.br.operationsite.vm + +import android.content.Context +import com.casic.br.operationsite.extensions.getResponseCode +import com.casic.br.operationsite.extensions.getResponseMessage +import com.casic.br.operationsite.retrofit.RetrofitServiceManager +import com.pengxh.kt.lite.base.BaseViewModel +import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.extensions.show +import com.pengxh.kt.lite.utils.LoadState + +class TubeViewModel : BaseViewModel() { + fun install( + context: Context, + latGPS: String, + latGCJ02: String, + operationUserId: String, + imageUrl: String, + lngGCJ02: String, + lngGPS: String, + deviceId: String, + projectId: String + ) = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.install( + latGPS, latGCJ02, operationUserId, imageUrl, lngGCJ02, lngGPS, deviceId, projectId + ) + when (response.getResponseCode()) { + 200 -> loadState.value = LoadState.Success + + else -> { + loadState.value = LoadState.Fail + response.getResponseMessage().show(context) + } + } + }, { + loadState.value = LoadState.Fail + it.printStackTrace() + }) +} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/vm/UserDetailViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/UserDetailViewModel.kt deleted file mode 100644 index 10e9a26..0000000 --- a/app/src/main/java/com/casic/br/operationsite/vm/UserDetailViewModel.kt +++ /dev/null @@ -1,35 +0,0 @@ -package com.casic.br.operationsite.vm - -import com.casic.br.operationsite.extensions.getResponseCode -import com.casic.br.operationsite.model.UserDetailModel -import com.casic.br.operationsite.retrofit.RetrofitServiceManager -import com.casic.br.operationsite.utils.LocaleConstant -import com.google.gson.Gson -import com.google.gson.reflect.TypeToken -import com.pengxh.kt.lite.base.BaseViewModel -import com.pengxh.kt.lite.extensions.launch -import com.pengxh.kt.lite.utils.LoadState -import com.pengxh.kt.lite.utils.SaveKeyValues - -class UserDetailViewModel : BaseViewModel() { - - private val gson = Gson() - - fun getUserDetail() = launch({ - loadState.value = LoadState.Loading - val response = RetrofitServiceManager.getUserDetail() - val responseCode = response.getResponseCode() - if (responseCode == 200) { - val userDetail = gson.fromJson( - response, object : TypeToken() {}.type - ) - SaveKeyValues.putValue(LocaleConstant.USER_NAME_KEY, userDetail.data.name) - loadState.value = LoadState.Success - } else { - loadState.value = LoadState.Fail - } - }, { - loadState.value = LoadState.Fail - it.printStackTrace() - }) -} \ No newline at end of file diff --git a/app/src/main/java/com/casic/br/operationsite/vm/UserViewModel.kt b/app/src/main/java/com/casic/br/operationsite/vm/UserViewModel.kt new file mode 100644 index 0000000..29ae785 --- /dev/null +++ b/app/src/main/java/com/casic/br/operationsite/vm/UserViewModel.kt @@ -0,0 +1,36 @@ +package com.casic.br.operationsite.vm + +import com.casic.br.operationsite.extensions.getResponseCode +import com.casic.br.operationsite.model.UserDetailModel +import com.casic.br.operationsite.retrofit.RetrofitServiceManager +import com.casic.br.operationsite.utils.LocaleConstant +import com.google.gson.Gson +import com.google.gson.reflect.TypeToken +import com.pengxh.kt.lite.base.BaseViewModel +import com.pengxh.kt.lite.extensions.launch +import com.pengxh.kt.lite.utils.LoadState +import com.pengxh.kt.lite.utils.SaveKeyValues + +class UserViewModel : BaseViewModel() { + + private val gson = Gson() + + fun getUserDetail() = launch({ + loadState.value = LoadState.Loading + val response = RetrofitServiceManager.getUserDetail() + val responseCode = response.getResponseCode() + if (responseCode == 200) { + val userDetail = gson.fromJson( + response, object : TypeToken() {}.type + ) + SaveKeyValues.putValue(LocaleConstant.USER_NAME_KEY, userDetail.data.name) + SaveKeyValues.putValue(LocaleConstant.USER_ID_KEY, userDetail.data.id) + loadState.value = LoadState.Success + } else { + loadState.value = LoadState.Fail + } + }, { + loadState.value = LoadState.Fail + it.printStackTrace() + }) +} \ No newline at end of file