| app/src/main/java/com/xw/yunwei/net/WorkApi.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/java/com/xw/yunwei/net/WorkRepository.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/java/com/xw/yunwei/ui/work/site/SiteErrorUploadActivity.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/java/com/xw/yunwei/ui/work/site/viewmodel/SiteErrorUploadVM.kt | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| app/src/main/res/layout/item_picture_operation.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| common/src/main/java/com/xw/common/utils/GlideEngine.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| gradle/wrapper/gradle-wrapper.properties | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
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>> } 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 } } 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 } 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() } } } } 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" 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) 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