From 6e75007bd160a5900f2e8554a7d6a292d5333b46 Mon Sep 17 00:00:00 2001
From: lvmeng <848755140@qq.com>
Date: Mon, 22 Sep 2025 18:55:59 +0800
Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E9=87=87=E6=96=B0=E5=A2=9E=E8=AF=A6?=
=?UTF-8?q?=E6=83=85=E4=BF=AE=E6=94=B9=E3=80=81=E5=90=88=E5=B9=B6=E6=88=91?=
=?UTF-8?q?=E7=9A=84=E6=95=B0=E6=8D=AE=E6=8B=89=E5=8F=96=E5=92=8C=E6=8E=A8?=
=?UTF-8?q?=E9=80=81=E5=88=B0=E6=96=B0=E6=95=B0=E6=8D=AE=E5=90=8C=E6=AD=A5?=
=?UTF-8?q?=E9=A1=B5=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../app/src/main/AndroidManifest.xml | 3 +
.../coaloperation/adapter/DataSyncAdapter.kt | 39 ++++
.../adapter/MiningRecordBaseDataAdapter.kt | 50 ++++
.../MiningRecordCoalThicknessAdapter.kt | 52 +++++
.../adapter/MiningWorkingFaceAdapter.kt | 24 +-
.../coaloperation/base/BaseVMBActivity.kt | 15 ++
.../com/zmkg/coaloperation/bean/OtherData.kt | 13 +-
.../zmkg/coaloperation/data/api/HomeApi.kt | 6 +
.../data/repository/HomeRepository.kt | 15 +-
.../ui/home/fragment/HomeFragment.kt | 2 +
.../ui/mining/activity/MiningActivity.kt | 23 +-
.../activity/MiningFaceRecordActivity.kt | 184 +++++++++++++++
.../activity/AddWorkingFaceRecordActivity.kt | 16 +-
.../tunneling/activity/TunnelingActivity.kt | 1 -
.../activity/WorkingFaceRecordActivity.kt | 9 +-
.../tunneling/viewmodel/TunnelingViewModel.kt | 15 ++
.../ui/user/activity/AboutUsActivity.kt | 1 -
.../ui/user/activity/DataSyncActivity.kt | 221 ++++++++++++++++++
.../ui/user/fragment/UserFragment.kt | 145 +-----------
.../com/zmkg/coaloperation/utils/DictUtils.kt | 7 +-
.../coaloperation/utils/ExcelExportUtils.kt | 3 +-
.../main/res/drawable-xxhdpi/ic_data_sync.png | Bin 0 -> 6939 bytes
.../res/layout/activity_add_mining_face.xml | 8 +-
.../res/layout/activity_add_working_face.xml | 2 +-
.../activity_add_working_face_record.xml | 54 ++++-
.../main/res/layout/activity_cache_manage.xml | 2 +-
.../main/res/layout/activity_data_sync.xml | 30 +++
.../main/res/layout/activity_geological.xml | 2 +-
.../activity_geological_catalog_point.xml | 2 +-
.../src/main/res/layout/activity_login.xml | 2 +-
.../app/src/main/res/layout/activity_main.xml | 2 +-
.../layout/activity_mining_face_record.xml | 158 +++++++++++++
.../res/layout/activity_network_config.xml | 2 +-
.../app/src/main/res/layout/fragment_home.xml | 2 +-
.../src/main/res/layout/fragment_record.xml | 2 +-
.../src/main/res/layout/fragment_report.xml | 2 +-
.../main/res/layout/lay_title_right_bar.xml | 2 +-
.../res/layout/list_item_add_mining_face.xml | 1 -
.../main/res/layout/list_item_data_sync.xml | 33 +++
.../list_item_mining_record_base_data.xml | 62 +++++
...list_item_mining_record_coal_thickness.xml | 117 ++++++++++
41 files changed, 1135 insertions(+), 194 deletions(-)
create mode 100644 coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/DataSyncAdapter.kt
create mode 100644 coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/MiningRecordBaseDataAdapter.kt
create mode 100644 coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/MiningRecordCoalThicknessAdapter.kt
create mode 100644 coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/mining/activity/MiningFaceRecordActivity.kt
create mode 100644 coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/activity/DataSyncActivity.kt
create mode 100644 coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_data_sync.png
create mode 100644 coalMiningApp/app/src/main/res/layout/activity_data_sync.xml
create mode 100644 coalMiningApp/app/src/main/res/layout/activity_mining_face_record.xml
create mode 100644 coalMiningApp/app/src/main/res/layout/list_item_data_sync.xml
create mode 100644 coalMiningApp/app/src/main/res/layout/list_item_mining_record_base_data.xml
create mode 100644 coalMiningApp/app/src/main/res/layout/list_item_mining_record_coal_thickness.xml
diff --git a/coalMiningApp/app/src/main/AndroidManifest.xml b/coalMiningApp/app/src/main/AndroidManifest.xml
index 1c35726..bf707e3 100644
--- a/coalMiningApp/app/src/main/AndroidManifest.xml
+++ b/coalMiningApp/app/src/main/AndroidManifest.xml
@@ -59,6 +59,9 @@
+
+
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/DataSyncAdapter.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/DataSyncAdapter.kt
new file mode 100644
index 0000000..a55faa0
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/DataSyncAdapter.kt
@@ -0,0 +1,39 @@
+package com.zmkg.coaloperation.adapter
+
+import android.view.LayoutInflater
+import android.view.ViewGroup
+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.DataSyncItem
+import com.zmkg.coaloperation.databinding.ListItemDataSyncBinding
+import com.zmkg.coaloperation.utils.gone
+import com.zmkg.coaloperation.utils.visible
+
+class DataSyncAdapter(list: MutableList):
+ BaseQuickAdapter(R.layout.list_item_data_sync, list) {
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VH {
+ val binding = ListItemDataSyncBinding.inflate(
+ LayoutInflater.from(context), parent, false
+ )
+ return VH(binding).also {
+ bindViewClickListener(it, viewType)
+ }
+ }
+
+ override fun convert(
+ holder: VH,
+ item: DataSyncItem
+ ) {
+ holder.binding.let {
+ it.tvItemUnit.text = item.funcName
+// it.divider.run {
+// if (holder.layoutPosition == data.size - 1) gone() else visible()
+// }
+ }
+ }
+
+ inner class VH(var binding: ListItemDataSyncBinding): BaseViewHolder(binding.root)
+
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/MiningRecordBaseDataAdapter.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/MiningRecordBaseDataAdapter.kt
new file mode 100644
index 0000000..db7ecf7
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/MiningRecordBaseDataAdapter.kt
@@ -0,0 +1,50 @@
+package com.zmkg.coaloperation.adapter
+
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.core.widget.addTextChangedListener
+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.AddMiningFaceItem
+import com.zmkg.coaloperation.databinding.ListItemMiningRecordBaseDataBinding
+
+class MiningRecordBaseDataAdapter(list: MutableList) :
+ BaseQuickAdapter(
+ R.layout.list_item_mining_record_base_data,
+ list
+ ) {
+
+ override fun onCreateViewHolder(
+ parent: ViewGroup,
+ viewType: Int
+ ): VH {
+ val binding = ListItemMiningRecordBaseDataBinding.inflate(
+ LayoutInflater.from(context), parent, false
+ )
+ return VH(binding).also {
+ bindViewClickListener(it, viewType)
+ }
+ }
+
+ override fun convert(
+ holder: VH,
+ item: AddMiningFaceItem
+ ) {
+ val binding = holder.binding
+ binding.tvItemName.run {
+ addTextChangedListener(onTextChanged = { text, start, before, count ->
+ item.funcName = text.toString().trim()
+ })
+ text = item.funcName
+ }
+ binding.etItemValue.run {
+ addTextChangedListener(onTextChanged = { text, start, before, count ->
+ item.funcValue = text.toString().trim()
+ })
+ setText(item.funcValue)
+ }
+ }
+
+ inner class VH(var binding: ListItemMiningRecordBaseDataBinding) : BaseViewHolder(binding.root)
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/MiningRecordCoalThicknessAdapter.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/MiningRecordCoalThicknessAdapter.kt
new file mode 100644
index 0000000..1d0406d
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/MiningRecordCoalThicknessAdapter.kt
@@ -0,0 +1,52 @@
+package com.zmkg.coaloperation.adapter
+
+import android.text.Html
+import android.view.LayoutInflater
+import android.view.ViewGroup
+import androidx.core.widget.addTextChangedListener
+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.CoalThicknessItem
+import com.zmkg.coaloperation.databinding.ListItemMiningRecordCoalThicknessBinding
+import com.zmkg.coaloperation.utils.gone
+import com.zmkg.coaloperation.utils.visible
+
+class MiningRecordCoalThicknessAdapter(list: MutableList):
+BaseQuickAdapter(R.layout.list_item_mining_record_coal_thickness,list){
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VH {
+ val binding = ListItemMiningRecordCoalThicknessBinding.inflate(
+ LayoutInflater.from(context), parent, false
+ )
+ return VH(binding).also {
+ bindViewClickListener(it, viewType)
+ }
+ }
+
+ override fun convert(holder: VH, item: CoalThicknessItem) {
+ val position = holder.layoutPosition
+ val binding = holder.binding
+ binding.divider.run {
+ if (position == data.size - 1) gone() else visible()
+ }
+ binding.btnAddPoint.run {
+ if (position == data.size - 1) visible() else gone()
+ }
+ binding.tvNameUnit.text = Html.fromHtml("#架", Html.FROM_HTML_MODE_LEGACY)
+ binding.etItemName.run {
+ addTextChangedListener(onTextChanged = { text, start, before, count ->
+ item.supportNo = text.toString().trim()
+ })
+ setText(item.supportNo)
+ }
+ binding.etItemValue.run {
+ addTextChangedListener(onTextChanged = { text, start, before, count ->
+ item.thicknessValue = text.toString().trim()
+ })
+ setText(item.thicknessValue)
+ }
+ }
+
+ inner class VH(var binding: ListItemMiningRecordCoalThicknessBinding): BaseViewHolder(binding.root)
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/MiningWorkingFaceAdapter.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/MiningWorkingFaceAdapter.kt
index cc3d02a..0da033a 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/MiningWorkingFaceAdapter.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/MiningWorkingFaceAdapter.kt
@@ -15,6 +15,7 @@ import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.databinding.ListItemTunnelWorkingFaceBinding
import com.zmkg.coaloperation.db.entity.mining.MiningWorkingFaceEntity
import com.zmkg.coaloperation.ui.mining.activity.MiningActivity
+import com.zmkg.coaloperation.ui.mining.activity.MiningFaceRecordActivity
import com.zmkg.coaloperation.utils.ScreenUtil
import com.zmkg.coaloperation.utils.gone
import com.zmkg.coaloperation.utils.toJsonString
@@ -81,17 +82,18 @@ class MiningWorkingFaceAdapter(var list: MutableList) :
// return@setOnItemClickListener
// }
Log.d(TAG, "convert: ${item.records!![recordPosition].toJsonString()}")
-// context.let { ctx ->
-// if (ctx is MiningActivity) {
-// ctx.toActivity(WorkingFaceRecordActivity::class.java, Bundle().apply {
-// putString(WorkingFaceRecordActivity.FACE_NAME, item.surfaceName)
-// putParcelable(
-// WorkingFaceRecordActivity.FACE_RECORD,
-// item.records!![recordPosition]
-// )
-// })
-// }
-// }
+ context.let { ctx ->
+ if (ctx is MiningActivity) {
+ ctx.toActivity(MiningFaceRecordActivity::class.java, Bundle().apply {
+ putString(MiningFaceRecordActivity.WORK_RECORD_TYPE, MiningFaceRecordActivity.WorkRecordType.SEE.name)
+ putString(MiningFaceRecordActivity.FACE_NAME, item.surfaceName)
+ putParcelable(
+ MiningFaceRecordActivity.FACE_RECORD,
+ item.records!![recordPosition]
+ )
+ })
+ }
+ }
}
}
}
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/base/BaseVMBActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/base/BaseVMBActivity.kt
index 1d158b8..669ba93 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/base/BaseVMBActivity.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/base/BaseVMBActivity.kt
@@ -34,6 +34,8 @@ import com.zmkg.coaloperation.base.viewmodel.BaseViewModel.Companion.LOADING_STA
import com.zmkg.coaloperation.superfuntion.hideLoading
import com.zmkg.coaloperation.superfuntion.showLoading
import com.zmkg.coaloperation.utils.StatusbarUtil
+import com.zmkg.coaloperation.utils.formatDecimalString
+import com.zmkg.coaloperation.utils.roundedOneDecimalPlace
import com.zmkg.coaloperation.view.CustomToast
import com.zmkg.coaloperation.view.LoadingDialog
import kotlinx.coroutines.launch
@@ -432,4 +434,17 @@ abstract class BaseVMBActivity(private
configuration.fontScale = 1f
return context.createConfigurationContext(configuration)
}
+
+ fun getShowNum2(num:String?):String {
+ return num?.formatDecimalString()?:""
+ }
+ fun getShowNum(num:String?):String {
+ if (num.isNullOrBlank()) return "0"
+ try {
+ val showNum = num.toDouble().roundedOneDecimalPlace()
+ return "$showNum"
+ } catch (e: Exception) {
+ return "0"
+ }
+ }
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/OtherData.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/OtherData.kt
index b3de357..ef24f88 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/OtherData.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/OtherData.kt
@@ -8,11 +8,22 @@ data class UserMenuBean(
)
data class AddMiningFaceItem(
- //0-输入框,1-选择弹窗
+ //0-输入框,1-选择弹窗, 2-显示文本TextView
var funcType: Int = 0,
var funcName: String = "",
var funcValue: String = "",
var funcId: String = "",
var isShowArrowDown: Boolean = false,
var onClick: () -> Unit = {}
+)
+
+data class CoalThicknessItem(
+ var supportNo: String = "",
+ var thicknessValue: String = "",
+)
+
+data class DataSyncItem(
+ var funcName:String,
+ var onDataPull: () -> Unit = {},
+ var onDataPush: () -> Unit = {},
)
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/data/api/HomeApi.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/data/api/HomeApi.kt
index 78457d9..6540b6c 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/data/api/HomeApi.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/data/api/HomeApi.kt
@@ -1,10 +1,13 @@
package com.zmkg.coaloperation.data.api
+import com.zmkg.coaloperation.bean.TunnelSubmitData
import com.zmkg.coaloperation.data.bean.ApiResponse
import com.zmkg.coaloperation.db.entity.tunnel.TunnelWorkingFaceEntity
import com.zmkg.coaloperation.retorfit.UrlConfig
import com.zmkg.coaloperation.ui.home.bean.WaterLedgerBean
+import retrofit2.http.Body
import retrofit2.http.GET
+import retrofit2.http.POST
/**
* 首页
@@ -48,4 +51,7 @@ interface HomeApi {
@GET("/api/mine/tunnelling/dictionaries")
suspend fun getTunnelAllDict(): ApiResponse
+ @POST("/api/mine/tunnelling/data/push")
+ suspend fun tunnelDataPush(@Body data: TunnelSubmitData): ApiResponse
+
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/data/repository/HomeRepository.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/data/repository/HomeRepository.kt
index fa827f5..92aca5e 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/data/repository/HomeRepository.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/data/repository/HomeRepository.kt
@@ -1,6 +1,7 @@
package com.zmkg.coaloperation.data.repository
import com.zmkg.coaloperation.base.repository.BaseRepository
+import com.zmkg.coaloperation.bean.TunnelSubmitData
import com.zmkg.coaloperation.data.api.HomeApi
import com.zmkg.coaloperation.data.bean.ApiResponse
import com.zmkg.coaloperation.db.entity.tunnel.TunnelWorkingFaceEntity
@@ -8,7 +9,7 @@ import com.zmkg.coaloperation.retorfit.RetrofitManager
import com.zmkg.coaloperation.ui.home.bean.WaterLedgerBean
-object HomeRepository : BaseRepository(){
+object HomeRepository : BaseRepository() {
private val service by lazy { RetrofitManager.getService(HomeApi::class.java) }
@@ -33,7 +34,7 @@ object HomeRepository : BaseRepository(){
// }
// }
-// /**
+ // /**
// * 掘进-首页-工作面记录列表
// */
// suspend fun getTunnelingHomeItemData(surfaceId: String?): ApiResponse> {
@@ -61,16 +62,22 @@ object HomeRepository : BaseRepository(){
// }
// }
//
- suspend fun getTunnelHomeList() : ApiResponse?> {
+ suspend fun getTunnelHomeList(): ApiResponse?> {
return apiCall {
service.getTunnelHomeList()
}
}
- suspend fun getTunnelAllDict() : ApiResponse {
+ suspend fun getTunnelAllDict(): ApiResponse {
return apiCall {
service.getTunnelAllDict()
}
}
+ suspend fun tunnelDataPush(data: TunnelSubmitData): ApiResponse {
+ return apiCall {
+ service.tunnelDataPush(data)
+ }
+ }
+
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/fragment/HomeFragment.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/fragment/HomeFragment.kt
index 26e42e9..6f91def 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/fragment/HomeFragment.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/home/fragment/HomeFragment.kt
@@ -25,6 +25,7 @@ import com.zmkg.coaloperation.superfuntion.toJson
import com.zmkg.coaloperation.ui.home.adapter.HomeMenuAdapter
import com.zmkg.coaloperation.ui.home.bean.HomeMenuBean
import com.zmkg.coaloperation.ui.home.viewmodel.HomeViewModel
+import com.zmkg.coaloperation.utils.DictUtils
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
@@ -80,6 +81,7 @@ class HomeFragment :
}
override fun initData() {
+ DictUtils.initData()
// mViewModel.getWaterLedgerData()
val titleNameList = mutableListOf(
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/mining/activity/MiningActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/mining/activity/MiningActivity.kt
index de7dc56..fe4f751 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/mining/activity/MiningActivity.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/mining/activity/MiningActivity.kt
@@ -51,17 +51,18 @@ class MiningActivity :
return@setOnItemChildClickListener
}
if (view.id == R.id.start_record) {
-// toActivity(AddWorkingFaceRecordActivity::class.java, Bundle().apply {
-// putLong(
-// AddWorkingFaceRecordActivity.FACE_ID,
-// workingFaceList[position].surfaceId
-// )
-// putString(
-// AddWorkingFaceRecordActivity.FACE_NAME,
-// workingFaceList[position].surfaceName
-// )
-// putInt(AddWorkingFaceRecordActivity.SHOW_TYPE, 0)
-// })
+ toActivity(MiningFaceRecordActivity::class.java, Bundle().apply {
+ putString(MiningFaceRecordActivity.WORK_RECORD_TYPE, MiningFaceRecordActivity.WorkRecordType.ADD.name)
+ putLong(
+ MiningFaceRecordActivity.FACE_ID,
+ workingFaceList[position].surfaceId
+ )
+ putString(
+ MiningFaceRecordActivity.FACE_NAME,
+ workingFaceList[position].surfaceName
+ )
+ putInt(AddWorkingFaceRecordActivity.SHOW_TYPE, 0)
+ })
}
}
}
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/mining/activity/MiningFaceRecordActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/mining/activity/MiningFaceRecordActivity.kt
new file mode 100644
index 0000000..2b74a88
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/mining/activity/MiningFaceRecordActivity.kt
@@ -0,0 +1,184 @@
+package com.zmkg.coaloperation.ui.mining.activity
+
+import android.annotation.SuppressLint
+import android.os.Bundle
+import android.text.TextUtils
+import android.view.View
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.zmkg.coaloperation.R
+import com.zmkg.coaloperation.adapter.MiningRecordBaseDataAdapter
+import com.zmkg.coaloperation.adapter.MiningRecordCoalThicknessAdapter
+import com.zmkg.coaloperation.base.BaseVMBActivity
+import com.zmkg.coaloperation.base.viewmodel.TestViewModel
+import com.zmkg.coaloperation.bean.AddMiningFaceItem
+import com.zmkg.coaloperation.bean.CoalThicknessItem
+import com.zmkg.coaloperation.bean.WorkOption
+import com.zmkg.coaloperation.databinding.ActivityMiningFaceRecordBinding
+import com.zmkg.coaloperation.utils.PickerUtil
+import com.zmkg.coaloperation.utils.gone
+import com.zmkg.coaloperation.utils.visible
+
+@SuppressLint("NotifyDataSetChanged")
+class MiningFaceRecordActivity :
+ BaseVMBActivity(R.layout.activity_mining_face_record) {
+ companion object {
+ const val TAG = "MiningFaceRecordActivity"
+ const val SHOW_TYPE = "showType"
+ const val WORK_RECORD_TYPE = "workRecordType"
+ const val FACE_NAME = "faceName"
+ const val FACE_ID = "faceId"
+ const val FACE_RECORD = "faceRecord"
+ }
+
+ enum class WorkRecordType {
+ ADD,//新增
+
+ EDIT,//修改
+
+ SEE//查看
+ }
+
+ private var currentRecordType = WorkRecordType.ADD
+ private val baseDataList: MutableList = mutableListOf()
+ private val coalThicknessList: MutableList = mutableListOf()
+
+ private val baseDataAdapter by lazy {
+ MiningRecordBaseDataAdapter(baseDataList)
+ }
+
+ private val coalThicknessAdapter by lazy {
+ MiningRecordCoalThicknessAdapter(coalThicknessList).apply {
+ addChildClickViewIds(R.id.btnAddPoint)
+ setOnItemChildClickListener { adapter, view, position ->
+ if (view.id == R.id.btnAddPoint) {
+ coalThicknessList.add(CoalThicknessItem())
+ notifyDataSetChanged()
+ }
+ }
+ }
+ }
+
+ override fun initView(savedInstanceState: Bundle?) {
+ mBinding.rvBaseData.let {
+ it.layoutManager = LinearLayoutManager(this)
+ it.adapter = baseDataAdapter
+ }
+ mBinding.rvCoalThickness.let {
+ it.layoutManager = LinearLayoutManager(this)
+ it.adapter = coalThicknessAdapter
+ }
+ val stringExtra = intent.getStringExtra(WORK_RECORD_TYPE)
+ if (TextUtils.isEmpty(stringExtra)) {
+ stringExtra == AddMiningFaceActivity.WorkFaceType.ADD.name
+ }
+ when (stringExtra) {
+ WorkRecordType.ADD.name -> {
+ currentRecordType = WorkRecordType.ADD
+ mBinding.toolbarLay.title = "开始记录"
+ mBinding.btnSaveRecord.text = "保存"
+ mBinding.btnSaveRecord.visible()
+ initAddRecord()
+ }
+
+ WorkRecordType.EDIT.name -> {
+ currentRecordType = WorkRecordType.EDIT
+ mBinding.toolbarLay.title = "修改记录"
+ mBinding.btnSaveRecord.text = "修改"
+ mBinding.btnSaveRecord.visible()
+// detail =
+// intent.getParcelableExtra(WorkingFaceDetailActivity.Companion.FACE_WORK_DETAIL_DATA) as MiningWorkingFaceEntity?
+// if (faceDetail == null) {
+// showToast("未查询到记录数据")
+// return
+// }
+ initEditRecord()
+ }
+
+ WorkRecordType.SEE.name -> {
+ currentRecordType = WorkRecordType.SEE
+ mBinding.toolbarLay.title = "查看详情"
+ mBinding.toolbarLay.rightText = "修改"
+ mBinding.toolbarLay.titleTvRight.setOnClickListener {
+ toActivity(MiningFaceRecordActivity::class.java, Bundle().apply {
+ putString(WORK_RECORD_TYPE, WorkRecordType.EDIT.name)
+// putParcelable(FACE_RECORD, faceRecord)
+ })
+ }
+ mBinding.btnSaveRecord.gone()
+ initRecordDetail()
+ }
+ }
+ }
+
+ override fun initData() {
+
+ }
+
+ override fun bindEvent() {
+ val waterOutflowList: MutableList = mutableListOf()
+ waterOutflowList.add(WorkOption(id = "0", name = "是"))
+ waterOutflowList.add(WorkOption(id = "1", name = "否"))
+ val tvWaterOutflow = mBinding.tvWaterOutflow
+ tvWaterOutflow.setOnClickListener { v ->
+ PickerUtil.showOptionPicker(this, "请选择是否出水", waterOutflowList) { option ->
+ tvWaterOutflow.text = option.name
+ tvWaterOutflow.tag = option.id
+ }
+ }
+ }
+
+ override fun processClick(v: View?) {
+
+ }
+
+ private fun initAddRecord() {
+ baseDataList.run {
+ add(AddMiningFaceItem(funcName = "当班进尺"))
+ add(AddMiningFaceItem(funcName = "胶运巷回采位置"))
+ add(AddMiningFaceItem(funcName = "回风巷回采位置"))
+ add(AddMiningFaceItem(funcName = "出煤量"))
+ }
+ baseDataAdapter.notifyDataSetChanged()
+
+ coalThicknessList.run {
+ add(CoalThicknessItem())
+ add(CoalThicknessItem())
+ add(CoalThicknessItem())
+ }
+ coalThicknessAdapter.notifyDataSetChanged()
+ }
+
+ private fun initEditRecord() {
+ baseDataList.run {
+ add(AddMiningFaceItem(funcName = "当班进尺"))
+ add(AddMiningFaceItem(funcName = "胶运巷回采位置"))
+ add(AddMiningFaceItem(funcName = "回风巷回采位置"))
+ add(AddMiningFaceItem(funcName = "出煤量"))
+ }
+ baseDataAdapter.notifyDataSetChanged()
+
+ coalThicknessList.run {
+ add(CoalThicknessItem())
+ add(CoalThicknessItem())
+ add(CoalThicknessItem())
+ }
+ coalThicknessAdapter.notifyDataSetChanged()
+ }
+
+ private fun initRecordDetail() {
+ baseDataList.run {
+ add(AddMiningFaceItem(funcName = "当班进尺"))
+ add(AddMiningFaceItem(funcName = "胶运巷回采位置"))
+ add(AddMiningFaceItem(funcName = "回风巷回采位置"))
+ add(AddMiningFaceItem(funcName = "出煤量"))
+ }
+ baseDataAdapter.notifyDataSetChanged()
+
+ coalThicknessList.run {
+ add(CoalThicknessItem())
+ add(CoalThicknessItem())
+ add(CoalThicknessItem())
+ }
+ coalThicknessAdapter.notifyDataSetChanged()
+ }
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/AddWorkingFaceRecordActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/AddWorkingFaceRecordActivity.kt
index e8e02f3..6287b6c 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/AddWorkingFaceRecordActivity.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/AddWorkingFaceRecordActivity.kt
@@ -193,6 +193,7 @@ class AddWorkingFaceRecordActivity :
it.workingFootage = mBinding.etWorkingFootage.text.toString().trim().formatDecimalString()
it.seamDip = mBinding.etSeamDip.text.toString().trim().formatDecimalString()
it.seamHeight = mBinding.etSeamHeight.text.toString().trim().formatDecimalString()
+ it.waterYield = mBinding.etWaterYield.text.toString().trim().formatDecimalString()
it.recordPerson = mBinding.etRecordPerson.text.toString().trim()
it.createTime = DateTimeUtil.formatDateTime(LocalDateTime.now())
@@ -218,9 +219,10 @@ class AddWorkingFaceRecordActivity :
mBinding.tvWorkTeam.tag = it.teamId
mBinding.etTeamLeader.setText(it.teamLeader)
- mBinding.etWorkingFootage.setText(it.workingFootage)
- mBinding.etSeamDip.setText(it.seamDip)
- mBinding.etSeamHeight.setText(it.seamHeight)
+ mBinding.etWorkingFootage.setText(getShowNum2(it.workingFootage))
+ mBinding.etSeamDip.setText(getShowNum2(it.seamDip))
+ mBinding.etSeamHeight.setText(getShowNum2(it.seamHeight))
+ mBinding.etWaterYield.setText(getShowNum2(it.waterYield))
mBinding.etRecordPerson.setText(it.recordPerson)
}
}
@@ -238,6 +240,7 @@ class AddWorkingFaceRecordActivity :
it.workingFootage = mBinding.etWorkingFootage.text.toString().trim().formatDecimalString()
it.seamDip = mBinding.etSeamDip.text.toString().trim().formatDecimalString()
it.seamHeight = mBinding.etSeamHeight.text.toString().trim().formatDecimalString()
+ it.waterYield = mBinding.etWaterYield.text.toString().trim().formatDecimalString()
it.recordPerson = mBinding.etRecordPerson.text.toString().trim()
it.createTime = DateTimeUtil.formatDateTime(LocalDateTime.now())
@@ -311,6 +314,13 @@ class AddWorkingFaceRecordActivity :
}
list.add(TunnelWorkingItem(name = "煤层高", value = seamHeight))
+ val waterYield = mBinding.etWaterYield.text.toString().trim().formatDecimalString()
+ if (waterYield.isBlank()) {
+ showToast("请输入涌水量")
+ return
+ }
+ list.add(TunnelWorkingItem(name = "涌水量", value = waterYield))
+
val recordPerson = mBinding.etRecordPerson.text.toString().trim()
if (recordPerson.isBlank()) {
showToast("请输入填写人")
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/TunnelingActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/TunnelingActivity.kt
index f8439ce..fb071bc 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/TunnelingActivity.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/TunnelingActivity.kt
@@ -86,7 +86,6 @@ class TunnelingActivity :
@SuppressLint("NotifyDataSetChanged")
override fun initData() {
- DictUtils.initData()
val userId = SpTool.getString(SpTool.USER_ID)
workingFaceViewModel.getEntityListByUserId(userId) { it ->
if (it.isNullOrEmpty()) {
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceRecordActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceRecordActivity.kt
index 9098692..6d9ae32 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceRecordActivity.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceRecordActivity.kt
@@ -16,6 +16,7 @@ import com.zmkg.coaloperation.db.entity.tunnel.TunnelWorkingFaceRecordEntity
import com.zmkg.coaloperation.db.viewmodel.TunnelRoofLithologyViewModel
import com.zmkg.coaloperation.utils.DictUtils
import com.zmkg.coaloperation.utils.formatDecimalString
+import com.zmkg.coaloperation.utils.roundedOneDecimalPlace
import com.zmkg.coaloperation.utils.toJsonString
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
@@ -83,14 +84,15 @@ class WorkingFaceRecordActivity :
)
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?.formatDecimalString()}m"))
+ list.add(TunnelWorkingItem(pageType = 1, name = "本班进尺", value = "${getShowNum2(it.workingFootage)}m"))
// val rockList = mutableListOf()
// rockList.add(RockItem(startLen = 0, endLen = 1, rockType = "泥"))
// rockList.add(RockItem(startLen = 0, endLen = 1, rockType = "砂"))
list.add(TunnelWorkingItem(pageType = 1, name = "顶板岩性", value = "", items = null))
- list.add(TunnelWorkingItem(pageType = 1, name = "煤层倾角", value = "${it.seamDip?.formatDecimalString()}°"))
- list.add(TunnelWorkingItem(pageType = 1, name = "煤层高", value = "${it.seamHeight?.formatDecimalString()}m"))
+ list.add(TunnelWorkingItem(pageType = 1, name = "煤层倾角", value = "${getShowNum2(it.seamDip)}°"))
+ list.add(TunnelWorkingItem(pageType = 1, name = "煤层高", value = "${getShowNum2(it.seamHeight)}m"))
+ list.add(TunnelWorkingItem(pageType = 1, name = "涌水量", value = "${getShowNum2(it.waterYield)}m³/h"))
list.add(TunnelWorkingItem(pageType = 1, name = "记录人", value = it.recordPerson))
adapter.notifyDataSetChanged()
@@ -102,6 +104,7 @@ class WorkingFaceRecordActivity :
}
}
+
override fun bindEvent() {
}
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/viewmodel/TunnelingViewModel.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/viewmodel/TunnelingViewModel.kt
index fd94f68..fdb6792 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/viewmodel/TunnelingViewModel.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/viewmodel/TunnelingViewModel.kt
@@ -1,6 +1,7 @@
package com.zmkg.coaloperation.ui.tunneling.viewmodel
import com.zmkg.coaloperation.base.viewmodel.BaseViewModel
+import com.zmkg.coaloperation.bean.TunnelSubmitData
import com.zmkg.coaloperation.data.repository.HomeRepository
import com.zmkg.coaloperation.db.entity.tunnel.TunnelWorkingFaceEntity
import com.zmkg.coaloperation.superfuntion.handleRequest
@@ -104,4 +105,18 @@ class TunnelingViewModel : BaseViewModel() {
)
}
+ var tunnelDataPush = MutableSharedFlow()
+
+ fun tunnelDataPush(data:TunnelSubmitData) {
+ launch(
+ {
+ handleRequest(
+ HomeRepository.tunnelDataPush(data),
+ successBlock = {
+ tunnelDataPush.emit(it.data)
+ })
+ }
+ )
+ }
+
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/activity/AboutUsActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/activity/AboutUsActivity.kt
index d3782f5..2c524f4 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/activity/AboutUsActivity.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/activity/AboutUsActivity.kt
@@ -23,5 +23,4 @@ class AboutUsActivity : BaseVMBActivity(R.
override fun processClick(v: View?) {
}
-
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/activity/DataSyncActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/activity/DataSyncActivity.kt
new file mode 100644
index 0000000..17782ab
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/activity/DataSyncActivity.kt
@@ -0,0 +1,221 @@
+package com.zmkg.coaloperation.ui.user.activity
+
+import android.os.Bundle
+import android.util.Log
+import android.view.View
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.zmkg.coaloperation.R
+import com.zmkg.coaloperation.adapter.DataSyncAdapter
+import com.zmkg.coaloperation.base.BaseVMBActivity
+import com.zmkg.coaloperation.bean.DataSyncItem
+import com.zmkg.coaloperation.bean.TunnelSubmitData
+import com.zmkg.coaloperation.databinding.ActivityDataSyncBinding
+import com.zmkg.coaloperation.db.viewmodel.TunnelRoofLithologyViewModel
+import com.zmkg.coaloperation.db.viewmodel.TunnelWorkingFaceRecordViewModel
+import com.zmkg.coaloperation.db.viewmodel.TunnelWorkingFaceViewModel
+import com.zmkg.coaloperation.superfuntion.hideLoading
+import com.zmkg.coaloperation.superfuntion.showLoading
+import com.zmkg.coaloperation.ui.tunneling.viewmodel.TunnelingViewModel
+import com.zmkg.coaloperation.utils.DictUtils
+import com.zmkg.coaloperation.utils.SpTool
+import com.zmkg.coaloperation.utils.toJsonString
+import kotlinx.coroutines.flow.collectLatest
+import kotlinx.coroutines.launch
+import kotlin.collections.isNotEmpty
+
+/**
+ * 关于我们
+ */
+class DataSyncActivity :
+ BaseVMBActivity(R.layout.activity_data_sync) {
+
+ private val TAG = "DataSyncActivity"
+
+ private val workingFaceViewModel: TunnelWorkingFaceViewModel by lazy {
+ ViewModelProvider(this)[TunnelWorkingFaceViewModel::class.java]
+ }
+
+ private val workingFaceRecordViewModel: TunnelWorkingFaceRecordViewModel by lazy {
+ ViewModelProvider(this)[TunnelWorkingFaceRecordViewModel::class.java]
+ }
+
+ private val roofLithologyViewModel: TunnelRoofLithologyViewModel by lazy {
+ ViewModelProvider(this)[TunnelRoofLithologyViewModel::class.java]
+ }
+ private val list = mutableListOf(
+ DataSyncItem("涌水量观测"),
+ DataSyncItem("导线测量"),
+ DataSyncItem("瓦斯巡检"),
+ DataSyncItem("防灭火检查"),
+ DataSyncItem("通风巡检"),
+ DataSyncItem("地质编录"),
+ DataSyncItem("水文地质编录"),
+ DataSyncItem("隐蔽致灾"),
+ DataSyncItem("地物查询"),
+ DataSyncItem("回采"),
+ DataSyncItem(funcName = "掘进", onDataPull = { tunnelDataPull() }, onDataPush = { tunnelDataPush() })
+ )
+ private val adapter by lazy {
+ DataSyncAdapter(list).apply {
+ setOnItemClickListener { _, _, position ->
+
+ }
+ }
+ }
+
+ override fun initView(savedInstanceState: Bundle?) {
+ mBinding.toolbarLay.title = "数据同步"
+ mBinding.rvFuncList.let {
+ it.layoutManager = LinearLayoutManager(this)
+ it.adapter = adapter
+ }
+ }
+
+ override fun initData() {
+ }
+
+ override fun bindEvent() {
+ }
+
+ override fun processClick(v: View?) {
+ }
+
+ override fun createObserve() {
+ super.createObserve()
+ lifecycleScope.launch {
+ repeatOnLifecycle(Lifecycle.State.CREATED) {
+ launch {
+ getFaceAndRecordList()
+ }
+ launch {
+ getTunnelAllDict()
+ }
+ launch {
+ dataPushSuccess()
+ }
+ }
+ }
+ }
+
+ private suspend fun dataPushSuccess() {
+ mViewModel.tunnelDataPush.collectLatest {
+ showToast("数据推送成功")
+ // TODO: 清除本地所有数据,并从接口拉取最新数据
+ }
+ }
+
+ private suspend fun getFaceAndRecordList() {
+ mViewModel.tunnelFaceAndRecordList.collectLatest { dataList ->
+ Log.d(TAG, "getFaceAndRecordList: ${dataList.toJsonString()}")
+ dataList?.let { list ->
+ //保存工作面数据
+ list.forEach { it.userId = SpTool.getString(SpTool.USER_ID) }
+ workingFaceViewModel.insertList(list) {}
+ list.forEach { faceEntity ->
+ faceEntity.records?.let { recordList ->
+ val lastRecordId = faceEntity.latestRecord?.recordId
+ val record = recordList.firstOrNull { it.recordId == lastRecordId }
+ record?.latestRecordState = "1"
+
+ //保存工作面记录数据
+ workingFaceRecordViewModel.insertList(recordList)
+ recordList.forEach { recordEntity ->
+ recordEntity.mineWorkingLithologyList?.let { lithologyList ->
+ //保存工作面记录顶板岩性数据
+ roofLithologyViewModel.insertList(lithologyList)
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private suspend fun getTunnelAllDict() {
+ mViewModel.tunnelAllDict.collectLatest {
+ val dictJson = it.toJsonString()
+ Log.d(TAG, "getTunnelAllDict: $dictJson")
+ SpTool.put(SpTool.DICT_JSON, dictJson)
+ }
+ }
+
+ /**
+ * 检查数据状态
+ * @param block 入参true-有待提交数据,false-无待提交数据
+ */
+ private fun checkDataState(block: (Boolean) -> Unit) {
+ workingFaceViewModel.getEntityListByState("1") { faceList ->
+ if (faceList != null && faceList.isNotEmpty()) {
+ block(true)
+ return@getEntityListByState
+ }
+ workingFaceRecordViewModel.getEntityListByState("1") { recordList ->
+ if (recordList != null && recordList.isNotEmpty()) {
+ block(true)
+ return@getEntityListByState
+ }
+ roofLithologyViewModel.getEntityListByState("1") { lithologyList ->
+ if (lithologyList != null && lithologyList.isNotEmpty()) {
+ block(true)
+ return@getEntityListByState
+ }
+ block(false)
+ }
+ }
+ }
+ }
+
+ private fun tunnelDataPull() {
+ checkDataState { state ->
+ if (state) {
+ showToast("本地存在待提交的数据")
+ return@checkDataState
+ }
+ showLoading("加载中")
+ workingFaceViewModel.deleteAll {
+ workingFaceRecordViewModel.deleteAll {
+ roofLithologyViewModel.deleteAll {
+ mViewModel.getTunnelFaceAndRecordList()
+ mViewModel.getTunnelAllDict()
+ mBinding.root.postDelayed({
+ hideLoading()
+ }, 3000)
+ }
+ }
+ }
+ }
+ }
+
+ private fun tunnelDataPush() {
+ showLoading()
+ val submitData = TunnelSubmitData()
+ workingFaceViewModel.getEntityListByState("1") { faceList ->
+ submitData.faceList = faceList
+ workingFaceRecordViewModel.getEntityListByState("1") { recordList ->
+ submitData.recordList = recordList
+ roofLithologyViewModel.getEntityListByState("1") { lithologyList ->
+ hideLoading()
+ submitData.lithologyList = lithologyList
+ if (submitData.faceList.isNullOrEmpty() ||
+ submitData.recordList.isNullOrEmpty() ||
+ submitData.lithologyList.isNullOrEmpty()
+ ) {
+ showToast("暂无推送数据")
+ return@getEntityListByState
+ }
+ submitData.recordList?.forEach { entity ->
+ entity.teamShift = DictUtils.getTeamShiftId(entity.teamShift)
+ }
+ Log.d(TAG, "dataPush: ${submitData.toJsonString()}")
+ mViewModel.tunnelDataPush(submitData)
+ }
+ }
+ }
+ }
+
+
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/fragment/UserFragment.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/fragment/UserFragment.kt
index 37beab8..e74a44b 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/fragment/UserFragment.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/user/fragment/UserFragment.kt
@@ -24,7 +24,9 @@ import com.zmkg.coaloperation.superfuntion.startLoginActivity
import com.zmkg.coaloperation.ui.tunneling.viewmodel.TunnelingViewModel
import com.zmkg.coaloperation.ui.user.activity.AboutUsActivity
import com.zmkg.coaloperation.ui.user.activity.CacheManageActivity
+import com.zmkg.coaloperation.ui.user.activity.DataSyncActivity
import com.zmkg.coaloperation.ui.user.activity.NetworkConfigActivity
+import com.zmkg.coaloperation.utils.DictUtils
import com.zmkg.coaloperation.utils.SpTool
import com.zmkg.coaloperation.utils.toJsonString
import com.zmkg.coaloperation.view.CommonDialog
@@ -38,18 +40,6 @@ class UserFragment :
const val TAG = "UserFragment"
}
- private val workingFaceViewModel: TunnelWorkingFaceViewModel by lazy {
- ViewModelProvider(this)[TunnelWorkingFaceViewModel::class.java]
- }
-
- private val workingFaceRecordViewModel: TunnelWorkingFaceRecordViewModel by lazy {
- ViewModelProvider(this)[TunnelWorkingFaceRecordViewModel::class.java]
- }
-
- private val roofLithologyViewModel: TunnelRoofLithologyViewModel by lazy {
- ViewModelProvider(this)[TunnelRoofLithologyViewModel::class.java]
- }
-
private val updateDialog: CommonDialog by lazy {
CommonDialog(requireContext(), R.layout.dialog_common_view) {
@@ -92,100 +82,6 @@ class UserFragment :
override fun createObserve() {
super.createObserve()
- lifecycleScope.launch {
- repeatOnLifecycle(Lifecycle.State.CREATED) {
- launch {
- getFaceAndRecordList()
- }
- launch {
- getTunnelAllDict()
- }
- }
- }
- }
-
- private suspend fun getFaceAndRecordList() {
- mViewModel.tunnelFaceAndRecordList.collectLatest { dataList ->
- Log.d(TAG, "getFaceAndRecordList: ${dataList.toJsonString()}")
- dataList?.let { list ->
- //保存工作面数据
- list.forEach { it.userId = SpTool.getString(SpTool.USER_ID) }
- workingFaceViewModel.insertList(list) {}
- list.forEach { faceEntity ->
- faceEntity.records?.let { recordList ->
- val lastRecordId = faceEntity.latestRecord?.recordId
- val record = recordList.firstOrNull { it.recordId == lastRecordId }
- record?.latestRecordState = "1"
-
- //保存工作面记录数据
- workingFaceRecordViewModel.insertList(recordList)
- recordList.forEach { recordEntity ->
- recordEntity.mineWorkingLithologyList?.let { lithologyList ->
- //保存工作面记录顶板岩性数据
- roofLithologyViewModel.insertList(lithologyList)
- }
- }
- }
- }
- }
- }
- }
-
- private suspend fun getTunnelAllDict() {
- mViewModel.tunnelAllDict.collectLatest {
- val dictJson = it.toJsonString()
- Log.d(TAG, "getTunnelAllDict: $dictJson")
- SpTool.put(SpTool.DICT_JSON, dictJson)
- }
- }
-
- /**
- * 检查数据状态
- * @param block 入参true-有待提交数据,false-无待提交数据
- */
- private fun checkDataState(block: (Boolean) -> Unit) {
- workingFaceViewModel.getEntityListByState("1") { faceList ->
- if (faceList != null && faceList.isNotEmpty()) {
- block(true)
- return@getEntityListByState
- }
- workingFaceRecordViewModel.getEntityListByState("1") { recordList ->
- if (recordList != null && recordList.isNotEmpty()) {
- block(true)
- return@getEntityListByState
- }
- roofLithologyViewModel.getEntityListByState("1") { lithologyList ->
- if (lithologyList != null && lithologyList.isNotEmpty()) {
- block(true)
- return@getEntityListByState
- }
- block(false)
- }
- }
- }
- }
-
- private fun dataPush() {
- showLoading()
- val submitData = TunnelSubmitData()
- workingFaceViewModel.getEntityListByState("1") { faceList ->
- submitData.faceList = faceList
- workingFaceRecordViewModel.getEntityListByState("1") { recordList ->
- submitData.recordList = recordList
- roofLithologyViewModel.getEntityListByState("1") { lithologyList ->
- hideLoading()
- submitData.lithologyList = lithologyList
- if (submitData.faceList.isNullOrEmpty() ||
- submitData.recordList.isNullOrEmpty() ||
- submitData.lithologyList.isNullOrEmpty()
- ) {
- showToast("暂无推送数据")
- return@getEntityListByState
- }
- Log.d(TAG, "dataPush: ${submitData.toJsonString()}")
- }
- }
- }
}
private fun initMenuList() {
@@ -202,18 +98,12 @@ class UserFragment :
)
userMenuList.add(
UserMenuBean(
- menuName = "数据拉取",
- iconResId = R.drawable.ic_data_pull,
+ menuName = "数据同步",
+ iconResId = R.drawable.ic_data_sync,
iconBgResId = R.drawable.bg_icon_data_pull,
- click = { dataPull() }
- )
- )
- userMenuList.add(
- UserMenuBean(
- menuName = "数据推送",
- iconResId = R.drawable.ic_data_push,
- iconBgResId = R.drawable.bg_icon_data_push,
- click = { dataPush() }
+ click = {
+ toActivity(DataSyncActivity::class.java)
+ }
)
)
userMenuList.add(
@@ -258,25 +148,4 @@ class UserFragment :
)
}
- private fun dataPull() {
- checkDataState { state ->
- if (state) {
- showToast("本地存在待提交的数据")
- return@checkDataState
- }
- showLoading("加载中")
- workingFaceViewModel.deleteAll {
- workingFaceRecordViewModel.deleteAll {
- roofLithologyViewModel.deleteAll {
- mViewModel.getTunnelFaceAndRecordList()
- mViewModel.getTunnelAllDict()
- mBinding.root.postDelayed({
- hideLoading()
- }, 3000)
- }
- }
- }
- }
- }
-
}
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/DictUtils.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/DictUtils.kt
index 9c23c25..22704e5 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/DictUtils.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/DictUtils.kt
@@ -46,7 +46,7 @@ object DictUtils {
areaMap.put(it.key, tempList)
}
val seamId: LazilyParsedNumber = it.value?.get("seamId") as LazilyParsedNumber
- //Log.d("DictUtils", "initData: idType= ${seamId?.javaClass?.name}, id=${seamId.toInt()},name=${it.value?.get("areaName")}")
+ //Log.d("DictUtils", "initData: idType= ${seamId?.javaClass?.name}, id=${seamId.toInt(aa)},name=${it.value?.get("areaName")}")
tempList?.add(WorkOption(id = ""+ seamId.toInt(), ""+ it.value?.get("areaName")))
}
}
@@ -55,5 +55,8 @@ object DictUtils {
if (shift == null) return ""
return workShiftList.firstOrNull { it.id == shift }?.name ?: shift
}
-
+ fun getTeamShiftId(shift: String?): String {
+ if (shift == null) return ""
+ return workShiftList.firstOrNull { it.name == shift }?.id ?: shift
+ }
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/ExcelExportUtils.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/ExcelExportUtils.kt
index 2ac1576..a0807e2 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/ExcelExportUtils.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/ExcelExportUtils.kt
@@ -26,7 +26,8 @@ object ExcelExportUtils {
subTitleList.forEachIndexed { index, subTitle ->
subHeader.createCell(list.size - 1 + index).setCellValue(subTitle)
}
- sheet.addMergedRegion(CellRangeAddress(0, 0, 9, 11))
+// sheet.addMergedRegion(CellRangeAddress(0, 0, 9, 11))
+ sheet.addMergedRegion(CellRangeAddress(0, 0, 10, 12))
for (i in 0 until list.size - 1) {
sheet.addMergedRegion(CellRangeAddress(0, 1, i, i))
}
diff --git a/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_data_sync.png b/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_data_sync.png
new file mode 100644
index 0000000000000000000000000000000000000000..d076ce557495e03d3eb5f7ecaf71b478a384061b
GIT binary patch
literal 6939
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
KjY>6K^#1_yTbTI(
literal 0
HcmV?d00001
diff --git a/coalMiningApp/app/src/main/res/layout/activity_add_mining_face.xml b/coalMiningApp/app/src/main/res/layout/activity_add_mining_face.xml
index 5369250..f55cfea 100644
--- a/coalMiningApp/app/src/main/res/layout/activity_add_mining_face.xml
+++ b/coalMiningApp/app/src/main/res/layout/activity_add_mining_face.xml
@@ -11,7 +11,7 @@
+ tools:itemCount="6"
+ tools:listitem="@layout/list_item_add_mining_face" />
@@ -382,12 +383,61 @@
android:textSize="16sp" />
+
+
+
+
+
+
+
+
+
diff --git a/coalMiningApp/app/src/main/res/layout/activity_cache_manage.xml b/coalMiningApp/app/src/main/res/layout/activity_cache_manage.xml
index 8f5b8e7..64935a0 100644
--- a/coalMiningApp/app/src/main/res/layout/activity_cache_manage.xml
+++ b/coalMiningApp/app/src/main/res/layout/activity_cache_manage.xml
@@ -21,7 +21,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/toolbar_lay"
- android:background="@color/black"
+ android:background="@color/black_bg"
android:orientation="vertical">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/res/layout/activity_geological.xml b/coalMiningApp/app/src/main/res/layout/activity_geological.xml
index 0764d3c..e14e074 100644
--- a/coalMiningApp/app/src/main/res/layout/activity_geological.xml
+++ b/coalMiningApp/app/src/main/res/layout/activity_geological.xml
@@ -10,7 +10,7 @@
+ android:background="@color/black_bg">
diff --git a/coalMiningApp/app/src/main/res/layout/activity_mining_face_record.xml b/coalMiningApp/app/src/main/res/layout/activity_mining_face_record.xml
new file mode 100644
index 0000000..3807cc7
--- /dev/null
+++ b/coalMiningApp/app/src/main/res/layout/activity_mining_face_record.xml
@@ -0,0 +1,158 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/res/layout/activity_network_config.xml b/coalMiningApp/app/src/main/res/layout/activity_network_config.xml
index e829a8d..3e4bbab 100644
--- a/coalMiningApp/app/src/main/res/layout/activity_network_config.xml
+++ b/coalMiningApp/app/src/main/res/layout/activity_network_config.xml
@@ -21,7 +21,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/toolbar_lay"
- android:background="@color/black"
+ android:background="@color/black_bg"
android:orientation="vertical">
+ android:background="@color/black_bg">
+ tools:background="@color/black_bg">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/res/layout/list_item_mining_record_base_data.xml b/coalMiningApp/app/src/main/res/layout/list_item_mining_record_base_data.xml
new file mode 100644
index 0000000..a7e151d
--- /dev/null
+++ b/coalMiningApp/app/src/main/res/layout/list_item_mining_record_base_data.xml
@@ -0,0 +1,62 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/res/layout/list_item_mining_record_coal_thickness.xml b/coalMiningApp/app/src/main/res/layout/list_item_mining_record_coal_thickness.xml
new file mode 100644
index 0000000..e5c9b54
--- /dev/null
+++ b/coalMiningApp/app/src/main/res/layout/list_item_mining_record_coal_thickness.xml
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file