From 7bc0929de16396ed06459872c8d0fb7cd7f30b0c Mon Sep 17 00:00:00 2001
From: 18034727885 <973609879@qq.com>
Date: 星期三, 15 四月 2026 21:14:45 +0800
Subject: [PATCH] 修复问题
---
app/src/main/java/com/xw/yunwei/net/WorkRepository.kt | 10 +++--
app/src/main/res/layout/item_picture_operation.xml | 6 +-
common/src/main/java/com/xw/common/utils/GlideEngine.java | 3 +
app/src/main/java/com/xw/yunwei/net/WorkApi.kt | 2
app/src/main/java/com/xw/yunwei/ui/work/site/viewmodel/SiteErrorUploadVM.kt | 45 ++++++++++++++--------
gradle/wrapper/gradle-wrapper.properties | 6 +-
app/src/main/java/com/xw/yunwei/ui/work/site/SiteErrorUploadActivity.kt | 14 ++++++-
7 files changed, 56 insertions(+), 30 deletions(-)
diff --git a/app/src/main/java/com/xw/yunwei/net/WorkApi.kt b/app/src/main/java/com/xw/yunwei/net/WorkApi.kt
index bd6fd63..60ef704 100644
--- a/app/src/main/java/com/xw/yunwei/net/WorkApi.kt
+++ b/app/src/main/java/com/xw/yunwei/net/WorkApi.kt
@@ -137,5 +137,5 @@
/* 现场情况上报 */
@POST("operation/maintenance-app/api/v1/pointSituationReport/addPointSituationReport")
- fun addPointSituationReport(@Body params: Map<String, Any>): Call<HttpResponse<Any>>
+ fun addPointSituationReport(@Body params: RequestBody): Call<HttpResponse<Any>>
}
\ No newline at end of file
diff --git a/app/src/main/java/com/xw/yunwei/net/WorkRepository.kt b/app/src/main/java/com/xw/yunwei/net/WorkRepository.kt
index 81b2eb1..138b71b 100644
--- a/app/src/main/java/com/xw/yunwei/net/WorkRepository.kt
+++ b/app/src/main/java/com/xw/yunwei/net/WorkRepository.kt
@@ -6,6 +6,7 @@
import com.xw.yunwei.model.CheckRecordModel
import com.xw.yunwei.model.MaintainRecordModel
import com.xw.yunwei.model.SiteModel
+import com.xw.yunwei.model.UploadModel
class WorkRepository(private val api: WorkApi) {
@@ -62,14 +63,15 @@
work: Boolean,
model: SiteModel,
sceneDescription: String,
- scenePhoto: List<String>,//现场照片JSON数组
- ): Any? {
+ scenePhoto: MutableList<UploadModel>,
+ ): Boolean {
val map = mapOf<String, Any>(
"fieldSituation" to if (work) 1 else 2,//现场情况(1=正常,2=异常)
"pointId" to model.id.toString(),//点位id
"sceneDescription" to sceneDescription,//现场情况说明
- "scenePhoto" to GsonUtils.toJson(scenePhoto),
+ "scenePhoto" to GsonUtils.toJson(scenePhoto),//现场照片JSON数组
)
- return api.addPointSituationReport(map).interceptAwait()
+ api.addPointSituationReport(getBody(map)).interceptAwait()
+ return true
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/xw/yunwei/ui/work/site/SiteErrorUploadActivity.kt b/app/src/main/java/com/xw/yunwei/ui/work/site/SiteErrorUploadActivity.kt
index e3c4989..769ee00 100644
--- a/app/src/main/java/com/xw/yunwei/ui/work/site/SiteErrorUploadActivity.kt
+++ b/app/src/main/java/com/xw/yunwei/ui/work/site/SiteErrorUploadActivity.kt
@@ -7,6 +7,7 @@
import androidx.core.widget.addTextChangedListener
import androidx.recyclerview.widget.GridLayoutManager
import com.xw.common.base.BaseActivity
+import com.xw.common.utils.BindUtils.getUrl
import com.xw.common.utils.GlideEngine
import com.xw.yunwei.BR
import com.xw.yunwei.R
@@ -14,6 +15,7 @@
import com.xw.yunwei.model.SiteModel
import com.xw.yunwei.ui.work.site.adapter.PictureOperationAdapter
import com.xw.yunwei.ui.work.site.viewmodel.SiteErrorUploadVM
+import org.json.JSONArray
class SiteErrorUploadActivity : BaseActivity<ActivitySiteErrorUploadBinding, SiteErrorUploadVM>() {
companion object {
@@ -75,7 +77,7 @@
R.drawable.shape_gray11_bg_4
}
)
- binding.tvWork.setTextColor(
+ binding.tvError.setTextColor(
ContextCompat.getColor(
this,
if (viewModel.working.value == false) {
@@ -97,7 +99,15 @@
override fun setObservable() {
super.setObservable()
viewModel.model.observe(this) {
- GlideEngine.createGlideEngine().load(binding.ivPicture, it.pointPictures, 0, 0, 4f)
+ var url = ""
+ try {
+ url = JSONArray(it.pointPictures).get(0).toString().getUrl()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ } finally {
+ GlideEngine.createGlideEngine()
+ .load(binding.ivPicture, url, R.mipmap.img_site_bg, R.mipmap.img_site_bg, 4f)
+ }
binding.tvTitle.text = it.pointName
binding.tvDetail.text = it.pointAddress
}
diff --git a/app/src/main/java/com/xw/yunwei/ui/work/site/viewmodel/SiteErrorUploadVM.kt b/app/src/main/java/com/xw/yunwei/ui/work/site/viewmodel/SiteErrorUploadVM.kt
index da9025a..6cebc4d 100644
--- a/app/src/main/java/com/xw/yunwei/ui/work/site/viewmodel/SiteErrorUploadVM.kt
+++ b/app/src/main/java/com/xw/yunwei/ui/work/site/viewmodel/SiteErrorUploadVM.kt
@@ -5,6 +5,7 @@
import android.content.Context
import android.view.View
import androidx.core.net.toUri
+import androidx.fragment.app.FragmentActivity
import androidx.lifecycle.MutableLiveData
import com.blankj.utilcode.util.UriUtils
import com.luck.picture.lib.basic.PictureSelector
@@ -14,11 +15,13 @@
import com.luck.picture.lib.interfaces.OnResultCallbackListener
import com.xw.common.CommonDialog
import com.xw.common.base.BaseViewModel
+import com.xw.common.base.ShowImgListDialog
import com.xw.common.utils.GlideEngine
import com.xw.common.utils.PictureCompressEngine
import com.xw.common.utils.ToastUtilCommon
import com.xw.yunwei.R
import com.xw.yunwei.model.SiteModel
+import com.xw.yunwei.model.UploadModel
import com.xw.yunwei.net.CommonRepository
import com.xw.yunwei.net.WorkRepository
import okhttp3.MediaType.Companion.toMediaType
@@ -57,7 +60,7 @@
val list = operationPictures.value ?: mutableListOf()
list.add(url)
refreshPictures(list)
- operationPictures.postValue(list)
+ operationPictures.postValue(list.toMutableList())
}
//移除图片
@@ -65,7 +68,7 @@
val list = operationPictures.value ?: mutableListOf()
list.removeAt(position)
refreshPictures(list)
- operationPictures.postValue(list)
+ operationPictures.postValue(list.toMutableList())
}
//刷新图片
@@ -83,6 +86,14 @@
val element = list.elementAtOrNull(position) ?: return
if (element.isEmpty()) {
operatePictureFromDevice(context)
+ } else {
+ val backUp = list.toMutableList()
+ backUp.removeIf { it.isEmpty() }
+ ShowImgListDialog(
+ context as FragmentActivity,
+ backUp,
+ position
+ ).show()
}
}
@@ -99,7 +110,7 @@
PictureSelector.create(context)
.openGallery(SelectMimeType.ofImage())
.setImageEngine(GlideEngine.createGlideEngine())
- .setMaxSelectNum(1)
+ .setMaxSelectNum(pictureMax.value ?: 1)
.setImageSpanCount(4)
.isPreviewImage(true)
.isDisplayCamera(false)
@@ -134,9 +145,8 @@
}
- private fun uploadFile(files: MutableList<String>, succ: () -> Unit) {
- files.removeIf { it.isEmpty() }
- val result = files.find { !it.startsWith("http") }
+ private fun uploadFile(files: MutableList<Pair<String, UploadModel?>>, succ: () -> Unit) {
+ val result = files.find { it.second == null }
if (result == null) {
succ()
} else {
@@ -145,13 +155,13 @@
dismissDialog()
isUploading = false
}) {
- val file = File(result)
+ val file = File(result.first)
val fileRequestBody = file.asRequestBody("image/jpg".toMediaType())
val mBuilder = MultipartBody.Builder()
mBuilder.addFormDataPart("file", file.name, fileRequestBody)
mBuilder.setType(MultipartBody.FORM)
val data = commonRepository.uploadFile(mBuilder.build())
- files[files.indexOf(result)] = data?.url ?: ""
+ files[files.indexOf(result)] = result.first to data
uploadFile(files, succ)
}
}
@@ -170,25 +180,28 @@
val list = operationPictures.value ?: mutableListOf()
list.removeIf { it.isEmpty() }
if (list.count { !it.startsWith("http") } > 0) {
- uploadFile(list) { submit(list) }
+ val result = list.map { Pair<String, UploadModel?>(it, null) }.toMutableList()
+ uploadFile(result) {
+ result.removeIf { it.second == null }
+ submit(result.map { it.second!! }.toMutableList())
+ }
return
}
- submit(list)
+ submit(mutableListOf())
}
//提交
- private fun submit(urls: MutableList<String>) {
+ private fun submit(urls: MutableList<UploadModel>) {
launchRequest {
workRepository.addPointSituationReport(
working.value!!,
model.value!!,
desc.value ?: "",
urls
- )
- ?.let {
- ToastUtilCommon.showSuc("提交成功")
- finish()
- }
+ ).let {
+ ToastUtilCommon.showSuc("提交成功")
+ finish()
+ }
}
}
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_picture_operation.xml b/app/src/main/res/layout/item_picture_operation.xml
index 74b8566..7be74a1 100644
--- a/app/src/main/res/layout/item_picture_operation.xml
+++ b/app/src/main/res/layout/item_picture_operation.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:padding="@dimen/dp_5">
+ android:layout_width="@dimen/dp_69"
+ android:layout_height="@dimen/dp_69"
+ android:padding="@dimen/dp_3">
<ImageView
android:id="@+id/iv_picture"
diff --git a/common/src/main/java/com/xw/common/utils/GlideEngine.java b/common/src/main/java/com/xw/common/utils/GlideEngine.java
index 8dcaaf0..8f504e0 100644
--- a/common/src/main/java/com/xw/common/utils/GlideEngine.java
+++ b/common/src/main/java/com/xw/common/utils/GlideEngine.java
@@ -3,6 +3,7 @@
import android.content.Context;
import android.widget.ImageView;
+import androidx.annotation.DrawableRes;
import androidx.annotation.IdRes;
import androidx.annotation.NonNull;
@@ -115,7 +116,7 @@
*/
public void load(@NonNull ImageView imageView,
String url,
- @IdRes int error, @IdRes int placeHolder,
+ @DrawableRes int error, @DrawableRes int placeHolder,
float radius) {
float value = radius * imageView.getContext().getResources().getDisplayMetrics().density;
Glide.with(imageView)
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index a2bed66..b1db9f3 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,9 +1,9 @@
#Wed Feb 11 09:59:09 CST 2026
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionSha256Sum=a17ddd85a26b6a7f5ddb71ff8b05fc5104c0202c6e64782429790c933686c806
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
-networkTimeout=10000
+#distributionSha256Sum=a17ddd85a26b6a7f5ddb71ff8b05fc5104c0202c6e64782429790c933686c806
+distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-8.13-bin.zip
+#networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
--
Gitblit v1.7.1