desc:构造假的告警数据

main
xiaowusky 2 years ago
parent 9bb2f55ff1
commit 31b14527ef

@ -11,6 +11,7 @@ import com.common.commonlib.net.callback.RequestResultCallBack
import com.common.commonlib.db.DBUtils import com.common.commonlib.db.DBUtils
import com.common.commonlib.db.entity.Gas import com.common.commonlib.db.entity.Gas
import com.common.commonlib.db.entity.GasType import com.common.commonlib.db.entity.GasType
import com.common.commonlib.db.entity.Warning
import com.yinuo.safetywatcher.watcher.net.api.UploadFileApi import com.yinuo.safetywatcher.watcher.net.api.UploadFileApi
import com.yinuo.safetywatcher.watcher.ui.view.CommonDialog import com.yinuo.safetywatcher.watcher.ui.view.CommonDialog
import com.yinuo.safetywatcher.watcher.utils.DateUtils import com.yinuo.safetywatcher.watcher.utils.DateUtils
@ -59,6 +60,15 @@ object TestUtils {
gases.add(Gas(timeMillis, "CO2", 1.0)) gases.add(Gas(timeMillis, "CO2", 1.0))
gases.add(Gas(timeMillis, "O2", 1.0)) gases.add(Gas(timeMillis, "O2", 1.0))
gasDao.insertAll(gases) gasDao.insertAll(gases)
// 构造告警数据
val warningDao = DBUtils.warningDao()
val warnings = mutableListOf<Warning>()
warnings.add(Warning("CO", 60.0, "", timeMillis))
warnings.add(Warning("CO", 80.0, "", timeMillis - 30 * 1000))
warnings.add(Warning("CO2", 80.0, "", timeMillis - 30 * 1000))
warnings.add(Warning("O2", 10.0, "", timeMillis - 90 * 1000))
warningDao.insertAll(warnings)
} }
} }

@ -2,15 +2,19 @@ package com.yinuo.safetywatcher.watcher.ui
import android.view.View import android.view.View
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import com.common.commonlib.db.DBUtils
import com.common.commonlib.db.entity.Warning
import com.yinuo.safetywatcher.R import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivityWarndataBinding import com.yinuo.safetywatcher.databinding.ActivityWarndataBinding
import com.yinuo.safetywatcher.watcher.ui.adapter.WarnDataAdapter
import com.yinuo.safetywatcher.watcher.base.BaseActivity import com.yinuo.safetywatcher.watcher.base.BaseActivity
import com.yinuo.safetywatcher.watcher.bean.WarnData
import com.yinuo.safetywatcher.watcher.constant.DEFAULT_QUERY_TIME_INTERVAL import com.yinuo.safetywatcher.watcher.constant.DEFAULT_QUERY_TIME_INTERVAL
import com.yinuo.safetywatcher.watcher.utils.DateUtils import com.yinuo.safetywatcher.watcher.ui.adapter.WarnDataAdapter
import com.yinuo.safetywatcher.watcher.ui.view.CommonTopBar import com.yinuo.safetywatcher.watcher.ui.view.CommonTopBar
import com.yinuo.safetywatcher.watcher.utils.DateUtils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class WarnDataActivity : BaseActivity() { class WarnDataActivity : BaseActivity() {
@ -95,9 +99,20 @@ class WarnDataActivity : BaseActivity() {
} }
private fun queryData() { private fun queryData() {
val datas = mutableListOf<WarnData>() lifecycleScope.launch {
datas.add(WarnData(0, "二氧化碳浓度过高")) val warningDao = DBUtils.warningDao()
datas.add(WarnData(0, "温度超标")) val warnings = warningDao.findAllByTime("CO", startTime, endTime)
mAdapter.setData(datas)
launch(Dispatchers.Main) {
val sortList = mutableListOf<Warning>()
sortList.apply {
addAll(warnings)
sortWith { o1, o2 ->
(o2.startTime - o1.startTime).toInt()
}
}
mAdapter.setData(sortList)
}
}
} }
} }

@ -2,21 +2,19 @@ package com.yinuo.safetywatcher.watcher.ui.adapter
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.ViewGroup import android.view.ViewGroup
import com.yinuo.safetywatcher.databinding.LayoutItemHistoryBinding import com.common.commonlib.db.entity.Warning
import com.yinuo.safetywatcher.databinding.LayoutItemWarnBinding import com.yinuo.safetywatcher.databinding.LayoutItemWarnBinding
import com.yinuo.safetywatcher.watcher.base.BaseRvAdapter import com.yinuo.safetywatcher.watcher.base.BaseRvAdapter
import com.yinuo.safetywatcher.watcher.bean.HistoryData
import com.yinuo.safetywatcher.watcher.bean.WarnData
import com.yinuo.safetywatcher.watcher.utils.DateUtils import com.yinuo.safetywatcher.watcher.utils.DateUtils
class WarnDataAdapter : class WarnDataAdapter :
BaseRvAdapter<WarnData, LayoutItemWarnBinding, WarnDataAdapter.WViewHolder>() { BaseRvAdapter<Warning, LayoutItemWarnBinding, WarnDataAdapter.WViewHolder>() {
class WViewHolder(private val binding: LayoutItemWarnBinding) : class WViewHolder(private val binding: LayoutItemWarnBinding) :
BaseRvAdapter.BaseViewHolder<WarnData, LayoutItemWarnBinding>(binding) { BaseRvAdapter.BaseViewHolder<Warning, LayoutItemWarnBinding>(binding) {
override fun bindView(data: WarnData) { override fun bindView(data: Warning) {
binding.tvTime.text = formatTime(data.time) binding.tvTime.text = formatTime(data.startTime)
binding.tvSensor.text = data.error binding.tvSensor.text = data.gasName
} }
private fun formatTime(time: Long): CharSequence? { private fun formatTime(time: Long): CharSequence? {

@ -13,7 +13,7 @@ interface WarningDao {
suspend fun getAll(): List<Warning>? suspend fun getAll(): List<Warning>?
@Query("SELECT * FROM warning WHERE gas_name IS :name AND start_time BETWEEN :startTime AND :endTime") @Query("SELECT * FROM warning WHERE gas_name IS :name AND start_time BETWEEN :startTime AND :endTime")
suspend fun findAllByName(name: String, startTime: Long, endTime: Long): List<Warning>? suspend fun findAllByTime(name: String, startTime: Long, endTime: Long): List<Warning>
@Query("SELECT * FROM warning WHERE gas_name IS :name ORDER BY id DESC LIMIT 1") @Query("SELECT * FROM warning WHERE gas_name IS :name ORDER BY id DESC LIMIT 1")
suspend fun findLatestByName(name: String): Warning? suspend fun findLatestByName(name: String): Warning?
@ -22,7 +22,7 @@ interface WarningDao {
suspend fun queryWarningsNoEndTime(): List<Warning>? suspend fun queryWarningsNoEndTime(): List<Warning>?
@Insert @Insert
suspend fun insertAll(vararg warnings: Warning) suspend fun insertAll(warnings: List<Warning>)
@Insert @Insert
suspend fun insert(warning: Warning) suspend fun insert(warning: Warning)

@ -9,9 +9,9 @@ data class Warning(
@ColumnInfo(name = "gas_name") var gasName: String, @ColumnInfo(name = "gas_name") var gasName: String,
@ColumnInfo(name = "gas_value") var gasValue: Double, @ColumnInfo(name = "gas_value") var gasValue: Double,
@ColumnInfo(name = "unit") var unit: String, @ColumnInfo(name = "unit") var unit: String,
@ColumnInfo(name = "threshold_low") var thresholdLow: Double,
@ColumnInfo(name = "threshold_high") var thresholdHigh: Double,
@ColumnInfo(name = "start_time") var startTime: Long, @ColumnInfo(name = "start_time") var startTime: Long,
@ColumnInfo(name = "threshold_low") var thresholdLow: Double = 0.0,
@ColumnInfo(name = "threshold_high") var thresholdHigh: Double = 0.0,
@ColumnInfo(name = "end_time") var endTime: Long = -1L, @ColumnInfo(name = "end_time") var endTime: Long = -1L,
@PrimaryKey(autoGenerate = true) var id: Int = 0 @PrimaryKey(autoGenerate = true) var id: Int = 0
) )

Loading…
Cancel
Save