控制网接口修改

main
chenglifeng 6 months ago
parent cb7743acbe
commit 32996df95a
  1. 4
      app/src/main/AndroidManifest.xml
  2. 105
      app/src/main/java/com/project/survey/logic/viewmodel/ControlNetViewModel.kt
  3. 22
      app/src/main/java/com/project/survey/model/ControlNetCGBean.kt
  4. 56
      app/src/main/java/com/project/survey/model/ControlNetworkBean.kt
  5. 12
      app/src/main/java/com/project/survey/model/FirstControlNetworkVersionBean.kt
  6. 12
      app/src/main/java/com/project/survey/model/SpecialControlNetworkVersionBean.kt
  7. 34
      app/src/main/java/com/project/survey/network/Api.kt
  8. 1
      app/src/main/java/com/project/survey/ui/approval/ApprovalInitiatedFragment.kt
  9. 1
      app/src/main/java/com/project/survey/ui/approval/ApprovalProcessedFragment.kt
  10. 1
      app/src/main/java/com/project/survey/ui/approval/ApprovalWaitFragment.kt
  11. 31
      app/src/main/java/com/project/survey/ui/controlnet/ControlPointActivity.kt
  12. 64
      app/src/main/java/com/project/survey/ui/controlnet/FirstControlNetworkActivity.kt
  13. 74
      app/src/main/java/com/project/survey/ui/controlnet/SpecialControlNetworkActivity.kt
  14. 24
      app/src/main/java/com/project/survey/ui/controlnet/adapter/ControlNetFirstAdapter.kt
  15. 2
      app/src/main/java/com/project/survey/ui/controlnet/adapter/SpecialControlNetworkAdapter.kt
  16. 8
      app/src/main/java/com/project/survey/ui/home/HomeFragment.kt
  17. 88
      app/src/main/res/layout/activity_control_net_list.xml
  18. 84
      app/src/main/res/layout/activity_first_control_network.xml
  19. 0
      app/src/main/res/layout/activity_special_control_network.xml

@ -110,12 +110,12 @@
android:label="@string/lofting" android:label="@string/lofting"
android:windowSoftInputMode="adjustResize|stateHidden" /> android:windowSoftInputMode="adjustResize|stateHidden" />
<activity <activity
android:name=".ui.controlnet.ControlNetFirstListActivity" android:name=".ui.controlnet.FirstControlNetworkActivity"
android:exported="true" android:exported="true"
android:label="@string/head_control_network" android:label="@string/head_control_network"
android:windowSoftInputMode="adjustResize|stateHidden" /> android:windowSoftInputMode="adjustResize|stateHidden" />
<activity <activity
android:name=".ui.controlnet.SpecialControlNetworkListActivity" android:name=".ui.controlnet.SpecialControlNetworkActivity"
android:exported="true" android:exported="true"
android:label="@string/dedicated_control_network" android:label="@string/dedicated_control_network"
android:windowSoftInputMode="adjustResize|stateHidden" /> android:windowSoftInputMode="adjustResize|stateHidden" />

@ -7,9 +7,13 @@ import com.project.survey.logic.bean.ListResult
import com.project.survey.model.ControlNetCGBean import com.project.survey.model.ControlNetCGBean
import com.project.survey.model.ControlNetworkBean import com.project.survey.model.ControlNetworkBean
import com.project.survey.model.ControlNetworkInfoBean import com.project.survey.model.ControlNetworkInfoBean
import com.project.survey.model.FirstControlNetworkBean
import com.project.survey.model.FirstControlNetworkVersionBean
import com.project.survey.model.ProjectBean import com.project.survey.model.ProjectBean
import com.project.survey.model.SpecialControlNetworkVersionBean
import com.project.survey.network.RetrofitClient import com.project.survey.network.RetrofitClient
import com.project.survey.util.SPUtils import com.project.survey.util.SPUtils
import retrofit2.http.Query
class ControlNetViewModel : BaseViewModel() { class ControlNetViewModel : BaseViewModel() {
@ -23,9 +27,17 @@ class ControlNetViewModel : BaseViewModel() {
/** /**
* 获取专用控制网列表 * 获取专用控制网列表
*/ */
fun fetchSpecialControlNetworkList(pageNum: Int = 1) { fun fetchSpecialControlNetworkList(
controlNetWorkName: String?,
version: String?,
pageNum: Int = 1
) {
launch { launch {
val res = api.fetchSpecialControlNetworkList(pageNum = pageNum) val res = api.fetchSpecialControlNetworkList(
controlNetWorkName = controlNetWorkName,
version = version,
pageNum = pageNum
)
if (res.success) { if (res.success) {
_controlNetworkListResponse.postValue(res.data) _controlNetworkListResponse.postValue(res.data)
} }
@ -42,7 +54,7 @@ class ControlNetViewModel : BaseViewModel() {
*/ */
fun fetchSpecialControlNetworkInfo( fun fetchSpecialControlNetworkInfo(
controlNetworkName: String, controlNetworkName: String,
pointName: String? = null, pointName: String?,
pageNum: Int = 1 pageNum: Int = 1
) { ) {
launch { launch {
@ -57,45 +69,86 @@ class ControlNetViewModel : BaseViewModel() {
} }
} }
val controlNetCGListResponse: LiveData<ListResult<ControlNetCGBean>> val controlNetCGListResponse: LiveData<ListResult<FirstControlNetworkBean>>
get() = _controlNetCGListResponse get() = _controlNetCGListResponse
private val _controlNetCGListResponse = MutableLiveData<ListResult<ControlNetCGBean>>() private val _controlNetCGListResponse = MutableLiveData<ListResult<FirstControlNetworkBean>>()
// /**
// * 获取专用控制网成果列表
// */
// fun fetchSpecialControlNetCGList(j_query: String, page: Int = 1, start: Int = 0) {
// launch {
// val res = api.fetchSpecialControlNetCGList(
// tableCode = "BD_KZWZBCG",
// funcCode = "BD_KZWZBCG_ZY",
// j_query = j_query,
// page = page,
// start = start
// )
// if (res.success) {
// _controlNetCGListResponse.postValue(res.data)
// }
// }
// }
// /**
// * 获取首级控制网列表
// */
// fun fetchFirstControlNetList(j_query: String, page: Int = 1, start: Int = 0) {
// launch {
// val res = api.fetchSpecialControlNetCGList(
// tableCode = "BD_KZWZBCG",
// funcCode = "BD_KZWZBCG",
// j_query = j_query,
// page = page,
// start = start
// )
// if (res.success) {
// _controlNetCGListResponse.postValue(res.data)
// }
// }
// }
/** /**
* 获取专用控制网成果列表 * 获取首级控制网列表
*/ */
fun fetchSpecialControlNetCGList(j_query: String, page: Int = 1, start: Int = 0) { fun fetchFistControlNetworkList(version: String?, pageNum: Int) {
launch { launch {
val res = api.fetchSpecialControlNetCGList( val res = api.fetchFistControlNetworkList(version = version, pageNum = pageNum)
tableCode = "BD_KZWZBCG",
funcCode = "BD_KZWZBCG_ZY",
j_query = j_query,
page = page,
start = start
)
if (res.success) { if (res.success) {
_controlNetCGListResponse.postValue(res.data) _controlNetCGListResponse.postValue(res.data)
} else {
errorResponse.postValue(res.message)
} }
} }
} }
/** val firstControlNetworkVersionResponse: LiveData<List<FirstControlNetworkVersionBean>>
* 获取首级控制网列表 get() = _firstControlNetworkVersionResponse
*/ private val _firstControlNetworkVersionResponse =
fun fetchFirstControlNetList(j_query: String, page: Int = 1, start: Int = 0) { MutableLiveData<List<FirstControlNetworkVersionBean>>()
fun fetchFirstControlNetworkVersion() {
launch { launch {
val res = api.fetchSpecialControlNetCGList( val res = api.fetchFirstControlNetworkVersion()
tableCode = "BD_KZWZBCG",
funcCode = "BD_KZWZBCG",
j_query = j_query,
page = page,
start = start
)
if (res.success) { if (res.success) {
_controlNetCGListResponse.postValue(res.data) _firstControlNetworkVersionResponse.postValue(res.data)
} }
} }
} }
val specialControlNetworkVersionResponse: LiveData<List<SpecialControlNetworkVersionBean>>
get() = _specialControlNetworkVersionResponse
private val _specialControlNetworkVersionResponse =
MutableLiveData<List<SpecialControlNetworkVersionBean>>()
fun fetchSpecialControlNetworkVersion() {
launch {
val res = api.fetchSpecialControlNetworkVersion()
if (res.success) {
_specialControlNetworkVersionResponse.postValue(res.data)
}
}
}
} }

@ -26,11 +26,19 @@ import androidx.annotation.Keep
*/ */
@Keep @Keep
data class ControlNetCGBean( data class ControlNetCGBean(
val KZWZBCG_BZ:String, val BD_KZWZBCG_ID: String, //主键
val KZWZBCG_POINTNAME:String, val KZW_NAME: String, //控制网名称
val KZWZBCG_XCOORDINATE:String, val BD_XMXX_ID: String, //项目ID
val KZWZBCG_YCOORDINATE:String, val KZWZBCG_BZ: String, //备注
val KZWZBCG_HCOORDINATE:String, val KZWZBCG_POINTNAME: String, //点坐标
val KZWZBCG_VERSION:String, val KZWZBCG_XCOORDINATE: String, //x坐标
val KZW_MEASUREMENTTIME:String val KZWZBCG_YCOORDINATE: String, //y坐标
val KZWZBCG_HCOORDINATE: String, //h坐标
val KZWZBCG_VERSION: String, //版本号
val KZW_MEASUREMENTTIME: String //施测时间
)
@Keep
data class FirstControlNetworkBean(
val values: ControlNetCGBean
) )

@ -4,46 +4,60 @@ import androidx.annotation.Keep
/** /**
* { * {
* "SY_MODIFYORGID": "XX5DVbDl1Jl7FDtJJtX", * "BD_KZWZBCG_ID": "b8e1383a895946c791f2fa7606837b52",
* "BD_KZW_ID": "22a57e0db20249f39cffe2034cfffe5e",
* "KZW_TYPE_NAME": "",
* "KZW_MEASUREMENTTIME": "",
* "KZWZBCG_BZ": "",
* "version_array": "2024102806,2024102807",
* "KZW_MEASUREMENTLEVEL": "1",
* "$TABLE_CODE$": null,
* "KZWZBCG_POINTNAME": "555",
* "BD_XMXX_ID": "xYgALS4VOJ0vDrEVUcQ",
* "KZW_NAME": "专用"
* }
*
* //控制点详情
* {
* "SY_MODIFYORGID": null,
* "KZW_TYPE_CODE": "02", * "KZW_TYPE_CODE": "02",
* "SY_MODIFYTIME": "2024-09-06 13:42:57", * "SY_MODIFYTIME": null,
* "SY_COMPANY_ID": "V1R0gp2zJ3SvGFNvJdM", * "SY_COMPANY_ID": "V1R0gp2zJ3SvGFNvJdM",
* "$TABLE_CODE$": null,
* "SY_CREATEUSERNAME": "管理员", * "SY_CREATEUSERNAME": "管理员",
* "BD_KZWZBCG_ID": "9db3f927274246f0913443e7c3fd4a61", * "BD_KZWZBCG_ID": "13365023de99403b9a07fdf8079d72c7",
* "SY_ORDERINDEX": 2, * "SY_ORDERINDEX": 1,
* "KZWZBCG_BZ": "125", * "KZWZBCG_BZ": "备注二",
* "SY_MODIFYUSERID": "116d15ddbe62412aa32aafb5dc8f13bb", * "SY_MODIFYUSERID": null,
* "SY_GROUP_COMPANY_NAME": "", * "SY_GROUP_COMPANY_NAME": "",
* "KZWZBCG_XCOORDINATE": "32",
* "SY_COMPANY_NAME": "某某公司", * "SY_COMPANY_NAME": "某某公司",
* "BD_XMXX_ID": "123", * "KZWZBCG_XCOORDINATE": "11.25",
* "BD_XMXX_ID": null,
* "KZW_NAME": "专用", * "KZW_NAME": "专用",
* "SY_CREATEORGID": "XX5DVbDl1Jl7FDtJJtX", * "SY_CREATEORGID": "XX5DVbDl1Jl7FDtJJtX",
* "SY_STATUS": "1", * "SY_STATUS": null,
* "SY_CREATEUSERID": "116d15ddbe62412aa32aafb5dc8f13bb", * "SY_CREATEUSERID": "116d15ddbe62412aa32aafb5dc8f13bb",
* "KZW_TYPE_NAME": "", * "KZW_TYPE_NAME": null,
* "SY_GROUP_COMPANY_ID": "", * "SY_GROUP_COMPANY_ID": "",
* "SY_MODIFYORGNAME": "系统管理部", * "SY_MODIFYORGNAME": null,
* "BD_KZW_ID": "a67961a4b61441b19b27fc56572e7517", * "SY_CREATETIME": "2024-09-11",
* "SY_CREATEORGNAME": "系统管理部", * "SY_CREATEORGNAME": "系统管理部",
* "SY_CREATETIME": "2024-09-06 13:36:27", * "BD_KZW_ID": "53ed633f946545aa836160fd30f3c2a2",
* "SY_ORG_ID": "systemdepartment", * "SY_ORG_ID": "systemdepartment",
* "KZW_MEASUREMENTTIME": "", * "KZW_MEASUREMENTTIME": null,
* "KZWZBCG_YCOORDINATE": "12", * "KZWZBCG_YCOORDINATE": "21.56",
* "SY_MODIFYUSERNAME": "管理员", * "SY_MODIFYUSERNAME": null,
* "KZWZBCG_HCOORDINATE": "56", * "KZWZBCG_VERSION": null,
* "KZWZBCG_VERSION": "", * "KZWZBCG_HCOORDINATE": "6.36",
* "KZWZBCG_POINTNAME": "dmc" * "KZWZBCG_POINTNAME": "点位二"
* } * }
*/ */
@Keep @Keep
data class ControlNetworkBean( data class ControlNetworkBean(
val KZW_NAME: String, // 控制网名称 val KZW_NAME: String, // 控制网名称
val KZW_TYPE_CODE: String, //控制网类型
val KZW_TYPE_NAME: String, //控制网类型_name val KZW_TYPE_NAME: String, //控制网类型_name
val KZW_MEASUREMENTTIME: String, // 施测时间 val KZW_MEASUREMENTTIME: String, // 施测时间
// 控制点详情里的字段
val KZWZBCG_POINTNAME: String, //点名称 val KZWZBCG_POINTNAME: String, //点名称
val KZWZBCG_XCOORDINATE: String, //x val KZWZBCG_XCOORDINATE: String, //x
val KZWZBCG_YCOORDINATE: String, //y val KZWZBCG_YCOORDINATE: String, //y

@ -0,0 +1,12 @@
package com.project.survey.model
import androidx.annotation.Keep
@Keep
data class FirstControlNetworkVersionBean(
val KZWZBCG_VERSION: String
){
override fun toString(): String {
return KZWZBCG_VERSION
}
}

@ -0,0 +1,12 @@
package com.project.survey.model
import androidx.annotation.Keep
@Keep
data class SpecialControlNetworkVersionBean(
val version_array: String
) {
override fun toString(): String {
return version_array
}
}

@ -6,6 +6,8 @@ import com.project.survey.model.ApprovalResponse
import com.project.survey.model.ControlNetworkBean import com.project.survey.model.ControlNetworkBean
import com.project.survey.model.ControlNetCGBean import com.project.survey.model.ControlNetCGBean
import com.project.survey.model.ControlNetworkInfoBean import com.project.survey.model.ControlNetworkInfoBean
import com.project.survey.model.FirstControlNetworkBean
import com.project.survey.model.FirstControlNetworkVersionBean
import com.project.survey.model.InspectionReportBean import com.project.survey.model.InspectionReportBean
import com.project.survey.model.LoftingBean import com.project.survey.model.LoftingBean
import com.project.survey.model.LoftingPointListBean import com.project.survey.model.LoftingPointListBean
@ -15,6 +17,7 @@ import com.project.survey.model.MeasureBean
import com.project.survey.model.PointEntry import com.project.survey.model.PointEntry
import com.project.survey.model.ProjectBean import com.project.survey.model.ProjectBean
import com.project.survey.model.ProjectData import com.project.survey.model.ProjectData
import com.project.survey.model.SpecialControlNetworkVersionBean
import com.project.survey.util.SPUtils import com.project.survey.util.SPUtils
import okhttp3.RequestBody import okhttp3.RequestBody
import retrofit2.http.Body import retrofit2.http.Body
@ -89,12 +92,30 @@ interface Api {
@Field("limit") limit: Int = 30, @Field("limit") limit: Int = 30,
): HttpResult<ApprovalResponse> ): HttpResult<ApprovalResponse>
/**
* 专用控制网版本列表
*/
@GET("je/controlnetwork/queryControlNetworkVersion")
suspend fun fetchSpecialControlNetworkVersion(
@Header("projectId") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID)
): HttpResult<List<SpecialControlNetworkVersionBean>>
/**
* 首级控制网版本列表
*/
@GET("je/controlnetwork/queryPrimaryControlNetworkVersion")
suspend fun fetchFirstControlNetworkVersion(
@Header("projectId") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID)
): HttpResult<List<FirstControlNetworkVersionBean>>
/** /**
* 获取专用控制网列表 * 获取专用控制网列表
*/ */
@GET("je/controlnetwork/queryControlNetwork") @GET("je/controlnetwork/queryControlNetwork")
suspend fun fetchSpecialControlNetworkList( suspend fun fetchSpecialControlNetworkList(
@Header("projectId") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID), @Header("projectId") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID),
@Query("controlNetWorkName") controlNetWorkName: String?,
@Query("version") version: String?,
@Query("pageNum") pageNum: Int, @Query("pageNum") pageNum: Int,
@Query("pageSize") pageSize: Int = 30 @Query("pageSize") pageSize: Int = 30
): HttpResult<ListResult<ControlNetworkBean>> ): HttpResult<ListResult<ControlNetworkBean>>
@ -117,11 +138,22 @@ interface Api {
suspend fun fetchSpecialControlNetworkInfo( suspend fun fetchSpecialControlNetworkInfo(
@Header("projectId") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID), @Header("projectId") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID),
@Query("controlNetWorkName") controlNetWorkName: String, //当前控制网name @Query("controlNetWorkName") controlNetWorkName: String, //当前控制网name
@Query("pointName") pointName: String? = null, //关键词,搜索用 @Query("pointName") pointName: String?, //关键词,搜索用
@Query("pageNum") pageNum: Int, @Query("pageNum") pageNum: Int,
@Query("pageSize") pageSize: Int = 30 @Query("pageSize") pageSize: Int = 30
): HttpResult<ListResult<ControlNetworkInfoBean>> ): HttpResult<ListResult<ControlNetworkInfoBean>>
/**
* 获取首级控制网列表
*/
@GET("je/controlnetwork/queryPrimaryControlNetworkInfo")
suspend fun fetchFistControlNetworkList(
@Header("projectId") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID),
@Query("version") version: String?,
@Query("pageNum") pageNum: Int,
@Query("pageSize") pageSize: Int = 30
): HttpResult<ListResult<FirstControlNetworkBean>>
/** /**
* 获取首级控制网列表 * 获取首级控制网列表
*/ */

@ -10,6 +10,7 @@ import com.project.survey.widget.decoration.TransparentDividerDecoration
/** /**
* 已发起 * 已发起
*/ */
@Deprecated("")
class ApprovalInitiatedFragment : BaseFragmentBinding<FragmentApprovalBinding>() { class ApprovalInitiatedFragment : BaseFragmentBinding<FragmentApprovalBinding>() {
private val adapter by lazy { ApprovalInitatedAdapter(requireContext()) } private val adapter by lazy { ApprovalInitatedAdapter(requireContext()) }

@ -10,6 +10,7 @@ import com.project.survey.widget.decoration.TransparentDividerDecoration
/** /**
* 已处理 * 已处理
*/ */
@Deprecated("")
class ApprovalProcessedFragment : BaseFragmentBinding<FragmentApprovalBinding>() { class ApprovalProcessedFragment : BaseFragmentBinding<FragmentApprovalBinding>() {
private val adapter by lazy { private val adapter by lazy {
ApprovalWaitAdapter( ApprovalWaitAdapter(

@ -10,6 +10,7 @@ import com.project.survey.widget.decoration.TransparentDividerDecoration
/** /**
* 待处理 * 待处理
*/ */
@Deprecated("")
class ApprovalWaitFragment : BaseFragmentBinding<FragmentApprovalBinding>() { class ApprovalWaitFragment : BaseFragmentBinding<FragmentApprovalBinding>() {
private val adapter by lazy { private val adapter by lazy {

@ -33,7 +33,7 @@ class ControlPointActivity : BaseBindingActivity<ActivityControlPointBinding>(),
private val adapter by lazy { SpecialControlNetworkInfoAdapter() } private val adapter by lazy { SpecialControlNetworkInfoAdapter() }
private var controlNetworkName = "" private var controlNetworkName = ""
private var searchValue = "" private var searchContent: String? = null
private var currentPage = 1 private var currentPage = 1
override fun initView() { override fun initView() {
@ -58,23 +58,39 @@ class ControlPointActivity : BaseBindingActivity<ActivityControlPointBinding>(),
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData() mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
adapter.setStateViewLayout(this, R.layout.layout_no_data) adapter.setStateViewLayout(this, R.layout.layout_no_data)
} else { } else {
if (adapter.itemCount < it.totalCount) {
currentPage++ currentPage++
} else {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
}
} }
} else { } else {
if (it.rows.isEmpty()) { if (it.rows.isEmpty()) {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData() mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
} else { } else {
if (adapter.itemCount < it.totalCount){
adapter.addAll(it.rows) adapter.addAll(it.rows)
currentPage++ currentPage++
} else {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
}
} }
} }
} }
fetchData() fetchData()
} }
override fun initListener() {
// 搜索
mBinding.searchWidget.setOnEditorSearchListener {
searchContent = it.ifBlank { null }
currentPage = 1
fetchData()
}
}
private fun fetchData() { private fun fetchData() {
val query = searchValue.ifBlank { null } viewModel.fetchSpecialControlNetworkInfo(controlNetworkName, searchContent, currentPage)
viewModel.fetchSpecialControlNetworkInfo(controlNetworkName, query, currentPage)
} }
override fun onRefresh(refreshLayout: RefreshLayout) { override fun onRefresh(refreshLayout: RefreshLayout) {
@ -86,13 +102,4 @@ class ControlPointActivity : BaseBindingActivity<ActivityControlPointBinding>(),
fetchData() fetchData()
} }
override fun initListener() {
mBinding.searchWidget.setOnEditorSearchListener {
searchValue = it
currentPage = 1
fetchData()
}
}
} }

@ -2,64 +2,58 @@ package com.project.survey.ui.controlnet
import androidx.activity.viewModels import androidx.activity.viewModels
import com.project.survey.R import com.project.survey.R
import com.project.survey.constants.Constants import com.project.survey.databinding.ActivityFirstControlNetworkBinding
import com.project.survey.databinding.ActivityControlNetListBinding
import com.project.survey.extend.smartDismiss import com.project.survey.extend.smartDismiss
import com.project.survey.logic.viewmodel.ControlNetViewModel import com.project.survey.logic.viewmodel.ControlNetViewModel
import com.project.survey.model.ControlNetVersionBean import com.project.survey.model.ControlNetVersionBean
import com.project.survey.model.FirstControlNetworkVersionBean
import com.project.survey.ui.base.BaseBindingActivity import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.ui.controlnet.adapter.ControlNetFirstAdapter import com.project.survey.ui.controlnet.adapter.ControlNetFirstAdapter
import com.project.survey.util.ActivityNavUtil import com.project.survey.util.ActivityNavUtil
import com.project.survey.widget.decoration.TransparentDividerDecoration
import com.scwang.smart.refresh.layout.api.RefreshLayout import com.scwang.smart.refresh.layout.api.RefreshLayout
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
/** /**
* 首级控制网列表 * 首级控制网列表
*/ */
class ControlNetFirstListActivity : BaseBindingActivity<ActivityControlNetListBinding>(), class FirstControlNetworkActivity : BaseBindingActivity<ActivityFirstControlNetworkBinding>(),
OnRefreshLoadMoreListener { OnRefreshLoadMoreListener {
companion object { companion object {
fun start() { fun start() {
ActivityNavUtil.startActivity<ControlNetFirstListActivity> { } ActivityNavUtil.startActivity<FirstControlNetworkActivity> { }
} }
} }
override fun getBinding(): ActivityControlNetListBinding { override fun getBinding(): ActivityFirstControlNetworkBinding {
return ActivityControlNetListBinding.inflate(layoutInflater) return ActivityFirstControlNetworkBinding.inflate(layoutInflater)
} }
private val viewModel: ControlNetViewModel by viewModels() private val viewModel: ControlNetViewModel by viewModels()
private val adapter by lazy { ControlNetFirstAdapter() } private val adapter by lazy { ControlNetFirstAdapter() }
private var currentPage = 1 private var currentPage = 1
private var start = 0 private var currentVersion: String? = null
override fun initView() { override fun initView() {
immersionToolbar(mBinding.toolbar, R.string.head_control_network) immersionToolbar(mBinding.toolbar, R.string.head_control_network)
initVersion()
mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(this) mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(this)
// mBinding.recyclerView.addItemDecoration(TransparentDividerDecoration(this)) // mBinding.recyclerView.addItemDecoration(TransparentDividerDecoration(this))
mBinding.recyclerView.adapter = adapter mBinding.recyclerView.adapter = adapter
adapter.isStateViewEnable = true adapter.isStateViewEnable = true
} }
private fun initVersion() {
val versionList = mutableListOf<ControlNetVersionBean>()
versionList.add(ControlNetVersionBean("版本一"))
versionList.add(ControlNetVersionBean("版本二"))
versionList.add(ControlNetVersionBean("版本三"))
mBinding.spinner.setItems(versionList)
}
override fun initData() { override fun initData() {
viewModel.errorResponse.observe(this) { viewModel.errorResponse.observe(this) {
mBinding.smartRefreshLayout.smartDismiss() mBinding.smartRefreshLayout.smartDismiss()
} }
// 版本号列表
viewModel.firstControlNetworkVersionResponse.observe(this) {
val list = arrayListOf(FirstControlNetworkVersionBean("版本号"))
list.addAll(it)
mBinding.spinner.setItems(list)
}
viewModel.controlNetCGListResponse.observe(this) { viewModel.controlNetCGListResponse.observe(this) {
mBinding.smartRefreshLayout.smartDismiss() mBinding.smartRefreshLayout.smartDismiss()
if (currentPage == 1) { if (currentPage == 1) {
@ -68,30 +62,49 @@ class ControlNetFirstListActivity : BaseBindingActivity<ActivityControlNetListBi
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData() mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
adapter.setStateViewLayout(this, R.layout.layout_no_data) adapter.setStateViewLayout(this, R.layout.layout_no_data)
} else { } else {
if (adapter.itemCount < it.totalCount) {
currentPage++ currentPage++
start += it.totalCount } else {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
}
} }
} else { } else {
if (it.rows.isEmpty()) { if (it.rows.isEmpty()) {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData() mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
} else { } else {
if (adapter.itemCount < it.totalCount) {
adapter.addAll(it.rows) adapter.addAll(it.rows)
currentPage++ currentPage++
start += it.totalCount } else {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
}
} }
} }
} }
// 获取列表数据
fetchData() fetchData()
// 获取版本号列表
viewModel.fetchFirstControlNetworkVersion()
}
override fun initListener() {
mBinding.spinner.setOnItemSelectedListener { _, _, _, item ->
val versionBean = item as FirstControlNetworkVersionBean
currentVersion =
if ("版本号" == versionBean.KZWZBCG_VERSION) null else versionBean.KZWZBCG_VERSION
currentPage = 1
fetchData()
}
} }
private fun fetchData() { private fun fetchData() {
viewModel.fetchFirstControlNetList("", currentPage, start) viewModel.fetchFistControlNetworkList(currentVersion, currentPage)
} }
override fun onRefresh(refreshLayout: RefreshLayout) { override fun onRefresh(refreshLayout: RefreshLayout) {
currentPage = 1 currentPage = 1
start = 0
fetchData() fetchData()
} }
@ -99,9 +112,4 @@ class ControlNetFirstListActivity : BaseBindingActivity<ActivityControlNetListBi
fetchData() fetchData()
} }
override fun initListener() {
}
} }

@ -2,48 +2,43 @@ package com.project.survey.ui.controlnet
import androidx.activity.viewModels import androidx.activity.viewModels
import com.project.survey.R import com.project.survey.R
import com.project.survey.databinding.ActivitySpecialControlNetworkListBinding import com.project.survey.databinding.ActivitySpecialControlNetworkBinding
import com.project.survey.extend.smartDismiss import com.project.survey.extend.smartDismiss
import com.project.survey.logic.viewmodel.ControlNetViewModel import com.project.survey.logic.viewmodel.ControlNetViewModel
import com.project.survey.model.ControlNetVersionBean import com.project.survey.model.ControlNetVersionBean
import com.project.survey.model.FirstControlNetworkVersionBean
import com.project.survey.model.SpecialControlNetworkVersionBean
import com.project.survey.ui.base.BaseBindingActivity import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.ui.controlnet.adapter.SpecialControlNetworkAdapter import com.project.survey.ui.controlnet.adapter.SpecialControlNetworkAdapter
import com.project.survey.util.ActivityNavUtil import com.project.survey.util.ActivityNavUtil
import com.project.survey.widget.decoration.TransparentDividerDecoration
import com.scwang.smart.refresh.layout.api.RefreshLayout import com.scwang.smart.refresh.layout.api.RefreshLayout
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
/** /**
* 专用控制网列表 * 专用控制网列表
*/ */
class SpecialControlNetworkListActivity : class SpecialControlNetworkActivity :
BaseBindingActivity<ActivitySpecialControlNetworkListBinding>(), OnRefreshLoadMoreListener { BaseBindingActivity<ActivitySpecialControlNetworkBinding>(), OnRefreshLoadMoreListener {
companion object { companion object {
fun start() { fun start() {
ActivityNavUtil.startActivity<SpecialControlNetworkListActivity> { } ActivityNavUtil.startActivity<SpecialControlNetworkActivity> { }
} }
} }
override fun getBinding(): ActivitySpecialControlNetworkListBinding = override fun getBinding(): ActivitySpecialControlNetworkBinding =
ActivitySpecialControlNetworkListBinding.inflate(layoutInflater) ActivitySpecialControlNetworkBinding.inflate(layoutInflater)
private val viewModel: ControlNetViewModel by viewModels() private val viewModel: ControlNetViewModel by viewModels()
private val adapter by lazy { SpecialControlNetworkAdapter() } private val adapter by lazy { SpecialControlNetworkAdapter() }
private var currentPage = 1 private var currentPage = 1
private var currentVersion: String? = null
private var searchContent: String? = null // 搜索框里的内容
override fun initView() { override fun initView() {
immersionToolbar(mBinding.toolbar, R.string.dedicated_control_network) immersionToolbar(mBinding.toolbar, R.string.dedicated_control_network)
mBinding.spinner.setItems(
arrayListOf(
ControlNetVersionBean("版本一"),
ControlNetVersionBean("版本二"),
ControlNetVersionBean("版本三")
)
)
mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(this) mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(this)
// mBinding.recyclerView.addItemDecoration(TransparentDividerDecoration(this)) // mBinding.recyclerView.addItemDecoration(TransparentDividerDecoration(this))
mBinding.recyclerView.adapter = adapter mBinding.recyclerView.adapter = adapter
@ -54,6 +49,12 @@ class SpecialControlNetworkListActivity :
viewModel.errorResponse.observe(this) { viewModel.errorResponse.observe(this) {
mBinding.smartRefreshLayout.smartDismiss() mBinding.smartRefreshLayout.smartDismiss()
} }
// 版本号列表
viewModel.specialControlNetworkVersionResponse.observe(this) {
val list = arrayListOf(SpecialControlNetworkVersionBean("版本号"))
list.addAll(it)
mBinding.spinner.setItems(list)
}
viewModel.controlNetworkListResponse.observe(this) { viewModel.controlNetworkListResponse.observe(this) {
mBinding.smartRefreshLayout.smartDismiss() mBinding.smartRefreshLayout.smartDismiss()
if (currentPage == 1) { if (currentPage == 1) {
@ -62,35 +63,47 @@ class SpecialControlNetworkListActivity :
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData() mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
adapter.setStateViewLayout(this, R.layout.layout_no_data) adapter.setStateViewLayout(this, R.layout.layout_no_data)
} else { } else {
if (adapter.itemCount < it.totalCount) {
currentPage++ currentPage++
} else {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
}
} }
} else { } else {
if (it.rows.isEmpty()) { if (it.rows.isEmpty()) {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData() mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
} else { } else {
if (adapter.itemCount < it.totalCount) {
adapter.addAll(it.rows) adapter.addAll(it.rows)
currentPage++ currentPage++
} else {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
} }
} }
} }
fetchData()
} }
private fun fetchData() { // 获取列表数据
viewModel.fetchSpecialControlNetworkList(currentPage) fetchData()
// 获取版本号列表
viewModel.fetchSpecialControlNetworkVersion()
} }
override fun onRefresh(refreshLayout: RefreshLayout) { override fun initListener() {
// 搜索
mBinding.searchWidget.setOnEditorSearchListener {
searchContent = it.ifBlank { null }
currentPage = 1 currentPage = 1
fetchData() fetchData()
} }
// 版本号
override fun onLoadMore(refreshLayout: RefreshLayout) { mBinding.spinner.setOnItemSelectedListener { _, _, _, item ->
val versionBean = item as SpecialControlNetworkVersionBean
currentVersion =
if ("版本号" == versionBean.version_array) null else versionBean.version_array
currentPage = 1
fetchData() fetchData()
} }
override fun initListener() {
adapter.setOnItemClickListener { adapter, _, position -> adapter.setOnItemClickListener { adapter, _, position ->
adapter.getItem(position)?.let { bean -> adapter.getItem(position)?.let { bean ->
ControlPointActivity.start(bean.KZW_NAME) ControlPointActivity.start(bean.KZW_NAME)
@ -98,5 +111,18 @@ class SpecialControlNetworkListActivity :
} }
} }
private fun fetchData() {
viewModel.fetchSpecialControlNetworkList(searchContent, currentVersion, currentPage)
}
override fun onRefresh(refreshLayout: RefreshLayout) {
currentPage = 1
fetchData()
}
override fun onLoadMore(refreshLayout: RefreshLayout) {
fetchData()
}
} }

@ -6,18 +6,22 @@ import com.chad.library.adapter4.BaseQuickAdapter
import com.chad.library.adapter4.viewholder.QuickViewHolder import com.chad.library.adapter4.viewholder.QuickViewHolder
import com.project.survey.R import com.project.survey.R
import com.project.survey.model.ControlNetCGBean import com.project.survey.model.ControlNetCGBean
import com.project.survey.model.FirstControlNetworkBean
class ControlNetFirstAdapter : BaseQuickAdapter<ControlNetCGBean, QuickViewHolder>() { class ControlNetFirstAdapter : BaseQuickAdapter<FirstControlNetworkBean, QuickViewHolder>() {
override fun onBindViewHolder(holder: QuickViewHolder, position: Int, item: ControlNetCGBean?) { override fun onBindViewHolder(
item?.let { bean -> holder: QuickViewHolder,
holder.setText(R.id.tvPointName, bean.KZWZBCG_POINTNAME) position: Int,
.setText(R.id.tvX, bean.KZWZBCG_XCOORDINATE) item: FirstControlNetworkBean?
.setText(R.id.tvY, bean.KZWZBCG_YCOORDINATE) ) {
.setText(R.id.tvZ, bean.KZWZBCG_HCOORDINATE) if (item == null) return
.setText(R.id.tvTime, bean.KZW_MEASUREMENTTIME) holder.setText(R.id.tvPointName, item.values.KZWZBCG_POINTNAME)
.setText(R.id.tvRemark, bean.KZWZBCG_BZ) .setText(R.id.tvX, item.values.KZWZBCG_XCOORDINATE)
} .setText(R.id.tvY, item.values.KZWZBCG_YCOORDINATE)
.setText(R.id.tvZ, item.values.KZWZBCG_HCOORDINATE)
.setText(R.id.tvTime, item.values.KZW_MEASUREMENTTIME)
.setText(R.id.tvRemark, item.values.KZWZBCG_BZ)
} }
override fun onCreateViewHolder( override fun onCreateViewHolder(

@ -17,7 +17,7 @@ class SpecialControlNetworkAdapter : BaseQuickAdapter<ControlNetworkBean, QuickV
if (item == null) return if (item == null) return
holder.setText(R.id.tvName, item.KZW_NAME) holder.setText(R.id.tvName, item.KZW_NAME)
.setText(R.id.tvLevel, "") //TODO .setText(R.id.tvLevel, item.KZW_TYPE_NAME)
.setText(R.id.tvTime, item.KZW_MEASUREMENTTIME) .setText(R.id.tvTime, item.KZW_MEASUREMENTTIME)
} }

@ -12,8 +12,8 @@ import com.project.survey.logic.viewmodel.MainViewModel
import com.project.survey.model.ProjectBean import com.project.survey.model.ProjectBean
import com.project.survey.ui.approval.ApprovalActivity import com.project.survey.ui.approval.ApprovalActivity
import com.project.survey.ui.base.BaseBindingFragment import com.project.survey.ui.base.BaseBindingFragment
import com.project.survey.ui.controlnet.ControlNetFirstListActivity import com.project.survey.ui.controlnet.FirstControlNetworkActivity
import com.project.survey.ui.controlnet.SpecialControlNetworkListActivity import com.project.survey.ui.controlnet.SpecialControlNetworkActivity
import com.project.survey.ui.lofting.LoftingListActivity import com.project.survey.ui.lofting.LoftingListActivity
import com.project.survey.ui.pointmeasure.PointMeasureListActivity import com.project.survey.ui.pointmeasure.PointMeasureListActivity
import com.project.survey.util.SPUtils import com.project.survey.util.SPUtils
@ -76,11 +76,11 @@ class HomeFragment : BaseBindingFragment<FragmentHomeBinding>() {
} }
// 首级控制网 // 首级控制网
mBinding.itemControlNetFirst.setOnClickNoRepeatListener { mBinding.itemControlNetFirst.setOnClickNoRepeatListener {
ControlNetFirstListActivity.start() FirstControlNetworkActivity.start()
} }
// 专用控制网 // 专用控制网
mBinding.itemControlNetSpecial.setOnClickNoRepeatListener { mBinding.itemControlNetSpecial.setOnClickNoRepeatListener {
SpecialControlNetworkListActivity.start() SpecialControlNetworkActivity.start()
} }
} }
} }

@ -1,88 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- <include-->
<!-- android:id="@+id/ilToolBar"-->
<!-- layout="@layout/sh_toolbar" />-->
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="@color/transparent"
app:navigationIcon="@drawable/icon_toolbar_back"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:titleCentered="true"
app:titleTextAppearance="@style/ToolbarTextAppearance" />
<!-- <include-->
<!-- android:id="@+id/ilSearch"-->
<!-- layout="@layout/item_search_control_net" />-->
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal">
<FrameLayout
android:id="@+id/llSpinner"
android:layout_width="@dimen/sw_103dp"
android:layout_height="@dimen/sw_30dp"
android:layout_marginStart="@dimen/sw_16dp"
android:layout_marginTop="@dimen/sw_7dp"
android:background="@drawable/bg_search"
app:layout_constraintEnd_toStartOf="@id/searchWidget"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.project.survey.widget.materialspinner.MaterialSpinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="@color/text_color_20"
android:textSize="@dimen/sw_11sp" />
</FrameLayout>
<View
android:layout_width="0dp"
android:layout_height="@dimen/sw_2dp"
android:background="@drawable/bg_search_shadow_2"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@id/llSpinner"
app:layout_constraintStart_toStartOf="parent" />
<com.project.survey.widget.SearchWidget
android:id="@+id/searchWidget"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintStart_toEndOf="@id/llSpinner"
app:layout_constraintTop_toTopOf="parent"
app:sw_hint="请输入控制网名称" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.scwang.smart.refresh.layout.SmartRefreshLayout
android:id="@+id/smartRefreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="2"
tools:listitem="@layout/item_control_net_first" />
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
</LinearLayout>

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<!-- <include-->
<!-- android:id="@+id/ilToolBar"-->
<!-- layout="@layout/sh_toolbar" />-->
<com.google.android.material.appbar.MaterialToolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?actionBarSize"
android:background="@color/transparent"
app:navigationIcon="@drawable/icon_toolbar_back"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:titleCentered="true"
app:titleTextAppearance="@style/ToolbarTextAppearance" />
<!-- <include-->
<!-- android:id="@+id/ilSearch"-->
<!-- layout="@layout/item_search_control_net" />-->
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:gravity="center_vertical"-->
<!-- android:orientation="horizontal">-->
<FrameLayout
android:id="@+id/llSpinner"
android:layout_width="match_parent"
android:layout_height="@dimen/sw_30dp"
android:layout_marginHorizontal="@dimen/sw_16dp"
android:layout_marginTop="@dimen/sw_7dp"
android:background="@drawable/bg_search">
<com.project.survey.widget.materialspinner.MaterialSpinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="@color/text_color_20"
android:textSize="@dimen/sw_11sp" />
</FrameLayout>
<!-- <View-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="@dimen/sw_2dp"-->
<!-- android:background="@drawable/bg_search_shadow_2"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="@id/llSpinner"-->
<!-- app:layout_constraintStart_toStartOf="parent" />-->
<!-- <com.project.survey.widget.SearchWidget-->
<!-- android:id="@+id/searchWidget"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintHorizontal_weight="1"-->
<!-- app:layout_constraintStart_toEndOf="@id/llSpinner"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- app:sw_hint="请输入控制网名称" />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<com.scwang.smart.refresh.layout.SmartRefreshLayout
android:id="@+id/smartRefreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="2"
tools:listitem="@layout/item_control_net_first" />
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
</LinearLayout>
Loading…
Cancel
Save