18034727885
2026-06-26 253f680fb9666751e0f9a8e5e8f2f9e3eb1894e3
修复问题
4个文件已修改
80 ■■■■■ 已修改文件
app/src/main/java/com/example/smart/ui/project/ProjectDetailsActivity.kt 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/smart/ui/project/bean/TaskDetailInfo.kt 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basecore/src/main/java/com/example/basecore/amap/ILocationCallBack.kt 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basecore/src/main/java/com/example/basecore/amap/LocationProvider.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/example/smart/ui/project/ProjectDetailsActivity.kt
@@ -10,28 +10,22 @@
import android.widget.ImageView
import androidx.activity.viewModels
import androidx.core.app.ActivityCompat
import androidx.fragment.app.viewModels
import com.amap.api.location.AMapLocation
import com.example.basecore.BaseBindingActivity
import com.example.basecore.amap.ILocationCallBack
import com.example.basecore.amap.LocationProvider
import com.example.basecore.util.SchemeUtils
import com.example.basecore.util.ToastUtils
import com.example.basecore.util.dp2px
import com.example.smart.R
import com.example.smart.databinding.ActivityProjectDetailsBinding
import com.example.smart.ui.options.device.RequestDeviceActivity
import com.example.smart.ui.project.popup.ProjectDetailsPopupWindow
import com.example.smart.ui.project.provider.ProjectPageAdapter
import com.example.smart.util.projectEventScheme
import com.example.smart.widget.dialog.CommonDialog
import com.example.smart.widget.dialog.LoadingDialog
import com.google.android.material.tabs.TabLayoutMediator
import com.example.basecore.util.showCenterToast
import com.example.basecore.util.showOnlyToast
import com.example.basecore.util.startAct
import com.example.basecore.util.toast
import com.example.smart.R
import com.example.smart.databinding.ActivityProjectDetailsBinding
import com.example.smart.enumlist.CheckTaskState
import com.example.smart.ui.exclude.ExcludeActivity
import com.example.smart.ui.options.device.RequestDeviceActivity
import com.example.smart.ui.project.bean.AddressInfo
import com.example.smart.ui.project.bean.TaskDetailInfo
import com.example.smart.ui.project.check.CheckViewModel
import com.example.smart.ui.project.check.EditDialog
@@ -39,9 +33,13 @@
import com.example.smart.ui.project.check.bean.CheckRefresh
import com.example.smart.ui.project.frag.ProjectParam
import com.example.smart.ui.project.onduty.PostListActivity
import com.example.smart.ui.project.onduty.bean.OnDutyBean
import com.example.smart.util.createWorkScheme
import com.example.smart.ui.project.popup.ProjectDetailsPopupWindow
import com.example.smart.ui.project.provider.ProjectPageAdapter
import com.example.smart.util.projectEventScheme
import com.example.smart.util.signProject
import com.example.smart.widget.dialog.CommonDialog
import com.example.smart.widget.dialog.LoadingDialog
import com.google.android.material.tabs.TabLayoutMediator
import org.greenrobot.eventbus.EventBus
class ProjectDetailsActivity : BaseBindingActivity() {
@@ -351,24 +349,37 @@
    private fun onGenerateLocation() {
        mLocationProvider.getLocation(object : ILocationCallBack {
            override fun onLocationSuccess(address: String, lat: Double, lon: Double) {
            override fun onLocationSuccess(aMapLocation: AMapLocation) {
                super.onLocationSuccess(aMapLocation)
                binding.commonLayout.post {
                    if (TextUtils.isEmpty(address)) {
                    if (TextUtils.isEmpty(aMapLocation.address)) {
                        toast("位置信息获取失败,请重试...")
                        return@post
                    }
                    if (taskDetailInfo == null) {
                        return@post
                    }
                    taskDetailInfo?.location = address
                    taskDetailInfo?.apply {
                        projectId = taskDetailInfo!!.project.id.toString()
                        addressInfo = AddressInfo(
                            province = aMapLocation.province,
                            city = aMapLocation.city,
                            district = aMapLocation.district,
                            detail = aMapLocation.address,
                            lonLat = "${aMapLocation.longitude},${aMapLocation.latitude}"
                        )
                    }
                    taskDetailInfo?.location = aMapLocation.address
                    val gps = ArrayList<Double>()
                    gps.add(lat)
                    gps.add(lon)
                    gps.add(aMapLocation.latitude)
                    gps.add(aMapLocation.longitude)
                    taskDetailInfo?.gps = gps
                    viewModel.editTask(taskDetailInfo!!)
                }
            }
            override fun onLocationSuccess(address: String, lat: Double, lon: Double) {
            }
app/src/main/java/com/example/smart/ui/project/bean/TaskDetailInfo.kt
@@ -3,7 +3,6 @@
import androidx.annotation.Keep
import com.example.smart.bean.EntityRef
import com.example.smart.enumlist.CheckTaskState
import org.w3c.dom.Entity
/**
 * @author: dai hang
@@ -15,20 +14,22 @@
    val id: Int,
    val plan: EntityRef,
    val project: EntityRef,
    val client:EntityRef?,
    val client: EntityRef?,
    val state: CheckTaskState,
    val assemblePlace : String,
    val assemblePlace: String,
    val date: String,
    var location: String,
    val createTime:String,
    val updateTime:String,
    val createTime: String,
    val updateTime: String,
    var gps: List<Double>,
    val creator: EntityRef,
    val groupLeaders: List<EntityRef>,
    val groupMembers: List<EntityRef>,
    val drivers: List<EntityRef>,
    val cars: List<EntityRef>
){
    val cars: List<EntityRef>,
    var addressInfo: AddressInfo?=null,
    var projectId: String?=null,
) {
    // 判定是否关闭的函数
    fun isClosed(): Boolean {
        return !(state == CheckTaskState.Init
@@ -37,4 +38,12 @@
                || state == CheckTaskState.Rejected
                || state == CheckTaskState.Reviewing)
    }
}
}
data class AddressInfo(
    val province: String? = null,
    val city: String? = null,
    val district: String? = null,
    val detail: String? = null,
    var lonLat: String?=null,
)
basecore/src/main/java/com/example/basecore/amap/ILocationCallBack.kt
@@ -1,11 +1,16 @@
package com.example.basecore.amap
import com.amap.api.location.AMapLocation
/**
 * @author: dai hang
 * @data: 2024/3/20 15:32
 * @description:
 */
interface ILocationCallBack {
    fun onLocationSuccess(aMapLocation: AMapLocation) {
    }
    fun onLocationSuccess(address: String, lat: Double, lon: Double)
    fun onLocationFailed(reason: String)
basecore/src/main/java/com/example/basecore/amap/LocationProvider.java
@@ -64,6 +64,7 @@
            @Override
            public void onLocationChanged(AMapLocation location) {
                if (location.getErrorCode() == 0) {
                    callBack.onLocationSuccess(location);
                    callBack.onLocationSuccess(location.getAddress(), location.getLatitude(), location.getLongitude());
                } else  {
                    callBack.onLocationFailed(location.getErrorInfo());