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.AboutUsActivity" />
<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.WorkingPointActivity" />
<activity android:name=".ui.tunneling.activity.WorkingFaceDetail2Activity" />
<activity android:name=".ui.tunneling.activity.AddWorkingPointActivity"
<activity android:name=".ui.tunneling.activity.AddWorkingFaceRecordActivity"
android:windowSoftInputMode="adjustPan"/>
<activity android:name=".ui.tunneling.activity.TunnelingActivity" />
<activity android:name=".ui.tunneling.activity.WorkFaceActivity"
<activity android:name=".ui.tunneling.activity.AddWorkingFaceActivity"
android:windowSoftInputMode="adjustPan" />
</application>
@@ -8,6 +8,7 @@ import com.chad.library.adapter.base.viewholder.BaseViewHolder
import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.databinding.ListItemRockBinding
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
import com.zmkg.coaloperation.utils.formatDecimalString
class TunnelRoofLithologyAdapter(var list: MutableList<TunnelRoofLithologyEntity>) :
BaseQuickAdapter<TunnelRoofLithologyEntity, TunnelRoofLithologyAdapter.VH>(
@@ -34,13 +35,13 @@ class TunnelRoofLithologyAdapter(var list: MutableList<TunnelRoofLithologyEntity
addTextChangedListener(onTextChanged = { text, start, before, count ->
item.positionStart = text.toString().trim()
})
setText(item.positionStart)
setText(item.positionStart.formatDecimalString())
}
it.tvRockEndLen.run {
addTextChangedListener(onTextChanged = { text, start, before, count ->
item.positionEnd = text.toString().trim()
})
setText(item.positionEnd)
setText(item.positionEnd.formatDecimalString())
}
it.tvRockType.run {
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.db.entiry.tunnel.TunnelWorkingFaceEntity
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.gone
import com.zmkg.coaloperation.utils.toJsonString
@@ -81,10 +81,10 @@ class TunnelWorkingFaceAdapter(var list: MutableList<TunnelWorkingFaceEntity>) :
Log.d(TAG, "convert: ${item.records!![recordPosition].toJsonString()}")
context.let { ctx ->
if (ctx is TunnelingActivity) {
ctx.toActivity(WorkingPointActivity::class.java, Bundle().apply {
putString(WorkingPointActivity.FACE_NAME, item.surfaceName)
ctx.toActivity(WorkingFaceRecordActivity::class.java, Bundle().apply {
putString(WorkingFaceRecordActivity.FACE_NAME, item.surfaceName)
putParcelable(
WorkingPointActivity.FACE_RECORD,
WorkingFaceRecordActivity.FACE_RECORD,
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.viewholder.BaseViewHolder
import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.bean.RockItem
import com.zmkg.coaloperation.bean.WorkingFaceItem
import com.zmkg.coaloperation.bean.TunnelWorkingItem
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.utils.ScreenUtil
import com.zmkg.coaloperation.utils.formatDecimalString
class WorkingItemAdapter(data: MutableList<WorkingFaceItem>) :
BaseQuickAdapter<WorkingFaceItem, WorkingItemAdapter.VH>(
R.layout.list_item_working_face,
class TunnelWorkingItemAdapter(data: MutableList<TunnelWorkingItem>) :
BaseQuickAdapter<TunnelWorkingItem, TunnelWorkingItemAdapter.VH>(
R.layout.list_item_tunnel_working_item,
data
) {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VH {
val binding = ListItemWorkingFaceBinding.inflate(
val binding = ListItemTunnelWorkingItemBinding.inflate(
LayoutInflater.from(parent.context),
parent,
false
@@ -35,12 +35,12 @@ class WorkingItemAdapter(data: MutableList<WorkingFaceItem>) :
override fun convert(
holder: VH,
item: WorkingFaceItem
item: TunnelWorkingItem
) {
if (item.pageType == 0) {
loadFaceData(holder.binding, item)
} else if (item.pageType == 1) {
loadPointData(holder.binding, item)
loadRecordData(holder.binding, item)
}
val position = holder.layoutPosition
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 {
tvItemName.text = item.name
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 {
it.updateLayoutParams { height = ScreenUtil.dp2px(50f) }
it.text = item.name
@@ -96,12 +96,12 @@ class WorkingItemAdapter(data: MutableList<WorkingFaceItem>) :
tvRockStartLen.let {
it.focusable = EditText.NOT_FOCUSABLE
it.setOnKeyListener(null)
it.setText(item.positionStart)
it.setText(item.positionStart.formatDecimalString())
}
tvRockEndLen.let {
it.focusable = EditText.NOT_FOCUSABLE
it.setOnKeyListener(null)
it.setText(item.positionEnd)
it.setText(item.positionEnd.formatDecimalString())
}
tvRockType.let {
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.ViewGroup
@@ -7,6 +7,7 @@ import com.chad.library.adapter.base.viewholder.BaseViewHolder
import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.databinding.ItemRockNatureBinding
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) {
holder.binding.let {
it.tvRock1Start.text = item.positionStart
it.tvRock1End.text = item.positionEnd
it.tvRock1Start.text = item.positionStart.formatDecimalString()
it.tvRock1End.text = item.positionEnd.formatDecimalString()
it.tvRock1Name.text = item.lithologyType
}
}
@@ -1,4 +1,4 @@
package com.zmkg.coaloperation.ui.tunneling.bean
package com.zmkg.coaloperation.bean
data class DictBean(
var seam_list: Map<String, String>?,
@@ -2,7 +2,7 @@ package com.zmkg.coaloperation.bean
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
data class WorkingFaceItem(
data class TunnelWorkingItem(
var name: String? = "",
var value: String? = "",
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
@@ -6,33 +6,33 @@ import java.io.Serializable
/**
* 掘进
*/
data class TunnelingHomeBean(
var contentList: MutableList<TunnelingHomeItemBean>?,
val createBy: String?,
val createTime: String?,
val updateBy: String?,
val updateTime: String?,
val remark: String?,
val surfaceId: String?,
val totalFootage: String?,
val seamId: String?,
val areaId: String?,
val seamName: String?,
val surfaceName: String?,
val areaName: String?,
val surfaceAzimuth: String?,
val surfaceHeight: String?,
val surfaceWidth: String?,
val tunnelNature: String?,
val planStartDate: String?,
val planEndDate: String?,
val geologicalType: String?,
val hydrogeologicalType: String?,
val seamIgnition: String?,
val seamGas: String?,
val seamBumpPressure: String?,
val surfaceSupportForm: String?
)
//data class TunnelingHomeBean(
// var contentList: MutableList<TunnelingHomeItemBean>?,
// val createBy: String?,
// val createTime: String?,
// val updateBy: String?,
// val updateTime: String?,
// val remark: String?,
// val surfaceId: String?,
// val totalFootage: String?,
// val seamId: String?,
// val areaId: String?,
// val seamName: String?,
// val surfaceName: String?,
// val areaName: String?,
// val surfaceAzimuth: String?,
// val surfaceHeight: String?,
// val surfaceWidth: String?,
// val tunnelNature: String?,
// val planStartDate: String?,
// val planEndDate: String?,
// val geologicalType: String?,
// val hydrogeologicalType: String?,
// val seamIgnition: String?,
// val seamGas: String?,
// val seamBumpPressure: String?,
// val surfaceSupportForm: String?
//)
class TunnelingHomeItemBean {
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.db.entiry.tunnel.TunnelWorkingFaceEntity
import com.zmkg.coaloperation.retorfit.UrlConfig
import com.zmkg.coaloperation.ui.tunneling.bean.FaceWorkDetailBean
import com.zmkg.coaloperation.ui.tunneling.bean.TunnelingHomeBean
import com.zmkg.coaloperation.ui.tunneling.bean.TunnelingHomeItemBean
import com.zmkg.coaloperation.bean.FaceWorkDetailBean
import com.zmkg.coaloperation.ui.home.bean.WaterLedgerBean
import kotlinx.coroutines.flow.MutableSharedFlow
import okhttp3.RequestBody
import retrofit2.http.Body
import retrofit2.http.GET
@@ -29,14 +26,14 @@ interface HomeApi {
/**
* 掘进-首页-工作面列表
*/
@GET("/api/mine/tunnelling/surface/list")
suspend fun getTunnelingHomeData(): ApiResponse<MutableList<TunnelingHomeBean>>
// @GET("/api/mine/tunnelling/surface/list")
// suspend fun getTunnelingHomeData(): ApiResponse<MutableList<TunnelingHomeBean>>
/**
* 掘进-首页-工作面记录列表
*/
@GET("/api/mine/tunnelling/surface/record/{recordId}")
suspend fun getTunnelingHomeItemData(@Path("recordId") recordId: String?): ApiResponse<MutableList<TunnelingHomeItemBean>>
// /**
// * 掘进-首页-工作面记录列表
// */
// @GET("/api/mine/tunnelling/surface/record/{recordId}")
// 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.db.entiry.tunnel.TunnelWorkingFaceEntity
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 kotlinx.coroutines.flow.MutableSharedFlow
object HomeRepository : BaseRepository(){
@@ -30,44 +23,44 @@ object HomeRepository : BaseRepository(){
}
}
/**
* 掘进-首页-工作面列表
*/
suspend fun getTunnelingHomeData(): ApiResponse<MutableList<TunnelingHomeBean>> {
return apiCall {
val map = mutableMapOf<String, Any?>()
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 getTunnelingHomeData(): ApiResponse<MutableList<TunnelingHomeBean>> {
// return apiCall {
// val map = mutableMapOf<String, Any?>()
// 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 getTunnelHomeList() : ApiResponse<MutableList<TunnelWorkingFaceEntity>?> {
return apiCall {
service.getTunnelHomeList()
@@ -4,28 +4,21 @@ import android.os.Bundle
import android.text.TextUtils
import android.view.View
import android.widget.TextView
import androidx.lifecycle.Lifecycle
import androidx.core.view.isGone
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.repeatOnLifecycle
import com.zmkg.coaloperation.R
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.viewmodel.TunnelWorkingFaceViewModel
import com.zmkg.coaloperation.event.TunnelingWorkFaceRefreshEvent
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.DictUtils
import com.zmkg.coaloperation.utils.PickerUtil
import com.zmkg.coaloperation.utils.gone
import com.zmkg.coaloperation.utils.visible
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
import java.time.LocalDateTime
@@ -33,8 +26,8 @@ import java.time.LocalDateTime
/**
* 工作面
*/
class WorkFaceActivity :
BaseVMBActivity<TunnelingViewModel, ActivityWorkFaceBinding>(R.layout.activity_work_face) {
class AddWorkingFaceActivity :
BaseVMBActivity<TunnelingViewModel, ActivityAddWorkingFaceBinding>(R.layout.activity_add_working_face) {
companion object {
private const val TAG = "WorkFaceActivity"
@@ -79,7 +72,7 @@ class WorkFaceActivity :
mBinding.expandLayout.visible()
mBinding.imgExpand.gone()
faceDetail =
intent.getParcelableExtra(WorkingFaceDetail2Activity.FACE_WORK_DETAIL_DATA) as TunnelWorkingFaceEntity?
intent.getParcelableExtra(WorkingFaceDetailActivity.FACE_WORK_DETAIL_DATA) as TunnelWorkingFaceEntity?
if (faceDetail == null) {
showToast("未查询到工作面数据")
return
@@ -108,7 +101,7 @@ class WorkFaceActivity :
PickerUtil.showOptionPicker(this, "请选择所属煤层", DictUtils.seamList) { option ->
mBinding.tvSeamName.text = option.name
mBinding.tvSeamName.tag = option.id
seamAreaList = DictUtils.areaMap[option.id]?:mutableListOf()
seamAreaList = DictUtils.areaMap[option.id] ?: mutableListOf()
}
}
mBinding.tvAreaName.setOnClickListener { v ->
@@ -170,16 +163,6 @@ class WorkFaceActivity :
override fun 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?) {
@@ -10,7 +10,7 @@ import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.adapter.TunnelRoofLithologyAdapter
import com.zmkg.coaloperation.base.BaseVMBActivity
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.TunnelWorkingFaceRecordEntity
import com.zmkg.coaloperation.db.viewmodel.TunnelRoofLithologyViewModel
@@ -29,8 +29,8 @@ import java.time.LocalDateTime
/**
* 开始记录
*/
class AddWorkingPointActivity :
BaseVMBActivity<TestViewModel, ActivityAddWorkingPointBinding>(R.layout.activity_add_working_point) {
class AddWorkingFaceRecordActivity :
BaseVMBActivity<TestViewModel, ActivityAddWorkingFaceRecordBinding>(R.layout.activity_add_working_face_record) {
companion object {
const val TAG = "AddWorkingPointActivity"
@@ -43,8 +43,8 @@ class TunnelingActivity :
TunnelWorkingFaceAdapter(workingFaceList).apply {
setOnItemChildClickListener { _, view, position ->
if (view.id == R.id.llWorkingFace) {
toActivity(WorkingFaceDetailActivity::class.java, Bundle().apply {
putParcelable(WorkingFaceDetailActivity.FACE_DETAIL, workingFaceList[position])
toActivity(WorkingFaceStatisticsActivity::class.java, Bundle().apply {
putParcelable(WorkingFaceStatisticsActivity.FACE_DETAIL, workingFaceList[position])
})
return@setOnItemChildClickListener
}
@@ -59,16 +59,16 @@ class TunnelingActivity :
return@setOnItemChildClickListener
}
if (view.id == R.id.start_record) {
toActivity(AddWorkingPointActivity::class.java, Bundle().apply {
toActivity(AddWorkingFaceRecordActivity::class.java, Bundle().apply {
putLong(
AddWorkingPointActivity.FACE_ID,
AddWorkingFaceRecordActivity.FACE_ID,
workingFaceList[position].surfaceId
)
putString(
AddWorkingPointActivity.FACE_NAME,
AddWorkingFaceRecordActivity.FACE_NAME,
workingFaceList[position].surfaceName
)
putInt(AddWorkingPointActivity.SHOW_TYPE, 0)
putInt(AddWorkingFaceRecordActivity.SHOW_TYPE, 0)
})
}
}
@@ -105,8 +105,8 @@ class TunnelingActivity :
override fun bindEvent() {
mBinding.toolbarLay.titleTvRight.setOnClickListener {
toActivity(WorkFaceActivity::class.java, Bundle().apply {
putString(WorkFaceActivity.WORK_FACE_TYPE, WorkFaceActivity.WorkFaceType.ADD.name)
toActivity(AddWorkingFaceActivity::class.java, Bundle().apply {
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
import android.annotation.SuppressLint
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.base.viewmodel.TestViewModel
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.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.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.ThreadMode
import kotlin.apply
import kotlin.math.roundToInt
/**
* 工作面详情
* 工作面详情2
*/
class WorkingFaceDetailActivity :
BaseVMBActivity<TunnelingViewModel, ActivityWorkingFaceDetailBinding>(R.layout.activity_working_face_detail) {
BaseVMBActivity<TestViewModel, ActivityWorkingFaceDetailBinding>(R.layout.activity_working_face_detail) {
companion object {
const val FACE_DETAIL = "faceDetail"
const val FACE_WORK_DETAIL_DATA = "faceWorkDetailData"
}
private val workingFaceRecordViewModel: TunnelWorkingFaceRecordViewModel by lazy {
ViewModelProvider(this)[TunnelWorkingFaceRecordViewModel::class.java]
}
private val list: MutableList<TunnelWorkingItem> = mutableListOf()
private val roofLithologyViewModel: TunnelRoofLithologyViewModel by lazy {
ViewModelProvider(this)[TunnelRoofLithologyViewModel::class.java]
// private var detail:FaceWorkDetailBean?=null
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?) {
mBinding.toolbarLay.rightText = "查看详情"
mBinding.toolbarLay.vLine.visibility = View.GONE
mBinding.rvRockNature.adapter = tunnelingRockNatureAdapter
mBinding.toolbarLay.rightText = "修改"
mBinding.arcViewGreen.let {
it.arcColor = "#30E0A1".toColorInt()
it.startAngle = 0f
it.sweepAngle = 360f
it.strokeWidth = 12f
it.radius = ScreenUtil.dp2px(122f - 12f) / 2f
mBinding.rvFaceList.let {
it.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
it.adapter = adapter
}
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}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()
}
}
}
}
detail = intent.getParcelableExtra(FACE_WORK_DETAIL_DATA)
detail?.let {
loadFaceDetail(it)
}
}
override fun bindEvent() {
mBinding.toolbarLay.titleTvRight.setOnClickListener {
toActivity(WorkingFaceDetail2Activity::class.java, Bundle().apply {
// putSerializable(
// WorkingFaceDetail2Activity.FACE_WORK_DETAIL_DATA,
// mViewModel.faceWorkDetailData.value as Serializable
// )
putParcelable(WorkingFaceDetail2Activity.FACE_WORK_DETAIL_DATA, faceDetail)
toActivity(AddWorkingFaceActivity::class.java, Bundle().apply {
putString(AddWorkingFaceActivity.WORK_FACE_TYPE, AddWorkingFaceActivity.WorkFaceType.EDIT.name)
// putSerializable(WorkFaceActivity.FACE_WORK_DETAIL_DATA, detail)
putParcelable(AddWorkingFaceActivity.FACE_WORK_DETAIL_DATA, detail)
})
}
}
override fun processClick(v: View?) {
}
override fun createObserve() {
super.createObserve()
// lifecycleScope.launch {
// repeatOnLifecycle(Lifecycle.State.CREATED) {
// mViewModel.faceWorkDetailData.collectLatest {
// if (it != null) {
// setDataView(it)
// }
// }
// }
// }
}
@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))
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)
// }
}
adapter.notifyDataSetChanged()
}
@Subscribe(threadMode = ThreadMode.MAIN)
fun onWorkingFaceEvent(event: TunnelWorkingFaceEntity) {
faceDetail = event
loadFaceDetail()
detail = event
detail?.let {
loadFaceDetail(it)
}
}
}
@@ -7,13 +7,11 @@ import android.view.View
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
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.viewmodel.TestViewModel
import com.zmkg.coaloperation.bean.RockItem
import com.zmkg.coaloperation.bean.WorkingFaceItem
import com.zmkg.coaloperation.databinding.ActivityWorkingPointBinding
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
import com.zmkg.coaloperation.bean.TunnelWorkingItem
import com.zmkg.coaloperation.databinding.ActivityWorkingFaceRecordBinding
import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceRecordEntity
import com.zmkg.coaloperation.db.viewmodel.TunnelRoofLithologyViewModel
import com.zmkg.coaloperation.utils.DictUtils
@@ -24,8 +22,8 @@ import org.greenrobot.eventbus.ThreadMode
/**
* 查看棋盘井
*/
class WorkingPointActivity :
BaseVMBActivity<TestViewModel, ActivityWorkingPointBinding>(R.layout.activity_working_point) {
class WorkingFaceRecordActivity :
BaseVMBActivity<TestViewModel, ActivityWorkingFaceRecordBinding>(R.layout.activity_working_face_record) {
companion object {
const val TAG = "WorkingPointActivity"
@@ -35,13 +33,13 @@ class WorkingPointActivity :
private var faceName: String? = null
private var faceRecord: TunnelWorkingFaceRecordEntity? = null
private val list: MutableList<WorkingFaceItem> = mutableListOf()
private val list: MutableList<TunnelWorkingItem> = mutableListOf()
private val roofLithologyViewModel: TunnelRoofLithologyViewModel by lazy {
ViewModelProvider(this)[TunnelRoofLithologyViewModel::class.java]
}
private val adapter by lazy {
WorkingItemAdapter(list)
TunnelWorkingItemAdapter(list)
}
override fun initView(savedInstanceState: Bundle?) {
@@ -49,10 +47,10 @@ class WorkingPointActivity :
mBinding.toolbarLay.title = "查看详情"
mBinding.toolbarLay.rightText = "修改"
mBinding.toolbarLay.titleTvRight.setOnClickListener {
toActivity(AddWorkingPointActivity::class.java, Bundle().apply {
putInt(AddWorkingPointActivity.SHOW_TYPE, 1)
putString(AddWorkingPointActivity.FACE_NAME, faceName)
putParcelable(AddWorkingPointActivity.FACE_RECORD, faceRecord)
toActivity(AddWorkingFaceRecordActivity::class.java, Bundle().apply {
putInt(AddWorkingFaceRecordActivity.SHOW_TYPE, 1)
putString(AddWorkingFaceRecordActivity.FACE_NAME, faceName)
putParcelable(AddWorkingFaceRecordActivity.FACE_RECORD, faceRecord)
})
}
mBinding.rvPointList.let {
@@ -77,26 +75,26 @@ class WorkingPointActivity :
@SuppressLint("NotifyDataSetChanged")
private fun loadFaceRecord(it: TunnelWorkingFaceRecordEntity) {
list.clear()
list.add(WorkingFaceItem(pageType = 1, name = "工作面名称", value = faceName))
list.add(WorkingFaceItem(pageType = 1, name = "施工日期", value = it.workingDate))
list.add(TunnelWorkingItem(pageType = 1, name = "工作面名称", value = faceName))
list.add(TunnelWorkingItem(pageType = 1, name = "施工日期", value = it.workingDate))
list.add(
WorkingFaceItem(
TunnelWorkingItem(
pageType = 1,
name = "施工班次",
value = DictUtils.getTeamShift(it.teamShift)
)
)
list.add(WorkingFaceItem(pageType = 1, name = "施工队伍", value = it.teamName))
list.add(WorkingFaceItem(pageType = 1, name = "带班队长", value = it.teamLeader))
list.add(WorkingFaceItem(pageType = 1, name = "本班进尺", value = it.workingFootage))
list.add(TunnelWorkingItem(pageType = 1, name = "施工队伍", value = it.teamName))
list.add(TunnelWorkingItem(pageType = 1, name = "带班队长", value = it.teamLeader))
list.add(TunnelWorkingItem(pageType = 1, name = "本班进尺", value = it.workingFootage))
// val rockList = mutableListOf<TunnelRoofLithologyEntity>()
// 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(WorkingFaceItem(pageType = 1, name = "煤层倾角", value = it.seamDip))
list.add(WorkingFaceItem(pageType = 1, name = "煤层高", value = it.seamHeight))
list.add(WorkingFaceItem(pageType = 1, name = "记录人", value = it.recordPerson))
list.add(TunnelWorkingItem(pageType = 1, name = "顶板岩性", value = "", items = null))
list.add(TunnelWorkingItem(pageType = 1, name = "煤层倾角", value = it.seamDip))
list.add(TunnelWorkingItem(pageType = 1, name = "煤层高", value = it.seamHeight))
list.add(TunnelWorkingItem(pageType = 1, name = "记录人", value = it.recordPerson))
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.superfuntion.handleRequest
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.MutableStateFlow
/**
@@ -19,11 +15,11 @@ class TunnelingViewModel : BaseViewModel() {
// var tunnelingHomeList = MutableSharedFlow<MutableList<TunnelingHomeBean>?>()
var tunnelingHomeItemList = MutableSharedFlow<MutableList<TunnelingHomeItemBean>?>()
var tunnelingWorkFaceAdd = MutableSharedFlow<Boolean>()//新增面
var faceWorkDetailData = MutableStateFlow<FaceWorkDetailBean?>(null)//面详情
var itemIndex = MutableStateFlow(0)//item的下标
// var tunnelingHomeItemList = MutableSharedFlow<MutableList<TunnelingHomeItemBean>?>()
// var tunnelingWorkFaceAdd = MutableSharedFlow<Boolean>()//新增面
// var faceWorkDetailData = MutableStateFlow<FaceWorkDetailBean?>(null)//面详情
//
// var itemIndex = MutableStateFlow(0)//item的下标
override fun init() {
}
@@ -42,44 +38,44 @@ class TunnelingViewModel : BaseViewModel() {
// )
// }
fun getTunnelingHomeItemData(index: Int,surfaceId: String?) {
launch(
{
itemIndex.emit(index)
handleRequest(
HomeRepository.getTunnelingHomeItemData(surfaceId),
successBlock = {
tunnelingHomeItemList.emit(it.data)
})
}
)
}
fun getTunnelingSurfaceDetail(surfaceId: String?) {
launch(
{
handleRequest(
HomeRepository.getTunnelingSurfaceDetail(surfaceId),
successBlock = {
// fun getTunnelingHomeItemData(index: Int,surfaceId: String?) {
// launch(
// {
// itemIndex.emit(index)
// handleRequest(
// HomeRepository.getTunnelingHomeItemData(surfaceId),
// successBlock = {
// tunnelingHomeItemList.emit(it.data)
faceWorkDetailData.emit(it.data)
})
}
)
}
fun postTunnellingSurfaceAdd(tunnelingFaceAddBean: TunnelingFaceAddBean) {
launch(
{
handleRequest(
HomeRepository.postTunnellingSurfaceAdd(tunnelingFaceAddBean),
successBlock = {
tunnelingWorkFaceAdd.emit(true)
})
}
)
}
//
// })
// }
// )
// }
//
// fun getTunnelingSurfaceDetail(surfaceId: String?) {
// launch(
// {
// handleRequest(
// HomeRepository.getTunnelingSurfaceDetail(surfaceId),
// successBlock = {
//// 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>?>()
@@ -3,7 +3,7 @@ package com.zmkg.coaloperation.utils
import android.util.Log
import com.google.gson.internal.LazilyParsedNumber
import com.zmkg.coaloperation.bean.WorkOption
import com.zmkg.coaloperation.ui.tunneling.bean.DictBean
import com.zmkg.coaloperation.bean.DictBean
object DictUtils {
@@ -54,4 +54,32 @@ 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"
layout="@layout/lay_title_right_bar" />
<ScrollView
android:layout_marginTop="10dp"
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rvFaceList"
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>
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_tunnel_working_item"
android:background="@drawable/bg_stroke_gray"/>
</LinearLayout>
</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"
tools:itemCount="10"
android:overScrollMode="never"
tools:listitem="@layout/list_item_working_face"
tools:listitem="@layout/list_item_tunnel_working_item"
android:background="@drawable/bg_stroke_gray"/>
</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>