diff --git a/coalMiningApp/app/build.gradle b/coalMiningApp/app/build.gradle
index d6bb639..0e93e43 100644
--- a/coalMiningApp/app/build.gradle
+++ b/coalMiningApp/app/build.gradle
@@ -20,6 +20,12 @@ android {
// 选择实际需要的cpu架构
abiFilters 'armeabi-v7a', 'arm64-v8a'//,'armeabi'//, 'x86', 'x86_64'
}
+ // Kotlin项目配置
+ kapt {
+ arguments {
+ arg("room.schemaLocation", "$projectDir/schemas")
+ }
+ }
}
signingConfigs{
@@ -86,25 +92,16 @@ dependencies {
api rootProject.ext.commonLibs
- api project(':tuichat')
- api project(':tuicontact')
- api project(':tuiconversation')
- api project(':tuicallkit')
+// api project(':tuichat')
+// api project(':tuicontact')
+// api project(':tuiconversation')
+// api project(':tuicallkit')
// annotationProcessor 'com.google.auto.service:auto-service:1.1.1'
implementation 'com.contrarywind:Android-PickerView:4.1.9'
// ViewModel
-// implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.0"
+ implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.6.1"
+ implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1"
- // Retrofit
-// implementation "com.squareup.retrofit2:retrofit:2.9.0"
-// implementation "com.squareup.retrofit2:converter-gson:2.9.0"
-
- // OkHttp
-// implementation "com.squareup.okhttp3:okhttp:4.11.0"
-// implementation "com.squareup.okhttp3:logging-interceptor:4.11.0"
-
- // Coroutines
-// implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1"
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/AndroidManifest.xml b/coalMiningApp/app/src/main/AndroidManifest.xml
index 90a7096..4c35391 100644
--- a/coalMiningApp/app/src/main/AndroidManifest.xml
+++ b/coalMiningApp/app/src/main/AndroidManifest.xml
@@ -37,7 +37,8 @@
-
+
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/MainActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/MainActivity.kt
index e57666c..f0479b7 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/MainActivity.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/MainActivity.kt
@@ -3,7 +3,7 @@ package com.zmkg.coaloperation
import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
-import com.tencent.qcloud.tuikit.tuiconversation.classicui.page.TUIConversationFragmentContainer
+//import com.tencent.qcloud.tuikit.tuiconversation.classicui.page.TUIConversationFragmentContainer
import com.zmkg.coaloperation.base.BaseVMBActivity
import com.zmkg.coaloperation.base.viewmodel.TestViewModel
import com.zmkg.coaloperation.bottomtab.HomeBottomTabLayout
@@ -59,9 +59,9 @@ class MainActivity : BaseVMBActivity(R.layou
return ReportFragment()
}
- TAG_MESSAGE -> {
- return TUIConversationFragmentContainer()
- }
+// TAG_MESSAGE -> {
+// return TUIConversationFragmentContainer()
+// }
TAG_MY -> {
return UserFragment()
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/MyApplication.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/MyApplication.kt
index d991041..4575a92 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/MyApplication.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/MyApplication.kt
@@ -12,8 +12,8 @@ import androidx.lifecycle.ViewModelStoreOwner
import androidx.multidex.MultiDex
import com.orhanobut.logger.AndroidLogAdapter
import com.orhanobut.logger.Logger
-import com.tencent.qcloud.tuicore.TUILogin
-import com.tencent.qcloud.tuicore.interfaces.TUILoginListener
+//import com.tencent.qcloud.tuicore.TUILogin
+//import com.tencent.qcloud.tuicore.interfaces.TUILoginListener
import com.zmkg.coaloperation.local.DataStoreManager
import com.zmkg.coaloperation.retorfit.UrlConfig
import com.zmkg.coaloperation.superfuntion.loginIm
@@ -63,24 +63,24 @@ class MyApplication : Application(), ViewModelStoreOwner {
}
fun initLoginStatusListener() {
- TUILogin.addLoginListener(loginStatusListener)
+// TUILogin.addLoginListener(loginStatusListener)
}
- private val loginStatusListener: TUILoginListener = object : TUILoginListener() {
- override fun onKickedOffline() {
- if (UrlConfig.isOpenIm){
- startLoginActivity(CustomActivityManager.getInstance().currentActivity())
- }
- }
-
- override fun onUserSigExpired() {
- if (TextUtils.isEmpty(DataStoreManager.getUserName())) {
- startLoginActivity(appContext)
- } else {
- loginIm(DataStoreManager.getUserName()){ }
- }
- }
- }
+// private val loginStatusListener: TUILoginListener = object : TUILoginListener() {
+// override fun onKickedOffline() {
+// if (UrlConfig.isOpenIm){
+// startLoginActivity(CustomActivityManager.getInstance().currentActivity())
+// }
+// }
+//
+// override fun onUserSigExpired() {
+// if (TextUtils.isEmpty(DataStoreManager.getUserName())) {
+// startLoginActivity(appContext)
+// } else {
+// loginIm(DataStoreManager.getUserName()){ }
+// }
+// }
+// }
/** 获取一个全局的ViewModel */
@@ -201,9 +201,11 @@ class MyApplication : Application(), ViewModelStoreOwner {
// }
// }
+ override val viewModelStore: ViewModelStore
+ get() = mAppViewModelStore!!
- override fun getViewModelStore(): ViewModelStore {
- return mAppViewModelStore!!
- }
+// override fun getViewModelStore(): ViewModelStore {
+// return mAppViewModelStore!!
+// }
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelRoofLithologyAdapter.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelRoofLithologyAdapter.kt
new file mode 100644
index 0000000..e7f5b9e
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelRoofLithologyAdapter.kt
@@ -0,0 +1,54 @@
+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.databinding.ListItemRockBinding
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
+
+class TunnelRoofLithologyAdapter(var list: MutableList) :
+ BaseQuickAdapter(
+ R.layout.list_item_rock, list
+ ) {
+
+ inner class VH(var binding: ListItemRockBinding) : BaseViewHolder(binding.root)
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VH {
+ val binding = ListItemRockBinding.inflate(
+ LayoutInflater.from(context),
+ parent,
+ false
+ )
+ return VH(binding).also {
+ bindViewClickListener(it, viewType)
+ }
+ }
+
+ override fun convert(holder: VH, item: TunnelRoofLithologyEntity) {
+ holder.binding.let {
+ it.root.tag = item.lithologyId
+ it.tvRockStartLen.run {
+ addTextChangedListener(onTextChanged = { text, start, before, count ->
+ item.positionStart = text.toString().trim()
+ })
+ setText(item.positionStart)
+ }
+ it.tvRockEndLen.run {
+ addTextChangedListener(onTextChanged = { text, start, before, count ->
+ item.positionEnd = text.toString().trim()
+ })
+ setText(item.positionEnd)
+ }
+ it.tvRockType.run {
+ addTextChangedListener(onTextChanged = { text, start, before, count ->
+ item.lithologyType = text.toString().trim()
+ })
+ setText(item.lithologyType)
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelWorkingFaceAdapter.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelWorkingFaceAdapter.kt
new file mode 100644
index 0000000..24c0f83
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelWorkingFaceAdapter.kt
@@ -0,0 +1,92 @@
+package com.zmkg.coaloperation.adapter
+
+import android.annotation.SuppressLint
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.core.view.updateLayoutParams
+import androidx.recyclerview.widget.LinearLayoutManager
+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.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.utils.ScreenUtil
+
+class TunnelWorkingFaceAdapter(var list: MutableList) :
+ BaseQuickAdapter(
+ R.layout.list_item_tunnel_working_face, list
+ ) {
+
+
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VH {
+ val inflater = LayoutInflater.from(context)
+ val binding = ListItemTunnelWorkingFaceBinding.inflate(inflater, parent, false)
+ return VH(binding).also {
+ bindViewClickListener(it, viewType)
+ }
+ }
+
+ @SuppressLint("ClickableViewAccessibility")
+ override fun convert(
+ holder: VH,
+ item: TunnelWorkingFaceEntity
+ ) {
+ holder.binding.let { binding ->
+ binding.includeHeader.root.isEnabled = false
+ binding.tvWorkingFaceName.text = item.surfaceName
+ binding.llFaceRecord.visibility = if (item.isExpandRecord) View.VISIBLE else View.GONE
+ binding.ivExpandRecord.setImageResource(
+ if (item.isExpandRecord) R.drawable.ic_arrow_down_white else R.drawable.ic_arrow_right_gray
+ )
+ binding.ivExpandRecord.tag = item.isExpandRecord.toString()
+ binding.rvFaceRecord.let { rv ->
+ rv.layoutManager = LinearLayoutManager(context)
+ if (item.recordList == null) {
+ item.recordList = mutableListOf()
+ }
+ val size = item.recordList!!.size
+ rv.updateLayoutParams {
+ height = if (size >= 3)
+ ScreenUtil.dp2px(150F)
+ else
+ RecyclerView.LayoutParams.WRAP_CONTENT
+ }
+ rv.isVerticalScrollBarEnabled = size >= 3
+ rv.isVerticalFadingEdgeEnabled = size < 3
+ rv.overScrollMode = if (size >= 3) View.OVER_SCROLL_IF_CONTENT_SCROLLS else View.OVER_SCROLL_NEVER
+ rv.adapter = TunnelWorkingFaceRecordAdapter(item.recordList!!).apply {
+ setOnItemClickListener { adapter, view, recordPosition ->
+// if (recordPosition == 0) {
+// //0为头部表示,不需要点击操作
+// return@setOnItemClickListener
+// }
+ context.let { ctx ->
+ if (ctx is TunnelingActivity) {
+ ctx.toActivity(WorkingPointActivity::class.java, Bundle().apply {
+ putString(WorkingPointActivity.FACE_NAME, item.surfaceName)
+ putParcelable(
+ WorkingPointActivity.FACE_RECORD,
+ item.recordList!![recordPosition]
+ )
+ })
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ inner class VH(var binding: ListItemTunnelWorkingFaceBinding) : BaseViewHolder(binding.root)
+
+ init {
+ addChildClickViewIds(R.id.start_record, R.id.ivExpandRecord)
+ }
+
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelWorkingFaceRecordAdapter.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelWorkingFaceRecordAdapter.kt
new file mode 100644
index 0000000..cd751cb
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/TunnelWorkingFaceRecordAdapter.kt
@@ -0,0 +1,60 @@
+package com.zmkg.coaloperation.adapter
+
+import android.graphics.Color
+import android.view.LayoutInflater
+import android.view.View
+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.db.entiry.tunnel.TunnelWorkingFaceRecordEntity
+import androidx.core.graphics.toColorInt
+import com.zmkg.coaloperation.databinding.ListItemTunnelWorkingFaceRecordBinding
+
+class TunnelWorkingFaceRecordAdapter(var list: MutableList) :
+ BaseQuickAdapter(
+ R.layout.list_item_tunnel_working_face_record, list
+ ) {
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VH {
+ val inflater = LayoutInflater.from(context)
+ val binding = ListItemTunnelWorkingFaceRecordBinding.inflate(inflater, parent, false)
+ return VH(binding).also {
+ bindViewClickListener(it, viewType)
+ }
+ }
+
+ override fun convert(
+ holder: VH,
+ item: TunnelWorkingFaceRecordEntity
+ ) {
+ val position = holder.layoutPosition
+ holder.binding.let {
+// if (position == 0) {
+// it.time.setTextColor(Color.WHITE)
+// it.time.textSize = 14f
+// it.record.setTextColor(Color.WHITE)
+// it.record.textSize = 14f
+// it.operation.setTextColor(Color.WHITE)
+// it.operation.textSize = 14f
+// } else {
+ it.time.setTextColor("#FF6A6F87".toColorInt())
+ it.time.textSize = 12f
+ it.record.setTextColor("#FF6A6F87".toColorInt())
+ it.record.textSize = 12f
+ it.operation.setTextColor("#FFA3FEA6".toColorInt())
+ it.operation.textSize = 12f
+// }
+ it.time.text = item.workingDate
+ it.record.text = item.recordPerson
+ it.operation.text = if (item.operationType == "1") "查看" else "操作"
+ it.divider.visibility =
+ if (position == list.size - 1) View.GONE else View.VISIBLE
+ }
+
+ }
+
+ inner class VH(var binding: ListItemTunnelWorkingFaceRecordBinding) :
+ BaseViewHolder(binding.root)
+
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/WorkingItemAdapter.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/WorkingItemAdapter.kt
index 57aae89..364edf3 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/WorkingItemAdapter.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/adapter/WorkingItemAdapter.kt
@@ -27,7 +27,9 @@ class WorkingItemAdapter(data: MutableList) :
parent,
false
)
- return VH(binding)
+ return VH(binding).also {
+ bindViewClickListener(it, viewType)
+ }
}
override fun convert(
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/WorkingFaceItem.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/WorkingFaceItem.kt
index 40c6d46..df55b76 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/WorkingFaceItem.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/bean/WorkingFaceItem.kt
@@ -1,8 +1,8 @@
package com.zmkg.coaloperation.bean
data class WorkingFaceItem(
- var name: String = "",
- var value: String = "",
+ var name: String? = "",
+ var value: String? = "",
var items: MutableList? = null,
var pageType:Int = 0
)
@@ -12,3 +12,8 @@ data class RockItem(
var endLen: Int = 0,
val rockType: String = ""
)
+
+data class WorkTeam(
+ var teamId:String,
+ var teamName: String
+)
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/AppDatabase.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/AppDatabase.kt
new file mode 100644
index 0000000..2e414c2
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/AppDatabase.kt
@@ -0,0 +1,99 @@
+package com.zmkg.coaloperation.db
+
+import android.content.Context
+import androidx.room.Database
+import androidx.room.Room
+import androidx.room.RoomDatabase
+import androidx.room.migration.Migration
+import androidx.sqlite.db.SupportSQLiteDatabase
+import com.zmkg.coaloperation.db.dao.TunnelRoofLithologyDao
+import com.zmkg.coaloperation.db.dao.TunnelWorkingFaceDao
+import com.zmkg.coaloperation.db.dao.TunnelWorkingFaceRecordDao
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceRecordEntity
+
+@Database(
+ entities = [
+ TunnelWorkingFaceEntity::class,
+ TunnelWorkingFaceRecordEntity::class,
+ TunnelRoofLithologyEntity::class,
+ ],
+ version = 3,
+ exportSchema = true
+)
+abstract class AppDatabase : RoomDatabase() {
+ abstract fun tunnelWorkingFaceDao(): TunnelWorkingFaceDao
+ abstract fun tunnelWorkingFaceRecordDao(): TunnelWorkingFaceRecordDao
+ abstract fun tunnelRoofLithologyDao(): TunnelRoofLithologyDao
+
+ companion object {
+ @Volatile
+ private var INSTANCE: AppDatabase? = null
+
+ fun getDatabase(context: Context): AppDatabase {
+ return INSTANCE ?: synchronized(this) {
+ val instance = Room.databaseBuilder(
+ context.applicationContext,
+ AppDatabase::class.java,
+ "digitalCoalMiningPlatform.db"
+ )
+ .addCallback(object : Callback() {
+ override fun onCreate(db: SupportSQLiteDatabase) {
+ // 数据库首次创建时初始化数据
+ }
+ })
+// .addMigrations(MIGRATION_1_2)
+ .addMigrations(MIGRATION_2_3)
+ .build()
+ INSTANCE = instance
+ instance
+ }
+ }
+ }
+}
+
+val MIGRATION_1_2 = MigrationImpl(1, 2) { db ->
+ db.execSQL("""
+ CREATE TABLE IF NOT EXISTS `tunnel_roof_lithology` (
+ `lithologyId` INTEGER PRIMARY KEY NOT NULL,
+ `surfaceId` INTEGER NOT NULL,
+ `recordId` INTEGER NOT NULL,
+ `positionStart` INTEGER NOT NULL,
+ `positionEnd` INTEGER NOT NULL,
+ `lithologyType` TEXT NOT NULL,
+ `createTime` TEXT NOT NULL
+ )
+ """.trimIndent())
+}
+val MIGRATION_2_3 = MigrationImpl(2, 3) { db ->
+ db.execSQL("ALTER TABLE tunnel_roof_lithology RENAME TO tunnel_roof_lithology2")
+ db.execSQL("""
+ CREATE TABLE IF NOT EXISTS `tunnel_roof_lithology` (
+ `lithologyId` INTEGER PRIMARY KEY NOT NULL,
+ `surfaceId` INTEGER NOT NULL,
+ `recordId` INTEGER NOT NULL,
+ `positionStart` TEXT NOT NULL,
+ `positionEnd` TEXT NOT NULL,
+ `lithologyType` TEXT NOT NULL,
+ `createTime` TEXT NOT NULL
+ )
+ """.trimIndent())
+ db.execSQL("""
+ INSERT INTO tunnel_roof_lithology
+ SELECT lithologyId,surfaceId,recordId,CAST(positionStart AS TEXT),CAST(positionEnd AS TEXT),lithologyType,createTime
+ FROM tunnel_roof_lithology2
+ """.trimIndent())
+ db.execSQL("DROP TABLE tunnel_roof_lithology2");
+}
+
+class MigrationImpl(
+ startVersion: Int,
+ endVersion: Int,
+ private val block: (db: SupportSQLiteDatabase) -> Unit
+) : Migration(startVersion, endVersion) {
+ override fun migrate(database: SupportSQLiteDatabase) {
+ block(database)
+ }
+
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelRoofLithologyDao.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelRoofLithologyDao.kt
new file mode 100644
index 0000000..14cb94e
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelRoofLithologyDao.kt
@@ -0,0 +1,28 @@
+package com.zmkg.coaloperation.db.dao
+
+import androidx.room.Dao
+import androidx.room.Insert
+import androidx.room.Query
+import androidx.room.Update
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
+
+@Dao
+interface TunnelRoofLithologyDao {
+ @Insert
+ fun insert(entity: TunnelRoofLithologyEntity): Long
+
+ @Update
+ fun update(entity: TunnelRoofLithologyEntity)
+
+ @Query("SELECT * FROM tunnel_roof_lithology ORDER BY createTime ASC")
+ fun getEntityList(): MutableList?
+
+ @Query("SELECT * FROM tunnel_roof_lithology WHERE surfaceId = :surfaceId ORDER BY createTime ASC")
+ fun getEntityListByFaceId(surfaceId: Long): MutableList?
+
+ @Query("SELECT * FROM tunnel_roof_lithology WHERE surfaceId = :surfaceId AND recordId = :recordId ORDER BY createTime ASC")
+ fun getEntityListByRecordId(surfaceId: Long, recordId: Long): MutableList?
+
+ @Query("SELECT * FROM tunnel_roof_lithology WHERE lithologyId = :lithologyId")
+ fun getEntityById(lithologyId: Long): TunnelRoofLithologyEntity?
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceDao.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceDao.kt
new file mode 100644
index 0000000..cf432b9
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceDao.kt
@@ -0,0 +1,24 @@
+package com.zmkg.coaloperation.db.dao
+
+import androidx.room.Dao
+import androidx.room.Insert
+import androidx.room.Query
+import androidx.room.Update
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
+
+//import kotlinx.coroutines.flow.Flow
+
+@Dao
+interface TunnelWorkingFaceDao {
+ @Insert
+ fun insert(entity: TunnelWorkingFaceEntity): Long
+
+ @Update
+ fun update(entity: TunnelWorkingFaceEntity)
+
+ @Query("SELECT * FROM tunnel_working_face ORDER BY createTime ASC")
+ fun getEntityList(): MutableList?
+
+ @Query("SELECT * FROM tunnel_working_face WHERE surfaceId = :surfaceId")
+ fun getEntityById(surfaceId: Long): TunnelWorkingFaceEntity?
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceRecordDao.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceRecordDao.kt
new file mode 100644
index 0000000..be61935
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/dao/TunnelWorkingFaceRecordDao.kt
@@ -0,0 +1,24 @@
+package com.zmkg.coaloperation.db.dao
+
+import androidx.room.Dao
+import androidx.room.Insert
+import androidx.room.Query
+import androidx.room.Update
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceRecordEntity
+
+//import kotlinx.coroutines.flow.Flow
+
+@Dao
+interface TunnelWorkingFaceRecordDao {
+ @Insert
+ fun insert(entity: TunnelWorkingFaceRecordEntity): Long
+
+ @Update
+ fun update(entity: TunnelWorkingFaceRecordEntity)
+
+ @Query("SELECT * FROM tunnel_working_face_record WHERE surfaceId = :surfaceId ORDER BY createTime ASC")
+ fun getEntityList(surfaceId: Long): MutableList?
+
+ @Query("SELECT * FROM tunnel_working_face_record WHERE surfaceId = :recordId")
+ fun getEntityById(recordId: Long): TunnelWorkingFaceRecordEntity
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entiry/OtherEntity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entiry/OtherEntity.kt
new file mode 100644
index 0000000..e69f966
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entiry/OtherEntity.kt
@@ -0,0 +1,4 @@
+package com.zmkg.coaloperation.db.entiry
+
+class OtherEntity {
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entiry/tunnel/TunnelRoofLithologyEntity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entiry/tunnel/TunnelRoofLithologyEntity.kt
new file mode 100644
index 0000000..b557f01
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entiry/tunnel/TunnelRoofLithologyEntity.kt
@@ -0,0 +1,53 @@
+package com.zmkg.coaloperation.db.entiry.tunnel
+
+import android.os.Parcelable
+import androidx.room.Entity
+import androidx.room.PrimaryKey
+import com.zmkg.coaloperation.utils.DateTimeUtil
+import kotlinx.parcelize.Parcelize
+import java.time.LocalDateTime
+
+/**
+ * 掘进工作面-顶板岩性数据表
+ */
+@Parcelize
+@Entity(tableName = "tunnel_roof_lithology")
+class TunnelRoofLithologyEntity : Parcelable {
+
+ /**
+ * 岩性Id
+ */
+ @PrimaryKey
+ var lithologyId: Long = 0
+
+ /**
+ * 岩性类型名称
+ */
+ var lithologyType: String = ""
+
+ /**
+ * 岩性值结束
+ */
+ var positionEnd: String = ""
+
+ /**
+ * 岩性值起始
+ */
+ var positionStart: String = ""
+
+ /**
+ * 工作面id
+ */
+ var surfaceId: Long = 0
+
+ /**
+ * 记录id
+ */
+ var recordId: Long = 0
+
+ /**
+ * 创建时间
+ */
+ var createTime: String = DateTimeUtil.formatDateTime(LocalDateTime.now())
+
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entiry/tunnel/TunnelWorkingFaceEntity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entiry/tunnel/TunnelWorkingFaceEntity.kt
new file mode 100644
index 0000000..203b2d1
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entiry/tunnel/TunnelWorkingFaceEntity.kt
@@ -0,0 +1,133 @@
+package com.zmkg.coaloperation.db.entiry.tunnel
+
+//import androidx.room.ColumnInfo
+import android.os.Parcelable
+import androidx.room.Entity
+import androidx.room.Ignore
+import androidx.room.PrimaryKey
+import com.zmkg.coaloperation.utils.DateTimeUtil
+import kotlinx.parcelize.Parcelize
+import java.time.LocalDateTime
+
+/**
+ * 掘进工作面表对应字段
+ */
+@Parcelize
+@Entity(tableName = "tunnel_working_face")
+data class TunnelWorkingFaceEntity(
+ // @PrimaryKey(name = "faceId") val id: Int = 0
+ /**
+ * 工作面id,本地新增数据使用时间戳保证唯一性
+ */
+ @PrimaryKey
+ var surfaceId: Long = 0,
+
+ /**
+ * 工作面名称
+ */
+ var surfaceName: String? = "",
+
+ /**
+ * 总进尺
+ */
+ var totalFootage: String? = "",
+ /**
+ * 累计进尺
+ */
+ var accumulativeFootage: String? = "",
+ /**
+ * 剩余进尺
+ */
+ var remainingFootage: String? = "",
+
+ /**
+ * 所属煤层编号
+ */
+ var seamId: Int? = 0,
+
+ /**
+ * 所属煤层名称
+ */
+ var seamName: String? = "",
+
+ /**
+ * 所属采区域编号
+ */
+ var areaId: Int? = 0,
+
+ /**
+ * 所属采区域
+ */
+ var areaName: String? = "",
+
+ /**
+ * 工作面方位角
+ */
+ var surfaceAzimuth: String? = "",
+
+ /**
+ * 工作面巷高
+ */
+ var surfaceHeight: String? = "",
+
+ /**
+ * 工作面巷宽
+ */
+ var surfaceWidth: String? = "",
+
+ /**
+ * 巷道性质
+ */
+ var tunnelNature: String? = "",
+
+ /**
+ * 计划工期开始日期
+ */
+ var planStartDate: String? = "",
+
+ /**
+ * 计划工期结束日期
+ */
+ var planEndDate: String? = "",
+
+ /**
+ * 地质类型
+ */
+ var geologicalType: String? = "",
+
+ /**
+ * 水文地质类型
+ */
+ var hydrogeologicalType: String? = "",
+
+ /**
+ * 煤层发火性
+ */
+ var seamIgnition: String? = "",
+
+ /**
+ * 瓦斯含量
+ */
+ var seamGas: String? = "",
+
+ /**
+ * 冲击地压危险性
+ */
+ var seamBumpPressure: String? = "",
+
+ /**
+ * 支护形式
+ */
+ var surfaceSupportForm: String? = "",
+
+ var createTime: String = DateTimeUtil.formatDateTime(LocalDateTime.now()),
+
+ @Ignore
+ var recordList: MutableList? = null,
+
+ @Ignore
+ var isExpandRecord: Boolean = false
+) : Parcelable {
+// @Ignore
+// constructor() : this(surfaceId = 0, recordList = null, isExpandRecord = false)
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entiry/tunnel/TunnelWorkingFaceRecordEntity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entiry/tunnel/TunnelWorkingFaceRecordEntity.kt
new file mode 100644
index 0000000..1545dc1
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/entiry/tunnel/TunnelWorkingFaceRecordEntity.kt
@@ -0,0 +1,69 @@
+package com.zmkg.coaloperation.db.entiry.tunnel
+
+import android.os.Parcelable
+import androidx.room.Entity
+import androidx.room.Ignore
+import androidx.room.PrimaryKey
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
+import com.zmkg.coaloperation.utils.DateTimeUtil
+import kotlinx.parcelize.Parcelize
+import java.time.LocalDateTime
+
+@Parcelize
+@Entity(tableName = "tunnel_working_face_record")
+data class TunnelWorkingFaceRecordEntity(
+
+ /**
+ * 记录id
+ */
+ @PrimaryKey
+ var recordId: Long = 0,
+ /**
+ * 工作面id
+ */
+ var surfaceId: Long = 0,
+ /**
+ * 施工日期
+ */
+ var workingDate: String? = null,
+ /**
+ * 记录人
+ */
+ var recordPerson: String? = null,
+ /**
+ * 施工班次
+ */
+ var teamShift: String? = null,
+ /**
+ * 施工队伍id
+ */
+ var teamId: String? = null,
+ /**
+ * 施工队伍名称
+ */
+ var teamName: String? = null,
+ /**
+ * 带队班长
+ */
+ var teamLeader: String? = null,
+ /**
+ * 本班进尺
+ */
+ var workingFootage: String? = null,
+ /**
+ * 煤层倾角
+ */
+ var seamDip: String? = null,
+ /**
+ * 煤层高度
+ */
+ var seamHeight: String? = null,
+
+ var createTime: String = DateTimeUtil.formatDateTime(LocalDateTime.now()),
+
+ @Ignore
+ var operationType: String = "1"
+) : Parcelable {
+// @Ignore
+// constructor() : this(recordId = 0)
+}
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/repository/TunnelRoofLithologyRepository.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/repository/TunnelRoofLithologyRepository.kt
new file mode 100644
index 0000000..f2121fe
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/repository/TunnelRoofLithologyRepository.kt
@@ -0,0 +1,32 @@
+package com.zmkg.coaloperation.db.repository
+
+import com.zmkg.coaloperation.db.dao.TunnelRoofLithologyDao
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.withContext
+
+class TunnelRoofLithologyRepository(private val dao: TunnelRoofLithologyDao) {
+ suspend fun getEntityList() = withContext(Dispatchers.IO) {
+ dao.getEntityList()
+ }
+
+ suspend fun insert(entity: TunnelRoofLithologyEntity) = withContext(Dispatchers.IO) {
+ dao.insert(entity)
+ }
+
+ suspend fun update(entity: TunnelRoofLithologyEntity) = withContext(Dispatchers.IO) {
+ dao.update(entity)
+ }
+
+ suspend fun getEntityListByFaceId(surfaceId: Long) = withContext(Dispatchers.IO) {
+ dao.getEntityListByFaceId(surfaceId)
+ }
+
+ suspend fun getEntityListByRecordId(surfaceId: Long, recordId: Long) = withContext(Dispatchers.IO) {
+ dao.getEntityListByRecordId(surfaceId, recordId)
+ }
+
+ suspend fun getEntityById(lithologyId: Long) = withContext(Dispatchers.IO) {
+ dao.getEntityById(lithologyId)
+ }
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/repository/TunnelWorkingFaceRecordRepository.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/repository/TunnelWorkingFaceRecordRepository.kt
new file mode 100644
index 0000000..845bc79
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/repository/TunnelWorkingFaceRecordRepository.kt
@@ -0,0 +1,24 @@
+package com.zmkg.coaloperation.db.repository
+
+import com.zmkg.coaloperation.db.dao.TunnelWorkingFaceRecordDao
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceRecordEntity
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.withContext
+
+class TunnelWorkingFaceRecordRepository(private val dao: TunnelWorkingFaceRecordDao) {
+ suspend fun getEntityList(surfaceId: Long) = withContext(Dispatchers.IO) {
+ dao.getEntityList(surfaceId)
+ }
+
+ suspend fun insert(entity: TunnelWorkingFaceRecordEntity) = withContext(Dispatchers.IO) {
+ dao.insert(entity)
+ }
+
+ suspend fun update(entity: TunnelWorkingFaceRecordEntity) = withContext(Dispatchers.IO) {
+ dao.update(entity)
+ }
+
+ suspend fun getEntityById(faceId: Long) = withContext(Dispatchers.IO) {
+ dao.getEntityById(faceId)
+ }
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/repository/TunnelWorkingFaceRepository.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/repository/TunnelWorkingFaceRepository.kt
new file mode 100644
index 0000000..5c80803
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/repository/TunnelWorkingFaceRepository.kt
@@ -0,0 +1,24 @@
+package com.zmkg.coaloperation.db.repository
+
+import com.zmkg.coaloperation.db.dao.TunnelWorkingFaceDao
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.withContext
+
+class TunnelWorkingFaceRepository(private val dao: TunnelWorkingFaceDao) {
+ suspend fun getEntityList() = withContext(Dispatchers.IO) {
+ dao.getEntityList()
+ }
+
+ suspend fun insert(entity: TunnelWorkingFaceEntity) = withContext(Dispatchers.IO) {
+ dao.insert(entity)
+ }
+
+ suspend fun update(entity: TunnelWorkingFaceEntity) = withContext(Dispatchers.IO) {
+ dao.update(entity)
+ }
+
+ suspend fun getEntityById(faceId: Long) = withContext(Dispatchers.IO) {
+ dao.getEntityById(faceId)
+ }
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/viewmodel/TunnelRoofLithologyViewModel.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/viewmodel/TunnelRoofLithologyViewModel.kt
new file mode 100644
index 0000000..2f9d290
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/viewmodel/TunnelRoofLithologyViewModel.kt
@@ -0,0 +1,61 @@
+package com.zmkg.coaloperation.db.viewmodel
+
+import android.app.Application
+import androidx.lifecycle.AndroidViewModel
+import androidx.lifecycle.viewModelScope
+import com.zmkg.coaloperation.db.AppDatabase
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
+import com.zmkg.coaloperation.db.repository.TunnelRoofLithologyRepository
+import kotlinx.coroutines.launch
+
+class TunnelRoofLithologyViewModel(application: Application) : AndroidViewModel(application) {
+ private val repository: TunnelRoofLithologyRepository
+
+ init {
+ val dao = AppDatabase.getDatabase(application).tunnelRoofLithologyDao()
+ repository = TunnelRoofLithologyRepository(dao)
+ }
+
+ fun getEntityList(action: (MutableList?) -> Unit) =
+ viewModelScope.launch {
+ val list: MutableList? = repository.getEntityList()
+ action(list)
+ }
+
+ fun getEntityList2(
+ surfaceId: Long,
+ action: (MutableList?) -> Unit
+ ) = viewModelScope.launch {
+ val list: MutableList? =
+ repository.getEntityListByFaceId(surfaceId)
+ action(list)
+ }
+
+ fun getEntityList3(
+ surfaceId: Long,
+ recordId: Long,
+ action: (MutableList?) -> Unit
+ ) = viewModelScope.launch {
+ val list: MutableList? =
+ repository.getEntityListByRecordId(surfaceId, recordId)
+ action(list)
+ }
+
+ fun insert(entity: TunnelRoofLithologyEntity, action: () -> Unit) = viewModelScope.launch {
+ repository.insert(entity)
+ action()
+ }
+
+ fun update(entity: TunnelRoofLithologyEntity, action: () -> Unit) = viewModelScope.launch {
+ repository.update(entity)
+ action()
+ }
+
+ fun getEntityById(faceId: Long, action: (TunnelRoofLithologyEntity) -> Unit) =
+ viewModelScope.launch {
+ val entity = repository.getEntityById(faceId)
+ entity?.let { action(it) }
+ }
+
+
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/viewmodel/TunnelWorkingFaceRecordViewModel.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/viewmodel/TunnelWorkingFaceRecordViewModel.kt
new file mode 100644
index 0000000..e61142a
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/viewmodel/TunnelWorkingFaceRecordViewModel.kt
@@ -0,0 +1,40 @@
+package com.zmkg.coaloperation.db.viewmodel
+
+import android.app.Application
+import androidx.lifecycle.AndroidViewModel
+import androidx.lifecycle.viewModelScope
+import com.zmkg.coaloperation.db.AppDatabase
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceRecordEntity
+import com.zmkg.coaloperation.db.repository.TunnelWorkingFaceRecordRepository
+import kotlinx.coroutines.launch
+
+class TunnelWorkingFaceRecordViewModel(application: Application) : AndroidViewModel(application) {
+ private val repository: TunnelWorkingFaceRecordRepository
+
+ init {
+ val dao = AppDatabase.getDatabase(application).tunnelWorkingFaceRecordDao()
+ repository = TunnelWorkingFaceRecordRepository(dao)
+ }
+
+ fun getEntityList(surfaceId: Long, action: (MutableList?) -> Unit) =
+ viewModelScope.launch {
+ val list: MutableList? = repository.getEntityList(surfaceId)
+ action(list)
+ }
+
+ fun insert(entity: TunnelWorkingFaceRecordEntity, action: () -> Unit) = viewModelScope.launch {
+ repository.insert(entity)
+ action()
+ }
+
+ fun update(entity: TunnelWorkingFaceRecordEntity, action: () -> Unit) = viewModelScope.launch {
+ repository.update(entity)
+ action()
+ }
+
+ fun getEntityById(recordId: Long) = viewModelScope.launch {
+ repository.getEntityById(recordId)
+ }
+
+
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/viewmodel/TunnelWorkingFaceViewModel.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/viewmodel/TunnelWorkingFaceViewModel.kt
new file mode 100644
index 0000000..407a5a3
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/db/viewmodel/TunnelWorkingFaceViewModel.kt
@@ -0,0 +1,41 @@
+package com.zmkg.coaloperation.db.viewmodel
+
+import android.app.Application
+import androidx.lifecycle.AndroidViewModel
+import androidx.lifecycle.viewModelScope
+import com.zmkg.coaloperation.db.AppDatabase
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
+import com.zmkg.coaloperation.db.repository.TunnelWorkingFaceRepository
+import kotlinx.coroutines.launch
+
+class TunnelWorkingFaceViewModel(application: Application) : AndroidViewModel(application) {
+ private val repository: TunnelWorkingFaceRepository
+
+ init {
+ val dao = AppDatabase.getDatabase(application).tunnelWorkingFaceDao()
+ repository = TunnelWorkingFaceRepository(dao)
+ }
+
+ fun getEntityList(action: (MutableList?) -> Unit) =
+ viewModelScope.launch {
+ val list: MutableList? = repository.getEntityList()
+ action(list)
+ }
+
+ fun insert(entity: TunnelWorkingFaceEntity, action: () -> Unit) = viewModelScope.launch {
+ repository.insert(entity)
+ action()
+ }
+
+ fun update(entity: TunnelWorkingFaceEntity, action:()-> Unit) = viewModelScope.launch {
+ repository.update(entity)
+ action()
+ }
+
+ fun getEntityById(faceId: Long, action:(TunnelWorkingFaceEntity)-> Unit) = viewModelScope.launch {
+ val entity = repository.getEntityById(faceId)
+ entity?.let { action(it) }
+ }
+
+
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/superfuntion/BaseActivityFuntion.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/superfuntion/BaseActivityFuntion.kt
index 0e62c8e..f6f968a 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/superfuntion/BaseActivityFuntion.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/superfuntion/BaseActivityFuntion.kt
@@ -2,10 +2,10 @@ package com.zmkg.coaloperation.superfuntion
import android.content.Context
import android.util.Log
-import com.tencent.imsdk.BaseConstants
-import com.tencent.qcloud.tuicore.TUILogin
-import com.tencent.qcloud.tuicore.interfaces.TUICallback
-import com.tencent.qcloud.tuicore.interfaces.TUILoginConfig
+//import com.tencent.imsdk.BaseConstants
+//import com.tencent.qcloud.tuicore.TUILogin
+//import com.tencent.qcloud.tuicore.interfaces.TUICallback
+//import com.tencent.qcloud.tuicore.interfaces.TUILoginConfig
import com.zmkg.coaloperation.MyApplication
import com.zmkg.coaloperation.im.signature.GenerateTestUserSig
import com.zmkg.coaloperation.local.DataStoreManager
@@ -25,54 +25,54 @@ fun Context.loginIm(userId: String,successCall: () -> Unit = {}) {
// successCall.invoke()
return
}
- if (TUILogin.isUserLogined() && userId == TUILogin.getUserId()) {
-// successCall.invoke()
- return
- }
+// if (TUILogin.isUserLogined() && userId == TUILogin.getUserId()) {
+//// successCall.invoke()
+// return
+// }
- TUILogin.login(
- this,
- GenerateTestUserSig.SDKAPPID,
- userId,
- userSig,
- TUILoginConfig(),
- object : TUICallback() {
- override fun onError(code: Int, desc: String) {
-// successCall.invoke()
- when (code) {
- BaseConstants.ERR_SVR_ACCOUNT_USERSIG_EXPIRED,
- BaseConstants.ERR_USER_SIG_EXPIRED -> {//UserSig过期
-// CustomToast.makeText(this@loginIm,"im登录失败", Toast.LENGTH_SHORT).show()
- }
- }
- Log.i(MyApplication.TAG, "imLogin errorCode = $code, errorInfo = $desc")
- }
-
- override fun onSuccess() {
-// successCall.invoke()
- Log.i(MyApplication.TAG, "imLogin onSuccess ")
- }
- })
+// TUILogin.login(
+// this,
+// GenerateTestUserSig.SDKAPPID,
+// userId,
+// userSig,
+// TUILoginConfig(),
+// object : TUICallback() {
+// override fun onError(code: Int, desc: String) {
+//// successCall.invoke()
+// when (code) {
+// BaseConstants.ERR_SVR_ACCOUNT_USERSIG_EXPIRED,
+// BaseConstants.ERR_USER_SIG_EXPIRED -> {//UserSig过期
+//// CustomToast.makeText(this@loginIm,"im登录失败", Toast.LENGTH_SHORT).show()
+// }
+// }
+// Log.i(MyApplication.TAG, "imLogin errorCode = $code, errorInfo = $desc")
+// }
+//
+// override fun onSuccess() {
+//// successCall.invoke()
+// Log.i(MyApplication.TAG, "imLogin onSuccess ")
+// }
+// })
}
fun logout(successCall: () -> Unit = {}){
- if (!TUILogin.isUserLogined()){
- return
- }
- CoroutineScope(Dispatchers.Main).launch{
- DataStoreManager.setUserName("")
- }
- TUILogin.logout(object : TUICallback(){
- override fun onSuccess() {
- successCall.invoke()
- }
-
- override fun onError(errorCode: Int, errorMessage: String?) {
- Log.i("","IM logout errorCode = $errorCode, errorInfo = $errorMessage")
- }
- })
+// if (!TUILogin.isUserLogined()){
+// return
+// }
+// CoroutineScope(Dispatchers.Main).launch{
+// DataStoreManager.setUserName("")
+// }
+// TUILogin.logout(object : TUICallback(){
+// override fun onSuccess() {
+// successCall.invoke()
+// }
+//
+// override fun onError(errorCode: Int, errorMessage: String?) {
+// Log.i("","IM logout errorCode = $errorCode, errorInfo = $errorMessage")
+// }
+// })
}
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/AddWorkingPointActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/AddWorkingPointActivity.kt
index ef39e9d..747ba58 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/AddWorkingPointActivity.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/AddWorkingPointActivity.kt
@@ -1,16 +1,28 @@
package com.zmkg.coaloperation.ui.tunneling.activity
+//import com.tencent.qcloud.tuikit.timcommon.util.SoftKeyBoardUtil
import android.os.Bundle
-import android.view.LayoutInflater
+import android.util.Log
import android.view.View
-import com.tencent.qcloud.tuikit.timcommon.util.SoftKeyBoardUtil
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
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.bean.WorkTeam
import com.zmkg.coaloperation.databinding.ActivityAddWorkingPointBinding
-import com.zmkg.coaloperation.databinding.ListItemRockBinding
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelRoofLithologyEntity
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceRecordEntity
+import com.zmkg.coaloperation.db.viewmodel.TunnelRoofLithologyViewModel
+import com.zmkg.coaloperation.db.viewmodel.TunnelWorkingFaceRecordViewModel
+import com.zmkg.coaloperation.superfuntion.toJson
+import com.zmkg.coaloperation.utils.KeyboardUtil
import com.zmkg.coaloperation.utils.PickerUtil
import com.zmkg.coaloperation.utils.clickWithDebounce
+import org.greenrobot.eventbus.EventBus
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
/**
* 开始记录
@@ -19,66 +31,124 @@ class AddWorkingPointActivity :
BaseVMBActivity(R.layout.activity_add_working_point) {
companion object {
+ const val TAG = "AddWorkingPointActivity"
const val SHOW_TYPE = "showType"
const val FACE_NAME = "faceName"
+ const val FACE_ID = "faceId"
+ const val FACE_RECORD = "faceRecord"
}
private var showType = 0
+ private var surfaceId: Long = 0
+
+ private var faceName: String? = null
+ private var faceRecord: TunnelWorkingFaceRecordEntity? = null
+
+ private val workingFaceRecordViewModel: TunnelWorkingFaceRecordViewModel by lazy {
+ ViewModelProvider(this)[TunnelWorkingFaceRecordViewModel::class.java]
+ }
+
+ private val roofLithologyViewModel: TunnelRoofLithologyViewModel by lazy {
+ ViewModelProvider(this)[TunnelRoofLithologyViewModel::class.java]
+ }
+
+ private val roofLithologyList: MutableList = mutableListOf()
+
+ private val roofLithologyAdapter: TunnelRoofLithologyAdapter by lazy {
+ TunnelRoofLithologyAdapter(roofLithologyList)
+ }
+
override fun initView(savedInstanceState: Bundle?) {
mBinding.toolbarLay.vLine.visibility = View.GONE
showType = intent.extras?.getInt(SHOW_TYPE) ?: 0
- mBinding.toolbarLay.rightText =
- if (showType == 0) "开始记录" else "修改记录"
+ mBinding.toolbarLay.title= if (showType == 0) "开始记录" else "修改记录"
+ mBinding.btnSave.text = if (showType == 0) "保存" else "修改"
+// mBinding.toolbarLay.rightText = ""
- mBinding.root.setOnClickListener {
+ mBinding.root.setOnClickListener { v ->
window?.let {
- SoftKeyBoardUtil.hideKeyBoard(window)
+// SoftKeyBoardUtil.hideKeyBoard(window)
+ KeyboardUtil.hideKeyboard(v)
}
}
- mBinding.tvWorkDate.clickWithDebounce {
- PickerUtil.showTimePicker(this) {date->
- mBinding.tvWorkDate.text = date
+ mBinding.tvWorkingDate.let {
+ it.setOnClickListener { v ->
+ PickerUtil.showTimePicker(this, it.text.toString().trim()) { date ->
+ it.text = date
+ }
}
}
- mBinding.tvFaceName.text = intent.getStringExtra(FACE_NAME)
- mBinding.toolbarLay.title = intent.getStringExtra(FACE_NAME)
+ faceName = intent.getStringExtra(FACE_NAME)
+ if (showType == 0) {
+ surfaceId = intent.getLongExtra(FACE_ID, 0L)
+ } else if (showType == 1) {
+ faceRecord = intent.getParcelableExtra(FACE_RECORD)
+ if (faceRecord == null) {
+ showToast("未查询到当前记录")
+ return
+ }
+ surfaceId = faceRecord!!.surfaceId
+ loadFaceRecord()
+ }
+ mBinding.tvFaceName.text = faceName
- val teamList = mutableListOf()
- teamList.add("A地区第1施工队")
- teamList.add("A地区第2施工队")
- teamList.add("B地区第1施工队")
- teamList.add("B地区第2施工队")
- teamList.add("C地区第1施工队")
- teamList.add("C地区第2施工队")
- teamList.add("D地区第1施工队")
- teamList.add("D地区第2施工队")
- mBinding.tvWorkTeam.clickWithDebounce {
- PickerUtil.showOptionsPicker(this, teamList) {team->
- mBinding.tvWorkTeam.text = team
+ val teamList = mutableListOf()
+ teamList.add(WorkTeam(teamId = "1", teamName = "A地区第1施工队"))
+ teamList.add(WorkTeam(teamId = "2", teamName = "A地区第2施工队"))
+ teamList.add(WorkTeam(teamId = "3", teamName = "B地区第1施工队"))
+ teamList.add(WorkTeam(teamId = "4", teamName = "B地区第2施工队"))
+ teamList.add(WorkTeam(teamId = "5", teamName = "C地区第1施工队"))
+ teamList.add(WorkTeam(teamId = "6", teamName = "C地区第2施工队"))
+ teamList.add(WorkTeam(teamId = "7", teamName = "D地区第1施工队"))
+ teamList.add(WorkTeam(teamId = "8", teamName = "D地区第2施工队"))
+ mBinding.tvWorkTeam.setOnClickListener { v ->
+ PickerUtil.showTeamsPicker(this, teamList) { team ->
+ mBinding.tvWorkTeam.text = team.teamName
+ mBinding.tvWorkTeam.tag = team.teamId
}
}
val workTypeList = mutableListOf()
workTypeList.add("早班")
workTypeList.add("中班")
workTypeList.add("晚班")
- mBinding.tvWorkType.clickWithDebounce {
- PickerUtil.showOptionsPicker(this, workTypeList) {team->
- mBinding.tvWorkType.text = team
+ mBinding.tvTeamShift.setOnClickListener { v ->
+ PickerUtil.showOptionsPicker(this, "请选择施工班次", workTypeList) { team ->
+ mBinding.tvTeamShift.text = team
}
}
mBinding.btnAddPoint.clickWithDebounce {
addRockPoint()
}
+
+ mBinding.btnSave.clickWithDebounce {
+ if (showType == 0) {
+ saveFaceRecord()
+ return@clickWithDebounce
+ }
+ updateFaceRecord()
+ }
+ mBinding.btnExport.clickWithDebounce {
+ showToast("开发中……")
+ }
+
+ mBinding.rvLithology.let {
+ it.layoutManager = LinearLayoutManager(this)
+ it.adapter = roofLithologyAdapter
+ }
+
addRockPoint()
}
private fun addRockPoint() {
- val itemBinding = ListItemRockBinding.inflate(
- LayoutInflater.from(this),
- mBinding.llRockPoint,
- false
- )
- mBinding.llRockPoint.addView(itemBinding.root)
+ roofLithologyList.add(TunnelRoofLithologyEntity().also {
+ it.lithologyId = System.currentTimeMillis()
+ it.surfaceId = surfaceId
+ it.recordId = if (showType == 1) faceRecord!!.recordId else System.currentTimeMillis()
+ })
+// roofLithologyAdapter.notifyDataSetChanged()
+ val pos = roofLithologyList.size
+ roofLithologyAdapter.notifyItemInserted(pos)
+ roofLithologyAdapter.notifyItemRangeChanged(pos, pos + 1)
}
override fun initData() {
@@ -90,4 +160,111 @@ class AddWorkingPointActivity :
override fun processClick(v: View?) {
}
+ private fun saveFaceRecord() {
+ if (mBinding.tvWorkingDate.text.isBlank()) {
+ showToast("请选择施工日期")
+ return
+ }
+ if (mBinding.tvTeamShift.text.isBlank()) {
+ showToast("请选择施工班次")
+ return
+ }
+ if (mBinding.tvWorkTeam.text.isBlank()) {
+ showToast("请选择施工队伍")
+ return
+ }
+ if (mBinding.etTeamLeader.text.isBlank()) {
+ showToast("请输入带班队长")
+ return
+ }
+ if (mBinding.etWorkingFootage.text.isBlank()) {
+ showToast("请输入本班进尺")
+ return
+ }
+ if (mBinding.etSeamDip.text.isBlank()) {
+ showToast("请输入煤层倾角")
+ return
+ }
+ if (mBinding.etSeamHeight.text.isBlank()) {
+ showToast("请输入煤层高")
+ return
+ }
+ if (mBinding.etRecordPerson.text.isBlank()) {
+ showToast("请输入填写人")
+ return
+ }
+ val emptyDataList = roofLithologyList.filter {
+ it.positionStart.isBlank() || it.positionEnd.isBlank() || it.lithologyType.isBlank()
+ }
+ if (emptyDataList.isNotEmpty()) {
+ showToast("顶板岩性中存在部分编录点数据为空")
+ return
+ }
+
+ val faceRecord = TunnelWorkingFaceRecordEntity().also {
+ it.recordId = System.currentTimeMillis()
+ it.surfaceId = surfaceId
+ it.workingDate = mBinding.tvWorkingDate.text.toString()
+ it.teamShift = mBinding.tvTeamShift.text.toString()
+ it.teamName = mBinding.tvWorkTeam.text.toString()
+ it.teamId = mBinding.tvWorkTeam.tag.toString()
+
+ it.teamLeader = mBinding.etTeamLeader.text.toString().trim()
+ it.workingFootage = mBinding.etWorkingFootage.text.toString().trim()
+ it.seamDip = mBinding.etSeamDip.text.toString().trim()
+ it.seamHeight = mBinding.etSeamHeight.text.toString().trim()
+ it.recordPerson = mBinding.etRecordPerson.text.toString().trim()
+ }
+
+ Log.d(TAG, "saveFaceRecord: ${roofLithologyList.toJson()}")
+
+ workingFaceRecordViewModel.insert(faceRecord) {
+ roofLithologyList.forEach {
+ roofLithologyViewModel.insert(it) {}
+ }
+ finish()
+ }
+ }
+
+ private fun loadFaceRecord() {
+ faceRecord?.let {
+ mBinding.tvWorkingDate.text = it.workingDate
+ mBinding.tvTeamShift.text = it.teamShift
+ mBinding.tvWorkTeam.text = it.teamName
+ 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.etRecordPerson.setText(it.recordPerson)
+ }
+ }
+
+ private fun updateFaceRecord() {
+ val faceRecord = TunnelWorkingFaceRecordEntity().also {
+ it.recordId = faceRecord!!.recordId
+ it.surfaceId = surfaceId
+ it.workingDate = mBinding.tvWorkingDate.text.toString()
+ it.teamShift = mBinding.tvTeamShift.text.toString()
+ it.teamName = mBinding.tvWorkTeam.text.toString()
+ it.teamId = mBinding.tvWorkTeam.tag.toString()
+
+ it.teamLeader = mBinding.etTeamLeader.text.toString().trim()
+ it.workingFootage = mBinding.etWorkingFootage.text.toString().trim()
+ it.seamDip = mBinding.etSeamDip.text.toString().trim()
+ it.seamHeight = mBinding.etSeamHeight.text.toString().trim()
+ it.recordPerson = mBinding.etRecordPerson.text.toString().trim()
+ }
+ workingFaceRecordViewModel.update(faceRecord) {
+ EventBus.getDefault().post(faceRecord)
+ finish()
+ }
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ fun onFaceRecordEvent(event: TunnelWorkingFaceRecordEntity) {
+
+ }
+
}
\ No newline at end of file
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 b2420a5..fc8789e 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
@@ -1,19 +1,22 @@
package com.zmkg.coaloperation.ui.tunneling.activity
+import android.annotation.SuppressLint
import android.os.Bundle
import android.view.View
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
+import androidx.lifecycle.ViewModelProvider
+import androidx.recyclerview.widget.LinearLayoutManager
import com.zmkg.coaloperation.R
+import com.zmkg.coaloperation.adapter.TunnelWorkingFaceAdapter
+import com.zmkg.coaloperation.adapter.TunnelWorkingFaceRecordAdapter
import com.zmkg.coaloperation.base.BaseVMBActivity
import com.zmkg.coaloperation.databinding.ActivityTunnelingBinding
-import com.zmkg.coaloperation.event.TunnelingWorkFaceRefreshEvent
-import com.zmkg.coaloperation.ui.tunneling.adapter.TunnelingHomeAdapter
-import com.zmkg.coaloperation.ui.tunneling.bean.TunnelingHomeBean
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceRecordEntity
+import com.zmkg.coaloperation.db.viewmodel.TunnelWorkingFaceRecordViewModel
+import com.zmkg.coaloperation.db.viewmodel.TunnelWorkingFaceViewModel
import com.zmkg.coaloperation.ui.tunneling.viewmodel.TunnelingViewModel
-import kotlinx.coroutines.flow.collectLatest
-import kotlinx.coroutines.launch
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
/**
* 掘进首页列表
@@ -21,131 +24,91 @@ import kotlinx.coroutines.launch
class TunnelingActivity :
BaseVMBActivity(R.layout.activity_tunneling) {
- private val tunnelingHomeAdapter: TunnelingHomeAdapter by lazy {
- TunnelingHomeAdapter {index,surfaceId->
- mViewModel.getTunnelingHomeItemData(index,surfaceId)
+ companion object {
+ val FACE_RECORD_HEADER = TunnelWorkingFaceRecordEntity(
+ recordId = -1,
+ surfaceId = -1,
+ workingDate = "时间",
+ recordPerson = "记录人",
+ operationType = "0"
+ )
+ }
+
+ private val workingFaceViewModel: TunnelWorkingFaceViewModel by lazy {
+ ViewModelProvider(this)[TunnelWorkingFaceViewModel::class.java]
+ }
+ private val workingFaceRecordViewModel: TunnelWorkingFaceRecordViewModel by lazy {
+ ViewModelProvider(this)[TunnelWorkingFaceRecordViewModel::class.java]
+ }
+
+
+ private val workingFaceList = mutableListOf()
+
+ private val workingFaceAdapter: TunnelWorkingFaceAdapter by lazy {
+ TunnelWorkingFaceAdapter(workingFaceList).apply {
+ setOnItemClickListener { _, _, position ->
+ toActivity(WorkingFaceDetailActivity::class.java, Bundle().apply {
+ putParcelable(WorkingFaceDetailActivity.FACE_DETAIL, workingFaceList[position])
+ })
+ }
+ setOnItemChildClickListener { _, view, position ->
+ if (view.id == R.id.ivExpandRecord) {
+ val expandState = view.tag.toString().toBooleanStrictOrNull() ?: false
+ workingFaceList[position].isExpandRecord = expandState.not()
+ if (workingFaceList[position].isExpandRecord) {
+ getFaceRecord(position)
+ } else {
+ notifyItemChanged(position)
+ }
+ return@setOnItemChildClickListener
+ }
+ if (view.id == R.id.start_record) {
+ toActivity(AddWorkingPointActivity::class.java, Bundle().apply {
+ putLong(
+ AddWorkingPointActivity.FACE_ID,
+ workingFaceList[position].surfaceId
+ )
+ putString(
+ AddWorkingPointActivity.FACE_NAME,
+ workingFaceList[position].surfaceName
+ )
+ putInt(AddWorkingPointActivity.SHOW_TYPE, 0)
+ })
+ }
+ }
}
}
-
override fun initView(savedInstanceState: Bundle?) {
-
mBinding.toolbarLay.rightText = "新增工作面"
- mBinding.rvList.adapter = tunnelingHomeAdapter
-
+ mBinding.rvList.let {
+ it.layoutManager = LinearLayoutManager(this)
+ it.adapter = workingFaceAdapter
+ }
}
+ @SuppressLint("NotifyDataSetChanged")
override fun initData() {
- mViewModel.getTunnelingHomeData()
+ workingFaceViewModel.getEntityList { it ->
+ if (it.isNullOrEmpty()) {
+ return@getEntityList
+ }
+ workingFaceList.clear()
+ workingFaceList.addAll(it)
+ workingFaceAdapter.notifyDataSetChanged()
+ }
}
-
-// HttpUtil.get(UrlConst.FACE_LIST, doSuccess = {
-// val type = object : TypeToken>() {}
-// val list: MutableList? = it.toJsonString().toType(typeToken = type)
-// if (list.isNullOrEmpty()) {
-// ToastTool.toastShort(this@TunnelingActivity, "未查询到数据")
-// return@get
-// }
-// tunnelingHomeAdapter.setNewInstance(list)
-// getRecordList(0) {}
-// }, doFailure = { code, msg ->
-// if (msg.isNullOrEmpty()) {
-// return@get
-// }
-// ToastTool.toastShort(this@TunnelingActivity, msg)
-// })
-//
-//// val gson = Gson()
-//// val type: Type = object : TypeToken>() {}.type
-//// val mutableListOf = gson.fromJson>(jsonString, type)
-////
-//// tunnelingHomeAdapter.setNewInstance(mutableListOf)
-//
-// }
-//
-// fun getRecordList(index:Int, action:()-> Unit) {
-// val faceId: Long? = tunnelingHomeAdapter.data[index].surfaceId
-// HttpUtil.get("${UrlConst.RECORD_LIST + faceId}", doSuccess = {
-// val type = object : TypeToken>() {}
-// val list: MutableList? = it.toJsonString().toType(typeToken = type)
-// if (list.isNullOrEmpty()) {
-// ToastTool.toastShort(this@TunnelingActivity, "未查询到数据")
-// return@get
-// }
-// tunnelingHomeAdapter.data[0].contentList = list
-// val holder = mBinding.rvList.findViewHolderForLayoutPosition(0)
-// val rvContent = holder?.itemView?.findViewById(R.id.rv_content)
-// rvContent?.adapter.let { adapter ->
-// if (adapter is TunnelingHomeListAdapter) {
-// adapter.data.clear()
-// adapter.data.addAll(list)
-// adapter.notifyDataSetChanged()
-// }
-// }
-// action()
-// }, doFailure = { code, msg ->
-// if (msg.isNullOrEmpty()) {
-// return@get
-// }
-// ToastTool.toastShort(this@TunnelingActivity, msg)
-// })
-// }
-
override fun createObserve() {
super.createObserve()
- lifecycleScope.launch {
- repeatOnLifecycle(Lifecycle.State.CREATED) {
- mViewModel.tunnelingHomeList.collectLatest { list ->
- list?.reverse()
- tunnelingHomeAdapter.setNewInstance(list)
-
- }
- }
- }
- lifecycleScope.launch {
- repeatOnLifecycle(Lifecycle.State.CREATED) {
- mViewModel.tunnelingHomeItemList.collectLatest { list ->
- if (list.isNullOrEmpty()) {
- showToast("未查询到数据")
- return@collectLatest
- }
-
- tunnelingHomeAdapter.data[mViewModel.itemIndex.value].contentList = list
- tunnelingHomeAdapter.notifyDataSetChanged()
- }
- }
- }
}
override fun bindEvent() {
- tunnelingHomeAdapter.setOnItemClickListener { adapter, view, position ->
- val tunnelingHomeBean = adapter.data.get(position) as TunnelingHomeBean
- // 跳转到工作面详情
-
- toActivity(WorkingFaceDetailActivity::class.java, Bundle().apply {
- putString("surfaceId", tunnelingHomeBean.surfaceId)
- })
- }
-
- tunnelingHomeAdapter.setOnItemChildClickListener { adapter, view, position ->
- val tunnelingHomeBean = adapter.data.get(position) as TunnelingHomeBean
- // 跳转到开始记录页面
-
- if (view.id == R.id.start_record) {
- toActivity(AddWorkingPointActivity::class.java, Bundle().apply {
- putString(AddWorkingPointActivity.FACE_NAME, tunnelingHomeBean.surfaceName)
- putInt(AddWorkingPointActivity.SHOW_TYPE, 0)
- })
- }
- }
-
mBinding.toolbarLay.titleTvRight.setOnClickListener {
-
- toActivity(WorkFaceActivity::class.java,Bundle().apply {
- putString("WorkFaceType", WorkFaceActivity.WorkFaceType.ADD.name)
+ toActivity(WorkFaceActivity::class.java, Bundle().apply {
+ putString(WorkFaceActivity.WORK_FACE_TYPE, WorkFaceActivity.WorkFaceType.ADD.name)
})
}
}
@@ -155,8 +118,45 @@ class TunnelingActivity :
}
override fun onMessageEvent(event: Any?) {
- if (event is TunnelingWorkFaceRefreshEvent) {
- mViewModel.getTunnelingHomeData()
+// if (event is TunnelingWorkFaceRefreshEvent) {
+// mViewModel.getTunnelingHomeData()
+// }
+ }
+
+ @SuppressLint("NotifyDataSetChanged")
+ private fun getFaceRecord(position: Int) {
+ val surfaceId = workingFaceList[position].surfaceId
+ workingFaceRecordViewModel.getEntityList(surfaceId) { recordEntities ->
+ if (recordEntities.isNullOrEmpty()) {
+ workingFaceAdapter.notifyItemChanged(position)
+ return@getEntityList
+ }
+ val viewHolder =
+ mBinding.rvList.findViewHolderForLayoutPosition(position) as TunnelWorkingFaceAdapter.VH
+ val recordAdapter =
+ viewHolder.binding.rvFaceRecord.adapter as TunnelWorkingFaceRecordAdapter
+ recordAdapter.apply {
+ list.clear()
+// list.add(FACE_RECORD_HEADER)
+ list.addAll(recordEntities)
+ notifyDataSetChanged()
+ }
+ workingFaceAdapter.notifyItemChanged(position)
}
}
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ fun onWorkingFaceEvent(event: TunnelWorkingFaceEntity) {
+ val index = workingFaceList.indexOfFirst { it.surfaceId == event.surfaceId }
+ workingFaceViewModel.getEntityById(event.surfaceId) { entity ->
+ workingFaceList[index] = entity
+ workingFaceAdapter.notifyItemChanged(index)
+ }
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ fun onFaceRecordEvent(event:TunnelWorkingFaceRecordEntity) {
+ //TODO 折叠子列表
+ }
+
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkFaceActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkFaceActivity.kt
index 2e08488..a774ca5 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkFaceActivity.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkFaceActivity.kt
@@ -1,22 +1,31 @@
package com.zmkg.coaloperation.ui.tunneling.activity
+import android.app.Activity
import android.os.Bundle
import android.text.TextUtils
import android.view.View
+import android.widget.TextView
import androidx.lifecycle.Lifecycle
+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.db.entiry.tunnel.TunnelWorkingFaceEntity
+import com.zmkg.coaloperation.db.viewmodel.TunnelWorkingFaceViewModel
import com.zmkg.coaloperation.event.TunnelingWorkFaceRefreshEvent
-import com.zmkg.coaloperation.ui.tunneling.bean.FaceWorkDetailBean
-import com.zmkg.coaloperation.ui.tunneling.bean.TunnelingFaceAddBean
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.utils.PickerUtil
+import com.zmkg.coaloperation.utils.gone
+import com.zmkg.coaloperation.utils.visible
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
/**
* 工作面
@@ -24,12 +33,11 @@ import org.greenrobot.eventbus.EventBus
class WorkFaceActivity :
BaseVMBActivity(R.layout.activity_work_face) {
- companion object {
- const val WORK_FACE_TYPE = "WorkFaceType"
- const val FACE_WORK_DETAIL_DATA = "faceWorkDetailData"
- }
-
- var currentFaceType = WorkFaceType.ADD
+ companion object {
+ private const val TAG = "WorkFaceActivity"
+ const val WORK_FACE_TYPE = "WorkFaceType"
+ const val FACE_WORK_DETAIL_DATA = "faceWorkDetailData"
+ }
enum class WorkFaceType {
ADD,//新增
@@ -39,29 +47,124 @@ class WorkFaceActivity :
SEE//查看
}
-
-
+ private var currentFaceType = WorkFaceType.ADD
+ private val workingFaceViewModel: TunnelWorkingFaceViewModel by lazy {
+ ViewModelProvider(this)[TunnelWorkingFaceViewModel::class.java]
+ }
+ private var faceDetail: TunnelWorkingFaceEntity? = null
override fun initView(savedInstanceState: Bundle?) {
val stringExtra = intent.getStringExtra(WORK_FACE_TYPE)
if (TextUtils.isEmpty(stringExtra)) {
- finish()
- } else if (stringExtra == WorkFaceType.ADD.name) {
- currentFaceType = WorkFaceType.ADD
- mBinding.toolbarLay.titleTvName.text = "新增工作面"
- mBinding.confirm.text = "确认新增"
- } else if (stringExtra == WorkFaceType.EDIT.name) {
- currentFaceType = WorkFaceType.EDIT
- mBinding.toolbarLay.titleTvName.text = "修改工作面"
- mBinding.confirm.text = "确认修改"
- val detail = intent.getSerializableExtra(WorkingFaceDetail2Activity.FACE_WORK_DETAIL_DATA) as FaceWorkDetailBean?
- detail?.let {
- loadDetail(it)
+ stringExtra == WorkFaceType.ADD.name
+ }
+ when (stringExtra) {
+ WorkFaceType.ADD.name -> {
+ currentFaceType = WorkFaceType.ADD
+ mBinding.confirm.text = "确认新增"
+// mBinding.toolbarLay.titleTvName.text = "新增工作面"
+ mBinding.toolbarLay.title = "新增工作面"
+ mBinding.expandLayout.gone()
+ mBinding.imgExpand.visible()
+ }
+
+ WorkFaceType.EDIT.name -> {
+ currentFaceType = WorkFaceType.EDIT
+ mBinding.confirm.text = "确认修改"
+// mBinding.toolbarLay.titleTvName.text = "修改工作面"
+ mBinding.toolbarLay.title = "修改工作面"
+ mBinding.expandLayout.visible()
+ mBinding.imgExpand.gone()
+ faceDetail =
+ intent.getParcelableExtra(WorkingFaceDetail2Activity.FACE_WORK_DETAIL_DATA) as TunnelWorkingFaceEntity?
+ if (faceDetail == null) {
+ showToast("未查询到工作面数据")
+ return
+ }
+ faceDetail?.let {
+ loadDetail(it)
+ }
+ }
+
+ WorkFaceType.SEE.name -> {
+ currentFaceType = WorkFaceType.SEE
}
- } else if (stringExtra == WorkFaceType.SEE.name) {
- currentFaceType = WorkFaceType.SEE
}
+ mBinding.etPlanStartDate.let {
+ it.setOnClickListener { _ ->
+ showDatePicker(it)
+ }
+ }
+ mBinding.etPlannEndDate.let {
+ it.setOnClickListener { _ ->
+ showDatePicker(it)
+ }
+ }
+ val seamNameList = mutableListOf()
+ seamNameList.add("煤层---A---")
+ seamNameList.add("煤层---B---")
+ seamNameList.add("煤层---C---")
+ seamNameList.add("煤层---D---")
+ seamNameList.add("煤层---E---")
+ mBinding.tvSeamName.setOnClickListener { v ->
+ PickerUtil.showOptionsPicker(this, "请选择所属煤层", seamNameList) { option ->
+ mBinding.tvSeamName.text = option
+ mBinding.tvSeamName.tag = seamNameList.indexOf(option).toString()
+ }
+ }
+ val areaNameList = mutableListOf()
+ areaNameList.add("采区---A---")
+ areaNameList.add("采区---B---")
+ areaNameList.add("采区---C---")
+ areaNameList.add("采区---D---")
+ areaNameList.add("采区---E---")
+ mBinding.tvAreaName.setOnClickListener { v ->
+ PickerUtil.showOptionsPicker(this, "请选择所属采区域", areaNameList) { option ->
+ mBinding.tvAreaName.text = option
+ mBinding.tvAreaName.tag = areaNameList.indexOf(option).toString()
+ }
+ }
+ val tunnelNatureList = mutableListOf()
+ tunnelNatureList.add("A0001")
+ tunnelNatureList.add("A0002")
+ tunnelNatureList.add("B0001")
+ tunnelNatureList.add("B0002")
+ tunnelNatureList.add("C0001")
+ tunnelNatureList.add("C0002")
+ tunnelNatureList.add("D0001")
+ tunnelNatureList.add("D0002")
+ tunnelNatureList.add("E0001")
+ tunnelNatureList.add("E0002")
+ mBinding.tvTunnelNature.setOnClickListener { v ->
+ PickerUtil.showOptionsPicker(this, "请选择巷道性质", areaNameList) { option ->
+ mBinding.tvTunnelNature.text = option
+ mBinding.tvTunnelNature.tag = areaNameList.indexOf(option).toString()
+ }
+ }
+ }
+
+ private fun showDatePicker(tv: TextView) {
+ tv.setOnClickListener {
+ PickerUtil.showTimePicker(this, tv.text.toString().trim()) { date ->
+ tv.text = date
+ }
+ }
+// val cal = Calendar.getInstance()
+// DatePickerDialog(
+// this,
+// { view, year, month, day ->
+// textView.text = "$year-${numToString(month + 1)}-${numToString(day)}"
+// },
+// cal.get(Calendar.YEAR),
+// cal.get(Calendar.MONTH),
+// cal.get(Calendar.DAY_OF_MONTH)
+// )
+// .show()
+ }
+
+ private fun numToString(num: Int): String {
+ return if (num < 10) "0${num}" else num.toString()
}
override fun initData() {
@@ -90,14 +193,13 @@ class WorkFaceActivity :
override fun processClick(v: View?) {
when (v?.id) {
- R.id.img_expand -> {
- if (mBinding.expandLayout.visibility == View.GONE) {
- mBinding.expandLayout.visibility = View.VISIBLE
- mBinding.imgView.background = getDrawable(R.mipmap.arrow_up_white)
+ R.id.imgExpand -> {
+ if (mBinding.expandLayout.isGone) {
+ mBinding.expandLayout.visible()
+ mBinding.imgExpand.setImageResource(R.drawable.ic_arrow_up_white2)
} else {
- mBinding.expandLayout.visibility = View.GONE
- mBinding.imgView.background = getDrawable(R.mipmap.arrow_down_white)
-
+ mBinding.expandLayout.gone()
+ mBinding.imgExpand.setImageResource(R.drawable.ic_arrow_down_white2)
}
}
@@ -115,18 +217,20 @@ class WorkFaceActivity :
}
}
- private fun loadDetail(it: FaceWorkDetailBean) {
+ private fun loadDetail(it: TunnelWorkingFaceEntity) {
mBinding.etWorkfaceName.setText(it.surfaceName)
mBinding.etTotalFootage.setText("${it.totalFootage}")
- mBinding.etCoalSeam.text = it.seamName
- mBinding.etCoalArea.text = it.areaName
- mBinding.etFaceAngle.setText(it.surfaceAzimuth)
- mBinding.etFaceHeight.setText(it.surfaceHeight)
- mBinding.etFaceWidth.setText(it.surfaceWidth)
- mBinding.tvCoalType.text = it.tunnelNature
+ mBinding.tvSeamName.tag = it.seamId
+ mBinding.tvSeamName.text = it.seamName
+ mBinding.tvAreaName.tag = it.areaId
+ mBinding.tvAreaName.text = it.areaName
+ mBinding.etSurfaceAzimuth.setText(it.surfaceAzimuth)
+ mBinding.etSurfaceHeight.setText(it.surfaceHeight)
+ mBinding.etSurfaceWidth.setText(it.surfaceWidth)
+ mBinding.tvTunnelNature.text = it.tunnelNature
- mBinding.plannedDate1.setText(it.planStartDate)
- mBinding.plannedDate2.setText(it.planEndDate)
+ mBinding.etPlanStartDate.text = it.planStartDate
+ mBinding.etPlannEndDate.text = it.planEndDate
mBinding.etGeologicalType.setText(it.geologicalType)
mBinding.etHydrogeologicalType.setText(it.hydrogeologicalType)
@@ -137,24 +241,121 @@ class WorkFaceActivity :
}
private fun addNewFace() {
- if (TextUtils.isEmpty(mBinding.etWorkfaceName.text.toString())) {
+ val workingFaceName = mBinding.etWorkfaceName.text.toString().trim()
+ if (TextUtils.isEmpty(workingFaceName)) {
showToast("请输入工作面名称")
return
}
- if (TextUtils.isEmpty(mBinding.etTotalFootage.text.toString())) {
+ val totalFootageStr = mBinding.etTotalFootage.text.toString().trim()
+ if (TextUtils.isEmpty(totalFootageStr)) {
showToast("请输入总进尺")
return
}
- mViewModel.postTunnellingSurfaceAdd(
- TunnelingFaceAddBean(
- surfaceName = mBinding.etWorkfaceName.text.toString(),
- totalFootage = mBinding.etTotalFootage.text.toString()
- )
- )
+ try {
+ totalFootageStr.toDouble()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ showToast("总进尺数据非数字格式,请确认")
+ return
+ }
+// mViewModel.postTunnellingSurfaceAdd(
+// TunnelingFaceAddBean(
+// surfaceName = mBinding.etWorkfaceName.text.toString(),
+// totalFootage = mBinding.etTotalFootage.text.toString()
+// )
+// )
+ val workingFaceEntity = TunnelWorkingFaceEntity().also {
+ it.surfaceId = System.currentTimeMillis()
+ it.surfaceName = workingFaceName
+ it.totalFootage = totalFootageStr
+
+ it.seamName = mBinding.tvSeamName.text.toString().trim()
+ if (it.seamName!!.isNotBlank()) {
+ it.seamId = mBinding.tvSeamName.tag.toString().toInt()
+ }
+ it.areaName = mBinding.tvAreaName.text.toString().trim()
+ if (it.areaName!!.isNotBlank()) {
+ it.areaId = mBinding.tvAreaName.tag.toString().toInt()
+ }
+
+ it.surfaceAzimuth = mBinding.etSurfaceAzimuth.text.toString().trim()
+ it.surfaceHeight = mBinding.etSurfaceHeight.text.toString().trim()
+ it.surfaceWidth = mBinding.etSurfaceWidth.text.toString().trim()
+ it.tunnelNature = mBinding.tvTunnelNature.text.toString().trim()
+ it.planStartDate = mBinding.etPlanStartDate.text.toString().trim()
+ it.planEndDate = mBinding.etPlannEndDate.text.toString().trim()
+ it.geologicalType = mBinding.etGeologicalType.text.toString().trim()
+ it.hydrogeologicalType = mBinding.etHydrogeologicalType.text.toString().trim()
+ it.seamIgnition = mBinding.etSeamIgnition.text.toString().trim()
+ it.seamGas = mBinding.etSeamGas.text.toString().trim()
+ it.seamBumpPressure = mBinding.etSeamBumpPressure.text.toString().trim()
+ it.surfaceSupportForm = mBinding.etSurfaceSupportForm.text.toString().trim()
+ }
+ workingFaceViewModel.insert(workingFaceEntity) {
+ showToast("工作面新增完成")
+ finish()
+ }
}
private fun editFace() {
+ val workingFaceName = mBinding.etWorkfaceName.text.toString().trim()
+ if (TextUtils.isEmpty(workingFaceName)) {
+ showToast("请输入工作面名称")
+ return
+ }
+ val totalFootageStr = mBinding.etTotalFootage.text.toString().trim()
+ if (TextUtils.isEmpty(totalFootageStr)) {
+ showToast("请输入总进尺")
+ return
+ }
+ try {
+ totalFootageStr.toDouble()
+ } catch (e: Exception) {
+ e.printStackTrace()
+ showToast("总进尺数据非数字格式,请确认")
+ return
+ }
+ val workingFaceEntity = TunnelWorkingFaceEntity().also {
+ it.surfaceId = faceDetail!!.surfaceId
+ it.surfaceName = workingFaceName
+ it.totalFootage = totalFootageStr
+
+ it.seamName = mBinding.tvSeamName.text.toString().trim()
+ if (it.seamName!!.isNotBlank()) {
+ it.seamId = string2num(mBinding.tvSeamName.tag.toString())
+ }
+ it.areaName = mBinding.tvAreaName.text.toString().trim()
+ if (it.areaName!!.isNotBlank()) {
+ it.areaId = string2num(mBinding.tvAreaName.tag.toString())
+ }
+
+ it.surfaceAzimuth = mBinding.etSurfaceAzimuth.text.toString().trim()
+ it.surfaceHeight = mBinding.etSurfaceHeight.text.toString().trim()
+ it.surfaceWidth = mBinding.etSurfaceWidth.text.toString().trim()
+ it.tunnelNature = mBinding.tvTunnelNature.text.toString().trim()
+ it.planStartDate = mBinding.etPlanStartDate.text.toString().trim()
+ it.planEndDate = mBinding.etPlannEndDate.text.toString().trim()
+ it.geologicalType = mBinding.etGeologicalType.text.toString().trim()
+ it.hydrogeologicalType = mBinding.etHydrogeologicalType.text.toString().trim()
+ it.seamIgnition = mBinding.etSeamIgnition.text.toString().trim()
+ it.seamGas = mBinding.etSeamGas.text.toString().trim()
+ it.seamBumpPressure = mBinding.etSeamBumpPressure.text.toString().trim()
+ it.surfaceSupportForm = mBinding.etSurfaceSupportForm.text.toString().trim()
+ }
+ workingFaceViewModel.update(workingFaceEntity) {
+ showToast("工作面修改完成")
+ EventBus.getDefault().post(workingFaceEntity)
+ finish()
+ }
+ }
+
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ fun onWorkingFaceEvent(event: TunnelWorkingFaceEntity) {
}
+ private fun string2num(text: String?): Int {
+ return if (text.isNullOrBlank()) 0 else text.toInt()
+ }
+
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceDetail2Activity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceDetail2Activity.kt
index 04e461a..8091cb7 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceDetail2Activity.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceDetail2Activity.kt
@@ -10,28 +10,30 @@ 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.ui.tunneling.bean.FaceWorkDetailBean
-import java.io.Serializable
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
/**
* 工作面详情2
*/
class WorkingFaceDetail2Activity :
BaseVMBActivity(R.layout.activity_working_face_detail2) {
- companion object {
- const val FACE_WORK_DETAIL_DATA = "faceWorkDetailData"
- }
+ companion object {
+ const val FACE_WORK_DETAIL_DATA = "faceWorkDetailData"
+ }
private val list: MutableList = mutableListOf()
- private var detail:FaceWorkDetailBean?=null
+ // 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.toolbarLay.rightText = "修改"
mBinding.rvFaceList.let {
it.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
@@ -39,43 +41,19 @@ class WorkingFaceDetail2Activity :
}
}
- @SuppressLint("NotifyDataSetChanged")
override fun initData() {
- val serializableExtra = intent.getSerializableExtra(FACE_WORK_DETAIL_DATA)
- if (serializableExtra==null) {
- finish()
- } else {
- detail = serializableExtra as FaceWorkDetailBean
- detail?.let {
- mBinding.toolbarLay.title = it.surfaceName
-
- 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()
-
+ 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)
+// putSerializable(WorkFaceActivity.FACE_WORK_DETAIL_DATA, detail)
+ putParcelable(WorkFaceActivity.FACE_WORK_DETAIL_DATA, detail)
})
}
}
@@ -84,4 +62,51 @@ class WorkingFaceDetail2Activity :
}
+ @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)
+ }
+ }
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceDetailActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceDetailActivity.kt
index e5e73ab..8e98621 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceDetailActivity.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingFaceDetailActivity.kt
@@ -1,24 +1,19 @@
package com.zmkg.coaloperation.ui.tunneling.activity
import android.os.Bundle
-import android.text.TextUtils
import android.view.View
import com.zmkg.coaloperation.R
import com.zmkg.coaloperation.base.BaseVMBActivity
import androidx.core.graphics.toColorInt
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
import com.zmkg.coaloperation.databinding.ActivityWorkingFaceDetailBinding
-import com.zmkg.coaloperation.superfuntion.orEmptyDefaultInt
-import com.zmkg.coaloperation.ui.tunneling.adapter.TunnelingHomeListAdapter
+import com.zmkg.coaloperation.db.entiry.tunnel.TunnelWorkingFaceEntity
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 kotlinx.coroutines.flow.collectLatest
-import kotlinx.coroutines.launch
-import java.io.Serializable
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
+import kotlin.apply
import kotlin.math.roundToInt
/**
@@ -27,8 +22,13 @@ import kotlin.math.roundToInt
class WorkingFaceDetailActivity :
BaseVMBActivity(R.layout.activity_working_face_detail) {
- val tunnelingRockNatureAdapter: TunnelingRockNatureAdapter by lazy { TunnelingRockNatureAdapter()}
+ companion object {
+ const val FACE_DETAIL = "faceDetail"
+ }
+ val tunnelingRockNatureAdapter: TunnelingRockNatureAdapter by lazy { TunnelingRockNatureAdapter() }
+
+ private var faceDetail: TunnelWorkingFaceEntity? = null
override fun initView(savedInstanceState: Bundle?) {
mBinding.toolbarLay.rightText = "查看详情"
@@ -48,7 +48,7 @@ class WorkingFaceDetailActivity :
it.startAngle = -90f
it.strokeWidth = 10f
it.sweepAngle = 0f
- it.radius = ScreenUtil.dp2px(100f-10f)/2f
+ it.radius = ScreenUtil.dp2px(100f - 10f) / 2f
}
mBinding.arcViewBlue.let {
@@ -56,29 +56,33 @@ class WorkingFaceDetailActivity :
it.startAngle = -90f
it.strokeWidth = 10f
it.sweepAngle = 0f
- it.radius = ScreenUtil.dp2px(100f-10f)/2f
+ it.radius = ScreenUtil.dp2px(100f - 10f) / 2f
}
}
override fun initData() {
- val surfaceId = intent.getStringExtra("surfaceId")
- if (TextUtils.isEmpty(surfaceId)) {
- finish()
- } else {
- mViewModel.getTunnelingSurfaceDetail(surfaceId)
- }
+// val surfaceId = intent.getStringExtra("surfaceId")
+// if (TextUtils.isEmpty(surfaceId)) {
+// finish()
+// } else {
+// mViewModel.getTunnelingSurfaceDetail(surfaceId)
+// }
+ faceDetail = intent.getParcelableExtra(FACE_DETAIL)
+ faceDetail?.let {
+ loadFaceDetail()
+ }
}
override fun bindEvent() {
mBinding.toolbarLay.titleTvRight.setOnClickListener {
toActivity(WorkingFaceDetail2Activity::class.java, Bundle().apply {
- putSerializable(
- WorkingFaceDetail2Activity.FACE_WORK_DETAIL_DATA,
- mViewModel.faceWorkDetailData.value as Serializable
- )
-
+// putSerializable(
+// WorkingFaceDetail2Activity.FACE_WORK_DETAIL_DATA,
+// mViewModel.faceWorkDetailData.value as Serializable
+// )
+ putParcelable(WorkingFaceDetail2Activity.FACE_WORK_DETAIL_DATA, faceDetail)
})
}
}
@@ -88,26 +92,38 @@ class WorkingFaceDetailActivity :
override fun createObserve() {
super.createObserve()
- lifecycleScope.launch {
- repeatOnLifecycle(Lifecycle.State.CREATED) {
- mViewModel.faceWorkDetailData.collectLatest {
- if (it != null) {
- setDataView(it)
- }
- }
- }
- }
+// 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
- tvLenTotal.text = "总进尺:${bean.totalFootage}m"
- tvLenAccumulate.text = "累计进尺:${bean.accumulativeFootage.orEmptyDefaultInt("0")}m"
- tvLenRemain.text = "剩余进尺:${bean.remainingFootage.orEmptyDefaultInt("0")}m"
+ 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
@@ -115,44 +131,48 @@ class WorkingFaceDetailActivity :
//累计进尺圆圈占比
var arcViewRadio: Float
- if (bean.accumulativeFootage > bean.totalFootage) {
+ if (accumulative >= total) {
radio = 100
arcViewRadio = 360F
- } else if (bean.accumulativeFootage <= 0) {
+ } else if (accumulative <= 0) {
radio = 0
arcViewRadio = 0F
} else {
- radio = (bean.accumulativeFootage * 100F / bean.accumulativeFootage).roundToInt()
- arcViewRadio = bean.accumulativeFootage * 360F / bean.accumulativeFootage
+ arcViewRadio = (accumulative * 100F / total).toFloat()
+ radio = arcViewRadio.roundToInt()
}
arcViewRed.let {
it.sweepAngle = arcViewRadio
}
-
arcViewBlue.let {
- it.sweepAngle = (360F-arcViewRadio) * -1F
+ 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"
+// 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)
- }
+// 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()
}
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingPointActivity.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingPointActivity.kt
index 3dcf2be..5893813 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingPointActivity.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/activity/WorkingPointActivity.kt
@@ -11,6 +11,9 @@ 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.TunnelWorkingFaceRecordEntity
+import org.greenrobot.eventbus.Subscribe
+import org.greenrobot.eventbus.ThreadMode
/**
* 查看(棋盘井)
@@ -18,6 +21,13 @@ import com.zmkg.coaloperation.databinding.ActivityWorkingPointBinding
class WorkingPointActivity :
BaseVMBActivity(R.layout.activity_working_point) {
+ companion object {
+ const val FACE_NAME = "faceName"
+ const val FACE_RECORD = "faceRecord"
+ }
+
+ private var faceName: String? = null
+ private var faceRecord: TunnelWorkingFaceRecordEntity? = null
private val list: MutableList = mutableListOf()
private val adapter by lazy {
WorkingItemAdapter(list)
@@ -25,30 +35,46 @@ class WorkingPointActivity :
override fun initView(savedInstanceState: Bundle?) {
mBinding.toolbarLay.vLine.visibility = View.GONE
- mBinding.toolbarLay.rightText = "查看详情"
-
+ 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)
+ })
+ }
mBinding.rvPointList.let {
it.layoutManager = LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
it.adapter = adapter
}
}
- @SuppressLint("NotifyDataSetChanged")
override fun initData() {
- list.add(WorkingFaceItem(pageType = 1, name = "工作面名称", value = "5-20304回风工作面"))
- list.add(WorkingFaceItem(pageType = 1, name = "施工日期", value = "2025-08-15"))
- list.add(WorkingFaceItem(pageType = 1, name = "施工班次", value = "早班"))
- list.add(WorkingFaceItem(pageType = 1, name = "施工队伍", value = "掘进队"))
- list.add(WorkingFaceItem(pageType = 1, name = "带班队长", value = "刘某杰"))
- list.add(WorkingFaceItem(pageType = 1, name = "班进尺", value = "200m"))
+ faceName = intent.getStringExtra(FACE_NAME)
+ faceRecord = intent.getParcelableExtra(FACE_RECORD)
+ faceRecord?.let {
+ loadFaceRecord(it)
+ }
+ }
+
+ @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(WorkingFaceItem(pageType = 1, name = "施工班次", value = 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))
val rockList = mutableListOf()
rockList.add(RockItem(startLen = 0, endLen = 1, rockType = "泥"))
rockList.add(RockItem(startLen = 0, endLen = 1, rockType = "砂"))
list.add(WorkingFaceItem(pageType = 1, name = "顶板岩性", value = "", items = rockList))
- list.add(WorkingFaceItem(pageType = 1, name = "煤层倾角", value = "60°"))
- list.add(WorkingFaceItem(pageType = 1, name = "煤层高", value = "20m"))
- list.add(WorkingFaceItem(pageType = 1, name = "记录人", value = "刘某杰"))
+ 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))
adapter.notifyDataSetChanged()
}
@@ -59,4 +85,11 @@ class WorkingPointActivity :
override fun processClick(v: View?) {
}
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ fun onFaceRecordEvent(event:TunnelWorkingFaceRecordEntity) {
+ faceRecord = event
+ faceRecord?.let {
+ loadFaceRecord(it)
+ }
+ }
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/adapter/TunnelingHomeAdapter.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/adapter/TunnelingHomeAdapter.kt
index 35be000..358c0a8 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/adapter/TunnelingHomeAdapter.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/adapter/TunnelingHomeAdapter.kt
@@ -1,64 +1,64 @@
-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(
- 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(R.id.rv_content)
- val expand = holder.getView(R.id.expand)
- val recordLayout = holder.getView(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.mipmap.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.mipmap.ic_arrow_right)
- recordLayout.visibility = View.GONE
- imageView.tag = "0"
- }
- }
- }
- init {
- addChildClickViewIds(R.id.start_record)
- }
-}
\ No newline at end of file
+//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(
+// 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(R.id.rv_content)
+// val expand = holder.getView(R.id.expand)
+// val recordLayout = holder.getView(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)
+// }
+//}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/adapter/TunnelingHomeListAdapter.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/adapter/TunnelingHomeListAdapter.kt
index e98d2db..a1d53e5 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/adapter/TunnelingHomeListAdapter.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/ui/tunneling/adapter/TunnelingHomeListAdapter.kt
@@ -1,27 +1,27 @@
-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(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)
-
-
- }
-
-}
\ No newline at end of file
+//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(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)
+//
+//
+// }
+//
+//}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/DateTimeUtil.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/DateTimeUtil.kt
new file mode 100644
index 0000000..a07207a
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/DateTimeUtil.kt
@@ -0,0 +1,32 @@
+package com.zmkg.coaloperation.utils
+
+import java.time.LocalDateTime
+import java.time.ZoneId
+import java.time.format.DateTimeFormatter
+import java.util.Date
+
+
+object DateTimeUtil {
+
+ const val YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss"
+
+ fun formatDateTime(dateTime: LocalDateTime, pattern: String = YYYY_MM_DD_HH_MM_SS): String {
+ val formatter = DateTimeFormatter.ofPattern(pattern)
+ return dateTime.format(formatter)
+ }
+
+ fun convert(dateStr: String, pattern: String = YYYY_MM_DD_HH_MM_SS): Date {
+ val formatter = DateTimeFormatter.ofPattern(pattern)
+ val ldt = LocalDateTime.parse(dateStr, formatter)
+ val zdt = ldt.atZone(ZoneId.systemDefault())
+ return Date.from(zdt.toInstant())
+ }
+
+ fun main() {
+ val now = LocalDateTime.now()
+ println("默认格式: ${formatDateTime(now)}")
+ println("自定义格式: ${formatDateTime(now, "yyyy年MM月dd日 HH时mm分ss秒")}")
+ }
+
+
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/Ext.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/Ext.kt
index 15564bb..adabc16 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/Ext.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/Ext.kt
@@ -16,4 +16,16 @@ fun View.clickWithDebounce(delay: Long = 300, action: () -> Unit) {
action()
}
}
+}
+
+fun View.visible() {
+ visibility = View.VISIBLE
+}
+
+fun View.invisible() {
+ visibility = View.INVISIBLE
+}
+
+fun View.gone() {
+ visibility = View.GONE
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/KeyboardUtil.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/KeyboardUtil.kt
new file mode 100644
index 0000000..c2ba707
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/KeyboardUtil.kt
@@ -0,0 +1,17 @@
+package com.zmkg.coaloperation.utils
+
+import android.content.Context
+import android.view.View
+import android.view.inputmethod.InputMethodManager
+
+
+object KeyboardUtil {
+
+ fun hideKeyboard(view: View) {
+ val imm = view.context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
+ imm.hideSoftInputFromWindow(view.windowToken, 0)
+ view.clearFocus() // 清除焦点避免键盘再次弹出
+ }
+
+
+}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/PickerUtil.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/PickerUtil.kt
index 191395c..ed892d4 100644
--- a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/PickerUtil.kt
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/utils/PickerUtil.kt
@@ -7,6 +7,7 @@ import com.bigkoo.pickerview.builder.OptionsPickerBuilder
import com.bigkoo.pickerview.builder.TimePickerBuilder
import com.bigkoo.pickerview.listener.OnOptionsSelectListener
import com.bigkoo.pickerview.listener.OnTimeSelectListener
+import com.zmkg.coaloperation.bean.WorkTeam
import okio.Options
import java.text.SimpleDateFormat
import java.util.Calendar
@@ -17,38 +18,58 @@ import java.util.Locale
object PickerUtil {
// 时间选择器示例
- fun showTimePicker(context: Context, action: (String) -> Unit) {
+ fun showTimePicker(context: Context, dateString:String, action: (String) -> Unit) {
+ val sdf = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
TimePickerBuilder(context) { date, _ ->
- val sdf = SimpleDateFormat("yyyy-MM-dd", Locale.getDefault())
action(sdf.format(date))
}.apply {
setType(booleanArrayOf(true, true, true, false, false, false)) // 年月日
setLabel("年", "月", "日", "", "", "")
setDividerColor(Color.GRAY)
setContentTextSize(20)
- setDate(Calendar.getInstance())
+ val calendar = Calendar.getInstance()
+ try {
+ sdf.parse(dateString)?.let { date ->
+ calendar.time = date
+ }
+ } catch (e: Exception) {
+ e.printStackTrace()
+ }
+ setDate(calendar)
// 设置日期范围(2023-01-01至2025-12-31)
val startDate = Calendar.getInstance().apply { set(2020, 0, 1) }
val endDate = Calendar.getInstance().apply { set(2050, 11, 31) }
setRangDate(startDate, endDate)
+ setOutSideCancelable(true)
}
.build()
.show()
}
// 三级联动选择器示例
- fun showOptionsPicker(context: Context, options: List, action: (String) -> Unit) {
+ fun showTeamsPicker(context: Context, options: List, action: (WorkTeam) -> Unit) {
OptionsPickerBuilder(context) { opt1, _, _, _ ->
action(options[opt1])
}.apply {
- setTitleText("请选择地区")
+ setTitleText("选择施工队伍")
setContentTextSize(18)
- setOutSideCancelable(false)
+ setOutSideCancelable(true)
}.build().apply {
- setPicker(options, null, null)
+ setPicker( options.map { it.teamName } , null, null)
+ show()
+ }
+ }
+ fun showOptionsPicker(context: Context, title:String, options: List, action: (String) -> Unit) {
+ OptionsPickerBuilder(context) { opt1, _, _, _ ->
+ action(options[opt1])
+ }.apply {
+ setTitleText(title)
+ setContentTextSize(18)
+ setOutSideCancelable(true)
+ }.build().apply {
+ setPicker( options , null, null)
show()
}
}
-
}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/view/CRecyclerView.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/view/CRecyclerView.kt
new file mode 100644
index 0000000..3974ede
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/view/CRecyclerView.kt
@@ -0,0 +1,42 @@
+//package com.zmkg.coaloperation.view
+//
+//import android.annotation.SuppressLint
+//import android.content.Context
+//import android.util.AttributeSet
+//import android.view.MotionEvent
+//import androidx.recyclerview.widget.RecyclerView
+//
+//class CRecyclerView @JvmOverloads constructor(
+// context: Context,
+// attrs: AttributeSet? = null,
+// defStyleAttr: Int = 0
+//): RecyclerView(context, attrs, defStyleAttr) {
+//
+// override fun onInterceptTouchEvent(e: MotionEvent?): Boolean {
+// parent.requestDisallowInterceptTouchEvent(true)
+// return super.onInterceptTouchEvent(e)
+// }
+// var x1 = 0f
+// var y1 = 0f
+// @SuppressLint("ClickableViewAccessibility")
+// override fun onTouchEvent(e: MotionEvent): Boolean {
+// when (e.action) {
+// MotionEvent.ACTION_DOWN -> {
+// parent.requestDisallowInterceptTouchEvent(true)
+// x1 = e.x
+// y1 = e.y
+// }
+// MotionEvent.ACTION_MOVE -> {
+// val dy = e.y - y1
+// if (!canScrollVertically(-1) && dy > 0) { // 到达顶部继续下滑
+// parent.requestDisallowInterceptTouchEvent(false)
+// } else if (!canScrollVertically(1) && dy < 0) { // 到达底部继续上滑
+// parent.requestDisallowInterceptTouchEvent(false)
+// }
+// }
+// }
+// return super.onTouchEvent(e)
+// }
+//
+//
+//}
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/view/NestedRecyclerView.kt b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/view/NestedRecyclerView.kt
new file mode 100644
index 0000000..bf57579
--- /dev/null
+++ b/coalMiningApp/app/src/main/java/com/zmkg/coaloperation/view/NestedRecyclerView.kt
@@ -0,0 +1,65 @@
+package com.zmkg.coaloperation.view
+
+import android.content.Context
+import android.util.AttributeSet
+import android.view.MotionEvent
+import android.view.ViewConfiguration
+import androidx.core.view.ViewCompat
+import androidx.recyclerview.widget.RecyclerView
+import kotlin.math.abs
+
+
+class NestedRecyclerView @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0
+) : RecyclerView(context, attrs, defStyleAttr) {
+
+ private var lastY = 0f
+ private var isDragging = false
+
+ private var touchSlop = ViewConfiguration.get(context).scaledTouchSlop
+
+ override fun onInterceptTouchEvent(e: MotionEvent): Boolean {
+ when (e.action) {
+ MotionEvent.ACTION_DOWN -> {
+ lastY = e.y
+ parent.requestDisallowInterceptTouchEvent(true)
+ }
+ MotionEvent.ACTION_MOVE -> {
+ val dy = e.y - lastY
+ if (!canScrollVertically(-1) && dy > 0) {
+ parent.requestDisallowInterceptTouchEvent(false)
+ return false
+ } else if (!canScrollVertically(1) && dy < 0) {
+ parent.requestDisallowInterceptTouchEvent(false)
+ return false
+ }
+ }
+ }
+ return super.onInterceptTouchEvent(e)
+ }
+
+ override fun onTouchEvent(e: MotionEvent): Boolean {
+ when (e.action) {
+ MotionEvent.ACTION_MOVE -> {
+ if (!isDragging && abs(e.y - lastY) > touchSlop) {
+ isDragging = true
+ }
+ }
+ MotionEvent.ACTION_UP, MotionEvent.ACTION_CANCEL -> {
+ isDragging = false
+ }
+ }
+ return super.onTouchEvent(e)
+ }
+
+ override fun dispatchTouchEvent(ev: MotionEvent): Boolean {
+ when (ev.action) {
+ MotionEvent.ACTION_DOWN -> {
+ stopNestedScroll(ViewCompat.SCROLL_AXIS_VERTICAL)
+ }
+ }
+ return super.dispatchTouchEvent(ev)
+ }
+}
diff --git a/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_arrow_down_white.png b/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_arrow_down_white.png
new file mode 100644
index 0000000..d58d15d
Binary files /dev/null and b/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_arrow_down_white.png differ
diff --git a/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_arrow_down_white2.png b/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_arrow_down_white2.png
new file mode 100644
index 0000000..a03f810
Binary files /dev/null and b/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_arrow_down_white2.png differ
diff --git a/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_arrow_right_gray.png b/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_arrow_right_gray.png
new file mode 100644
index 0000000..d06f826
Binary files /dev/null and b/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_arrow_right_gray.png differ
diff --git a/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_arrow_up_white2.png b/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_arrow_up_white2.png
new file mode 100644
index 0000000..3eda059
Binary files /dev/null and b/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_arrow_up_white2.png differ
diff --git a/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_geological.png b/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_geological.png
new file mode 100644
index 0000000..40fb690
Binary files /dev/null and b/coalMiningApp/app/src/main/res/drawable-xxhdpi/ic_geological.png differ
diff --git a/coalMiningApp/app/src/main/res/drawable/bg_stroke_gray.xml b/coalMiningApp/app/src/main/res/drawable/bg_stroke_gray.xml
index 9634da5..c1f17ab 100644
--- a/coalMiningApp/app/src/main/res/drawable/bg_stroke_gray.xml
+++ b/coalMiningApp/app/src/main/res/drawable/bg_stroke_gray.xml
@@ -3,8 +3,8 @@
android:shape="rectangle">
-
+ android:color="#282C38" />
+
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/res/drawable/scrollbar_thumb.xml b/coalMiningApp/app/src/main/res/drawable/scrollbar_thumb.xml
new file mode 100644
index 0000000..3a7bcd3
--- /dev/null
+++ b/coalMiningApp/app/src/main/res/drawable/scrollbar_thumb.xml
@@ -0,0 +1,12 @@
+
+
+ -
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/res/layout/activity_add_working_point.xml b/coalMiningApp/app/src/main/res/layout/activity_add_working_point.xml
index cb490d4..8fe6897 100644
--- a/coalMiningApp/app/src/main/res/layout/activity_add_working_point.xml
+++ b/coalMiningApp/app/src/main/res/layout/activity_add_working_point.xml
@@ -31,6 +31,7 @@
android:layout_marginTop="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:layout_marginBottom="10dp"
android:background="@drawable/bg_stroke_gray"
android:orientation="vertical">
@@ -79,7 +80,7 @@
android:textSize="16sp" />
-
+
+
+
+
+
+
+
+
+
+
+
+
+ tools:itemCount="3"
+ android:overScrollMode="never"
+ tools:listitem="@layout/list_item_rock"
+ tools:minHeight="60dp"/>
+ app:layout_constraintEnd_toEndOf="@id/rvLithology"
+ app:layout_constraintStart_toStartOf="@id/rvLithology"
+ app:layout_constraintTop_toBottomOf="@id/rvLithology" />
+ tools:listitem="@layout/list_item_tunnel_working_face" />
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/res/layout/activity_work_face.xml b/coalMiningApp/app/src/main/res/layout/activity_work_face.xml
index c2adc41..e27f477 100644
--- a/coalMiningApp/app/src/main/res/layout/activity_work_face.xml
+++ b/coalMiningApp/app/src/main/res/layout/activity_work_face.xml
@@ -1,13 +1,14 @@
+ xmlns:tools="http://schemas.android.com/tools"
+ tools:ignore="HardcodedText">
-
-
-
+ layout="@layout/lay_title_right_bar" />
+
+ android:layout_height="0dp"
+ android:layout_weight="1"
+ android:layout_marginHorizontal="20dp">
-
+ android:background="@drawable/bg_stroke_gray">
+ android:visibility="visible">
-
-
-
+ android:paddingStart="15dp"
+ android:paddingEnd="15dp"
+ android:layout_gravity="center_horizontal"
+ android:src="@drawable/ic_arrow_down_white2"
+ android:scaleType="fitCenter"
+ tools:ignore="ContentDescription"
+ android:visibility="gone"/>
-
-
-
-
+
-
-
+
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/res/layout/item_geological_list.xml b/coalMiningApp/app/src/main/res/layout/item_geological_list.xml
index 2b61774..b581dc7 100644
--- a/coalMiningApp/app/src/main/res/layout/item_geological_list.xml
+++ b/coalMiningApp/app/src/main/res/layout/item_geological_list.xml
@@ -12,7 +12,6 @@
android:layout_height="wrap_content"
android:orientation="vertical">
-
+ android:background="@drawable/ic_geological" />
diff --git a/coalMiningApp/app/src/main/res/layout/list_item_tunnel_working_face.xml b/coalMiningApp/app/src/main/res/layout/list_item_tunnel_working_face.xml
new file mode 100644
index 0000000..9a1b872
--- /dev/null
+++ b/coalMiningApp/app/src/main/res/layout/list_item_tunnel_working_face.xml
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/res/layout/list_item_tunnel_working_face_record.xml b/coalMiningApp/app/src/main/res/layout/list_item_tunnel_working_face_record.xml
new file mode 100644
index 0000000..4263451
--- /dev/null
+++ b/coalMiningApp/app/src/main/res/layout/list_item_tunnel_working_face_record.xml
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/coalMiningApp/app/src/main/res/layout/list_item_working_face.xml b/coalMiningApp/app/src/main/res/layout/list_item_working_face.xml
index 90e1830..f1fbb7e 100644
--- a/coalMiningApp/app/src/main/res/layout/list_item_working_face.xml
+++ b/coalMiningApp/app/src/main/res/layout/list_item_working_face.xml
@@ -12,7 +12,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
- tools:background="@color/text_gray1">
+ tools:background="@color/text_green">
#0C0D0E
#17181C
#A3FEA6
+ #FF21A69A
\ No newline at end of file
diff --git a/coalMiningApp/build.gradle b/coalMiningApp/build.gradle
index c0a279e..9eda8b4 100644
--- a/coalMiningApp/build.gradle
+++ b/coalMiningApp/build.gradle
@@ -5,7 +5,8 @@ buildscript {
plugins {
id 'com.android.application' version '7.2.2' apply false
id 'com.android.library' version '7.2.2' apply false
- id 'org.jetbrains.kotlin.android' version '1.9.0' apply false
+// id 'org.jetbrains.kotlin.android' version '1.9.0' apply false
+ id 'org.jetbrains.kotlin.android' version '2.0.21' apply false
id 'org.jetbrains.kotlin.jvm' version '1.8.20' apply false
}
diff --git a/coalMiningApp/config.gradle b/coalMiningApp/config.gradle
index 1b74a7f..8f70c6e 100644
--- a/coalMiningApp/config.gradle
+++ b/coalMiningApp/config.gradle
@@ -1,13 +1,14 @@
ext {
minSdkVersion = 26
- targetSdkVersion = 32
- compileSdkVersion = 33
+ targetSdkVersion = 34
+ compileSdkVersion = 34
versionCode = 100
versionName = "1.0.0"
//Dependencies
junitVersion = "4.12"
lifecycleVersion = "2.6.0-alpha01"
- kotlinVersion = "1.7.10"
+// kotlinVersion = "1.7.10"
+ kotlinVersion = "2.0.21"
glideVersion = "4.13.0"
recycleViewVersion = "1.2.1"
appcompatVersion = "1.5.0"
diff --git a/coalMiningApp/settings.gradle b/coalMiningApp/settings.gradle
index 60e4b5f..57e81ea 100644
--- a/coalMiningApp/settings.gradle
+++ b/coalMiningApp/settings.gradle
@@ -16,59 +16,57 @@ dependencyResolutionManagement {
google()
mavenCentral()
maven { url "https://mirrors.tencent.com/nexus/repository/maven-public/" }
-
-
}
}
rootProject.name = "digitalCoalMiningPlatform"
include ':app'
-// 引入内部组件通信模块 (必要模块)
-include ':tuicore'
-project(':tuicore').projectDir = new File(settingsDir, '../CoalMiningKit/TUICore/tuicore')
-
-// 引入 IM 组件公共模块(必要模块)
-include ':timcommon'
-project(':timcommon').projectDir = new File(settingsDir, '../CoalMiningKit/TIMCommon/timcommon')
-
-// 引入聊天功能模块 (基础功能模块)
-include ':tuichat'
-project(':tuichat').projectDir = new File(settingsDir, '../CoalMiningKit/TUIChat/tuichat')
-
-// 引入关系链功能模块 (基础功能模块)
-include ':tuicontact'
-project(':tuicontact').projectDir = new File(settingsDir, '../CoalMiningKit/TUIContact/tuicontact')
-
-// 引入会话功能模块 (基础功能模块)
-include ':tuiconversation'
-project(':tuiconversation').projectDir = new File(settingsDir, '../CoalMiningKit/TUIConversation/tuiconversation')
-
-//// 引入搜索功能模块(需要购买旗舰版或企业版套餐)
-//include ':tuisearch'
-//project(':tuisearch').projectDir = new File(settingsDir, '../CoalMiningKit/TUISearch/tuisearch')
+//// 引入内部组件通信模块 (必要模块)
+//include ':tuicore'
+//project(':tuicore').projectDir = new File(settingsDir, '../CoalMiningKit/TUICore/tuicore')
//
-//// 引入社群话题功能模块(需要购买旗舰版或企业版套餐)
-//include ':tuicommunity'
-//project(':tuicommunity').projectDir = new File(settingsDir, '../CoalMiningKit/TUICommunity/tuicommunity')
-
-// 引入音视频通话功能模块
-include ':tuicallkit'
-project(':tuicallkit').projectDir = new File(settingsDir, '../CoalMiningKit/TUICallKit/tuicallkit-kt')
-
-//// 引入视频会议模块
-//include ':tuiroomkit'
-//project(':tuiroomkit').projectDir = new File(settingsDir, '../CoalMiningKit/TUIRoomKit/tuiroomkit')
+//// 引入 IM 组件公共模块(必要模块)
+//include ':timcommon'
+//project(':timcommon').projectDir = new File(settingsDir, '../CoalMiningKit/TIMCommon/timcommon')
//
-//// 引入语音转文字插件,从 7.5 版本开始支持
-//include ':tuivoicetotextplugin'
-//project(':tuivoicetotextplugin').projectDir = new File(settingsDir, '../CoalMiningKit/TUIVoiceToTextPlugin/tuivoicetotextplugin')
+//// 引入聊天功能模块 (基础功能模块)
+//include ':tuichat'
+//project(':tuichat').projectDir = new File(settingsDir, '../CoalMiningKit/TUIChat/tuichat')
//
-//// 引入聊天消息翻译插件,从 7.2 版本开始支持(需单独购买翻译插件)
-//include ':tuitranslationplugin'
-//project(':tuitranslationplugin').projectDir = new File(settingsDir, '../CoalMiningKit/TUITranslationPlugin/tuitranslationplugin')
+//// 引入关系链功能模块 (基础功能模块)
+//include ':tuicontact'
+//project(':tuicontact').projectDir = new File(settingsDir, '../CoalMiningKit/TUIContact/tuicontact')
//
-//// 引入表情回应插件,从 7.8 版本开始支持(需要购买旗舰版或企业版套餐)
-//include ':tuiemojiplugin'
-//project(':tuiemojiplugin').projectDir = new File(settingsDir, '../CoalMiningKit/TUIEmojiPlugin/tuiemojiplugin')
+//// 引入会话功能模块 (基础功能模块)
+//include ':tuiconversation'
+//project(':tuiconversation').projectDir = new File(settingsDir, '../CoalMiningKit/TUIConversation/tuiconversation')
+//
+////// 引入搜索功能模块(需要购买旗舰版或企业版套餐)
+////include ':tuisearch'
+////project(':tuisearch').projectDir = new File(settingsDir, '../CoalMiningKit/TUISearch/tuisearch')
+////
+////// 引入社群话题功能模块(需要购买旗舰版或企业版套餐)
+////include ':tuicommunity'
+////project(':tuicommunity').projectDir = new File(settingsDir, '../CoalMiningKit/TUICommunity/tuicommunity')
+//
+//// 引入音视频通话功能模块
+//include ':tuicallkit'
+//project(':tuicallkit').projectDir = new File(settingsDir, '../CoalMiningKit/TUICallKit/tuicallkit-kt')
+//
+////// 引入视频会议模块
+////include ':tuiroomkit'
+////project(':tuiroomkit').projectDir = new File(settingsDir, '../CoalMiningKit/TUIRoomKit/tuiroomkit')
+////
+////// 引入语音转文字插件,从 7.5 版本开始支持
+////include ':tuivoicetotextplugin'
+////project(':tuivoicetotextplugin').projectDir = new File(settingsDir, '../CoalMiningKit/TUIVoiceToTextPlugin/tuivoicetotextplugin')
+////
+////// 引入聊天消息翻译插件,从 7.2 版本开始支持(需单独购买翻译插件)
+////include ':tuitranslationplugin'
+////project(':tuitranslationplugin').projectDir = new File(settingsDir, '../CoalMiningKit/TUITranslationPlugin/tuitranslationplugin')
+////
+////// 引入表情回应插件,从 7.8 版本开始支持(需要购买旗舰版或企业版套餐)
+////include ':tuiemojiplugin'
+////project(':tuiemojiplugin').projectDir = new File(settingsDir, '../CoalMiningKit/TUIEmojiPlugin/tuiemojiplugin')