控制网接口修改

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. 74
      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. 36
      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. 37
      app/src/main/java/com/project/survey/ui/controlnet/ControlPointActivity.kt
  12. 70
      app/src/main/java/com/project/survey/ui/controlnet/FirstControlNetworkActivity.kt
  13. 80
      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:windowSoftInputMode="adjustResize|stateHidden" />
<activity
android:name=".ui.controlnet.ControlNetFirstListActivity"
android:name=".ui.controlnet.FirstControlNetworkActivity"
android:exported="true"
android:label="@string/head_control_network"
android:windowSoftInputMode="adjustResize|stateHidden" />
<activity
android:name=".ui.controlnet.SpecialControlNetworkListActivity"
android:name=".ui.controlnet.SpecialControlNetworkActivity"
android:exported="true"
android:label="@string/dedicated_control_network"
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.ControlNetworkBean
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.SpecialControlNetworkVersionBean
import com.project.survey.network.RetrofitClient
import com.project.survey.util.SPUtils
import retrofit2.http.Query
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 {
val res = api.fetchSpecialControlNetworkList(pageNum = pageNum)
val res = api.fetchSpecialControlNetworkList(
controlNetWorkName = controlNetWorkName,
version = version,
pageNum = pageNum
)
if (res.success) {
_controlNetworkListResponse.postValue(res.data)
}
@ -42,7 +54,7 @@ class ControlNetViewModel : BaseViewModel() {
*/
fun fetchSpecialControlNetworkInfo(
controlNetworkName: String,
pointName: String? = null,
pointName: String?,
pageNum: Int = 1
) {
launch {
@ -57,45 +69,86 @@ class ControlNetViewModel : BaseViewModel() {
}
}
val controlNetCGListResponse: LiveData<ListResult<ControlNetCGBean>>
val controlNetCGListResponse: LiveData<ListResult<FirstControlNetworkBean>>
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 {
val res = api.fetchSpecialControlNetCGList(
tableCode = "BD_KZWZBCG",
funcCode = "BD_KZWZBCG_ZY",
j_query = j_query,
page = page,
start = start
)
val res = api.fetchFistControlNetworkList(version = version, pageNum = pageNum)
if (res.success) {
_controlNetCGListResponse.postValue(res.data)
} else {
errorResponse.postValue(res.message)
}
}
}
/**
* 获取首级控制网列表
*/
fun fetchFirstControlNetList(j_query: String, page: Int = 1, start: Int = 0) {
val firstControlNetworkVersionResponse: LiveData<List<FirstControlNetworkVersionBean>>
get() = _firstControlNetworkVersionResponse
private val _firstControlNetworkVersionResponse =
MutableLiveData<List<FirstControlNetworkVersionBean>>()
fun fetchFirstControlNetworkVersion() {
launch {
val res = api.fetchSpecialControlNetCGList(
tableCode = "BD_KZWZBCG",
funcCode = "BD_KZWZBCG",
j_query = j_query,
page = page,
start = start
)
val res = api.fetchFirstControlNetworkVersion()
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
data class ControlNetCGBean(
val KZWZBCG_BZ:String,
val KZWZBCG_POINTNAME:String,
val KZWZBCG_XCOORDINATE:String,
val KZWZBCG_YCOORDINATE:String,
val KZWZBCG_HCOORDINATE:String,
val KZWZBCG_VERSION:String,
val KZW_MEASUREMENTTIME:String
val BD_KZWZBCG_ID: String, //主键
val KZW_NAME: String, //控制网名称
val BD_XMXX_ID: String, //项目ID
val KZWZBCG_BZ: String, //备注
val KZWZBCG_POINTNAME: String, //点坐标
val KZWZBCG_XCOORDINATE: String, //x坐标
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",
* "KZW_TYPE_CODE": "02",
* "SY_MODIFYTIME": "2024-09-06 13:42:57",
* "SY_COMPANY_ID": "V1R0gp2zJ3SvGFNvJdM",
* "$TABLE_CODE$": null,
* "SY_CREATEUSERNAME": "管理员",
* "BD_KZWZBCG_ID": "9db3f927274246f0913443e7c3fd4a61",
* "SY_ORDERINDEX": 2,
* "KZWZBCG_BZ": "125",
* "SY_MODIFYUSERID": "116d15ddbe62412aa32aafb5dc8f13bb",
* "SY_GROUP_COMPANY_NAME": "",
* "KZWZBCG_XCOORDINATE": "32",
* "SY_COMPANY_NAME": "某某公司",
* "BD_XMXX_ID": "123",
* "KZW_NAME": "专用",
* "SY_CREATEORGID": "XX5DVbDl1Jl7FDtJJtX",
* "SY_STATUS": "1",
* "SY_CREATEUSERID": "116d15ddbe62412aa32aafb5dc8f13bb",
* "BD_KZWZBCG_ID": "b8e1383a895946c791f2fa7606837b52",
* "BD_KZW_ID": "22a57e0db20249f39cffe2034cfffe5e",
* "KZW_TYPE_NAME": "",
* "SY_GROUP_COMPANY_ID": "",
* "SY_MODIFYORGNAME": "系统管理部",
* "BD_KZW_ID": "a67961a4b61441b19b27fc56572e7517",
* "SY_CREATEORGNAME": "系统管理部",
* "SY_CREATETIME": "2024-09-06 13:36:27",
* "SY_ORG_ID": "systemdepartment",
* "KZW_MEASUREMENTTIME": "",
* "KZWZBCG_YCOORDINATE": "12",
* "SY_MODIFYUSERNAME": "管理员",
* "KZWZBCG_HCOORDINATE": "56",
* "KZWZBCG_VERSION": "",
* "KZWZBCG_POINTNAME": "dmc"
* "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",
* "SY_MODIFYTIME": null,
* "SY_COMPANY_ID": "V1R0gp2zJ3SvGFNvJdM",
* "SY_CREATEUSERNAME": "管理员",
* "BD_KZWZBCG_ID": "13365023de99403b9a07fdf8079d72c7",
* "SY_ORDERINDEX": 1,
* "KZWZBCG_BZ": "备注二",
* "SY_MODIFYUSERID": null,
* "SY_GROUP_COMPANY_NAME": "",
* "SY_COMPANY_NAME": "某某公司",
* "KZWZBCG_XCOORDINATE": "11.25",
* "BD_XMXX_ID": null,
* "KZW_NAME": "专用",
* "SY_CREATEORGID": "XX5DVbDl1Jl7FDtJJtX",
* "SY_STATUS": null,
* "SY_CREATEUSERID": "116d15ddbe62412aa32aafb5dc8f13bb",
* "KZW_TYPE_NAME": null,
* "SY_GROUP_COMPANY_ID": "",
* "SY_MODIFYORGNAME": null,
* "SY_CREATETIME": "2024-09-11",
* "SY_CREATEORGNAME": "系统管理部",
* "BD_KZW_ID": "53ed633f946545aa836160fd30f3c2a2",
* "SY_ORG_ID": "systemdepartment",
* "KZW_MEASUREMENTTIME": null,
* "KZWZBCG_YCOORDINATE": "21.56",
* "SY_MODIFYUSERNAME": null,
* "KZWZBCG_VERSION": null,
* "KZWZBCG_HCOORDINATE": "6.36",
* "KZWZBCG_POINTNAME": "点位二"
* }
*/
@Keep
data class ControlNetworkBean(
val KZW_NAME: String, // 控制网名称
val KZW_TYPE_CODE: String, //控制网类型
val KZW_TYPE_NAME: String, //控制网类型_name
val KZW_MEASUREMENTTIME: String, // 施测时间
// 控制点详情里的字段
val KZWZBCG_POINTNAME: String, //点名称
val KZWZBCG_XCOORDINATE: String, //x
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.ControlNetCGBean
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.LoftingBean
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.ProjectBean
import com.project.survey.model.ProjectData
import com.project.survey.model.SpecialControlNetworkVersionBean
import com.project.survey.util.SPUtils
import okhttp3.RequestBody
import retrofit2.http.Body
@ -89,12 +92,30 @@ interface Api {
@Field("limit") limit: Int = 30,
): 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")
suspend fun fetchSpecialControlNetworkList(
@Header("projectId") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID),
@Query("controlNetWorkName") controlNetWorkName: String?,
@Query("version") version: String?,
@Query("pageNum") pageNum: Int,
@Query("pageSize") pageSize: Int = 30
): HttpResult<ListResult<ControlNetworkBean>>
@ -117,11 +138,22 @@ interface Api {
suspend fun fetchSpecialControlNetworkInfo(
@Header("projectId") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID),
@Query("controlNetWorkName") controlNetWorkName: String, //当前控制网name
@Query("pointName") pointName: String? = null, //关键词,搜索用
@Query("pointName") pointName: String?, //关键词,搜索用
@Query("pageNum") pageNum: Int,
@Query("pageSize") pageSize: Int = 30
): 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>>
/**
* 获取首级控制网列表
*/
@ -175,7 +207,7 @@ interface Api {
*/
@POST("je/measureWork/pointsEntry")
suspend fun uploadPointEntry(
@Header("projectId") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID),
@Header("projectId") projectId: String = SPUtils.getString(SPConstants.PROJECT_ID),
@Body requestBody: List<PointEntry>
): HttpResult<String>

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

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

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

@ -33,7 +33,7 @@ class ControlPointActivity : BaseBindingActivity<ActivityControlPointBinding>(),
private val adapter by lazy { SpecialControlNetworkInfoAdapter() }
private var controlNetworkName = ""
private var searchValue = ""
private var searchContent: String? = null
private var currentPage = 1
override fun initView() {
@ -58,23 +58,39 @@ class ControlPointActivity : BaseBindingActivity<ActivityControlPointBinding>(),
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
adapter.setStateViewLayout(this, R.layout.layout_no_data)
} else {
currentPage++
if (adapter.itemCount < it.totalCount) {
currentPage++
} else {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
}
}
} else {
if (it.rows.isEmpty()) {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
} else {
adapter.addAll(it.rows)
currentPage++
if (adapter.itemCount < it.totalCount){
adapter.addAll(it.rows)
currentPage++
} else {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
}
}
}
}
fetchData()
}
override fun initListener() {
// 搜索
mBinding.searchWidget.setOnEditorSearchListener {
searchContent = it.ifBlank { null }
currentPage = 1
fetchData()
}
}
private fun fetchData() {
val query = searchValue.ifBlank { null }
viewModel.fetchSpecialControlNetworkInfo(controlNetworkName, query, currentPage)
viewModel.fetchSpecialControlNetworkInfo(controlNetworkName, searchContent, currentPage)
}
override fun onRefresh(refreshLayout: RefreshLayout) {
@ -86,13 +102,4 @@ class ControlPointActivity : BaseBindingActivity<ActivityControlPointBinding>(),
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 com.project.survey.R
import com.project.survey.constants.Constants
import com.project.survey.databinding.ActivityControlNetListBinding
import com.project.survey.databinding.ActivityFirstControlNetworkBinding
import com.project.survey.extend.smartDismiss
import com.project.survey.logic.viewmodel.ControlNetViewModel
import com.project.survey.model.ControlNetVersionBean
import com.project.survey.model.FirstControlNetworkVersionBean
import com.project.survey.ui.base.BaseBindingActivity
import com.project.survey.ui.controlnet.adapter.ControlNetFirstAdapter
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.listener.OnRefreshLoadMoreListener
/**
* 首级控制网列表
*/
class ControlNetFirstListActivity : BaseBindingActivity<ActivityControlNetListBinding>(),
class FirstControlNetworkActivity : BaseBindingActivity<ActivityFirstControlNetworkBinding>(),
OnRefreshLoadMoreListener {
companion object {
fun start() {
ActivityNavUtil.startActivity<ControlNetFirstListActivity> { }
ActivityNavUtil.startActivity<FirstControlNetworkActivity> { }
}
}
override fun getBinding(): ActivityControlNetListBinding {
return ActivityControlNetListBinding.inflate(layoutInflater)
override fun getBinding(): ActivityFirstControlNetworkBinding {
return ActivityFirstControlNetworkBinding.inflate(layoutInflater)
}
private val viewModel: ControlNetViewModel by viewModels()
private val adapter by lazy { ControlNetFirstAdapter() }
private var currentPage = 1
private var start = 0
private var currentVersion: String? = null
override fun initView() {
immersionToolbar(mBinding.toolbar, R.string.head_control_network)
initVersion()
mBinding.smartRefreshLayout.setOnRefreshLoadMoreListener(this)
// mBinding.recyclerView.addItemDecoration(TransparentDividerDecoration(this))
mBinding.recyclerView.adapter = adapter
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() {
viewModel.errorResponse.observe(this) {
mBinding.smartRefreshLayout.smartDismiss()
}
// 版本号列表
viewModel.firstControlNetworkVersionResponse.observe(this) {
val list = arrayListOf(FirstControlNetworkVersionBean("版本号"))
list.addAll(it)
mBinding.spinner.setItems(list)
}
viewModel.controlNetCGListResponse.observe(this) {
mBinding.smartRefreshLayout.smartDismiss()
if (currentPage == 1) {
@ -68,30 +62,49 @@ class ControlNetFirstListActivity : BaseBindingActivity<ActivityControlNetListBi
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
adapter.setStateViewLayout(this, R.layout.layout_no_data)
} else {
currentPage++
start += it.totalCount
if (adapter.itemCount < it.totalCount) {
currentPage++
} else {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
}
}
} else {
if (it.rows.isEmpty()) {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
} else {
adapter.addAll(it.rows)
currentPage++
start += it.totalCount
if (adapter.itemCount < it.totalCount) {
adapter.addAll(it.rows)
currentPage++
} else {
mBinding.smartRefreshLayout.finishLoadMoreWithNoMoreData()
}
}
}
}
// 获取列表数据
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() {
viewModel.fetchFirstControlNetList("", currentPage, start)
viewModel.fetchFistControlNetworkList(currentVersion, currentPage)
}
override fun onRefresh(refreshLayout: RefreshLayout) {
currentPage = 1
start = 0
fetchData()
}
@ -99,9 +112,4 @@ class ControlNetFirstListActivity : BaseBindingActivity<ActivityControlNetListBi
fetchData()
}
override fun initListener() {
}
}

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

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

@ -17,7 +17,7 @@ class SpecialControlNetworkAdapter : BaseQuickAdapter<ControlNetworkBean, QuickV
if (item == null) return
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)
}

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