From 5dbe3fef201ba99ab533517a1787f8df8ea072ff Mon Sep 17 00:00:00 2001 From: xiaowusky Date: Fri, 9 Jun 2023 10:32:19 +0800 Subject: [PATCH] =?UTF-8?q?desc:=E5=88=9B=E5=BB=BA=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 5 +++ .../com/yinuo/safetywatcher/MainActivity.java | 38 +++++++++---------- .../com/yinuo/safetywatcher/watcher/App.kt | 1 - .../safetywatcher/watcher/db/AppDatabase.kt | 33 ++++++++++++++++ .../safetywatcher/watcher/db/dao/GasDao.kt | 26 +++++++++++++ .../watcher/db/dao/WarningDao.kt | 25 ++++++++++++ .../safetywatcher/watcher/db/entity/Gas.kt | 16 ++++++++ .../watcher/db/entity/Warning.kt | 17 +++++++++ 8 files changed, 141 insertions(+), 20 deletions(-) create mode 100644 app/src/main/java/com/yinuo/safetywatcher/watcher/db/AppDatabase.kt create mode 100644 app/src/main/java/com/yinuo/safetywatcher/watcher/db/dao/GasDao.kt create mode 100644 app/src/main/java/com/yinuo/safetywatcher/watcher/db/dao/WarningDao.kt create mode 100644 app/src/main/java/com/yinuo/safetywatcher/watcher/db/entity/Gas.kt create mode 100644 app/src/main/java/com/yinuo/safetywatcher/watcher/db/entity/Warning.kt diff --git a/app/build.gradle b/app/build.gradle index cb9b552..fd402d4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -60,6 +60,11 @@ dependencies { implementation rootProject.ext.dependencies.retrofit // 添加rxjava依赖 implementation rootProject.ext.dependencies.rxjava + // room + var room_version = "2.5.0" + implementation("androidx.room:room-runtime:$room_version") + annotationProcessor("androidx.room:room-compiler:$room_version") + implementation("androidx.room:room-ktx:$room_version") implementation 'com.google.android.material:material:1.5.0' annotationProcessor 'androidx.lifecycle:lifecycle-compiler:2.0.0' diff --git a/app/src/main/java/com/yinuo/safetywatcher/MainActivity.java b/app/src/main/java/com/yinuo/safetywatcher/MainActivity.java index 80369a7..e28bc34 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/MainActivity.java +++ b/app/src/main/java/com/yinuo/safetywatcher/MainActivity.java @@ -243,30 +243,30 @@ public class MainActivity extends AppCompatActivity { } public void onUVCCamera(View view) { -// Intent intent = new Intent(this, UVCActivity.class); + Intent intent = new Intent(this, UVCActivity.class); // Intent intent = new Intent(this, ProVideoActivity.class); // String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/mvtest.mp4"; // intent.putExtra("videoPath", path); -// startActivity(intent); - - List> allData = new ArrayList<>(); - List row1 = new ArrayList<>(); - row1.add(new SimpleCellValue("5.22")); - row1.add(new SimpleCellValue("1")); - row1.add(new SimpleCellValue("2")); - row1.add(new SimpleCellValue("3")); - List row2 = new ArrayList<>(); - row2.add(new SimpleCellValue("5.23")); - row2.add(new SimpleCellValue("4")); - row2.add(new SimpleCellValue("5")); - row2.add(new SimpleCellValue("6")); - - allData.add(row1); - allData.add(row2); - - ExcelUtils.INSTANCE.writeStringListToExcel(allData, this); + startActivity(intent); + +// List> allData = new ArrayList<>(); +// List row1 = new ArrayList<>(); +// row1.add(new SimpleCellValue("5.22")); +// row1.add(new SimpleCellValue("1")); +// row1.add(new SimpleCellValue("2")); +// row1.add(new SimpleCellValue("3")); +// List row2 = new ArrayList<>(); +// row2.add(new SimpleCellValue("5.23")); +// row2.add(new SimpleCellValue("4")); +// row2.add(new SimpleCellValue("5")); +// row2.add(new SimpleCellValue("6")); +// +// allData.add(row1); +// allData.add(row2); +// +// ExcelUtils.INSTANCE.writeStringListToExcel(allData, this); } public void OnSaveRecord(View view) { diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/App.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/App.kt index e4f61d0..12b1894 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/App.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/App.kt @@ -5,7 +5,6 @@ import com.lztek.toolkit.Lztek import com.yinuo.safetywatcher.watcher.utils.LztekUtil class App : CommonApplication() { - override fun onCreate() { super.onCreate() LztekUtil.setObject(Lztek.create(this)) diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/db/AppDatabase.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/db/AppDatabase.kt new file mode 100644 index 0000000..72ceb26 --- /dev/null +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/db/AppDatabase.kt @@ -0,0 +1,33 @@ +package com.yinuo.safetywatcher.watcher.db + +import androidx.room.Database +import androidx.room.Room +import androidx.room.RoomDatabase +import com.common.commonlib.CommonApplication +import com.yinuo.safetywatcher.watcher.db.dao.GasDao +import com.yinuo.safetywatcher.watcher.db.dao.WarningDao +import com.yinuo.safetywatcher.watcher.db.entity.Gas +import com.yinuo.safetywatcher.watcher.db.entity.Warning + +@Database(entities = [Warning::class, Gas::class], version = 1) +abstract class AppDatabase : RoomDatabase() { + abstract fun warningDao(): WarningDao + abstract fun gasDao(): GasDao +} + +object DBUtils { + val db by lazy { + Room.databaseBuilder( + CommonApplication.getContext()!!, + AppDatabase::class.java, "watcher_db" + ).build() + } + + fun warningDao(): WarningDao { + return db.warningDao() + } + + fun gasDao(): GasDao { + return db.gasDao() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/db/dao/GasDao.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/db/dao/GasDao.kt new file mode 100644 index 0000000..ecda121 --- /dev/null +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/db/dao/GasDao.kt @@ -0,0 +1,26 @@ +package com.yinuo.safetywatcher.watcher.db.dao + +import androidx.room.Dao +import androidx.room.Delete +import androidx.room.Insert +import androidx.room.Query +import com.yinuo.safetywatcher.watcher.db.entity.Gas +import com.yinuo.safetywatcher.watcher.db.entity.Warning + +@Dao +interface GasDao { + @Query("SELECT * FROM gas") + suspend fun getAll(): List + + @Query("SELECT * FROM gas WHERE gas_name IS :name AND time BETWEEN :startTime AND :endTime") + suspend fun findByName(name: String, startTime: Long, endTime: Long): List + + @Insert + suspend fun insertAll(vararg gases: Gas) + + @Insert + suspend fun insert(gas: Gas) + + @Delete + suspend fun delete(gas: Gas) +} \ No newline at end of file diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/db/dao/WarningDao.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/db/dao/WarningDao.kt new file mode 100644 index 0000000..860d0a5 --- /dev/null +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/db/dao/WarningDao.kt @@ -0,0 +1,25 @@ +package com.yinuo.safetywatcher.watcher.db.dao + +import androidx.room.Dao +import androidx.room.Delete +import androidx.room.Insert +import androidx.room.Query +import com.yinuo.safetywatcher.watcher.db.entity.Warning + +@Dao +interface WarningDao { + @Query("SELECT * FROM warning") + suspend fun getAll(): List + + @Query("SELECT * FROM warning WHERE gas_name IS :name AND start_time BETWEEN :startTime AND :endTime") + suspend fun findByName(name: String, startTime: Long, endTime: Long): List + + @Insert + suspend fun insertAll(vararg warnings: Warning) + + @Insert + suspend fun insert(warning: Warning) + + @Delete + suspend fun delete(warning: Warning) +} \ No newline at end of file diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/db/entity/Gas.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/db/entity/Gas.kt new file mode 100644 index 0000000..a790613 --- /dev/null +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/db/entity/Gas.kt @@ -0,0 +1,16 @@ +package com.yinuo.safetywatcher.watcher.db.entity + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey + +@Entity +data class Gas( + @PrimaryKey val id: Int, + @ColumnInfo(name = "time") val time: Long, + @ColumnInfo(name = "gas_name") val gasName: String, + @ColumnInfo(name = "gas_value") val gasValue: Double, + @ColumnInfo(name = "unit") val unit: String, + @ColumnInfo(name = "threshold_low") val thresholdLow: Double, + @ColumnInfo(name = "threshold_high") val thresholdHigh: Double, +) diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/db/entity/Warning.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/db/entity/Warning.kt new file mode 100644 index 0000000..943b670 --- /dev/null +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/db/entity/Warning.kt @@ -0,0 +1,17 @@ +package com.yinuo.safetywatcher.watcher.db.entity + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.PrimaryKey + +@Entity +data class Warning( + @PrimaryKey val id: Int, + @ColumnInfo(name = "gas_name") val gasName: String, + @ColumnInfo(name = "gas_value") val gasValue: Double, + @ColumnInfo(name = "unit") val unit: String, + @ColumnInfo(name = "threshold_low") val thresholdLow: Double, + @ColumnInfo(name = "threshold_high") val thresholdHigh: Double, + @ColumnInfo(name = "start_time") val startTime: Long, + @ColumnInfo(name = "end_time") val endTime: Long, +)