测量计划修改状态后刷新列表item;新增一些sdk

main
chenglifeng 6 months ago
parent 0d37c3ce2c
commit 94bf0da2f1
  1. BIN
      app/libs/Jama-1.0.3.jar
  2. BIN
      app/libs/libsixents-core-sdk-android.aar
  3. BIN
      app/libs/southGnssSdk-release.aar
  4. 4
      app/src/main/java/com/project/survey/constants/Constants.kt
  5. 13
      app/src/main/java/com/project/survey/logic/viewmodel/ProjectViewModel.kt
  6. 2
      app/src/main/java/com/project/survey/model/LoftingPointRecordEntry.kt
  7. 4
      app/src/main/java/com/project/survey/model/MeasureBean.kt
  8. 7
      app/src/main/java/com/project/survey/model/MeasureWorkStatusResult.kt
  9. 35
      app/src/main/java/com/project/survey/ui/pointmeasure/PointMeasureListActivity.kt
  10. 56
      app/src/main/java/com/project/survey/ui/pointmeasure/adapter/PointMeasureListAdapter.kt
  11. 8
      app/src/main/res/drawable/bg_point_measure_selector.xml

Binary file not shown.

Binary file not shown.

@ -23,4 +23,8 @@ object SPConstants {
object EventConstants {
const val LOGIN_STATUS = "loginStatus"
const val UPDATE_PROJECT = "updateProject"
}
object AdapterConstants {
const val WORK_STATUS = 100
}

@ -12,6 +12,7 @@ import com.project.survey.model.LoftingPointBean
import com.project.survey.model.LoftingPointListBean
import com.project.survey.model.LoftingPointRecordEntry
import com.project.survey.model.MeasureBean
import com.project.survey.model.MeasureWorkStatusResult
import com.project.survey.model.PointEntry
import com.project.survey.model.ProjectBean
import com.project.survey.network.RetrofitClient
@ -90,9 +91,9 @@ class ProjectViewModel : BaseViewModel() {
}
}
val updateMeasureWorkStatusResponse: LiveData<String>
val updateMeasureWorkStatusResponse: LiveData<MeasureWorkStatusResult>
get() = _updateMeasureWorkStatusResponse
private val _updateMeasureWorkStatusResponse = MutableLiveData<String>()
private val _updateMeasureWorkStatusResponse = MutableLiveData<MeasureWorkStatusResult>()
/**
* 修改测量工作状态
@ -106,7 +107,13 @@ class ProjectViewModel : BaseViewModel() {
status
)
if (res.success) {
_updateMeasureWorkStatusResponse.postValue(res.data)
_updateMeasureWorkStatusResponse.postValue(
MeasureWorkStatusResult(
workId,
status,
res.data
)
)
} else {
errorResponse.postValue(res.message)
}

@ -24,7 +24,7 @@ data class LoftingPointRecordEntry(
* 将放样记录对象 转为 上传需要的对象
*/
constructor(record: PointStakeRecord) : this(
record.jobId,
record.pointId,
if (Device.getInstance().deviceType == DeviceTypeEnum.DEVICE_TYPE_RTK) "${record.deviceInfoData.rtkStatusData?.poleHeight}" else "${record.deviceInfoData.tsStatusData?.hr}",
record.remarks ?: "",
"${record.measuredX}",

@ -62,7 +62,11 @@ data class MeasureBean(
val BD_FBFXPZ_DYGCMC: String, //单元工程名称
val CLJH_BDLSH: String?, //流程编号
val CLJH_CLLX_NAME: String, //测量类型
// 无值或“待执行”为未开始测量,“执行中”为点击开始测量后至点击结束测量之间的状态,“已结束”为点击结束测量至点击生成报验单之间的状态,“报验单已生成”为生成报验单后的状态
var CLJH_WORKSTATUS: String?, //状态
val GCJL_LCMC: String?, //流程名称(工程计量)
val GCJL_BDLSH: String?, //流程编号
val GCJL_JLNR: String?, //计量内容
val BD_CLGZ_GCJL_ID: String
)

@ -0,0 +1,7 @@
package com.project.survey.model
data class MeasureWorkStatusResult(
val id: String,
val status: String,
val message: String
)

@ -1,16 +1,21 @@
package com.project.survey.ui.pointmeasure
import androidx.activity.viewModels
import com.afollestad.materialdialogs.MaterialDialog
import com.project.survey.R
import com.project.survey.constants.AdapterConstants
import com.project.survey.constants.Constants
import com.project.survey.databinding.ActivityPointMeasureListBinding
import com.project.survey.extend.smartDismiss
import com.project.survey.extend.toast
import com.project.survey.logic.viewmodel.ProjectViewModel
import com.project.survey.ui.MainActivity
import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.ui.login.LoginActivity
import com.project.survey.ui.pointmeasure.adapter.PointMeasureListAdapter
import com.project.survey.ui.pointmeasure.measure.PointSurveyNewActivity
import com.project.survey.util.ActivityNavUtil
import com.project.survey.util.LogoutUtil
import com.scwang.smart.refresh.layout.api.RefreshLayout
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
@ -89,6 +94,16 @@ class PointMeasureListActivity : BaseBindingActivity<ActivityPointMeasureListBin
viewModel.createInspectionReportResponse.observe(this) {
toast(it.CLJH_WORKSTATUS)
}
//
viewModel.updateMeasureWorkStatusResponse.observe(this) {
val position = adapter.items.indexOfFirst { bean -> bean.BD_CLJH_ID == it.id }
if (position > -1) {
adapter.getItem(position)?.let { bean ->
bean.CLJH_WORKSTATUS = it.status
adapter.notifyItemChanged(position, AdapterConstants.WORK_STATUS)
}
}
}
// 获取列表数据
fetchData()
@ -111,15 +126,27 @@ class PointMeasureListActivity : BaseBindingActivity<ActivityPointMeasureListBin
// 结束测量
adapter.addOnItemChildClickListener(R.id.tvStopMeasure) { adapter, _, position ->
adapter.getItem(position)?.let { bean ->
viewModel.updateMeasureWorkStatus(bean.BD_CLJH_ID, type, "已结束")
MaterialDialog.Builder(mContext)
.title("确定结束测量吗?")
.negativeText("取消")
.positiveText("确定")
.onPositive { _, _ ->
val workId =
if (type == Constants.TYPE_BD_CLJH) bean.BD_CLJH_ID else bean.BD_CLGZ_GCJL_ID
viewModel.updateMeasureWorkStatus(workId, type, "已结束")
}
.show()
}
}
// 进入测量
adapter.addOnItemChildClickListener(R.id.tvEnterMeasure) { adapter, _, position ->
adapter.getItem(position)?.let { bean ->
PointSurveyNewActivity.start(type, bean.BD_CLJH_ID)
viewModel.updateMeasureWorkStatus(bean.BD_CLJH_ID, type, "执行中")
val workId =
if (type == Constants.TYPE_BD_CLJH) bean.BD_CLJH_ID else bean.BD_CLGZ_GCJL_ID
if ("待执行" == bean.CLJH_WORKSTATUS || bean.CLJH_WORKSTATUS.isNullOrBlank()) {
viewModel.updateMeasureWorkStatus(workId, type, "执行中")
}
PointSurveyNewActivity.start(type, workId)
}
}
}

@ -2,9 +2,11 @@ package com.project.survey.ui.pointmeasure.adapter
import android.content.Context
import android.view.ViewGroup
import android.widget.TextView
import com.chad.library.adapter4.BaseQuickAdapter
import com.chad.library.adapter4.viewholder.QuickViewHolder
import com.project.survey.R
import com.project.survey.constants.AdapterConstants
import com.project.survey.constants.Constants
import com.project.survey.model.MeasureBean
@ -18,10 +20,30 @@ class PointMeasureListAdapter(val type: String) : BaseQuickAdapter<MeasureBean,
holder.setText(R.id.tvName, if (isCLJH) item.CLJH_LCMC else item.GCJL_LCMC)
.setText(R.id.tvNO, if (isCLJH) item.CLJH_BDLSH else item.GCJL_BDLSH)
.setText(R.id.tvType, item.CLJH_CLLX_NAME)
.setGone(R.id.tvType, !isCLJH)
.setText(R.id.tvProjectName, item.BD_FBFXPZ_FXGCMC)
.setText(R.id.tvMeasureContent, item.CLJH_CONTENT)
.setText(R.id.tvApplyUser, "")
.setText(
R.id.tvMeasureContentKey,
if (isCLJH) "测 量 内 容 :" else "计 量 内 容 :"
)
.setText(R.id.tvMeasureContent, if (isCLJH) item.CLJH_CONTENT else item.GCJL_JLNR)
.setText(R.id.tvApplyUser, item.SY_CREATEUSERNAME)
.setVisible(R.id.tvGenerateForm, isCLJH)
.setEnabled(
R.id.tvGenerateForm,
"已结束" == item.CLJH_WORKSTATUS || "报验单已生成" == item.CLJH_WORKSTATUS
)
if (isCLJH) {
holder.setEnabled(R.id.tvStopMeasure, "执行中" == item.CLJH_WORKSTATUS)
.setEnabled(
R.id.tvEnterMeasure,
"执行中" == item.CLJH_WORKSTATUS || "待执行" == item.CLJH_WORKSTATUS || item.CLJH_WORKSTATUS.isNullOrBlank()
)
} else {
holder.setEnabled(R.id.tvStopMeasure, true)
.setEnabled(R.id.tvEnterMeasure, true)
}
}
override fun onCreateViewHolder(
@ -31,4 +53,34 @@ class PointMeasureListAdapter(val type: String) : BaseQuickAdapter<MeasureBean,
): QuickViewHolder {
return QuickViewHolder(R.layout.item_point_measure_list, parent)
}
override fun onBindViewHolder(
holder: QuickViewHolder,
position: Int,
item: MeasureBean?,
payloads: List<Any>
) {
super.onBindViewHolder(holder, position, item, payloads)
if (payloads.isNotEmpty() && payloads[0] is Int && item != null) {
// true测量计划,false工程计量
val isCLJH = type == Constants.TYPE_BD_CLJH
val type = payloads[0] as Int
if (type == AdapterConstants.WORK_STATUS) {
holder.setEnabled(
R.id.tvGenerateForm,
"已结束" == item.CLJH_WORKSTATUS || "报验单已生成" == item.CLJH_WORKSTATUS
)
if (isCLJH) {
holder.setEnabled(R.id.tvStopMeasure, "执行中" == item.CLJH_WORKSTATUS)
.setEnabled(
R.id.tvEnterMeasure,
"执行中" == item.CLJH_WORKSTATUS || "待执行" == item.CLJH_WORKSTATUS || item.CLJH_WORKSTATUS.isNullOrBlank()
)
} else {
holder.setEnabled(R.id.tvStopMeasure, true)
.setEnabled(R.id.tvEnterMeasure, true)
}
}
}
}
}

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true">
<item android:state_enabled="true">
<shape android:shape="rectangle">
<solid android:color="#E9F1FC" />
<corners android:radius="@dimen/sw_15dp" />
@ -8,11 +8,11 @@
</shape>
</item>
<item android:state_selected="false">
<item android:state_enabled="false">
<shape android:shape="rectangle">
<solid android:color="@color/white" />
<solid android:color="#59BBBBBB" />
<corners android:radius="@dimen/sw_15dp" />
<stroke android:width="@dimen/sw_0_5dp" android:color="#59202020" />
<stroke android:width="@dimen/sw_0_5dp" android:color="#59999999" />
</shape>
</item>

Loading…
Cancel
Save