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.entity.Gas
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.ui.view.CommonDialog
import com.yinuo.safetywatcher.watcher.utils.DateUtils
@ -59,6 +60,15 @@ object TestUtils {
gases.add(Gas(timeMillis, "CO2", 1.0))
gases.add(Gas(timeMillis, "O2", 1.0))
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 androidx.activity.result.contract.ActivityResultContracts
import androidx.lifecycle.lifecycleScope
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.databinding.ActivityWarndataBinding
import com.yinuo.safetywatcher.watcher.ui.adapter.WarnDataAdapter
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.utils.DateUtils
import com.yinuo.safetywatcher.watcher.ui.adapter.WarnDataAdapter
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() {
@ -95,9 +99,20 @@ class WarnDataActivity : BaseActivity() {
}
private fun queryData() {
val datas = mutableListOf<WarnData>()
datas.add(WarnData(0, "二氧化碳浓度过高"))
datas.add(WarnData(0, "温度超标"))
mAdapter.setData(datas)
lifecycleScope.launch {
val warningDao = DBUtils.warningDao()
val warnings = warningDao.findAllByTime("CO", startTime, endTime)
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.ViewGroup
import com.yinuo.safetywatcher.databinding.LayoutItemHistoryBinding
import com.common.commonlib.db.entity.Warning
import com.yinuo.safetywatcher.databinding.LayoutItemWarnBinding
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
class WarnDataAdapter :
BaseRvAdapter<WarnData, LayoutItemWarnBinding, WarnDataAdapter.WViewHolder>() {
BaseRvAdapter<Warning, LayoutItemWarnBinding, WarnDataAdapter.WViewHolder>() {
class WViewHolder(private val binding: LayoutItemWarnBinding) :
BaseRvAdapter.BaseViewHolder<WarnData, LayoutItemWarnBinding>(binding) {
override fun bindView(data: WarnData) {
binding.tvTime.text = formatTime(data.time)
binding.tvSensor.text = data.error
BaseRvAdapter.BaseViewHolder<Warning, LayoutItemWarnBinding>(binding) {
override fun bindView(data: Warning) {
binding.tvTime.text = formatTime(data.startTime)
binding.tvSensor.text = data.gasName
}
private fun formatTime(time: Long): CharSequence? {

@ -13,7 +13,7 @@ interface WarningDao {
suspend fun getAll(): List<Warning>?
@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")
suspend fun findLatestByName(name: String): Warning?
@ -22,7 +22,7 @@ interface WarningDao {
suspend fun queryWarningsNoEndTime(): List<Warning>?
@Insert
suspend fun insertAll(vararg warnings: Warning)
suspend fun insertAll(warnings: List<Warning>)
@Insert
suspend fun insert(warning: Warning)

@ -9,9 +9,9 @@ data class Warning(
@ColumnInfo(name = "gas_name") var gasName: String,
@ColumnInfo(name = "gas_value") var gasValue: Double,
@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 = "threshold_low") var thresholdLow: Double = 0.0,
@ColumnInfo(name = "threshold_high") var thresholdHigh: Double = 0.0,
@ColumnInfo(name = "end_time") var endTime: Long = -1L,
@PrimaryKey(autoGenerate = true) var id: Int = 0
)

Loading…
Cancel
Save