Merge branch 'refs/heads/dev_lvmeng'

This commit is contained in:
2025-09-14 12:04:19 +08:00
29 changed files with 1082 additions and 1175 deletions
@@ -31,13 +31,13 @@
<activity android:name=".ui.user.activity.CacheManageActivity" /> <activity android:name=".ui.user.activity.CacheManageActivity" />
<activity android:name=".ui.user.activity.AboutUsActivity" /> <activity android:name=".ui.user.activity.AboutUsActivity" />
<activity android:name=".ui.home.activity.GeologicalActivity" /> <activity android:name=".ui.home.activity.GeologicalActivity" />
<activity android:name=".ui.tunneling.activity.WorkingFaceStatisticsActivity" />
<activity android:name=".ui.tunneling.activity.WorkingFaceRecordActivity" />
<activity android:name=".ui.tunneling.activity.WorkingFaceDetailActivity" /> <activity android:name=".ui.tunneling.activity.WorkingFaceDetailActivity" />
<activity android:name=".ui.tunneling.activity.WorkingPointActivity" /> <activity android:name=".ui.tunneling.activity.AddWorkingFaceRecordActivity"
<activity android:name=".ui.tunneling.activity.WorkingFaceDetail2Activity" />
<activity android:name=".ui.tunneling.activity.AddWorkingPointActivity"
android:windowSoftInputMode="adjustPan"/> android:windowSoftInputMode="adjustPan"/>
<activity android:name=".ui.tunneling.activity.TunnelingActivity" /> <activity android:name=".ui.tunneling.activity.TunnelingActivity" />
<activity android:name=".ui.tunneling.activity.WorkFaceActivity" <activity android:name=".ui.tunneling.activity.AddWorkingFaceActivity"
android:windowSoftInputMode="adjustPan" /> android:windowSoftInputMode="adjustPan" />
</application> </application>
@@ -8,6 +8,7 @@ import com.chad.library.adapter.base.viewholder.BaseViewHolder
import com.zmkg.coaloperation.R import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.databinding.ListItemRockBinding import com.zmkg.coaloperation.databinding.ListItemRockBinding
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
import com.zmkg.coaloperation.utils.formatDecimalString
class TunnelRoofLithologyAdapter(var list: MutableList<TunnelRoofLithologyEntity>) : class TunnelRoofLithologyAdapter(var list: MutableList<TunnelRoofLithologyEntity>) :
BaseQuickAdapter<TunnelRoofLithologyEntity, TunnelRoofLithologyAdapter.VH>( BaseQuickAdapter<TunnelRoofLithologyEntity, TunnelRoofLithologyAdapter.VH>(
@@ -34,13 +35,13 @@ class TunnelRoofLithologyAdapter(var list: MutableList<TunnelRoofLithologyEntity
addTextChangedListener(onTextChanged = { text, start, before, count -> addTextChangedListener(onTextChanged = { text, start, before, count ->
item.positionStart = text.toString().trim() item.positionStart = text.toString().trim()
}) })
setText(item.positionStart) setText(item.positionStart.formatDecimalString())
} }
it.tvRockEndLen.run { it.tvRockEndLen.run {
addTextChangedListener(onTextChanged = { text, start, before, count -> addTextChangedListener(onTextChanged = { text, start, before, count ->
item.positionEnd = text.toString().trim() item.positionEnd = text.toString().trim()
}) })
setText(item.positionEnd) setText(item.positionEnd.formatDecimalString())
} }
it.tvRockType.run { it.tvRockType.run {
addTextChangedListener(onTextChanged = { text, start, before, count -> addTextChangedListener(onTextChanged = { text, start, before, count ->
@@ -15,7 +15,7 @@ import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.databinding.ListItemTunnelWorkingFaceBinding import com.zmkg.coaloperation.databinding.ListItemTunnelWorkingFaceBinding
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
import com.zmkg.coaloperation.ui.tunneling.activity.TunnelingActivity import com.zmkg.coaloperation.ui.tunneling.activity.TunnelingActivity
import com.zmkg.coaloperation.ui.tunneling.activity.WorkingPointActivity import com.zmkg.coaloperation.ui.tunneling.activity.WorkingFaceRecordActivity
import com.zmkg.coaloperation.utils.ScreenUtil import com.zmkg.coaloperation.utils.ScreenUtil
import com.zmkg.coaloperation.utils.gone import com.zmkg.coaloperation.utils.gone
import com.zmkg.coaloperation.utils.toJsonString import com.zmkg.coaloperation.utils.toJsonString
@@ -81,10 +81,10 @@ class TunnelWorkingFaceAdapter(var list: MutableList<TunnelWorkingFaceEntity>) :
Log.d(TAG, "convert: ${item.records!![recordPosition].toJsonString()}") Log.d(TAG, "convert: ${item.records!![recordPosition].toJsonString()}")
context.let { ctx -> context.let { ctx ->
if (ctx is TunnelingActivity) { if (ctx is TunnelingActivity) {
ctx.toActivity(WorkingPointActivity::class.java, Bundle().apply { ctx.toActivity(WorkingFaceRecordActivity::class.java, Bundle().apply {
putString(WorkingPointActivity.FACE_NAME, item.surfaceName) putString(WorkingFaceRecordActivity.FACE_NAME, item.surfaceName)
putParcelable( putParcelable(
WorkingPointActivity.FACE_RECORD, WorkingFaceRecordActivity.FACE_RECORD,
item.records!![recordPosition] item.records!![recordPosition]
) )
}) })
@@ -9,21 +9,21 @@ import androidx.core.view.updateLayoutParams
import com.chad.library.adapter.base.BaseQuickAdapter import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.viewholder.BaseViewHolder import com.chad.library.adapter.base.viewholder.BaseViewHolder
import com.zmkg.coaloperation.R import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.bean.RockItem import com.zmkg.coaloperation.bean.TunnelWorkingItem
import com.zmkg.coaloperation.bean.WorkingFaceItem
import com.zmkg.coaloperation.databinding.ListItemRockBinding import com.zmkg.coaloperation.databinding.ListItemRockBinding
import com.zmkg.coaloperation.databinding.ListItemWorkingFaceBinding import com.zmkg.coaloperation.databinding.ListItemTunnelWorkingItemBinding
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
import com.zmkg.coaloperation.utils.ScreenUtil import com.zmkg.coaloperation.utils.ScreenUtil
import com.zmkg.coaloperation.utils.formatDecimalString
class WorkingItemAdapter(data: MutableList<WorkingFaceItem>) : class TunnelWorkingItemAdapter(data: MutableList<TunnelWorkingItem>) :
BaseQuickAdapter<WorkingFaceItem, WorkingItemAdapter.VH>( BaseQuickAdapter<TunnelWorkingItem, TunnelWorkingItemAdapter.VH>(
R.layout.list_item_working_face, R.layout.list_item_tunnel_working_item,
data data
) { ) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VH { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VH {
val binding = ListItemWorkingFaceBinding.inflate( val binding = ListItemTunnelWorkingItemBinding.inflate(
LayoutInflater.from(parent.context), LayoutInflater.from(parent.context),
parent, parent,
false false
@@ -35,12 +35,12 @@ class WorkingItemAdapter(data: MutableList<WorkingFaceItem>) :
override fun convert( override fun convert(
holder: VH, holder: VH,
item: WorkingFaceItem item: TunnelWorkingItem
) { ) {
if (item.pageType == 0) { if (item.pageType == 0) {
loadFaceData(holder.binding, item) loadFaceData(holder.binding, item)
} else if (item.pageType == 1) { } else if (item.pageType == 1) {
loadPointData(holder.binding, item) loadRecordData(holder.binding, item)
} }
val position = holder.layoutPosition val position = holder.layoutPosition
holder.binding.divider.let { holder.binding.divider.let {
@@ -52,7 +52,7 @@ class WorkingItemAdapter(data: MutableList<WorkingFaceItem>) :
} }
} }
private fun loadPointData(binding: ListItemWorkingFaceBinding, item: WorkingFaceItem) { private fun loadRecordData(binding: ListItemTunnelWorkingItemBinding, item: TunnelWorkingItem) {
binding.run { binding.run {
tvItemName.text = item.name tvItemName.text = item.name
if (item.items.isNullOrEmpty()) { if (item.items.isNullOrEmpty()) {
@@ -73,7 +73,7 @@ class WorkingItemAdapter(data: MutableList<WorkingFaceItem>) :
} }
} }
} }
private fun loadFaceData(binding: ListItemWorkingFaceBinding, item: WorkingFaceItem) { private fun loadFaceData(binding: ListItemTunnelWorkingItemBinding, item: TunnelWorkingItem) {
binding.tvItemName.let { binding.tvItemName.let {
it.updateLayoutParams { height = ScreenUtil.dp2px(50f) } it.updateLayoutParams { height = ScreenUtil.dp2px(50f) }
it.text = item.name it.text = item.name
@@ -96,12 +96,12 @@ class WorkingItemAdapter(data: MutableList<WorkingFaceItem>) :
tvRockStartLen.let { tvRockStartLen.let {
it.focusable = EditText.NOT_FOCUSABLE it.focusable = EditText.NOT_FOCUSABLE
it.setOnKeyListener(null) it.setOnKeyListener(null)
it.setText(item.positionStart) it.setText(item.positionStart.formatDecimalString())
} }
tvRockEndLen.let { tvRockEndLen.let {
it.focusable = EditText.NOT_FOCUSABLE it.focusable = EditText.NOT_FOCUSABLE
it.setOnKeyListener(null) it.setOnKeyListener(null)
it.setText(item.positionEnd) it.setText(item.positionEnd.formatDecimalString())
} }
tvRockType.let { tvRockType.let {
it.focusable = EditText.NOT_FOCUSABLE it.focusable = EditText.NOT_FOCUSABLE
@@ -114,5 +114,5 @@ class WorkingItemAdapter(data: MutableList<WorkingFaceItem>) :
} }
inner class VH(var binding: ListItemWorkingFaceBinding) : BaseViewHolder(binding.root) inner class VH(var binding: ListItemTunnelWorkingItemBinding) : BaseViewHolder(binding.root)
} }
@@ -1,4 +1,4 @@
package com.zmkg.coaloperation.ui.tunneling.adapter package com.zmkg.coaloperation.adapter
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
@@ -7,6 +7,7 @@ import com.chad.library.adapter.base.viewholder.BaseViewHolder
import com.zmkg.coaloperation.R import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.databinding.ItemRockNatureBinding import com.zmkg.coaloperation.databinding.ItemRockNatureBinding
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
import com.zmkg.coaloperation.utils.formatDecimalString
/** /**
@@ -29,8 +30,8 @@ class TunnelingRockNatureAdapter(list: MutableList<TunnelRoofLithologyEntity>) :
override fun convert(holder: VH, item: TunnelRoofLithologyEntity) { override fun convert(holder: VH, item: TunnelRoofLithologyEntity) {
holder.binding.let { holder.binding.let {
it.tvRock1Start.text = item.positionStart it.tvRock1Start.text = item.positionStart.formatDecimalString()
it.tvRock1End.text = item.positionEnd it.tvRock1End.text = item.positionEnd.formatDecimalString()
it.tvRock1Name.text = item.lithologyType it.tvRock1Name.text = item.lithologyType
} }
} }
@@ -1,4 +1,4 @@
package com.zmkg.coaloperation.ui.tunneling.bean package com.zmkg.coaloperation.bean
data class DictBean( data class DictBean(
var seam_list: Map<String, String>?, var seam_list: Map<String, String>?,
@@ -2,7 +2,7 @@ package com.zmkg.coaloperation.bean
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
data class WorkingFaceItem( data class TunnelWorkingItem(
var name: String? = "", var name: String? = "",
var value: String? = "", var value: String? = "",
var items: MutableList<TunnelRoofLithologyEntity>? = null, var items: MutableList<TunnelRoofLithologyEntity>? = null,
@@ -1,4 +1,4 @@
package com.zmkg.coaloperation.ui.tunneling.bean package com.zmkg.coaloperation.bean
import java.io.Serializable import java.io.Serializable
@@ -6,33 +6,33 @@ import java.io.Serializable
/** /**
* 掘进 * 掘进
*/ */
data class TunnelingHomeBean( //data class TunnelingHomeBean(
var contentList: MutableList<TunnelingHomeItemBean>?, // var contentList: MutableList<TunnelingHomeItemBean>?,
val createBy: String?, // val createBy: String?,
val createTime: String?, // val createTime: String?,
val updateBy: String?, // val updateBy: String?,
val updateTime: String?, // val updateTime: String?,
val remark: String?, // val remark: String?,
val surfaceId: String?, // val surfaceId: String?,
val totalFootage: String?, // val totalFootage: String?,
val seamId: String?, // val seamId: String?,
val areaId: String?, // val areaId: String?,
val seamName: String?, // val seamName: String?,
val surfaceName: String?, // val surfaceName: String?,
val areaName: String?, // val areaName: String?,
val surfaceAzimuth: String?, // val surfaceAzimuth: String?,
val surfaceHeight: String?, // val surfaceHeight: String?,
val surfaceWidth: String?, // val surfaceWidth: String?,
val tunnelNature: String?, // val tunnelNature: String?,
val planStartDate: String?, // val planStartDate: String?,
val planEndDate: String?, // val planEndDate: String?,
val geologicalType: String?, // val geologicalType: String?,
val hydrogeologicalType: String?, // val hydrogeologicalType: String?,
val seamIgnition: String?, // val seamIgnition: String?,
val seamGas: String?, // val seamGas: String?,
val seamBumpPressure: String?, // val seamBumpPressure: String?,
val surfaceSupportForm: String? // val surfaceSupportForm: String?
) //)
class TunnelingHomeItemBean { class TunnelingHomeItemBean {
var createBy: String? = null var createBy: String? = null
@@ -3,11 +3,8 @@ package com.zmkg.coaloperation.data.api
import com.zmkg.coaloperation.data.bean.ApiResponse import com.zmkg.coaloperation.data.bean.ApiResponse
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
import com.zmkg.coaloperation.retorfit.UrlConfig import com.zmkg.coaloperation.retorfit.UrlConfig
import com.zmkg.coaloperation.ui.tunneling.bean.FaceWorkDetailBean import com.zmkg.coaloperation.bean.FaceWorkDetailBean
import com.zmkg.coaloperation.ui.tunneling.bean.TunnelingHomeBean
import com.zmkg.coaloperation.ui.tunneling.bean.TunnelingHomeItemBean
import com.zmkg.coaloperation.ui.home.bean.WaterLedgerBean import com.zmkg.coaloperation.ui.home.bean.WaterLedgerBean
import kotlinx.coroutines.flow.MutableSharedFlow
import okhttp3.RequestBody import okhttp3.RequestBody
import retrofit2.http.Body import retrofit2.http.Body
import retrofit2.http.GET import retrofit2.http.GET
@@ -29,14 +26,14 @@ interface HomeApi {
/** /**
* 掘进-首页-工作面列表 * 掘进-首页-工作面列表
*/ */
@GET("/api/mine/tunnelling/surface/list") // @GET("/api/mine/tunnelling/surface/list")
suspend fun getTunnelingHomeData(): ApiResponse<MutableList<TunnelingHomeBean>> // suspend fun getTunnelingHomeData(): ApiResponse<MutableList<TunnelingHomeBean>>
/** // /**
* 掘进-首页-工作面记录列表 // * 掘进-首页-工作面记录列表
*/ // */
@GET("/api/mine/tunnelling/surface/record/{recordId}") // @GET("/api/mine/tunnelling/surface/record/{recordId}")
suspend fun getTunnelingHomeItemData(@Path("recordId") recordId: String?): ApiResponse<MutableList<TunnelingHomeItemBean>> // suspend fun getTunnelingHomeItemData(@Path("recordId") recordId: String?): ApiResponse<MutableList<TunnelingHomeItemBean>>
/** /**
* 掘进-工作面详情 * 掘进-工作面详情
@@ -5,14 +5,7 @@ import com.zmkg.coaloperation.data.api.HomeApi
import com.zmkg.coaloperation.data.bean.ApiResponse import com.zmkg.coaloperation.data.bean.ApiResponse
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
import com.zmkg.coaloperation.retorfit.RetrofitManager import com.zmkg.coaloperation.retorfit.RetrofitManager
import com.zmkg.coaloperation.retorfit.RetrofitManager.toRequestBody
import com.zmkg.coaloperation.superfuntion.toJson
import com.zmkg.coaloperation.ui.tunneling.bean.FaceWorkDetailBean
import com.zmkg.coaloperation.ui.tunneling.bean.TunnelingFaceAddBean
import com.zmkg.coaloperation.ui.tunneling.bean.TunnelingHomeBean
import com.zmkg.coaloperation.ui.tunneling.bean.TunnelingHomeItemBean
import com.zmkg.coaloperation.ui.home.bean.WaterLedgerBean import com.zmkg.coaloperation.ui.home.bean.WaterLedgerBean
import kotlinx.coroutines.flow.MutableSharedFlow
object HomeRepository : BaseRepository(){ object HomeRepository : BaseRepository(){
@@ -30,44 +23,44 @@ object HomeRepository : BaseRepository(){
} }
} }
/** // /**
* 掘进-首页-工作面列表 // * 掘进-首页-工作面列表
*/ // */
suspend fun getTunnelingHomeData(): ApiResponse<MutableList<TunnelingHomeBean>> { // suspend fun getTunnelingHomeData(): ApiResponse<MutableList<TunnelingHomeBean>> {
return apiCall { // return apiCall {
val map = mutableMapOf<String, Any?>() // val map = mutableMapOf<String, Any?>()
service.getTunnelingHomeData() // service.getTunnelingHomeData()
} // }
} // }
/**
* 掘进-首页-工作面记录列表
*/
suspend fun getTunnelingHomeItemData(surfaceId: String?): ApiResponse<MutableList<TunnelingHomeItemBean>> {
return apiCall {
val map = mutableMapOf<String, Any?>()
service.getTunnelingHomeItemData(surfaceId)
}
}
/**
* 掘进-工作面详情
*/
suspend fun getTunnelingSurfaceDetail(surfaceId: String?): ApiResponse<FaceWorkDetailBean> {
return apiCall {
val map = mutableMapOf<String, Any?>()
service.getTunnelingSurfaceDetail(surfaceId)
}
}
/**
* 掘进-新增工作面
*/
suspend fun postTunnellingSurfaceAdd(tunnelingFaceAddBean: TunnelingFaceAddBean): ApiResponse<String> {
return apiCall {
service.postTunnellingSurfaceAdd(tunnelingFaceAddBean.toJson().toRequestBody())
}
}
// /**
// * 掘进-首页-工作面记录列表
// */
// suspend fun getTunnelingHomeItemData(surfaceId: String?): ApiResponse<MutableList<TunnelingHomeItemBean>> {
// return apiCall {
// val map = mutableMapOf<String, Any?>()
// service.getTunnelingHomeItemData(surfaceId)
// }
// }
// /**
// * 掘进-工作面详情
// */
// suspend fun getTunnelingSurfaceDetail(surfaceId: String?): ApiResponse<FaceWorkDetailBean> {
// return apiCall {
// val map = mutableMapOf<String, Any?>()
// service.getTunnelingSurfaceDetail(surfaceId)
// }
// }
//
// /**
// * 掘进-新增工作面
// */
// suspend fun postTunnellingSurfaceAdd(tunnelingFaceAddBean: TunnelingFaceAddBean): ApiResponse<String> {
// return apiCall {
// service.postTunnellingSurfaceAdd(tunnelingFaceAddBean.toJson().toRequestBody())
// }
// }
//
suspend fun getTunnelHomeList() : ApiResponse<MutableList<TunnelWorkingFaceEntity>?> { suspend fun getTunnelHomeList() : ApiResponse<MutableList<TunnelWorkingFaceEntity>?> {
return apiCall { return apiCall {
service.getTunnelHomeList() service.getTunnelHomeList()
@@ -4,28 +4,21 @@ import android.os.Bundle
import android.text.TextUtils import android.text.TextUtils
import android.view.View import android.view.View
import android.widget.TextView import android.widget.TextView
import androidx.lifecycle.Lifecycle import androidx.core.view.isGone
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import com.zmkg.coaloperation.R import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.base.BaseVMBActivity import com.zmkg.coaloperation.base.BaseVMBActivity
import com.zmkg.coaloperation.databinding.ActivityWorkFaceBinding import com.zmkg.coaloperation.bean.WorkOption
import com.zmkg.coaloperation.databinding.ActivityAddWorkingFaceBinding
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
import com.zmkg.coaloperation.db.viewmodel.TunnelWorkingFaceViewModel import com.zmkg.coaloperation.db.viewmodel.TunnelWorkingFaceViewModel
import com.zmkg.coaloperation.event.TunnelingWorkFaceRefreshEvent
import com.zmkg.coaloperation.ui.tunneling.viewmodel.TunnelingViewModel import com.zmkg.coaloperation.ui.tunneling.viewmodel.TunnelingViewModel
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
import org.greenrobot.eventbus.EventBus
import androidx.core.view.isGone
import com.zmkg.coaloperation.bean.WorkOption
import com.zmkg.coaloperation.utils.DateTimeUtil import com.zmkg.coaloperation.utils.DateTimeUtil
import com.zmkg.coaloperation.utils.DictUtils import com.zmkg.coaloperation.utils.DictUtils
import com.zmkg.coaloperation.utils.PickerUtil import com.zmkg.coaloperation.utils.PickerUtil
import com.zmkg.coaloperation.utils.gone import com.zmkg.coaloperation.utils.gone
import com.zmkg.coaloperation.utils.visible import com.zmkg.coaloperation.utils.visible
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode import org.greenrobot.eventbus.ThreadMode
import java.time.LocalDateTime import java.time.LocalDateTime
@@ -33,8 +26,8 @@ import java.time.LocalDateTime
/** /**
* 工作面 * 工作面
*/ */
class WorkFaceActivity : class AddWorkingFaceActivity :
BaseVMBActivity<TunnelingViewModel, ActivityWorkFaceBinding>(R.layout.activity_work_face) { BaseVMBActivity<TunnelingViewModel, ActivityAddWorkingFaceBinding>(R.layout.activity_add_working_face) {
companion object { companion object {
private const val TAG = "WorkFaceActivity" private const val TAG = "WorkFaceActivity"
@@ -79,7 +72,7 @@ class WorkFaceActivity :
mBinding.expandLayout.visible() mBinding.expandLayout.visible()
mBinding.imgExpand.gone() mBinding.imgExpand.gone()
faceDetail = faceDetail =
intent.getParcelableExtra(WorkingFaceDetail2Activity.FACE_WORK_DETAIL_DATA) as TunnelWorkingFaceEntity? intent.getParcelableExtra(WorkingFaceDetailActivity.FACE_WORK_DETAIL_DATA) as TunnelWorkingFaceEntity?
if (faceDetail == null) { if (faceDetail == null) {
showToast("未查询到工作面数据") showToast("未查询到工作面数据")
return return
@@ -170,16 +163,6 @@ class WorkFaceActivity :
override fun createObserve() { override fun createObserve() {
super.createObserve() super.createObserve()
lifecycleScope.launch {
repeatOnLifecycle(Lifecycle.State.CREATED) {
mViewModel.tunnelingWorkFaceAdd.collectLatest {
showToast("新增成功")
EventBus.getDefault().post(TunnelingWorkFaceRefreshEvent())
delay(200)
finish()
}
}
}
} }
override fun processClick(v: View?) { override fun processClick(v: View?) {
@@ -10,7 +10,7 @@ import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.adapter.TunnelRoofLithologyAdapter import com.zmkg.coaloperation.adapter.TunnelRoofLithologyAdapter
import com.zmkg.coaloperation.base.BaseVMBActivity import com.zmkg.coaloperation.base.BaseVMBActivity
import com.zmkg.coaloperation.base.viewmodel.TestViewModel import com.zmkg.coaloperation.base.viewmodel.TestViewModel
import com.zmkg.coaloperation.databinding.ActivityAddWorkingPointBinding import com.zmkg.coaloperation.databinding.ActivityAddWorkingFaceRecordBinding
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceRecordEntity import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceRecordEntity
import com.zmkg.coaloperation.db.viewmodel.TunnelRoofLithologyViewModel import com.zmkg.coaloperation.db.viewmodel.TunnelRoofLithologyViewModel
@@ -29,8 +29,8 @@ import java.time.LocalDateTime
/** /**
* 开始记录 * 开始记录
*/ */
class AddWorkingPointActivity : class AddWorkingFaceRecordActivity :
BaseVMBActivity<TestViewModel, ActivityAddWorkingPointBinding>(R.layout.activity_add_working_point) { BaseVMBActivity<TestViewModel, ActivityAddWorkingFaceRecordBinding>(R.layout.activity_add_working_face_record) {
companion object { companion object {
const val TAG = "AddWorkingPointActivity" const val TAG = "AddWorkingPointActivity"
@@ -43,8 +43,8 @@ class TunnelingActivity :
TunnelWorkingFaceAdapter(workingFaceList).apply { TunnelWorkingFaceAdapter(workingFaceList).apply {
setOnItemChildClickListener { _, view, position -> setOnItemChildClickListener { _, view, position ->
if (view.id == R.id.llWorkingFace) { if (view.id == R.id.llWorkingFace) {
toActivity(WorkingFaceDetailActivity::class.java, Bundle().apply { toActivity(WorkingFaceStatisticsActivity::class.java, Bundle().apply {
putParcelable(WorkingFaceDetailActivity.FACE_DETAIL, workingFaceList[position]) putParcelable(WorkingFaceStatisticsActivity.FACE_DETAIL, workingFaceList[position])
}) })
return@setOnItemChildClickListener return@setOnItemChildClickListener
} }
@@ -59,16 +59,16 @@ class TunnelingActivity :
return@setOnItemChildClickListener return@setOnItemChildClickListener
} }
if (view.id == R.id.start_record) { if (view.id == R.id.start_record) {
toActivity(AddWorkingPointActivity::class.java, Bundle().apply { toActivity(AddWorkingFaceRecordActivity::class.java, Bundle().apply {
putLong( putLong(
AddWorkingPointActivity.FACE_ID, AddWorkingFaceRecordActivity.FACE_ID,
workingFaceList[position].surfaceId workingFaceList[position].surfaceId
) )
putString( putString(
AddWorkingPointActivity.FACE_NAME, AddWorkingFaceRecordActivity.FACE_NAME,
workingFaceList[position].surfaceName workingFaceList[position].surfaceName
) )
putInt(AddWorkingPointActivity.SHOW_TYPE, 0) putInt(AddWorkingFaceRecordActivity.SHOW_TYPE, 0)
}) })
} }
} }
@@ -105,8 +105,8 @@ class TunnelingActivity :
override fun bindEvent() { override fun bindEvent() {
mBinding.toolbarLay.titleTvRight.setOnClickListener { mBinding.toolbarLay.titleTvRight.setOnClickListener {
toActivity(WorkFaceActivity::class.java, Bundle().apply { toActivity(AddWorkingFaceActivity::class.java, Bundle().apply {
putString(WorkFaceActivity.WORK_FACE_TYPE, WorkFaceActivity.WorkFaceType.ADD.name) putString(AddWorkingFaceActivity.WORK_FACE_TYPE, AddWorkingFaceActivity.WorkFaceType.ADD.name)
}) })
} }
} }
@@ -1,112 +0,0 @@
package com.zmkg.coaloperation.ui.tunneling.activity
import android.annotation.SuppressLint
import android.os.Bundle
import android.view.View
import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.base.BaseVMBActivity
import com.zmkg.coaloperation.base.viewmodel.TestViewModel
import androidx.recyclerview.widget.LinearLayoutManager
import com.zmkg.coaloperation.adapter.WorkingItemAdapter
import com.zmkg.coaloperation.bean.WorkingFaceItem
import com.zmkg.coaloperation.databinding.ActivityWorkingFaceDetail2Binding
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
/**
* 工作面详情2
*/
class WorkingFaceDetail2Activity :
BaseVMBActivity<TestViewModel, ActivityWorkingFaceDetail2Binding>(R.layout.activity_working_face_detail2) {
companion object {
const val FACE_WORK_DETAIL_DATA = "faceWorkDetailData"
}
private val list: MutableList<WorkingFaceItem> = mutableListOf()
// private var detail:FaceWorkDetailBean?=null
private var detail: TunnelWorkingFaceEntity? = null
private val adapter by lazy {
WorkingItemAdapter(list)
}
override fun initView(savedInstanceState: Bundle?) {
mBinding.toolbarLay.vLine.visibility = View.GONE
mBinding.toolbarLay.rightText = "修改"
mBinding.rvFaceList.let {
it.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
it.adapter = adapter
}
}
override fun initData() {
detail = intent.getParcelableExtra(FACE_WORK_DETAIL_DATA)
detail?.let {
loadFaceDetail(it)
}
}
override fun bindEvent() {
mBinding.toolbarLay.titleTvRight.setOnClickListener {
toActivity(WorkFaceActivity::class.java, Bundle().apply {
putString(WorkFaceActivity.WORK_FACE_TYPE, WorkFaceActivity.WorkFaceType.EDIT.name)
// putSerializable(WorkFaceActivity.FACE_WORK_DETAIL_DATA, detail)
putParcelable(WorkFaceActivity.FACE_WORK_DETAIL_DATA, detail)
})
}
}
override fun processClick(v: View?) {
}
@SuppressLint("NotifyDataSetChanged")
private fun loadFaceDetail(it: TunnelWorkingFaceEntity) {
mBinding.toolbarLay.title = it.surfaceName
list.clear()
list.add(WorkingFaceItem(pageType = 0, name = "工作面名称", value = it.surfaceName))
list.add(WorkingFaceItem(pageType = 0, name = "所属煤层", value = it.seamName))
list.add(WorkingFaceItem(pageType = 0, name = "所属采区域", value = it.areaName))
list.add(WorkingFaceItem(pageType = 0, name = "工作面方位角", value = it.surfaceAzimuth))
list.add(WorkingFaceItem(pageType = 0, name = "工作面巷高", value = it.surfaceHeight))
list.add(WorkingFaceItem(pageType = 0, name = "工作面巷宽", value = it.surfaceWidth))
list.add(WorkingFaceItem(pageType = 0, name = "巷道性质", value = it.tunnelNature))
list.add(
WorkingFaceItem(
pageType = 0,
name = "计划工期",
value = "${it.planStartDate} ~ ${it.planEndDate}"
)
)
list.add(WorkingFaceItem(pageType = 0, name = "地质类型", value = it.geologicalType))
list.add(
WorkingFaceItem(
pageType = 0,
name = "水文地质类型",
value = it.hydrogeologicalType
)
)
list.add(WorkingFaceItem(pageType = 0, name = "煤层发火性", value = it.seamIgnition))
list.add(WorkingFaceItem(pageType = 0, name = "瓦斯含量", value = it.seamGas))
list.add(
WorkingFaceItem(
pageType = 0,
name = "冲击地压危险性",
value = it.seamBumpPressure
)
)
list.add(WorkingFaceItem(pageType = 0, name = "支护形式", value = it.surfaceSupportForm))
adapter.notifyDataSetChanged()
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun onWorkingFaceEvent(event: TunnelWorkingFaceEntity) {
detail = event
detail?.let {
loadFaceDetail(it)
}
}
}
@@ -1,208 +1,112 @@
package com.zmkg.coaloperation.ui.tunneling.activity package com.zmkg.coaloperation.ui.tunneling.activity
import android.annotation.SuppressLint
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import com.zmkg.coaloperation.R import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.base.BaseVMBActivity import com.zmkg.coaloperation.base.BaseVMBActivity
import androidx.core.graphics.toColorInt import com.zmkg.coaloperation.base.viewmodel.TestViewModel
import androidx.lifecycle.ViewModelProvider import androidx.recyclerview.widget.LinearLayoutManager
import com.zmkg.coaloperation.adapter.TunnelWorkingItemAdapter
import com.zmkg.coaloperation.bean.TunnelWorkingItem
import com.zmkg.coaloperation.databinding.ActivityWorkingFaceDetailBinding import com.zmkg.coaloperation.databinding.ActivityWorkingFaceDetailBinding
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
import com.zmkg.coaloperation.db.viewmodel.TunnelRoofLithologyViewModel
import com.zmkg.coaloperation.db.viewmodel.TunnelWorkingFaceRecordViewModel
import com.zmkg.coaloperation.ui.tunneling.adapter.TunnelingRockNatureAdapter
import com.zmkg.coaloperation.ui.tunneling.bean.FaceWorkDetailBean
import com.zmkg.coaloperation.ui.tunneling.viewmodel.TunnelingViewModel
import com.zmkg.coaloperation.utils.ScreenUtil
import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode import org.greenrobot.eventbus.ThreadMode
import kotlin.apply
import kotlin.math.roundToInt
/** /**
* 工作面详情 * 工作面详情2
*/ */
class WorkingFaceDetailActivity : class WorkingFaceDetailActivity :
BaseVMBActivity<TunnelingViewModel, ActivityWorkingFaceDetailBinding>(R.layout.activity_working_face_detail) { BaseVMBActivity<TestViewModel, ActivityWorkingFaceDetailBinding>(R.layout.activity_working_face_detail) {
companion object { companion object {
const val FACE_DETAIL = "faceDetail" const val FACE_WORK_DETAIL_DATA = "faceWorkDetailData"
} }
private val workingFaceRecordViewModel: TunnelWorkingFaceRecordViewModel by lazy { private val list: MutableList<TunnelWorkingItem> = mutableListOf()
ViewModelProvider(this)[TunnelWorkingFaceRecordViewModel::class.java]
}
private val roofLithologyViewModel: TunnelRoofLithologyViewModel by lazy { // private var detail:FaceWorkDetailBean?=null
ViewModelProvider(this)[TunnelRoofLithologyViewModel::class.java] private var detail: TunnelWorkingFaceEntity? = null
private val adapter by lazy {
TunnelWorkingItemAdapter(list)
} }
private val tunnelingRockNatureAdapter: TunnelingRockNatureAdapter by lazy {
TunnelingRockNatureAdapter(lithologyList)
}
private val lithologyList:MutableList<TunnelRoofLithologyEntity> = mutableListOf()
private var faceDetail: TunnelWorkingFaceEntity? = null
override fun initView(savedInstanceState: Bundle?) { override fun initView(savedInstanceState: Bundle?) {
mBinding.toolbarLay.rightText = "查看详情"
mBinding.toolbarLay.vLine.visibility = View.GONE mBinding.toolbarLay.vLine.visibility = View.GONE
mBinding.rvRockNature.adapter = tunnelingRockNatureAdapter mBinding.toolbarLay.rightText = "修改"
mBinding.arcViewGreen.let { mBinding.rvFaceList.let {
it.arcColor = "#30E0A1".toColorInt() it.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
it.startAngle = 0f it.adapter = adapter
it.sweepAngle = 360f
it.strokeWidth = 12f
it.radius = ScreenUtil.dp2px(122f - 12f) / 2f
} }
mBinding.arcViewRed.let {
it.arcColor = "#FA2256".toColorInt()
it.startAngle = -90f
it.strokeWidth = 10f
it.sweepAngle = 0f
it.radius = ScreenUtil.dp2px(100f - 10f) / 2f
}
mBinding.arcViewBlue.let {
it.arcColor = "#246CF9".toColorInt()
it.startAngle = -90f
it.strokeWidth = 10f
it.sweepAngle = 0f
it.radius = ScreenUtil.dp2px(100f - 10f) / 2f
}
} }
override fun initData() { override fun initData() {
// val surfaceId = intent.getStringExtra("surfaceId") detail = intent.getParcelableExtra(FACE_WORK_DETAIL_DATA)
// if (TextUtils.isEmpty(surfaceId)) { detail?.let {
// finish() loadFaceDetail(it)
// } else {
// mViewModel.getTunnelingSurfaceDetail(surfaceId)
// }
faceDetail = intent.getParcelableExtra(FACE_DETAIL)
faceDetail?.let { detail ->
loadFaceDetail()
workingFaceRecordViewModel.getLastEntity(detail.surfaceId) { record ->
record?.let {
mBinding.tvYesterdayLen.text = "${it.workingFootage}m"
mBinding.tvWorkingFaceAngle.text = "${it.seamDip}"
// mBinding.tvMonthAccumulateLen.text = "${it.monthFootage}m"
mBinding.tvWorkingFaceWater.text = "${it.waterYield}"
roofLithologyViewModel.getEntityList(it.recordId) { list ->
list?.let {
lithologyList.addAll(it)
tunnelingRockNatureAdapter.notifyDataSetChanged()
}
}
}
}
} }
} }
override fun bindEvent() { override fun bindEvent() {
mBinding.toolbarLay.titleTvRight.setOnClickListener { mBinding.toolbarLay.titleTvRight.setOnClickListener {
toActivity(WorkingFaceDetail2Activity::class.java, Bundle().apply { toActivity(AddWorkingFaceActivity::class.java, Bundle().apply {
// putSerializable( putString(AddWorkingFaceActivity.WORK_FACE_TYPE, AddWorkingFaceActivity.WorkFaceType.EDIT.name)
// WorkingFaceDetail2Activity.FACE_WORK_DETAIL_DATA, // putSerializable(WorkFaceActivity.FACE_WORK_DETAIL_DATA, detail)
// mViewModel.faceWorkDetailData.value as Serializable putParcelable(AddWorkingFaceActivity.FACE_WORK_DETAIL_DATA, detail)
// )
putParcelable(WorkingFaceDetail2Activity.FACE_WORK_DETAIL_DATA, faceDetail)
}) })
} }
} }
override fun processClick(v: View?) { override fun processClick(v: View?) {
}
override fun createObserve() {
super.createObserve()
// lifecycleScope.launch {
// repeatOnLifecycle(Lifecycle.State.CREATED) {
// mViewModel.faceWorkDetailData.collectLatest {
// if (it != null) {
// setDataView(it)
// }
// }
// }
// }
}
private fun setDataView(bean: FaceWorkDetailBean?) {
bean ?: return
}
private fun stringToDouble(numText: String?): Double {
if (numText.isNullOrEmpty() || numText.isBlank()) return 0.toDouble()
return numText.toDouble()
}
private fun loadFaceDetail() {
val bean = faceDetail!!
mBinding.apply {
toolbarLay.title = bean.surfaceName
val total = stringToDouble(bean.totalFootage)
val accumulative = stringToDouble(bean.accumulativeFootage)
val remaining = stringToDouble(bean.remainingFootage)
tvLenTotal.text = "总进尺:${total}m"
tvLenAccumulate.text = "累计进尺:${accumulative}m"
tvLenRemain.text = "剩余进尺:${remaining}m"
//累计进尺占比
var radio = 0
//累计进尺圆圈占比
var arcViewRadio: Float
if (accumulative >= total) {
radio = 100
arcViewRadio = 360F
} else if (accumulative <= 0) {
radio = 0
arcViewRadio = 0F
} else {
arcViewRadio = (accumulative * 100F / total).toFloat()
radio = arcViewRadio.roundToInt()
}
arcViewRed.let {
it.sweepAngle = arcViewRadio
}
arcViewBlue.let {
it.sweepAngle = (360F - arcViewRadio) * -1F
}
mBinding.tvCompleteRate.text = "$radio%"
// tvYesterdayLen.text = "${bean?.yesterdayFootage}m"
// tvWorkingFaceAngle.text = "${bean?.latestRecord?.seamDip.orEmptyDefaultInt()}"
// tvMonthAccumulateLen.text = "${bean?.monthFootage}m"
// tvWorkingFaceWater.text = "${bean?.latestRecord?.waterYield.orEmptyDefaultInt()}m"
// val list = bean?.latestRecord?.mineWorkingLithologyList
// if (list.isNullOrEmpty()) {
// tvYesterdayRockType.visibility = View.GONE
// } else {
// tvYesterdayRockType.visibility = View.VISIBLE
// tunnelingRockNatureAdapter.setNewInstance(list)
// }
} }
@SuppressLint("NotifyDataSetChanged")
private fun loadFaceDetail(it: TunnelWorkingFaceEntity) {
mBinding.toolbarLay.title = it.surfaceName
list.clear()
list.add(TunnelWorkingItem(pageType = 0, name = "工作面名称", value = it.surfaceName))
list.add(TunnelWorkingItem(pageType = 0, name = "所属煤层", value = it.seamName))
list.add(TunnelWorkingItem(pageType = 0, name = "所属采区域", value = it.areaName))
list.add(TunnelWorkingItem(pageType = 0, name = "工作面方位角", value = it.surfaceAzimuth))
list.add(TunnelWorkingItem(pageType = 0, name = "工作面巷高", value = it.surfaceHeight))
list.add(TunnelWorkingItem(pageType = 0, name = "工作面巷宽", value = it.surfaceWidth))
list.add(TunnelWorkingItem(pageType = 0, name = "巷道性质", value = it.tunnelNature))
list.add(
TunnelWorkingItem(
pageType = 0,
name = "计划工期",
value = "${it.planStartDate} ~ ${it.planEndDate}"
)
)
list.add(TunnelWorkingItem(pageType = 0, name = "地质类型", value = it.geologicalType))
list.add(
TunnelWorkingItem(
pageType = 0,
name = "水文地质类型",
value = it.hydrogeologicalType
)
)
list.add(TunnelWorkingItem(pageType = 0, name = "煤层发火性", value = it.seamIgnition))
list.add(TunnelWorkingItem(pageType = 0, name = "瓦斯含量", value = it.seamGas))
list.add(
TunnelWorkingItem(
pageType = 0,
name = "冲击地压危险性",
value = it.seamBumpPressure
)
)
list.add(TunnelWorkingItem(pageType = 0, name = "支护形式", value = it.surfaceSupportForm))
adapter.notifyDataSetChanged()
} }
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
fun onWorkingFaceEvent(event: TunnelWorkingFaceEntity) { fun onWorkingFaceEvent(event: TunnelWorkingFaceEntity) {
faceDetail = event detail = event
loadFaceDetail() detail?.let {
loadFaceDetail(it)
}
} }
} }
@@ -7,13 +7,11 @@ import android.view.View
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.zmkg.coaloperation.R import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.adapter.WorkingItemAdapter import com.zmkg.coaloperation.adapter.TunnelWorkingItemAdapter
import com.zmkg.coaloperation.base.BaseVMBActivity import com.zmkg.coaloperation.base.BaseVMBActivity
import com.zmkg.coaloperation.base.viewmodel.TestViewModel import com.zmkg.coaloperation.base.viewmodel.TestViewModel
import com.zmkg.coaloperation.bean.RockItem import com.zmkg.coaloperation.bean.TunnelWorkingItem
import com.zmkg.coaloperation.bean.WorkingFaceItem import com.zmkg.coaloperation.databinding.ActivityWorkingFaceRecordBinding
import com.zmkg.coaloperation.databinding.ActivityWorkingPointBinding
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceRecordEntity import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceRecordEntity
import com.zmkg.coaloperation.db.viewmodel.TunnelRoofLithologyViewModel import com.zmkg.coaloperation.db.viewmodel.TunnelRoofLithologyViewModel
import com.zmkg.coaloperation.utils.DictUtils import com.zmkg.coaloperation.utils.DictUtils
@@ -24,8 +22,8 @@ import org.greenrobot.eventbus.ThreadMode
/** /**
* 查看棋盘井 * 查看棋盘井
*/ */
class WorkingPointActivity : class WorkingFaceRecordActivity :
BaseVMBActivity<TestViewModel, ActivityWorkingPointBinding>(R.layout.activity_working_point) { BaseVMBActivity<TestViewModel, ActivityWorkingFaceRecordBinding>(R.layout.activity_working_face_record) {
companion object { companion object {
const val TAG = "WorkingPointActivity" const val TAG = "WorkingPointActivity"
@@ -35,13 +33,13 @@ class WorkingPointActivity :
private var faceName: String? = null private var faceName: String? = null
private var faceRecord: TunnelWorkingFaceRecordEntity? = null private var faceRecord: TunnelWorkingFaceRecordEntity? = null
private val list: MutableList<WorkingFaceItem> = mutableListOf() private val list: MutableList<TunnelWorkingItem> = mutableListOf()
private val roofLithologyViewModel: TunnelRoofLithologyViewModel by lazy { private val roofLithologyViewModel: TunnelRoofLithologyViewModel by lazy {
ViewModelProvider(this)[TunnelRoofLithologyViewModel::class.java] ViewModelProvider(this)[TunnelRoofLithologyViewModel::class.java]
} }
private val adapter by lazy { private val adapter by lazy {
WorkingItemAdapter(list) TunnelWorkingItemAdapter(list)
} }
override fun initView(savedInstanceState: Bundle?) { override fun initView(savedInstanceState: Bundle?) {
@@ -49,10 +47,10 @@ class WorkingPointActivity :
mBinding.toolbarLay.title = "查看详情" mBinding.toolbarLay.title = "查看详情"
mBinding.toolbarLay.rightText = "修改" mBinding.toolbarLay.rightText = "修改"
mBinding.toolbarLay.titleTvRight.setOnClickListener { mBinding.toolbarLay.titleTvRight.setOnClickListener {
toActivity(AddWorkingPointActivity::class.java, Bundle().apply { toActivity(AddWorkingFaceRecordActivity::class.java, Bundle().apply {
putInt(AddWorkingPointActivity.SHOW_TYPE, 1) putInt(AddWorkingFaceRecordActivity.SHOW_TYPE, 1)
putString(AddWorkingPointActivity.FACE_NAME, faceName) putString(AddWorkingFaceRecordActivity.FACE_NAME, faceName)
putParcelable(AddWorkingPointActivity.FACE_RECORD, faceRecord) putParcelable(AddWorkingFaceRecordActivity.FACE_RECORD, faceRecord)
}) })
} }
mBinding.rvPointList.let { mBinding.rvPointList.let {
@@ -77,26 +75,26 @@ class WorkingPointActivity :
@SuppressLint("NotifyDataSetChanged") @SuppressLint("NotifyDataSetChanged")
private fun loadFaceRecord(it: TunnelWorkingFaceRecordEntity) { private fun loadFaceRecord(it: TunnelWorkingFaceRecordEntity) {
list.clear() list.clear()
list.add(WorkingFaceItem(pageType = 1, name = "工作面名称", value = faceName)) list.add(TunnelWorkingItem(pageType = 1, name = "工作面名称", value = faceName))
list.add(WorkingFaceItem(pageType = 1, name = "施工日期", value = it.workingDate)) list.add(TunnelWorkingItem(pageType = 1, name = "施工日期", value = it.workingDate))
list.add( list.add(
WorkingFaceItem( TunnelWorkingItem(
pageType = 1, pageType = 1,
name = "施工班次", name = "施工班次",
value = DictUtils.getTeamShift(it.teamShift) value = DictUtils.getTeamShift(it.teamShift)
) )
) )
list.add(WorkingFaceItem(pageType = 1, name = "施工队伍", value = it.teamName)) list.add(TunnelWorkingItem(pageType = 1, name = "施工队伍", value = it.teamName))
list.add(WorkingFaceItem(pageType = 1, name = "带班队长", value = it.teamLeader)) list.add(TunnelWorkingItem(pageType = 1, name = "带班队长", value = it.teamLeader))
list.add(WorkingFaceItem(pageType = 1, name = "本班进尺", value = it.workingFootage)) list.add(TunnelWorkingItem(pageType = 1, name = "本班进尺", value = it.workingFootage))
// val rockList = mutableListOf<TunnelRoofLithologyEntity>() // val rockList = mutableListOf<TunnelRoofLithologyEntity>()
// rockList.add(RockItem(startLen = 0, endLen = 1, rockType = "泥")) // rockList.add(RockItem(startLen = 0, endLen = 1, rockType = "泥"))
// rockList.add(RockItem(startLen = 0, endLen = 1, rockType = "砂")) // rockList.add(RockItem(startLen = 0, endLen = 1, rockType = "砂"))
list.add(WorkingFaceItem(pageType = 1, name = "顶板岩性", value = "", items = null)) list.add(TunnelWorkingItem(pageType = 1, name = "顶板岩性", value = "", items = null))
list.add(WorkingFaceItem(pageType = 1, name = "煤层倾角", value = it.seamDip)) list.add(TunnelWorkingItem(pageType = 1, name = "煤层倾角", value = it.seamDip))
list.add(WorkingFaceItem(pageType = 1, name = "煤层高", value = it.seamHeight)) list.add(TunnelWorkingItem(pageType = 1, name = "煤层高", value = it.seamHeight))
list.add(WorkingFaceItem(pageType = 1, name = "记录人", value = it.recordPerson)) list.add(TunnelWorkingItem(pageType = 1, name = "记录人", value = it.recordPerson))
adapter.notifyDataSetChanged() adapter.notifyDataSetChanged()
} }
@@ -0,0 +1,209 @@
package com.zmkg.coaloperation.ui.tunneling.activity
import android.os.Bundle
import android.view.View
import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.base.BaseVMBActivity
import androidx.core.graphics.toColorInt
import androidx.lifecycle.ViewModelProvider
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
import com.zmkg.coaloperation.db.viewmodel.TunnelRoofLithologyViewModel
import com.zmkg.coaloperation.db.viewmodel.TunnelWorkingFaceRecordViewModel
import com.zmkg.coaloperation.adapter.TunnelingRockNatureAdapter
import com.zmkg.coaloperation.databinding.ActivityWorkingFaceStatisticsBinding
import com.zmkg.coaloperation.bean.FaceWorkDetailBean
import com.zmkg.coaloperation.ui.tunneling.viewmodel.TunnelingViewModel
import com.zmkg.coaloperation.utils.ScreenUtil
import com.zmkg.coaloperation.utils.formatDecimalString
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
import kotlin.apply
import kotlin.math.roundToInt
/**
* 工作面详情
*/
class WorkingFaceStatisticsActivity :
BaseVMBActivity<TunnelingViewModel, ActivityWorkingFaceStatisticsBinding>(R.layout.activity_working_face_statistics) {
companion object {
const val FACE_DETAIL = "faceDetail"
}
private val workingFaceRecordViewModel: TunnelWorkingFaceRecordViewModel by lazy {
ViewModelProvider(this)[TunnelWorkingFaceRecordViewModel::class.java]
}
private val roofLithologyViewModel: TunnelRoofLithologyViewModel by lazy {
ViewModelProvider(this)[TunnelRoofLithologyViewModel::class.java]
}
private val tunnelingRockNatureAdapter: TunnelingRockNatureAdapter by lazy {
TunnelingRockNatureAdapter(lithologyList)
}
private val lithologyList:MutableList<TunnelRoofLithologyEntity> = mutableListOf()
private var faceDetail: TunnelWorkingFaceEntity? = null
override fun initView(savedInstanceState: Bundle?) {
mBinding.toolbarLay.rightText = "查看详情"
mBinding.toolbarLay.vLine.visibility = View.GONE
mBinding.rvRockNature.adapter = tunnelingRockNatureAdapter
mBinding.arcViewGreen.let {
it.arcColor = "#30E0A1".toColorInt()
it.startAngle = 0f
it.sweepAngle = 360f
it.strokeWidth = 12f
it.radius = ScreenUtil.dp2px(122f - 12f) / 2f
}
mBinding.arcViewRed.let {
it.arcColor = "#FA2256".toColorInt()
it.startAngle = -90f
it.strokeWidth = 10f
it.sweepAngle = 0f
it.radius = ScreenUtil.dp2px(100f - 10f) / 2f
}
mBinding.arcViewBlue.let {
it.arcColor = "#246CF9".toColorInt()
it.startAngle = -90f
it.strokeWidth = 10f
it.sweepAngle = 0f
it.radius = ScreenUtil.dp2px(100f - 10f) / 2f
}
}
override fun initData() {
// val surfaceId = intent.getStringExtra("surfaceId")
// if (TextUtils.isEmpty(surfaceId)) {
// finish()
// } else {
// mViewModel.getTunnelingSurfaceDetail(surfaceId)
// }
faceDetail = intent.getParcelableExtra(FACE_DETAIL)
faceDetail?.let { detail ->
loadFaceDetail()
workingFaceRecordViewModel.getLastEntity(detail.surfaceId) { record ->
record?.let {
mBinding.tvYesterdayLen.text = "${it.workingFootage?.formatDecimalString()}m"
mBinding.tvWorkingFaceAngle.text = "${it.seamDip?.formatDecimalString()}"
// mBinding.tvMonthAccumulateLen.text = "${it.monthFootage}m"
mBinding.tvWorkingFaceWater.text = "${it.waterYield?.formatDecimalString()}"
roofLithologyViewModel.getEntityList(it.recordId) { list ->
list?.let {
lithologyList.addAll(it)
tunnelingRockNatureAdapter.notifyDataSetChanged()
}
}
}
}
}
}
override fun bindEvent() {
mBinding.toolbarLay.titleTvRight.setOnClickListener {
toActivity(WorkingFaceDetailActivity::class.java, Bundle().apply {
// putSerializable(
// WorkingFaceDetail2Activity.FACE_WORK_DETAIL_DATA,
// mViewModel.faceWorkDetailData.value as Serializable
// )
putParcelable(WorkingFaceDetailActivity.FACE_WORK_DETAIL_DATA, faceDetail)
})
}
}
override fun processClick(v: View?) {
}
override fun createObserve() {
super.createObserve()
// lifecycleScope.launch {
// repeatOnLifecycle(Lifecycle.State.CREATED) {
// mViewModel.faceWorkDetailData.collectLatest {
// if (it != null) {
// setDataView(it)
// }
// }
// }
// }
}
private fun setDataView(bean: FaceWorkDetailBean?) {
bean ?: return
}
private fun stringToDouble(numText: String?): Double {
if (numText.isNullOrEmpty() || numText.isBlank()) return 0.toDouble()
return numText.toDouble()
}
private fun loadFaceDetail() {
val bean = faceDetail!!
mBinding.apply {
toolbarLay.title = bean.surfaceName
val total = stringToDouble(bean.totalFootage)
val accumulative = stringToDouble(bean.accumulativeFootage)
val remaining = stringToDouble(bean.remainingFootage)
tvLenTotal.text = "总进尺:${bean.totalFootage?.formatDecimalString()}m"
tvLenAccumulate.text = "累计进尺:${bean.accumulativeFootage?.formatDecimalString()}m"
tvLenRemain.text = "剩余进尺:${bean.remainingFootage?.formatDecimalString()}m"
//累计进尺占比
var radio = 0
//累计进尺圆圈占比
var arcViewRadio: Float
if (accumulative >= total) {
radio = 100
arcViewRadio = 360F
} else if (accumulative <= 0) {
radio = 0
arcViewRadio = 0F
} else {
arcViewRadio = (accumulative * 100F / total).toFloat()
radio = arcViewRadio.roundToInt()
}
arcViewRed.let {
it.sweepAngle = arcViewRadio
}
arcViewBlue.let {
it.sweepAngle = (360F - arcViewRadio) * -1F
}
mBinding.tvCompleteRate.text = "$radio%"
// tvYesterdayLen.text = "${bean?.yesterdayFootage}m"
// tvWorkingFaceAngle.text = "${bean?.latestRecord?.seamDip.orEmptyDefaultInt()}"
// tvMonthAccumulateLen.text = "${bean?.monthFootage}m"
// tvWorkingFaceWater.text = "${bean?.latestRecord?.waterYield.orEmptyDefaultInt()}m"
// val list = bean?.latestRecord?.mineWorkingLithologyList
// if (list.isNullOrEmpty()) {
// tvYesterdayRockType.visibility = View.GONE
// } else {
// tvYesterdayRockType.visibility = View.VISIBLE
// tunnelingRockNatureAdapter.setNewInstance(list)
// }
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun onWorkingFaceEvent(event: TunnelWorkingFaceEntity) {
faceDetail = event
loadFaceDetail()
}
}
@@ -1,64 +0,0 @@
//package com.zmkg.coaloperation.ui.tunneling.adapter
//
//import android.content.Intent
//import android.view.View
//import android.widget.ImageView
//import android.widget.LinearLayout
//import androidx.recyclerview.widget.RecyclerView
//import com.chad.library.adapter.base.BaseQuickAdapter
//import com.chad.library.adapter.base.viewholder.BaseViewHolder
//import com.zmkg.coaloperation.R
//import com.zmkg.coaloperation.ui.tunneling.bean.TunnelingHomeBean
//import com.zmkg.coaloperation.ui.tunneling.activity.WorkingPointActivity
//
//
///**
// * 掘进首页列表
// */
//
//class TunnelingHomeAdapter(var listener: (Int,String?)->Unit) : BaseQuickAdapter<TunnelingHomeBean, BaseViewHolder>(
// R.layout.item_geological_list
//) {
//
// override fun convert(holder: BaseViewHolder, item: TunnelingHomeBean) {
// val tunnelingHomeListAdapter: TunnelingHomeListAdapter by lazy { TunnelingHomeListAdapter().apply {
// setOnItemClickListener { adapter, view, position ->
// context.startActivity(Intent(context, WorkingPointActivity::class.java))
// }
// } }
//
// val rvList = holder.getView<RecyclerView>(R.id.rv_content)
// val expand = holder.getView<ImageView>(R.id.expand)
// val recordLayout = holder.getView<LinearLayout>(R.id.record_layout)
//
// holder.apply {
// setText(R.id.title, item.surfaceName)
// rvList.adapter = tunnelingHomeListAdapter
// tunnelingHomeListAdapter.setNewInstance(item.contentList?:mutableListOf())
// }
// expand.setOnClickListener {
// val imageView = it as ImageView
// if (imageView.tag.equals("0")) {//收起状态
// imageView.setImageResource(R.drawable.ic_arrow_down_white)
// recordLayout.visibility = View.VISIBLE
// imageView.tag = "1"
//
// if (data[holder.absoluteAdapterPosition].contentList.isNullOrEmpty()) {
//// if (context is TunnelingActivity) {
//// (context as TunnelingActivity).getRecordList(holder.layoutPosition) {
//// tunnelingHomeListAdapter.notifyDataSetChanged()
//// }
//// }
// listener.invoke(holder.absoluteAdapterPosition,data[holder.absoluteAdapterPosition].surfaceId)
// }
// } else {//展开状态
// imageView.setImageResource(R.drawable.ic_arrow_right_gray)
// recordLayout.visibility = View.GONE
// imageView.tag = "0"
// }
// }
// }
// init {
// addChildClickViewIds(R.id.start_record)
// }
//}
@@ -1,27 +0,0 @@
//package com.zmkg.coaloperation.ui.tunneling.adapter
//
//import com.chad.library.adapter.base.BaseQuickAdapter
//import com.chad.library.adapter.base.viewholder.BaseViewHolder
//import com.zmkg.coaloperation.R
//import com.zmkg.coaloperation.ui.tunneling.bean.TunnelingHomeItemBean
//
//
///**
// * 掘进首页点击出现的列表
// */
//
//class TunnelingHomeListAdapter :
// BaseQuickAdapter<TunnelingHomeItemBean, BaseViewHolder>(R.layout.item_geological_list_content) {
//
//
// override fun convert(holder: BaseViewHolder, item: TunnelingHomeItemBean) {
// if (holder.absoluteAdapterPosition != 0) {
// holder.setGone(R.id.head, true)
// }
// holder.setText(R.id.time, item.workingDate)
// .setText(R.id.record, item.recordPerson)
//
//
// }
//
//}
@@ -5,11 +5,7 @@ import com.zmkg.coaloperation.data.repository.HomeRepository
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
import com.zmkg.coaloperation.superfuntion.handleRequest import com.zmkg.coaloperation.superfuntion.handleRequest
import com.zmkg.coaloperation.superfuntion.launch import com.zmkg.coaloperation.superfuntion.launch
import com.zmkg.coaloperation.ui.tunneling.bean.FaceWorkDetailBean
import com.zmkg.coaloperation.ui.tunneling.bean.TunnelingFaceAddBean
import com.zmkg.coaloperation.ui.tunneling.bean.TunnelingHomeItemBean
import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow
/** /**
@@ -19,11 +15,11 @@ class TunnelingViewModel : BaseViewModel() {
// var tunnelingHomeList = MutableSharedFlow<MutableList<TunnelingHomeBean>?>() // var tunnelingHomeList = MutableSharedFlow<MutableList<TunnelingHomeBean>?>()
var tunnelingHomeItemList = MutableSharedFlow<MutableList<TunnelingHomeItemBean>?>() // var tunnelingHomeItemList = MutableSharedFlow<MutableList<TunnelingHomeItemBean>?>()
var tunnelingWorkFaceAdd = MutableSharedFlow<Boolean>()//新增面 // var tunnelingWorkFaceAdd = MutableSharedFlow<Boolean>()//新增面
var faceWorkDetailData = MutableStateFlow<FaceWorkDetailBean?>(null)//面详情 // var faceWorkDetailData = MutableStateFlow<FaceWorkDetailBean?>(null)//面详情
//
var itemIndex = MutableStateFlow(0)//item的下标 // var itemIndex = MutableStateFlow(0)//item的下标
override fun init() { override fun init() {
} }
@@ -42,44 +38,44 @@ class TunnelingViewModel : BaseViewModel() {
// ) // )
// } // }
fun getTunnelingHomeItemData(index: Int,surfaceId: String?) { // fun getTunnelingHomeItemData(index: Int,surfaceId: String?) {
launch( // launch(
{ // {
itemIndex.emit(index) // itemIndex.emit(index)
handleRequest( // handleRequest(
HomeRepository.getTunnelingHomeItemData(surfaceId), // HomeRepository.getTunnelingHomeItemData(surfaceId),
successBlock = { // successBlock = {
tunnelingHomeItemList.emit(it.data)
})
}
)
}
fun getTunnelingSurfaceDetail(surfaceId: String?) {
launch(
{
handleRequest(
HomeRepository.getTunnelingSurfaceDetail(surfaceId),
successBlock = {
// tunnelingHomeItemList.emit(it.data) // tunnelingHomeItemList.emit(it.data)
faceWorkDetailData.emit(it.data) //
}) // })
} // }
) // )
} // }
//
fun postTunnellingSurfaceAdd(tunnelingFaceAddBean: TunnelingFaceAddBean) { // fun getTunnelingSurfaceDetail(surfaceId: String?) {
launch( // launch(
{ // {
handleRequest( // handleRequest(
HomeRepository.postTunnellingSurfaceAdd(tunnelingFaceAddBean), // HomeRepository.getTunnelingSurfaceDetail(surfaceId),
successBlock = { // successBlock = {
tunnelingWorkFaceAdd.emit(true) //// tunnelingHomeItemList.emit(it.data)
}) // faceWorkDetailData.emit(it.data)
} // })
) // }
} // )
// }
//
// fun postTunnellingSurfaceAdd(tunnelingFaceAddBean: TunnelingFaceAddBean) {
// launch(
// {
// handleRequest(
// HomeRepository.postTunnellingSurfaceAdd(tunnelingFaceAddBean),
// successBlock = {
// tunnelingWorkFaceAdd.emit(true)
// })
// }
// )
// }
var tunnelFaceAndRecordList = MutableSharedFlow<MutableList<TunnelWorkingFaceEntity>?>() var tunnelFaceAndRecordList = MutableSharedFlow<MutableList<TunnelWorkingFaceEntity>?>()
@@ -3,7 +3,7 @@ package com.zmkg.coaloperation.utils
import android.util.Log import android.util.Log
import com.google.gson.internal.LazilyParsedNumber import com.google.gson.internal.LazilyParsedNumber
import com.zmkg.coaloperation.bean.WorkOption import com.zmkg.coaloperation.bean.WorkOption
import com.zmkg.coaloperation.ui.tunneling.bean.DictBean import com.zmkg.coaloperation.bean.DictBean
object DictUtils { object DictUtils {
@@ -55,3 +55,31 @@ fun SharedPreferences.put(vararg pairs: Pair<String, Any>) {
} }
} }
} }
/**
* 格式化小数字符串
* 如果小数点后都是零,则去掉小数点和小数部分,否则返回原始字符串
*
* @return 格式化后的字符串
*/
fun String.formatDecimalString(): String {
// 检查字符串是否包含小数点
if (!this.contains('.')) {
return this
}
// 尝试分割整数和小数部分
val parts = this.split('.')
if (parts.size != 2) {
return this
}
// 检查小数部分是否全部为零
val decimalPart = parts[1]
val isAllZeros = decimalPart.all { it == '0' }
return if (isAllZeros) {
parts[0] // 返回整数部分
} else {
this // 返回原始字符串
}
}
@@ -18,563 +18,18 @@
android:id="@+id/toolbar_lay" android:id="@+id/toolbar_lay"
layout="@layout/lay_title_right_bar" /> layout="@layout/lay_title_right_bar" />
<ScrollView <androidx.recyclerview.widget.RecyclerView
android:layout_marginTop="10dp" android:id="@+id/rvFaceList"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:overScrollMode="never">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:text="进度信息"
android:textColor="@color/white"
app:drawableStartCompat="@drawable/line_green" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="152dp"
android:background="@drawable/bg_stroke_gray">
<TextView
android:id="@+id/tvLenTotal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp" android:layout_marginStart="20dp"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:textColor="@color/white"
app:drawableStartCompat="@drawable/shape_flag_green"
app:layout_constraintBottom_toTopOf="@+id/tvLenAccumulate"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed"
tools:text="进度信息" />
<TextView
android:id="@+id/tvLenAccumulate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:textColor="@color/white"
app:drawableStartCompat="@drawable/shape_flag_red"
app:layout_constraintBottom_toTopOf="@+id/tvLenRemain"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvLenTotal"
tools:text="进度信息" />
<TextView
android:id="@+id/tvLenRemain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:textColor="@color/white"
app:drawableStartCompat="@drawable/shape_flag_blue"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvLenAccumulate"
tools:text="进度信息" />
<FrameLayout
android:layout_width="122dp"
android:layout_height="122dp"
android:layout_marginEnd="20dp" android:layout_marginEnd="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.zmkg.coaloperation.view.CircleArcView
android:id="@+id/arcViewGreen"
android:layout_width="122dp"
android:layout_height="122dp"
android:layout_gravity="center" />
<com.zmkg.coaloperation.view.CircleArcView
android:id="@+id/arcViewRed"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center" />
<com.zmkg.coaloperation.view.CircleArcView
android:id="@+id/arcViewBlue"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_gravity="center" />
<TextView
android:id="@+id/tvCompleteRate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@color/white"
android:textSize="24sp"
tools:text="64%" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
android:drawablePadding="5dp" tools:itemCount="20"
android:gravity="center_vertical" android:overScrollMode="never"
android:text="基础信息" tools:listitem="@layout/list_item_tunnel_working_item"
android:textColor="@color/white" android:background="@drawable/bg_stroke_gray"/>
app:drawableStartCompat="@drawable/line_green" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_stroke_gray"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="昨日进尺"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvYesterdayLen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="200.4m" />
</FrameLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1dp"
app:dividerColor="#20222B" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="工作面倾角"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvWorkingFaceAngle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="65" />
</FrameLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1dp"
app:dividerColor="#20222B" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="本月累计进尺"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvMonthAccumulateLen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="1400.4m" />
</FrameLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1dp"
app:dividerColor="#20222B" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="工作面涌水量"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvWorkingFaceWater"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="65" />
</FrameLayout>
</LinearLayout>
<TextView
android:id="@+id/tvYesterdayRockType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:text="昨日顶板岩性"
android:textColor="@color/white"
app:drawableStartCompat="@drawable/line_green" />
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
android:id="@+id/rv_rock_nature"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_stroke_gray"
tools:itemCount="3"
tools:listitem="@layout/item_rock_nature" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:text="各类工程"
android:textColor="@color/white"
app:drawableStartCompat="@drawable/line_green" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_stroke_gray"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="距"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvTask1Name"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginStart="10dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:minWidth="60dp"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_weight="1"
android:background="@drawable/dash_line" />
<TextView
android:id="@+id/tvTask1Value"
android:layout_width="60dp"
android:layout_height="30dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="m"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1dp"
app:dividerColor="#20222B" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="距"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvTask2Name"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginStart="10dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:minWidth="60dp"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_weight="1"
android:background="@drawable/dash_line" />
<TextView
android:id="@+id/tvTask2Value"
android:layout_width="60dp"
android:layout_height="30dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="m"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:text="隐蔽致灾预报"
android:textColor="@color/white"
app:drawableStartCompat="@drawable/line_green" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:background="@drawable/bg_stroke_gray"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="距"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvDisaster1Name"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginStart="10dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:minWidth="60dp"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_weight="1"
android:background="@drawable/dash_line" />
<TextView
android:id="@+id/tvDisaster1Value"
android:layout_width="60dp"
android:layout_height="30dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="m"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1dp"
app:dividerColor="#20222B" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="距"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvDisaster2Name"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginStart="10dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:minWidth="60dp"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_weight="1"
android:background="@drawable/dash_line" />
<TextView
android:id="@+id/tvDisaster2Value"
android:layout_width="60dp"
android:layout_height="30dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="m"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout> </LinearLayout>
</layout> </layout>
@@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<layout 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"
tools:ignore="HardcodedText,TooManyViews">
<data>
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black_bg"
android:orientation="vertical">
<include
android:id="@+id/toolbar_lay"
layout="@layout/lay_title_right_bar" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvFaceList"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:layout_marginBottom="10dp"
tools:itemCount="20"
android:overScrollMode="never"
tools:listitem="@layout/list_item_working_face"
android:background="@drawable/bg_stroke_gray"/>
</LinearLayout>
</layout>
@@ -28,7 +28,7 @@
android:layout_marginBottom="10dp" android:layout_marginBottom="10dp"
tools:itemCount="10" tools:itemCount="10"
android:overScrollMode="never" android:overScrollMode="never"
tools:listitem="@layout/list_item_working_face" tools:listitem="@layout/list_item_tunnel_working_item"
android:background="@drawable/bg_stroke_gray"/> android:background="@drawable/bg_stroke_gray"/>
</LinearLayout> </LinearLayout>
@@ -0,0 +1,580 @@
<?xml version="1.0" encoding="utf-8"?>
<layout 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"
tools:ignore="HardcodedText,TooManyViews">
<data>
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/black_bg"
android:orientation="vertical">
<include
android:id="@+id/toolbar_lay"
layout="@layout/lay_title_right_bar" />
<ScrollView
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:overScrollMode="never">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:text="进度信息"
android:textColor="@color/white"
app:drawableStartCompat="@drawable/line_green" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="152dp"
android:background="@drawable/bg_stroke_gray">
<TextView
android:id="@+id/tvLenTotal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:textColor="@color/white"
app:drawableStartCompat="@drawable/shape_flag_green"
app:layout_constraintBottom_toTopOf="@+id/tvLenAccumulate"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed"
tools:text="进度信息" />
<TextView
android:id="@+id/tvLenAccumulate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="15dp"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:textColor="@color/white"
app:drawableStartCompat="@drawable/shape_flag_red"
app:layout_constraintBottom_toTopOf="@+id/tvLenRemain"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvLenTotal"
tools:text="进度信息" />
<TextView
android:id="@+id/tvLenRemain"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:textColor="@color/white"
app:drawableStartCompat="@drawable/shape_flag_blue"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvLenAccumulate"
tools:text="进度信息" />
<FrameLayout
android:layout_width="122dp"
android:layout_height="122dp"
android:layout_marginEnd="20dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<com.zmkg.coaloperation.view.CircleArcView
android:id="@+id/arcViewGreen"
android:layout_width="122dp"
android:layout_height="122dp"
android:layout_gravity="center" />
<com.zmkg.coaloperation.view.CircleArcView
android:id="@+id/arcViewRed"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center" />
<com.zmkg.coaloperation.view.CircleArcView
android:id="@+id/arcViewBlue"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_gravity="center" />
<TextView
android:id="@+id/tvCompleteRate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@color/white"
android:textSize="24sp"
tools:text="64%" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:text="基础信息"
android:textColor="@color/white"
app:drawableStartCompat="@drawable/line_green" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_stroke_gray"
android:orientation="vertical">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="昨日进尺"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvYesterdayLen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="200.4m" />
</FrameLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1dp"
app:dividerColor="#20222B" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="工作面倾角"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvWorkingFaceAngle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="65" />
</FrameLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1dp"
app:dividerColor="#20222B" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="本月累计进尺"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvMonthAccumulateLen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="1400.4m" />
</FrameLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1dp"
app:dividerColor="#20222B" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="50dp"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="工作面涌水量"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvWorkingFaceWater"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|center_vertical"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="65" />
</FrameLayout>
</LinearLayout>
<TextView
android:id="@+id/tvYesterdayRockType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:text="昨日顶板岩性"
android:textColor="@color/white"
app:drawableStartCompat="@drawable/line_green" />
<androidx.recyclerview.widget.RecyclerView
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
android:id="@+id/rv_rock_nature"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_stroke_gray"
tools:itemCount="3"
tools:listitem="@layout/item_rock_nature" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:text="各类工程"
android:textColor="@color/white"
app:drawableStartCompat="@drawable/line_green" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/bg_stroke_gray"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="距"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvTask1Name"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginStart="10dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:minWidth="60dp"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_weight="1"
android:background="@drawable/dash_line" />
<TextView
android:id="@+id/tvTask1Value"
android:layout_width="60dp"
android:layout_height="30dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="m"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1dp"
app:dividerColor="#20222B" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="距"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvTask2Name"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginStart="10dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:minWidth="60dp"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_weight="1"
android:background="@drawable/dash_line" />
<TextView
android:id="@+id/tvTask2Value"
android:layout_width="60dp"
android:layout_height="30dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="m"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:text="隐蔽致灾预报"
android:textColor="@color/white"
app:drawableStartCompat="@drawable/line_green" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dp"
android:background="@drawable/bg_stroke_gray"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="距"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvDisaster1Name"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginStart="10dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:minWidth="60dp"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_weight="1"
android:background="@drawable/dash_line" />
<TextView
android:id="@+id/tvDisaster1Value"
android:layout_width="60dp"
android:layout_height="30dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="m"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
<com.google.android.material.divider.MaterialDivider
android:layout_width="match_parent"
android:layout_height="1dp"
app:dividerColor="#20222B" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="20dp"
android:paddingEnd="20dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="距"
android:textColor="#6A6F87"
android:textSize="16sp" />
<TextView
android:id="@+id/tvDisaster2Name"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_marginStart="10dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:minWidth="60dp"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<View
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:layout_weight="1"
android:background="@drawable/dash_line" />
<TextView
android:id="@+id/tvDisaster2Value"
android:layout_width="60dp"
android:layout_height="30dp"
android:background="@drawable/bg_solid_black"
android:ellipsize="end"
android:gravity="center"
android:maxLines="1"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="5dp"
android:text="m"
android:textColor="@color/white"
android:textSize="14sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
</layout>